我有两个连续的方程列表,第二个相当长(16 行,显然没有合理的方法可以缩短它)。因为gather
在这种情况下中心对齐看起来很丑陋,所以我嵌套了一个对齐环境,以便以合理的方式对齐各种方程。
不幸的是,第二个列表太长了,我想让它跨越两页,以避免整个列表浮动到下一页时产生大量空白。我想让 TeX 自动处理它,而不是用 强制分页\displaybreak
。
超级简化的 MWE(没有对齐字符,因为似乎只有环境的长度而不是特定的对齐才重要):
\documentclass[12pt]{article}
\usepackage{amsmath}
\allowdisplaybreaks
\usepackage[bottom]{footmisc} % Needed to avoid strange behavior of the footnote
\linespread{1.55}
\begin{document}
Here is my first gather with nested align
\begin{gather}
\begin{align}
1\\
2\\
3\\
4\\
5\\
6\\
7\footnotemark
\end{align}
\end{gather}
\footnotetext{Footnote text.}
Here is my second gather with nested align:
\begin{gather}
\begin{align}
1\\
2\\
3\\
4\\
5\\
6\\
7\\
8\\
9\\
10\\
11\\
12\\
13\\
14\\
15\\
16
\end{align}
\end{gather}
\end{document}
现在,我意识到这次尝试至少存在一个问题:
我不应该使用align
: 解释这是“如何使用 \displaybreak”的答案 align
环境是牢不可破的,因此\allowdisplaybreaks
和\displaybreak
没有影响。建议使用align*
。
不幸的是,在前面的 MWE 中简单替换align*
for也会出现同样的问题align
(而且没有自动编号也相当烦人)。
如何才能获得一个对齐的编号方程式列表(易于交叉引用,如果可能的话,还可以自动标记),当长度和上下文需要时,它可以跨页面显示?
编辑1
作为胡阿努尼在评论中指出,gather
这里的环境是不必要的。它存在的原因有些特殊。在文档中,这个问题出现在我有自定义gather
和equation
环境,它们具有不同的计数器和标签格式。我有点懒,只是使用自定义的 gather 环境将相关计数器(不是equation
的计数器)和标签格式传递给嵌套对齐。
编辑2(现在很困惑!)
好吧,羞愧和失眠促使我停止偷懒,直接创建自定义align
环境。有趣的是,当我使用自定义align
而不将其嵌套在自定义中时gather
,我得到了想要的结果:长align
环境会中断整个页面。
但这让我很困惑。我的自定义align
(以及新计数器)定义如下:
\newcounter{defcounter}
\makeatletter
\newenvironment{defalign}{%
\let\c@equation\c@defcounter% switches to defcounter
\renewcommand\theequation{D.\arabic{equation}}
\align}
{\endalign}
\makeatother
但上面链接的答案提示我刚才的操作不起作用。为什么会这样?
答案1
\allowdisplaybreaks
不起作用,因为你将嵌套align
在gather
环境中。这会导致align
被包裹在一个牢不可破的盒子里。解决方案很明显:删除gather
不需要的环境。
但align
本身通常不是用牢不可破的盒子包裹的。这是总是amsmath
对于以下环境而言为 true :
split
aligned
gathered
alignedat
请注意,前三个应该在另一个数学环境(如)中使用equation
。
关于你最近的问题,你提到的答案是aligned
里面equation*
是牢不可破的,建议改用align*
。没有任何地方说是align
牢不可破的。