![为什么领导者跳过似乎在 \vsplit 中被忽略了?](https://linux22.com/image/426098/%E4%B8%BA%E4%BB%80%E4%B9%88%E9%A2%86%E5%AF%BC%E8%80%85%E8%B7%B3%E8%BF%87%E4%BC%BC%E4%B9%8E%E5%9C%A8%20%5Cvsplit%20%E4%B8%AD%E8%A2%AB%E5%BF%BD%E7%95%A5%E4%BA%86%EF%BC%9F.png)
我在带有引线的盒子上得到了预期的结果\vplit
。引线具有固定量的胶水,加上拉伸和收缩。固定量似乎在尺寸计算中被忽略了,否则 TeX 会收缩以在分割框中获得比它需要的更多的内容。考虑一下:
\setbox1=\vbox{
\vbox to 50pt{}
\nobreak
\leaders \hbox{} \vskip25pt plus 100pt minus 25pt
\allowbreak
\nointerlineskip
\vbox to 50pt{}
\nobreak
\leaders \hbox{} \vskip25pt plus 100pt minus 25pt
\allowbreak
\nointerlineskip
\vbox to 50pt{}
\nobreak
\leaders \hbox{} \vskip25pt plus 100pt minus 25pt
\allowbreak}
然后:
\setbox3=\vsplit1 to 150pt
\showbox3
> \box3=
\vbox(150.0+0.0)x0.0, glue set - 1.0
.\vbox(50.0+0.0)x0.0
.\penalty 10000
.\leaders 25.0 plus 100.0 minus 25.0
..\hbox(0.0+0.0)x0.0
.\penalty 0
.\vbox(50.0+0.0)x0.0
.\penalty 10000
.\leaders 25.0 plus 100.0 minus 25.0
..\hbox(0.0+0.0)x0.0
.\penalty 0
.\vbox(50.0+0.0)x0.0
.\penalty 10000
.\leaders 25.0 plus 100.0 minus 25.0
..\hbox(0.0+0.0)x0.0
.\penalty 0
如您所见,TeX 将所有三个内部框都放入 中\box3
,尽管它们的自然高度(包括前导框)为 225pt。有足够的空间来仅包含两个内部框并获得高度为 150pt 的框。所以我的问题是:为什么 TeX 不遵守\leader
上述示例中的 固定粘合量?
(我不知道是否\tracingsplits
存在与 类似的\tracingpages
显示计算结果的 。)
答案1
TeX 不使用拉伸,因为收缩适合所有三个盒子,原来的盒子里没有留下任何东西。
\penalty -10000
请注意,被分割的盒子的垂直材料末尾有一个隐含的内容[TeXbook 第 124 页]。