在我看来,当寡妇和孤儿(俱乐部)的惩罚设置为零时,raggedbottom
和\flushbottom
具有相同的效果。 MWE 说明了这一点,您可以在其中更改初始\vspace*
以创建寡妇和孤儿:
\documentclass{article}
\usepackage{lipsum}
\widowpenalty 0
\clubpenalty 0 % orphans
\raggedbottom
\begin{document}
\vspace*{8\baselineskip} % tweak the number, try 8 and 10
\lipsum\par
\lipsum\par
\lipsum\par
\end{document}
在我的申请中,我不在乎孤行和寡行。我只是重写任何看起来不够好的内容(而且,在许多情况下,孤行和寡行是可以容忍的)。我关心的是每页的行数是否相同。
我的布局始终是双面的,始终是单列对开页。它不使用浮动、方程式环境、表格或类似的东西。只有文本,偶尔在显示页面上显示图像。
我确实使用网格排版,这意味着我没有太多灵活的“粘合剂”。即使我精确地设置了\textheight
与 的关系\baselineskip
,如果我使用 ,\flushbottom
通常会出现关于 vbox 未满的警告。但是如果我设置 ,\raggedbottom
警告就会消失(正如预期的那样)。
所以我的问题是,这里面可能存在一个我不知道的陷阱吗?似乎\raggedbottom
寡妇和孤儿 (俱乐部) 的零惩罚组合正是我所需要的,而且我还没有发现长文本存在问题。
目前关于这个问题的提问通常是关于如何避免出现孤儿寡母。但这不是这里的问题。
答案1
将惩罚设置为零会鼓励产生寡妇和孤儿线,但对\raggedbottom
或的影响很小\flushbottom
。
这两种样式对您的示例页面具有相同的效果,因为唯一的拉伸空间是plus 1pt
在通常每页最多 4pt 的情况下\parskip
,因此 (a) 没有足够的拉伸来解释一行文本的变化,并且 (b) 由于文本高度设置正确,在诸如本示例中的全文中,行数准确,不需要拉伸。因此,由于永远不需要自然拉伸任何空间,因此它与(对于任何小于 10000 的惩罚设置)\flushbottom
相同\raggedbottom