多行第一行右侧的方程编号

多行第一行右侧的方程编号

这非常类似于多行环境中垂直居中的方程编号,但答案似乎不适用于我的情况。

我有

\begin{multline}
X = \\
LOOOOOOOOOOOOOOOOOOOOOOOOOOONG
\end{multline}

就像没有行号的输出一样。现在我想在右边添加一个行号,但第二行太长了。我该如何把它放在第一行(右边!)?

我知道\raisetag,但我更喜欢精确的解决方案。我的第二条线的高度不平凡。

编辑:我应该补充一点,LOOOOOOOOOONG 几乎和我的文本宽度一样长。

编辑:这是一个更合适的例子:

\begin{multline}
X = \\
\framebox[\linewidth]{LONG}
\end{multline}

编辑:再次提供一个更详细的例子来表明 egreg 的答案没有回答我的问题。我的用例是一个积分表达式,我不想打破。它的外观和内容并不重要。它的线条非常接近可用的线宽。

\documentclass{article}
\usepackage{mathtools}
\usepackage[showframe]{geometry}
\setlength{\multlinegap}{0pt}
\begin{document}

This works fine:
\begin{equation}
\begin{multlined}[t]%
X = \\%
\framebox[\dimexpr.9\linewidth\relax]{some expression shorter than the next}%
\end{multlined}%
\end{equation}%


Note the equation number in this harder case:
\begin{equation}%
\begin{multlined}[t]%
    X = \\%
    \framebox[\dimexpr\linewidth-1.666666pt\relax]{long expression that I do not want to break}%
\end{multlined}%
\end{equation}%

This solves the equation number problem, but messes up horizontal positioning. It actually goes over the right border:
\begin{equation}%
    \begin{multlined}[t]%
        X = \\%
        \mathmakebox[.9\width][l]{%
            \framebox[\dimexpr\linewidth-1.666666pt\relax]{long expression that I do not want to break}%
        }%
    \end{multlined}%
\end{equation}

\end{document}

答案1

您可以使用multlinedfrom mathtools(加载amsmath):

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{multline}
X =  \\
LOOOOOOOOOOOOOOOOOOOOOOOOOOONG
\end{multline}
\begin{equation}
\begin{multlined}[t][.9\displaywidth]
X =  \\
LOOOOOOOOOOOOOOOOOOOOOOOOOOONG
\end{multlined}
\end{equation}
\begin{equation}
\begin{multlined}[t]
X =  \\
LOOOOOOOOOOOOOOOOOOOOOOOOOOONG
\end{multlined}
\end{equation}
\end{document}

如果第一行很短,我更喜欢第三种选择。但在我的文档中,数字留在最后一行。

在此处输入图片描述

对于很长的行,可以使用不同的方法:

\documentclass{article}
\usepackage{mathtools}
\usepackage[showframe]{geometry}
\begin{document}

\begin{flalign}
& X= && \\
&&& \mathmakebox[0pt][r]{%
  \framebox[\displaywidth]{\dotfill long expression that I do not want to break\dotfill}
  \hspace{-1.8em}
}
\notag
\end{flalign}

\end{document}

您必须隐藏与公式编号空间重叠的部分

在此处输入图片描述

答案2

如何使用对齐环境右对齐?使用 flalign 或 alignat 或 align 或类似环境左对齐帮助我想出了这个(我对此非常满意):

\begin{gather}
    \begin{flalign}
        & X = &
    \end{flalign}\\
    \begin{flalign*}
        && LOOOOOOOOOOOOOOOOOOOOOOOOOOONG
    \end{flalign*}  
\end{gather}

编辑:将 egreg 提出的所有内容放在一起(特别是mathmakebox,这是我想到的。

\begin{align}
    & #1 \\
    & \mathmakebox[\displaywidth][r]{#2}\notag
\end{align}

其实很简单。我怀疑还有比这更简单的方法。egreg 的解决方案的缺点是不能处理未知的标签宽度,而且我还没有找到如何从 amsmath 获取它们。

相关内容