卧式满箱

刺入边缘的线条以及何时需要关心。

水平框溢出

症状

日志在第 87–92 行的段落中报告类似“Overfull \hbox (14.2pt too Wide)”的内容,并且在 PDF 中,该段落的一行突出到了右边距。该文档仍然可以编译,因为这是警告而不是错误,但突出的线条在打印中是可见的,审阅者确实注意到了。在草稿模式 (\documentclass[draft]{...}) 下,LaTeX 用黑色矩形标记每个违规者,这使得他们很容易被发现。

为什么会发生

TeX 通过权衡每个可能的断点并选择总“坏度”最少的排列来将段落分成行,其中坏度衡量一行上的空间必须拉伸或收缩的程度。有时不存在可接受的安排:长 URL 根本不包含断点,内联数学被视为几乎牢不可破,或者长单词没有连字符条目。 TeX 不会将空间拉伸到超出其容差并产生明显有间隙的线,而是让线拉长并告诉您相关信息。过满的框是 TeX 拒绝以不同的方式使段落变得丑陋。

修复,从最好到最钝

最好的解决方法是编辑。重新措辞句子、将长单词移离行尾或将一个句子分成两个通常可以在不使用任何代码的情况下解决问题,并且通常可以改进散文。

对于 URL,将“url”或“hyperref”包中的地址包装在“\url{…}”中,以便它可以在斜线和点处中断,并在需要在几乎任何字符处中断时加载“xur​​l”包。对于宽内联公式,要么显示它,要么当方程本身对于行来说太长时使用易损坏的环境,例如“amsmath”中的“multline”。

两项序言级改进在全球范围内都有帮助。加载“microtype”可以让字符稍微突出并稍微扩展字体,这可以在您不注意的情况下解决许多边缘情况。通过 babelpolyglossia 正确设置文档语言为 TeX 提供了正确的连字符模式,因为它不能连字符的单词就是它不能破坏的单词。

何时需要关心

警告中的数字是超调。任何低于大约 2pt 的内容对读者来说都是不可见的,并且可以在草稿中安全地忽略。在其他人看到 PDF 之前,有数十个问题值得修复。明智的工作流程是在写入时忽略过满的框,然后在提交之前扫描一次日志并修复剩余的少数内容,首先是最大的。抵制“\sloppy”和其他全局宽容黑客:他们用一些突出的线条来换取整个文档中松散、不均匀的间距。

返回 日志素养