align
通常,可以使用 来防止在 -environment 中的换行符处出现分页符\\*
。然而,当有问题的换行符位于 之前时\intertext
,似乎没有任何效果,如下例所示:
\documentclass{scrartcl}
\usepackage{amsmath,lipsum}
\usepackage[paperheight=10cm]{geometry}
\begin{document}
\lipsum[1]
\begin{align*}
a &= b\\*
\intertext{Some text}
a &= b\\*
\intertext{Some text}
a &= b
\end{align*}
Some text
\end{document}
我也尝试过使用\predisplaypenalty
和和\postdisplaypenalty
,它们似乎也会影响在之前/之后中断的惩罚\intertext
(例如,\postdisplaypenalty=10000
似乎做了我在这里想要做的事情),但我不确定这是否是正确的方法,也不确定在哪里可以改变惩罚。
那么,我应该如何防止在\intertext
s 周围出现分页符?
答案1
间距不正确(更像\shortintertext
),但可以达到效果。请注意,没有\allowdisplaybreaks
,\\*
效果与 相同\\
。
\documentclass{scrartcl}
\usepackage{amsmath,lipsum}
\usepackage[paperheight=10cm]{geometry}
\begin{document}
\lipsum[1]
\allowdisplaybreaks
\begin{flalign*}
&& a &= b &&\\*
\text{\rlap{\parbox[t]{\textwidth}{Some text}}}\\
&& a &= b \\*
\text{\rlap{\parbox[t]{\textwidth}{Some text}}}\\
&& a &= b
\end{flalign*}
Some text
\end{document}