align
我正在编辑一个包含许多方程式和浮点数的相当长的文本,并且遇到了和环境的问题gather
。
梅威瑟:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
Paragraph one. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\begin{gather*}
\boxed{\sum_{x=1}^{N} A_x} \\
\boxed{\sum_{x=1}^{N} A_x}
\end{gather*}
Paragraph two. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\end{document}
结果:
第一段和公式之间的垂直空间太大,好像插入了一个额外的空段落。如果我删除第一段和数学环境之间的空白行,就没有多余的空间了,但页面不能在那时分页,而且我经常会得到孤行。当我使用环境equation
或时,多余的空间不存在\[ \]
:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
Paragraph one. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\[ \boxed{\sum_{x=1}^{N} A_x} \]
\[ \boxed{\sum_{x=1}^{N} A_x} \]
Paragraph two. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\end{document}
结果:
我怎样才能摆脱不需要的垂直空间,但同时允许在环境之前分页?
答案1
页面绝不应该以显示的方程式开始,该方程式不是上一页显示的延续(这种情况应该是最后的手段)。
您可以通过发出以下命令自动允许在多行对齐显示内分页
\allowdisplaybreaks
(一个amsmath
命令)在文档序言中,但是 TeX 永远不会在显示之前分页,除非你自己玩了一些卑鄙的伎俩。
显示前切勿留空行。
答案2
我找到了一个解决方案,并且在显示方程式之前禁止分页并没有真正的理由,所以我给其他可能看到这个问题的人留了一个说明。
要在特定显示的方程式之前留出一个间隔,但去掉多余的垂直空间,请将其放置\pagebreak[0]
在第一个空白行的位置:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
Paragraph one. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\pagebreak[0]
\begin{gather*}
\boxed{\sum_{x=1}^{N} A_x} \\
\boxed{\sum_{x=1}^{N} A_x}
\end{gather*}
Paragraph two. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\end{document}
为了允许各处中断,请\predisplaypenalty
在序言中重新定义:
\makeatletter
\predisplaypenalty=\@medpenalty
\makeatother
这两种方式都可以实现分页。