[XeTeX] \meaning on a \csname \let to a character

Khaled Hosny khaledhosny at eglug.org
Mon Jan 7 18:39:47 CET 2013

On Sun, Jan 06, 2013 at 10:50:51PM +0000, David Carlisle wrote:
> I'm trying to update the bm package to work with xetex (and luatex,
> but concentrating on xetex for now) and in particular to work with
> unicode-math package.
> bm needs to look at each token (after expansion) and if it is a
> character look up the mathcode and construct a suitable bold
> replacement.
> It turns out that bm had a bug since the start that if you go
> \let\qchar=q
> ...
> \bm{\qchar}
> It failed (because it was trying to use \count@=`\qchar and the
> backtick does not work in that context)
> This bug isn't too important in classic TeX (I don't think anyone ever
> reported it since the first version of bm in 1996:-)  However after
> unicode-math this is rather more serious as many more command names
> are \let to character tokens.
> The only way I can see to fix this in bm is to use \meaning to get
> from \qchar to "the letter q" then strip away the "the letter "
> getting the explict character q so I can use `q to look up the
> mathcode.
> this seems OK in pdftex or luatex but in xetex I hit
> \bm{\alpha}
> \alpha expands to \mitalpa but \meaning\mitalpha  is
> the letter ???
> with ascii ? so I can't access the explicit alpha character.

This is already fixed in the development version, it now returns:

  the letter number "1D6FC

(which was triggered by the TeX.SE question:

> Would it be possible for xetex to return the actual character in
> \meaning (and \show) or if not is there any way to access the mathcode
> (\XeTeXmathcodenum) of an implict character token?

I don't think there is, but I don't understand all the macro code side
of things, so I may be wrong.


More information about the XeTeX mailing list