为什么两者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
。