[NTG-context] lmtx update: two experimental features

Hans Hagen j.hagen at xs4all.nl
Sun Apr 18 19:16:13 CEST 2021


Hi,

I uploaded a new version. There are two new features that are 
experimental. This time we attempt to deal with the more tricky things 
and artifacts of the otherwise nice tex machinery we need to get rid of. 
One can rightfully argue that they are not really issues as one can work 
around them (and so they are never brought to attention) but why not 
make things better (cleaner) if we can.


(1) Languages: hyphenation normally uses a hyphen and the engine has 
some messy work-around-border-cases in the hyphenator. So, I wondered if 
we could improve that.

First of all, there can now be more than one hyphen character so here is 
the way to deal with it (the hyphenchar code is like the other 'codes'):

\hccode"002D = "002D
\hccode"2010 = "2010
\hccode"2013 = "2013
\hccode"2014 = "2014

This makes all these four into (kind of) compound word seperators:

\startTEXpage \hsize3mm
     firstpart\char"002D secondpart\blank
     firstpart\char"2010 secondpart\blank
     firstpart\char"2013 secondpart\blank
     firstpart\char"2014 secondpart
\stopTEXpage

will work ok. There are provisions for those characters being at the 
left and right edges. All is under low level (engine) option controls 
(compatibility and such) but currently I enable all. With a bit of 
definitions one can for the 002D and 2010 cases deal with pre/post 
variants .. the question is do we need that for more, if so, then I need 
to add some more code (doable).

This feature relates to Denis collection of German compound words and 
ligature prevention data. Dutch has the same issue. (Denis: we can ditch 
the compound word entries now, the ones with -.)

Also, this kind of automatism (keep in mind that normally tex won't 
hyphenate the first word in such a compound) is especially handy in 
cases where there is no control over the input as with xml (when we do 
have control you can use || as compound word marker).

(I'm wondering if we should deal with the typical somewhat archaic tex 
-- and --- in a different manner, but I'll come back to that.)


(2) Math: what is added is not so much an issue in traditional tex math 
usage which is for journals but as context is used for educational 
purposes and thereby has quite some tricks built in. Some of these jump 
through ugly hoops to get it done. Here I stick to color as example.

Just try this (notice the spacing):

\startTEXpage[offset=10pt]
     \showmakeup[mathglue]%
     \enableexperiments[simplegroups]%
     $ a = b \color[red]{=} c \startcolor[blue]=\stopcolor d $\par
     $ \sin \color[green]{(x)} = \sin {(x)} $\par
     \disableexperiments[simplegroups]%
     $ a = b \color[red]{=} c \startcolor[blue]=\stopcolor d $\par
     $ \sin \color[green]{(x)} = \sin {(x)}$\par
\stopTEXpage

The 'simplegroups' experiment enables a more hybrid grouping model but 
we (read: Wolfgang, Aditya and I, but input is welcome) need to check 
for side effects carefully.

The 'mathglue' tracker is also new, and it exposes what actually goes 
on. It has to do with the fact that something grouped with { } creates a 
math list which enforces different spacing but in the case of color that 
is a side effect we don't want (of course it relates to how context 
implements the \color macro and one could work around it, but the 
problem is of a more general nature.


Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list