答案1
当方程式需要用方程式编号标记时,LaTeX 会尝试将其放在方程式旁边。如果方程式太宽,方程式编号将放在方程式下方一行。
对于多行方程,其工作原理相同。如果多行方程要得到一个共同的数字,LaTeX 会检查整个方程的宽度(!),如果太宽,则将方程编号放在下面一行。这就是您使用的equation
-aligned
组合中发生的情况。这也显示在以下示例的第一个方程中:虽然第二行的长度允许在其旁边放置一个方程编号,但由于整个方程太宽,方程编号被放在下面一行。
一种可能的解决方法是不要将多行方程设置为具有一个公共数字的一个方程,而是将其设置为多个方程,其中只有一个方程获得一个方程编号。然后,您可以手动选择完整方程中不太长且位于所需垂直位置的一行,并禁用所有其他行中的方程编号。在下面示例的第二个方程中,我使用环境align
(分别为每行添加一个方程编号)并禁用第一行的行号。同样,您可以使用它并添加到\nonumber
除中间的短行之外的所有行,以获得垂直居中的方程编号(尽管必须添加\nonumber
到很多行可能会非常繁琐)。
另一种可能性是使用包\raisetag
中的宏amsmath
,它允许您手动调整自动定位的方程编号的位置。这似乎不适用于,所以我在下面的例子中对第三个方程使用了和equation
的组合,并将方程编号提升到最后一行的级别。(实际上,似乎有点太多了,所以你可能不得不在这里尝试不同的长度来获得最佳结果。)gather
aligned
\raisetag{\baselineskip}
\baselineskip
\documentclass{article}
\usepackage{showframe}
\usepackage{amsmath}
\usepackage{lipsum}
\begin{document}
\huge
\begin{equation}\begin{aligned}
\nabla a&=b\times c+d\vee e+f\odot g+h\sqcup i \\
&=j\in k+l\div m+n\bullet o
\end{aligned}\end{equation}
\begin{align}
\nabla a&=b\times c+d\vee e+f\odot g+h\sqcup i \nonumber\\
&=j\in k+l\div m+n\bullet o
\end{align}
\begin{gather}\raisetag{\baselineskip}\begin{aligned}
\nabla a&=b\times c+d\vee e+f\odot g+h\sqcup i \\
&=j\in k+l\div m+n\bullet o
\end{aligned}\end{gather}
\end{document}