latex.ltx 定义了一个无分页命令,如下所示:
\DeclareRobustCommand\samepage{\interlinepenalty\@M
\postdisplaypenalty\@M
\interdisplaylinepenalty\@M
\@beginparpenalty\@M
\@endparpenalty\@M
\@itempenalty\@M
\@secpenalty\@M
\interfootnotelinepenalty\@M}
TeX\predisplaypenalty
去哪儿了?TeXbook将其定义为显示前分页的惩罚。 不应该\predisplaypenalty\@M
也在那里吗? 是否应该在 的定义中添加其他内容\samepage
,或者是否应该从中删除任何行?
答案1
LaTeX 设置 \predisplaypenalty
为 10000,并且没有标准设置改变,因此无需\samepage
重置它。
答案2
尽管通常该值不会从 10000 更改,但我同意 @egreg 的观点,我们可以在内核中设置它,\samepage
以防万一。目前最简单的修复方法可能是
\AddToHook{cmd/samepage/after}{\predisplaypenalty10000\relax}