检测 vbox / hbox 是否未满?

检测 vbox / hbox 是否未满?

这可能是一个多余的问题,尽管我在 TEX 或互联网上没有找到答案。我收到以下警告消息:

Badbox 第 1 行“\output 处于活动状态时,\vbox 未满(不良程度 1270)[]”

现在的问题是,我如何才能知道哪个框实际上导致了这个问题?第 1 行没有显示框,它显示了我的部分标题,但如果我删除该标题的所有内容,则不会出现 badbox 警告。

看起来错误信息并没有指出罪魁祸首,有人知道我该如何找到罪魁祸首吗?

谢谢!

答案1

您显示的格式来自您的编辑器而不是 TeX,但是原始 TeX 警告消息将出现在日志中。

默认情况下,它只会显示盒子内容,[]但如果你输入

\showboxbreadth=50 
\showboxdepth=50

在文件顶部附近,它将显示框内容的表示(每个字符一行,因此可能非常冗长,但如果您需要查看更多,请增加 50,或使用\maxdimen

由于它是在输出例程中,所以错误与文件中的某行没有直接关系,而与 Tex 未能正确组成页面有关。

输出例程中的超满框通常与页眉有关,例如尝试将两行章节标题放入仅占用一行的页眉中。

但是由于它不够满,我猜是页面主体不够满。通常的方法是让它\textheight不完全\topskip加上 的倍数,\baselineskip然后如果页面上没有可拉伸的空白来补偿,TeX 就无法填满页面,页面很短但不能拉伸,但添加一行会使其过满。在这种情况下,TeX 选择让页面保持较短但会发出警告。

相关内容