TeXbook (第 302 页) 说:
如果非空水平盒子的粘连不能收缩到指定的大小,并且 \hbadness 小于 100 或者超出的宽度(收缩到最大量之后)大于 \hfuzz,则认为该水平盒子“过满”。如果其粘连收缩并且 badness 超过 \hbadness,则认为该水平盒子“紧”;如果其粘连伸展并且 badness 超过 \hbadness 但不大于 100,则认为该水平盒子“松”;如果其粘连伸展并且 badness 大于 \hbadness 且大于 100,则认为该水平盒子“不满”。
我对案例 1 有疑问。让我们使用以下模板来考虑一下:
\hbadness=-1 % to report the badness
\spaceskip.3333em \rightskip0pt plus20pt % allow only 20pt of stretchability
\def\text{The badness of this line is 1000.}
\setbox0=\hbox{\text}
\hsize=\wd0 \advance\hsize by Xpt \noindent\text\break
\end
1)
如果非空的水平盒子的粘合部分无法收缩到指定的大小,则认为它“过满” ⟨quote proven⟩ ... 当发现此类异常时,TeX 会打印一条警告消息并显示有问题的盒子。
在模板中替换Xpt
为-0.1pt
,我们确认语句(1):
Overfull \hbox (0.1pt too wide) in paragraph at lines 6--7
\tenrm The bad-ness of this line is 1000.
但我不明白以下短语(上面标记为“⟨引用省略⟩”)是什么意思:
前提是 \hbadness 小于 100,或者超出的宽度(在最大程度缩小之后)大于 \hfuzz
因为“ Overfull \hbox
”消息总是被打印。
这不是问题的一部分 - 它只是一个通知:以下情况使用相同的模板来考虑
2)
如果其胶合收缩并且坏度超过 \hbadness,则它为“紧”...每当发现此类异常时,TeX 都会打印一条警告消息并显示有问题的框。
在模板中将 改为plus
,minus
并将Xpt
改为-10pt
,我们确认语句 (2):
Tight \hbox (badness 12) in paragraph at lines 6--7
\tenrm The bad-ness of this line is 1000.
3)
如果其胶水伸展并且 badness 超过 \hbadness 但不大于 100,则它为“松散”...每当发现此类异常时,TeX 都会打印一条警告消息并显示有问题的框。
我们通过在模板中替换0.1pt
和20pt
来确认这一点:Xpt
Loose \hbox (badness 0) in paragraph at lines 6--7
\tenrm The bad-ness of this line is 1000.
Loose \hbox (badness 100) in paragraph at lines 6--7
\tenrm The bad-ness of this line is 1000.
4)
如果其胶水伸展并且 badness 大于 \hbadness 并且大于 100... 则为“未满”...每当发现此类异常时,TeX 都会打印一条警告消息并显示有问题的框。
可以使用20.1pt
而不是 来确认Xpt
:
Underfull \hbox (badness 101) in paragraph at lines 6--7
\tenrm The bad-ness of this line is 1000.
答案1
如果你读这个句子50次,那么
假设
\hbadness
小于 100 或超出宽度(缩小最大量后)大于\hfuzz
。
意思是如果(像这里)你设置\hbadness
为小于 100,那么任何超满的箱子都会被报告,并且\hfuzz
没有影响。
鉴于我经常在 TeXBook 中阅读该段落,我不能说我曾经这样读过它,直到您提供了这个示例。如果您问过,我会说设置\hfuzz
为非零值会抑制对过满的框发出的警告,而无需考虑这个额外的条件\hbadness
,所以这是一个很好的例子:-)