TeX 中的“Underfull”或“Loose”框?

TeX 中的“Underfull”或“Loose”框?

当 badness 超过时\hbadness,应该有Underfull。当 badness 超过时\tolerance,应该有Overfull。Originstory.tex文件是

\hrule
\vskip 1in
\centerline{\bf A SHORT STORY}
\vskip 6pt
\centerline{\sl by A. U. Thor}
\vskip .5cm
Once upon a time, in a distant
   galaxy called \"O\"o\c c,
there lived a computer
named R.~J. Drofnats.

Mr.~Drofnats---or ``R. J.,'' as
he preferred to be called---% error has been fixed!
was happiest when he was at work
typesetting beautiful documents.
\vskip 1in
\hrule
\vfill\eject

输入tex命令后,但日志文件显示\hsize=1.5in \tolerance=10000\raggedright\hbadness=-1 \input story\end

Underfull \hbox (badness 230) in paragraph at lines 7--11
\tenrm in a dis-tant galaxy 

\hbox(6.94444+1.94444)x108.405, glue set 1.3203
.\tenrm i
.\tenrm n
.\glue(\spaceskip) 3.33298
.\tenrm a
.\glue(\spaceskip) 3.33298
.etc.


Loose \hbox (badness 15) in paragraph at lines 7--11
\tenrm called []O^^?o^^Xc, there lived 

\hbox(9.20636+1.94444)x108.405, glue set 0.53001
.\tenrm c
.\tenrm a
.\tenrm l
.\tenrm l
.\tenrm e
.etc.

上面的代码只是全部代码的一部分。由于\hbadness=-1,所以应该有Underfull每一行,但是为什么会有这些行Loose,以及这里是什么Loose意思?

答案1

正如你所说,\hbadness=-1负责分类 未满松动的。如果胶合拉伸且 badness 为 100 或更高,则水平盒子为未满。如果胶合拉伸且 badness 小于 100,则 TeX 称水平盒子为松散。

如果胶水收缩,TeX 会区分过满紧的

请参阅 The TeXbook 第 302 页。


当 TeX 将列表打包到盒子中时就会发生分类:水平列表转换为 hbox,而垂直列表转换为 vbox。

计算构造的 hbox 的坏度。如果它大于, \hbadnessTeX 会根据与硬编码值 100 的比较结果向日志文件写入一条消息;该消息取决于胶合剂的更改方式。

如果胶水必须拉伸,则写为:如果 badness 大于 100未满, 否则松动的

如果胶水收缩,它会写入:如果不良程度大于 100过满, 否则紧的

(对 vbox 和参数也做了类似的事情\vbadness。)

第二次分类发生在断线算法中。在此过程中,每条线都会根据其不良程度和胶水的变化(即拉伸或收缩)分配一个适应度等级:紧、不错、松、非常松。

坏度大于 12 且收缩的胶水线是紧的;具有可拉伸的胶水,并且 badness 大于 99 的线被称为很宽松,不良程度大于 12 且小于 100 松动的。 A体面的线的坏度小于 13,并且其胶水可能会拉伸或收缩或保持在自然宽度。

因此,“紧”和“松”这两个词在两种不同的语境中使用。健身课体面的或者紧的包装可能太紧或太满;健身课程体面的松动的, 或者很宽松松散或不够饱满。

相关内容