如何防止在“intertext”之前出现“align”中的分页符?

如何防止在“intertext”之前出现“align”中的分页符?

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似乎做了我在这里想要做的事情),但我不确定这是否是正确的方法,也不确定在哪里可以改变惩罚。

那么,我应该如何防止在\intertexts 周围出现分页符?

答案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}

相关内容