使数学模式遵循空格

使数学模式遵循空格

我知道问这个问题有点亵渎神明,但是有没有办法让数学模式遵守空格?最好是使用 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

令我惊讶的是,它起作用了。

相关内容