On 7/24/2015 2:40 PM, Hans Aberg wrote:
On 24 Jul 2015, at 11:40, Hans Hagen
wrote: On 7/20/2015 6:09 PM, Hans Aberg wrote:
On 20 Jul 2015, at 17:50, Manuel Blanco
wrote: A little bit more of intelligence can be given with
\begingroup\lccode`\~=`\:\lowercase{\endgroup \unexpanded\def~}{\futurelet\tmptoken\docolon} \unexpanded\def\docolon{\ifx=\tmptoken\mathrel{\mathop{\mathchar`\:}}\else\colon\fi} \mathcode`\:="8000 %
That lets you do $f: A \to B$ and $f(x) := x^2$
For the second, one can use ≔ COLON EQUALS U+2254. But it is a good point, though.
there is actually a more modern trick:
\starttext
\startluacode characters.mathpairs[0x3A] = { [0x3D] = 0x2254 } characters.mathpairs[0x3E] = { [0x3D] = 0x2265 } characters.mathpairs[0x3C] = { [0x3D] = 0x2264 } characters.mathpairs[0x3D] = { [0x3A] = 0x2255 } \stopluacode
\startTEXpage $a := b <= =< c =: d >= e$ \stopTEXpage
\stoptext
I have experimented with a theorem proof assistant that admitted parallel ASCII and Unicode symbol names, but it turns out to be complicated. Think of C/C++ trigraphs, a chore to implement, only to be removed in the latest standards.
So I think one should only focus on UTF-8, and add TeX ASCII “\” commands as a complement.
One problem with this approach is the lack of Unicode input methods. But that may coming.
For example, instead having “:=“ in the input file and let Lua translate it, one can merely type it and let the text editor translate it ≔ COLON EQUALS U+2254.
that is ok for some input sequences (this kind of input translation happens for accented characters and some math like negated symbols) but replacing <= in the input is bad as it is only meaningful in math and not all input is math (and unicode lacks script/language tagging); keep in mind that 'verbatim' in tex really means verbatim and input translation contradicts that
It will save a lot of programming time, at least on the ConTEXt project. :-)
not really as that code is already in place for years; in this case it mainly boils down to adding some extra entries in the character database (and this code is simple compared to other code so not much to save here) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------