我有一份双栏文档,在自动分页符处出现了一些奇怪的行为。我有一些文本,后面跟着一些方程式,如下所示:
So that abutting triangles do not double-paint pixels, a bias of 1 is subtracted from edges that are ``top'' or ``left'' \cite{fgiesen}.
\begin{gather}
A=Y_2 - Y_1 \label{eqn:a}\\
B=X_2 - X_1 \label{eqn:b}\\
C=BY_1 - AX_1 \label{eqn:c}
\end{gather}
这一段位于页面的末尾,因此在下一页,我看到了一行孤行,后面跟着方程式:
然后它会拉伸上一页的段落间距。
如果我在段落和公式之间添加换行符,它确实会让段落在上一页结束。但是,它会在下一页顶部公式所在的位置留下一大片空白。
我尝试过各种各样的技巧,比如弄乱 abovedisplayskip(没有效果)和负 vspace(没有效果,直到它变得足够负以将方程式拉到上一页,与文本重叠)。
我也这样做了,但是没有效果:
\widowpenalty=10000
\clubpenalty=10000
谁能告诉我如何让 LaTeX 表现得合理,让段落在上一页结束,同时让方程式排列在下一页的顶部?
谢谢!
答案1
正如我在评论中所说,不要这样做. 如果你将此文档提交给编辑良好的数学期刊,它将被撤销。
但是,如果你必须,这应该有效:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
some text
\vfill
So that abutting triangles do not double-paint pixels, a bias of 1 is subtracted from edges that are ``top'' or ``left'' \cite{fgiesen}.
\newpage
\noindent
\begin{minipage}{\textwidth}
\begin{gather}
A=Y_2 - Y_1 \label{eqn:d}\\
B=X_2 - X_1 \label{eqn:e}\\
C=BY_1 - AX_1 \label{eqn:f}
\end{gather}
\end{minipage}
\medskip
<resume text here>
\end{document}
在 内minipage
,显示上方的跳过将被抑制。下方的跳过将还被抑制,所以你需要对此进行补偿。实际值取决于您使用的文档类,但\medskip
似乎是一个合理的近似值。
答案2
面临同样的问题。
来自包的文档鳏寡孤儿:“我们也对 执行此操作\predisplaypenalty
,它控制 amath 显示前的中断。这通常设置为 10000,因此此类中断不会发生在标准 Latex 中,但如果降低该值,则有可能出现,因此可能存在问题。”
使用\predisplaypenalty=150
解决了我的问题。
根据http://www.texfaq.org/FAQ-widows
注意:还有一个\postdisplaypenalty
,它控制方程式后面是否可以有断句。当方程式在底部,后面跟着一小段描述性句子时,您可能希望(局部)降低其值。