我有一个很长的等式,跨越两行。第一行占据整个水平空间,第二行缩进。我使用amsmath
'ssplit
来实现这一点。
我的问题是公式编号跳到了第二行下面的行。我希望它紧挨着第二行。我该如何实现?
我的公式如下所示(我无法发布完全相同的公式,但由于我实际上使用 KOMA-Script,所以我认为它不依赖于精确的间距):
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{split}
\max \Biggl\{\sum_{(a,b)\in MW} a_ba_{bc} &- \sum_{(a,b)\in M} a_ba_{bc} - \sum_{a\in A} \sum_{(a,b)\in M} \sum_{(a,b)\in M} a_ba_{bc} - \zeta \sum_{(a,b)\in MW} a_{bc} \\
&- \sum_{(a,b)\in M} a_ba_{bc} - \sum_{(a,b)\in M} a_b (a^+_b+a^-_b) \Biggr\}
\end{split}
\end{equation}
\end{document}
答案1
我认为提出一个更通用的技巧会很有用,因为它也可以应用于不容易重新格式化方程以适应的情况。
方程式编号被下移是因为split
环境生成一个块,其宽度等于最长的一行,因此周围equation
环境将其视为一行,在这种情况下,该行太宽而无法与数字一起放置,因此将其下移。但是,我们看到,如果第二行可以被视为一个方程式,数字就可以放在第二行中。
现在,从逻辑的角度来看,问题中的标记是正确的,并且一般来说,是唯一应该使用的标记:一等式,数字代表整个等式,并且这个等式由两行组成。但是,在这种情况下,基于视觉标记的一个小技巧可以解决问题:指定二通过使用环境,可以生成多个方程而不是一个方程align
,理论上每个方程都有自己的编号;但通过\notag
在第一个“方程”末尾放置命令来隐藏第一行的编号。代码如下:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\begin{document}
\begin{align}
\max \Biggl\{\sum_{(a,b)\in MW} a_ba_{bc}
&- \sum_{(a,b)\in M} a_ba_{bc}
- \sum_{a\in A} \sum_{(a,b)\in M} \sum_{(a,b)\in M} a_ba_{bc}
- \zeta \sum_{(a,b)\in MW} a_{bc} \notag \\ % \notag suppresses the
% equation number
&- \sum_{(a,b)\in M} a_ba_{bc}
- \sum_{(a,b)\in M} a_b (a^+_b+a^-_b) \Biggr\}
\end{align}
\end{document}
它的输出如下:
答案2
您可以使用该\raisetag
功能:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{split}
\max \biggl\{ \sum_{(a,b)\in MW} a_ba_{bc}
&- \sum_{(a,b)\in M} a_ba_{bc}
- \sum_{a\in A} \sum_{(a,b)\in M} \sum_{(a,b)\in M} a_ba_{bc}
- \zeta \sum_{(a,b)\in MW} a_{bc} \\
&- \sum_{(a,b)\in M} a_ba_{bc}
- \sum_{(a,b)\in M} a_b (a^+_b+a^-_b)
\biggr\}
\end{split}
\raisetag{2\normalbaselineskip}
\end{equation}
\end{document}
答案3
解决方案是使用\smashoperator
命令 from mathtools
。在这种情况下,不要加载amsmath
,因为 mathtools 会为您完成此操作。请注意,您还可以使用环境 multline
,它会以不同的方式放置方程编号。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation}
\begin{split}
\max \Biggl\{\smashoperator[r]{\sum_{(a,b) \in MW}} a_ba_{bc} &- \smashoperator{\sum_{(a,b) \in M}} a_ba_{bc} - \sum_{a \in A} \sum_{(a,b) \in M} \smashoperator[r]{\sum_{(a,b) \in M}} a_ba_{bc} - \zeta \smashoperator{\sum_{(a,b) \in MW}} a_{bc} \\
&- \smashoperator{\sum_{(a,b) \in M}} a_ba_{bc} -\smashoperator{ \sum_{(a,b) \in M}} a_b (a^+_b+a^-_b) \Biggr\}
\end{split}
\end{equation}
\end{document}