如何修改段落间分页符的惩罚?我到处找了,但还是没找到。如果真的需要,我可以重新定义,\par
但我对这种 hack 不满意。
答案1
在段落之间插入胶水之前中断的惩罚\parskip
是 0,因此一种可能性是重新定义以在跳过之前\par
添加一个节点。在 latex 中执行此操作的一个问题是 latex始终重新定义(在标题和列表项之后,以控制中断和缩进,在 parboxes 和 minipages 中(以恢复默认定义)等,因此您需要将重新定义与正在重置的任何其他宏进行协调。\penalty
\par
\par
另一种看待相同要求的方式是,您希望使分页符更有可能发生在段落之间而不是段落中间。鉴于段落间惩罚基本上固定为 0,您可以增加它\interlinepenalty
来阻止行间断行,而不是改变它。 \interlinepenalty
通常为 0(除了在节标题之后或在 范围内samepage
),因此您可以增加它以使段落之间的断行更有可能发生。
您还需要在页面上添加一些可伸缩胶水,方法是使用\raggedbottom
或制作\parskip
其他可伸缩胶水。如果没有可伸缩胶水,那么 TeX 在分页时别无选择,它必须在页面适合的最后一行之后分页,或者如果惩罚是 10000,那么这是不可能的,它将产生一个过满的框并过度打印页面边界。