默认值 \vbadness=1000 是否是“好”值,何时应调整它?

默认值 \vbadness=1000 是否是“好”值,何时应调整它?

关于将\vbadness默认值从1000,例如,如何在本地降低 badbox 敏感度?或者我是否需要关心坏盒子?。现在,注意到\vbadness=0提出了许多毫无疑问不必要的警告,我想知道选择 是否1000有特别的理由。这是一个“好的”选择(无论这意味着什么)吗?

我没有找到任何关于如何计算不良程度的详细信息,但由于最大不良程度等于10000,我怀疑不良程度的量表是相当非线性的。可能,几个组成部分的权重是这样的,即某种影响的普遍性总是超过另一种影响的普遍性,然后相加。这是正确的吗?我还想知道,放大整个文档(例如,从 A4 到 A3)和所有边距、字体大小、粘合等是否会导致相同的不良程度,或者它们是否会发生变化。

答案1

盒子的劣化程度(垂直或水平)是衡量胶水拉伸或收缩程度的标准。

在有无限胶水可用的情况下,坏度为零,因此让我们集中讨论只有有限拉伸性或收缩性可用的情况。

如果可用的伸展力所需的拉伸是s,胶水固化率为r=s/;不良程度将为 100·r3,因此,坏度 1000 大约意味着,r= 2.15;但是,如果r3 > 100(即r>4.64)。

收缩也是一样,不同之处在于,如果可用的收缩量小于所需的量,TeX 将输出一个过满的框(即,r结果大于1)。

通常情况下,拉伸量是可用量的两倍并不是真正的问题,特别是对于文本行而言。如果可用拉伸量仅由\parskip粘连提供,则可能对页面造成问题。默认值为\parskip0.3pt0pt plus 0.1pt时,问题变得明显。当拉伸量来自标题周围的粘连时,问题就不那么严重了。

\vbadness从默认值 1000减少到 338,这对应于r= 1.5,意味着您会收到许多Underfull \vbox警告,其中大多数是多余的。

确保文本高度包含整数行数可能是防止出现坏页面的最佳方法;这是必须当文档包含多页纯文本时。公式很简单:将行数减一乘以 ,然后\baselineskip加上\topskipgeometry如果您使用该选项,软件包会自动执行此操作heightrounded

邪恶度高于1500(r> 2.5) 是需要认真对待的;一般来说,1000 到 1500 之间不会有太大问题。如果可以消除导致问题的原因,那就更好了,但问题也不能太大,以致于无法接受妥协。

答案2

非空盒子的“坏度”约等于非无限胶水“胶水设置比”立方的 100 倍(见TeXbook,第 97 页)。“胶水固化率”是指“盒子内的胶水必须拉伸或收缩以使其达到所需尺寸的比率”(同上)。请注意,胶水凝固率始终为非负。

但是,在计算换行符或分页符时,除了纯粹的糟糕程度之外,还会考虑其他因素,例如用户或 TeX 本身在水平或垂直列表中插入的“惩罚”。然而,这是超出您问题范围的另一个话题。

因此,如果你扩大或缩小规模一切在文档中,理论上胶合率根本不应受到影响(作为一个比率),但在实践中,有必要确切地知道缩放是如何执行的(首先,字体将如何缩放)。

添加

但请记住\vbadness不是不会以任何方式影响排版:它只是告诉 TeX 在报告不完整(以及某种程度上,也包括过满)的\vboxes 时应该有多挑剔。当然,兄弟参数命名\hbadness以类似的方式适用于\hboxes。您可以在第 302 页找到详细信息TeXbook,在倒数第二段(“单一危险的弯道”)。

相关内容