在 LaTeX 内核中,我们可以看到这些定义:
\def\@plus{plus}
\def\@minus{minus}
\def\@height{height}
\def\@depth{depth}
\def\@width{width}
据说这些定义可以用来节省token空间,如何理解这个观点呢?
答案1
一个例子:
\def\stretch#1{\z@ \@plus #1fill\relax}
反对
\def\stretch#1{\z@ plus #1fill\relax}
前者需要存储 9 个 token,后者需要存储 13 个 token。每次\@plus
在定义中使用,都会增加 4 个 token。内核使用了\@plus
15 次,因此净收益为 60 个 token。
\@height
和分别出现了 26 次和 27 次\@width
。
它看起来可能很小,但它让 LaTeX 在 90 年代得以运行。更不用说\z@
可以代表0
常数或0pt
维度。在前一种情况下,每次出现都会获得一个标记(一个用于字符,一个用于尾随空格)。