为什么在 \loggingall 中将 \showboxbreadth 和 \showboxdepth 设置为 2^{30}-1?

为什么在 \loggingall 中将 \showboxbreadth 和 \showboxdepth 设置为 2^{30}-1?

纯 TeX 格式定义

\def\loggingall{\tracingcommands\tw@\tracingstats\tw@
  \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
  \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
  \showboxbreadth\maxdimen\showboxdepth\maxdimen}

这使得\showboxbreadth\showboxdepth变为\maxdimen,实际上是2 30 −1 = 1,073,741,823。

但是\showboxbreadth\showboxdepth是“整数参数”,所以它们不是应该设置为 2 31 −1 = 2,147,483,647 吗?考虑一个包含 2 30 −1 对\kern1sp\kern-1sp(2 31 −2 个 kern 项)的水平盒子。

答案1

可以说,但 latex 在这里遵循普通 tex,\maxdimen只是代表“一些大的东西”如果你真的有一个超过 2^30 个节点的盒子,你想要输出的机会\showbox是......很小,所以在实践中没有什么区别,然后在使用令牌来表示另一个“大数字”时保存了它。

相关内容