我如何得到这种奇怪的对齐?

我如何得到这种奇怪的对齐?

我想在以下代码中获得非标准对齐:

\begin{align}
  \text{First left hand side}  & = \text{First right hand side} \\
  \text{Second left hand side} & = \text{Second right hand side} \\
    & = \text{Loooooooooooooooooooooooooooooooong expanded right hand side}
\end{align}

最后一行应该不是与前两行对齐。我知道我可以拆分最后一行以形成多个右侧,但我宁愿避免这样做,因为在我的例子中它会填充四个方程式。

我发现了一个通过嵌套对齐和收集来实现这一点的邪恶方法:

\begin{gather}
  \begin{align}
    \text{First left hand side}  & = \text{First right hand side} \\ %% \label{} does not work here
    \text{Second left hand side} & = \text{Second right hand side}
  \end{align}\\
 = \text{Loooooooooooooooooooooooooooooooong expanded right hand side} \label{eq3}
\end{gather}

但遗憾的是,虽然这给出了我想要的视觉输出,但我不能使用标签来引用对齐内的方程式。

由于间距问题,我也不想将其放置&在第三行的中间某处,因为这是一种脆弱的做法。

那么我该如何输入

  1. 第一行和第二行对齐于=
  2. 第三行与前两行不对齐(最好向右对齐)
  3. 所有三行均已编号,可供参考
  4. 所有三条线都在一个方程组中(就语义和间距而言)?

答案1

有点低级的技巧:

\documentclass{article}

\usepackage{amsmath}

\begin{document}
\begin{align}
  \text{First left hand side}  & = \text{First right hand side} \\
  \text{Second left hand side} & = \text{Second right hand side} \\
  \omit \span  = \text{Loooooooooooooooooooooooooooooooong expanded right hand side}
\end{align}
\end{document}

在此处输入图片描述

上面的左对齐了最后一行。如果希望最后一行右对齐,请使用(注意表达式的顺序和\omit\span已更改)

\begin{align}
  \text{First left hand side}  & = \text{First right hand side} \\
  \text{Second left hand side} & = \text{Second right hand side} \\
  = \text{ expanded right hand side} \span \omit
\end{align}

这使

在此处输入图片描述

答案2

这可能是你需要的技巧:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\makeatletter
\newcommand{\unalign}[1]{%
  \ifmeasuring@ \else
    \makebox[\ifcase 1\maxcolumn@widths \fi][l]{$\displaystyle#1$}
  \fi
}
\makeatother

\begin{align}
  \text{First left hand side}  & = \text{First right hand side} \\
  \text{Second left hand side} & = \text{Second right hand side} \\
  \unalign{= \text{Long expanded right hand side}}
\end{align}
\end{document}

测量时忽略了的参数\unalign,然后将其排版在一个与其他方程式左侧一样宽的框中。当然,如果参数很长,这并不完全安全,但对于一次性情况来说,这可能就足够了。

在此处输入图片描述

如果希望未对齐的线与最宽的右侧齐平,请将定义更改为

\documentclass{amsart}
\begin{document}

\makeatletter
\newcommand{\unalign}[1]{%
  \ifmeasuring@ \else
    &\makebox[\ifcase2\maxcolumn@widths \fi][r]{$\displaystyle#1$}
  \fi
}
\makeatother

\begin{align}
  \text{First left hand side}  & = \text{First right hand side} \\
  \text{Second left hand side} & = \text{Second right hand side} \\
  \unalign{= \text{Long expanded right hand side}}
\end{align}
\end{document}

在此处输入图片描述

答案3

接受另一个答案后回答我的问题可能不是好习惯,但我还有两个解决方案。

align第一个解决方案(来自 Ulrich Diez)使 within内的标签起作用gather

\makeatletter
\newcommand*\savedf{\@bsphack\global\let\sdf\df@label\@esphack}
\newcommand*\restoredf{\@bsphack\global\let\df@label\sdf\@esphack}
\newcommand*\mylabel{\restoredf\label}
\makeatother
...
\begin{gather}
  \savedf
  \begin{align}
    \text{First left hand side}  & = \text{First right hand side}
      \mylabel{eq:e1} \\
    \text{Second left hand side} & = \text{Second right hand side}
      \mylabel{eq:e2}
  \end{align} \restoredf \\
  = \text{Loooooooooooooooooooooooooooooooong expanded right hand side}
     \notag \\
  = \text{Another line} \label{eq:e3}
\end{gather}
\eqref{eq:e1},\eqref{eq:e2},\eqref{eq:e3}

虽然有点黑客行为,但是却很有效,并且提供了与其他解决方案不同的布局。

第二种解决方案使用该mathtools包及其\MoveEqLeft命令:

\usepackage{mathtools}
...
\begin{align}
  \text{First left hand side}  & = \text{First right hand side} \\
  \text{Second left hand side} & = \text{Second right hand side} \\
  \MoveEqLeft[9] = \text{Loooooooooooooooooooooooooooooooong expanded right hand side}
\end{align}

这看起来最优雅,但需要手动调整移位空间,这里9em。该\MoveEqLeft命令设置一个对齐点,然后将剩余材料em向左移动指定量的。即使使用负数,即向右移动,也可以工作。

答案4

有点仓促和粗暴,但是

\begin{align}
    \text{First left hand side}  & = \text{First right hand side} \\
    \text{Second left hand side} & = \text{Second right hand side} \\
    = \text{Loooooooooooooooooooo}&\text{oooooooooooong expanded right hand side}
\end{align}

相关内容