段落间惩罚

段落间惩罚

如何修改段落间分页符的惩罚?我到处找了,但还是没找到。如果真的需要,我可以重新定义,\par但我对这种 hack 不满意。

答案1

在段落之间插入胶水之前中断的惩罚\parskip是 0,因此一种可能性是重新定义以在跳过之前\par添加一个节点。在 latex 中执行此操作的一个问题是 latex始终重新定义(在标题和列表项之后,以控制中断和缩进,在 parboxes 和 minipages 中(以恢复默认定义)等,因此您需要将重新定义与正在重置的任何其他宏进行协调。\penalty\par\par

另一种看待相同要求的方式是,您希望使分页符更有可能发生在段落之间而不是段落中间。鉴于段落间惩罚基本上固定为 0,您可以增加它\interlinepenalty来阻止行间断行,而不是改变它。 \interlinepenalty通常为 0(除了在节标题之后或在 范围内samepage),因此您可以增加它以使段落之间的断行更有可能发生。

您还需要在页面上添加一些可伸缩胶水,方法是使用\raggedbottom或制作\parskip其他可伸缩胶水。如果没有可伸缩胶水,那么 TeX 在分页时别无选择,它必须在页面适合的最后一行之后分页,或者如果惩罚是 10000,那么这是不可能的,它将产生一个过满的框并过度打印页面边界。

相关内容