为什么 TeX 拉伸得比正值分量更多而且没问题?

为什么 TeX 拉伸得比正值分量更多而且没问题?

代码如下:

\newlength{\stretchable}
\newlength{\fixed}
\setlength{\stretchable}{2cm plus 6cm}
\setlength{\fixed}{8cm}
\hbox to 10cm{|\hfil|}                 % the sample of a 10cm hspace
\hbox to 10cm{|\hspace{\fixed}|}       % the badness is 10000 and the right '|' lacks 2cm yet
\hbox to 10cm{|\hspace{\stretchable}|} % no badness message and the output is fine (like \hfil)
  • 因此 TeX 倾向于填充盒子中所有提供的空间,这就是为什么\hfil这是可以的(它可以根据需要具有弹性)。
  • 盒子\fixed很明显,完全没有弹性,10cm的盒子比较不饱满(8cm不够)。
  • 但是,如果是这样的话2cm plus 6cm,我认为系统只能容纳 6 厘米最多超过底座 2cm 的长度,这样最终的空间也将是 8cm。

为什么 TeX 的拉伸程度比正向分量更大,为什么在这种情况下它不会报告不良消息(事实上,它必须拉伸得比首先保证的更多)?

答案1

最后一个框的计算坏度为 179,小于默认阈值 10000。

\hbadness如果你把它弄得尽可能小,你就能看到这一点。

\hbadness=-\maxdimen
\newskip\fixed
\fixed=8cm
\newskip\stretchable
\stretchable=2cm plus 6cm

\hbox to 10cm{|\hfil|}
\hbox to 10cm{|\hskip\fixed|}
\hbox to 10cm{|\hskip\stretchable|}

\bye

使用tex或进行编译pdftex

控制台将显示

Underfull \hbox (badness 10000) detected at line 8
\tenrm | |

Underfull \hbox (badness 179) detected at line 9
\tenrm | |

根据 Knuth 的规定,可拉伸胶合可以超出规定的限制,但代价是效果不佳。这样,单词间距就可以保持尽可能小。否则,它们的可拉伸性应该比默认的更大,人们就会失去对单词间距的控制。

拉伸总会加重病情,但当拉伸保持在规定以下时,病情加重的程度要比超出规定程度时要小得多。

相关内容