# [luatex] \mathchardef\foo=\mathcode\x

David Carlisle d.p.carlisle at gmail.com
Fri Feb 5 12:36:49 CET 2016

Hi

[longish preamble, sorry but you could jump to the change request at the end:-]

I wrote last year about compatibility with the \mathchar changes and
you made a small change in .88 which allows amsmath to load but
unfortunately not enough to make it work, this gives an error:

\documentclass{report}
\usepackage{amsmath}
\begin{document}

\parbox{1cm}{}

\end{document}

failing with

! Missing number, treated as zero.
"
l.5 \parbox{1cm}{}

?

the problem being that amsmath (along with several other packages)
parses the output of \meaning to change or test the mathclass of
tokens and previously

\meaning\coprod

produced

\coprod=\mathchar"1360

but now it produces

\mathchar"1"03"000060

This seems to be wrong and complicates testing: note that the form
returned is (if re-parsed with normal catcodes)
syntactically valid but not the meaning intended, it would do
\mathchar 1 and then typeset  "03"000060 which basically accounts for
the error message in the above test file.

Note that if you do

\Umathchardef\xcoprod"1"03"000060

\show\xcoprod

Then you get

> \xcoprod=\Umathchar"1"03"000060.

which is the real meaning.

So... to come to the change request.

Given that \the on a mathcode or \meaning on a mathchardef token now
use the three hex number form can they be prefixed by \Umathchar  so
that macros testing the returned strings can do one thing for
Umathchar and another for mathchar and so work with different engines
and old and new luatex?

David

PS

I now seem to have

This is LuaTeX, Version beta-0.89.0 (TeX Live 2016/dev)

is there any news or change log from 0.88 ??
`