为什么 \z@skip 定义中的零拉伸和收缩是明确的?

为什么 \z@skip 定义中的零拉伸和收缩是明确的?

为什么两者TeXbook和 latex.ltx 定义\z@skip=0pt plus0pt minus0pt? 可能\z@skip=0pt\z@skip=0pt\relax短,但结果相同吗? 我一直认为拉伸和收缩默认为零。

答案1

plain.tex我们看到

\newskip\z@skip \z@skip=0pt plus0pt minus0pt
\newbox\voidb@x % permanently void box register

如果

\newskip\z@skip \z@skip=0pt
\newbox\voidb@x % permanently void box register

那么 TeX 将继续扩展\newbox并浪费时间只是为了放回标记。而且它无论如何都需要知道扩展是什么\newbox

替代方案

\newskip\z@skip \z@skip=0pt\relax
\newbox\voidb@x % permanently void box register

可以避免扩展并产生相同的结果,但代价是清晰度。

latex.ltx部分是直接复制自的plain.tex

相关内容