我知道问这个问题有点亵渎神明,但是有没有办法让数学模式遵守空格?最好是使用 XeTeX 的 Plain 格式。
答案1
当然:
{\catcode`\ =\active\global\let =\ }
\everymath{\catcode`\ =\active}
(该空间有数学代码"8000
,这应该使其在数学模式下处于活动状态。但由于某种原因,这还不够。你确实需要\everymath
。)
答案2
可以利用这个事实,即空间具有数学码"8000
,但 TeX 仅检查第 11 或 12 类字符的数学码:
\def\spacemath{\catcode`\ =12
\begingroup\lccode`~=` \lowercase{\endgroup\def~}{\ }}
$\spacemath{}a b$
如果人们希望在所有数学中都做到这一点,那么
\everymath\expandafter{\the\everymath\spacemath}
\everydisplay\expandafter{\the\everydisplay\spacemath}
答案3
实际上我设法以某种方式意外地使它工作:
\catcode`\ =13 \def {\space}
之后
$$\def\space{ } meow woof$$ % the thing between the braces is U+A0
令我惊讶的是,它起作用了。