![优化段落空间使用](https://linux22.com/image/385646/%E4%BC%98%E5%8C%96%E6%AE%B5%E8%90%BD%E7%A9%BA%E9%97%B4%E4%BD%BF%E7%94%A8.png)
我有时会在 TeX 中遇到这样的问题:一个段落无法放在一页上,因此会被分成两页。这种行为当然是有道理的。
但是,我注意到,对于某些文档类别,这种拆分会浪费一些空间。例如,如果我有这样的段落:
Line1
Line2
Line3
Line4
假设这四行完全适合一页,并与该页的底部对齐(因此页面是满的)。
然而,现在我在该段落中添加另一句话,得到以下结果:
Line1
Line2
Line3
------> page changes here
Line4
Line5
所以正如您所看到的,虽然第一页(第一个例子)似乎有足够的空间容纳 4 行,但第二页只放置了 3 行,从而浪费了该页面上 1 行的空间,这对我来说没有任何意义。
我尝试过使用\filbreak
,虽然可行,但随后我必须打断该段落,使得它实际上变成两个段落,而这并不总是我想要的。
不幸的是,我无法使用标准独立/文章类重现该行为,所以我不太确定这个问题的根源。
问题:有人遇到过类似的问题并能解决吗?如何在不拆分段落的情况下利用页面上所有可用的行来优化空间?
答案1
通常认为,将页面拆分成仅在一个页面上留下第一行或仅在下一个页面上留下最后一行的做法是错误的,而 tex 有惩罚措施(widowpenalty 和 clubpenalty)来阻止这种做法。请注意,TeX 仅在上一页指定了足够的延伸时才会接受额外的行,因此如果您看到这种情况,则必须在该页面上有足够的空白延伸来弥补这一行。
TeX 不会在这里做出判断,您(或您正在使用的类文件设置)已经指定空白(段落之间或标题和列表周围等)或页面底部的空白足够灵活,可以允许这样做。
你可以设置\widowpenalty=0
,\clubpenalty=0
这样 TeX 就不用担心分离单行了。(通常的问题恰恰相反,如何绝对避免出现寡行)