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
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________