On Sun, 15 Nov 2009, Taco Hoekwater wrote:
Aditya Mahajan wrote:
On Fri, Nov 13, 2009 at 4:03 AM, Mojca Miklavec < mojca.miklavec.lists@gmail.com> wrote:
Hello,
I have tried to compile an old document (written in mkii times). Among other problems that I yet need to isolate, the following minimal example doesn't want to compile: $\bigl| x \bigr>$ since <|> aren't recognized as candidates for delimiters. There is a workaround of course (using \langle, \rangle, ... instead of <>), but the three characters are just way too handy to use.
| works fine here. < and > don't. I did not know that \left< is equivalent to \left\langle even in plain tex.
I suppose that the behaviour in mkii comes from these lines:
\definemathcharacter [<] [nothing] [sy] ["68] [ex] ["0A] \definemathcharacter [>] [nothing] [sy] ["69] [ex] ["0B]
I guess mkii is imitating plain tex here. (Though, I could not find how this is happening in plain tex)
From plain.tex:
\mathcode`\<="313C \delcode`\<="26830A
The first (\mathcode) controls standalone use, the second (\delcode) use as a delimiter. Both can be set at the same time, and that second one got lost in the conversion, probably because it has a dedicated slot in Unicode (U+0x27E8, MATHEMATICAL LEFT ANGLE BRACKET).
Perhaps this can be done with the mathspec field in char-def.lua, but I do not know how?
The attached patch gives a working solution for lmmath but does not work with cambria. I don't know if the latter is a fault of context mkiv or luatex. In any case, this is a kludge as we have to define a dummy name. It will be better if we could just say name=false. Currently, if I use name=false, \left< gives an error. Aditya