正确对齐不同行上的方程式

正确对齐不同行上的方程式

很抱歉问这样一个基本的问题,但我在搜索中没有找到令人满意的答案(如果确实有的话)。

我有以下 MWE

\documentclass{article}
\usepackage{amsmath}
\begin{document}
Where \texttt{aligned} fails me
\fbox{
  \begin{minipage}[t]{0.22\textwidth}
    \[\begin{aligned}
        A+B &= C + D\\
            &= C \\
            &= C + E+F \\
            &= C \\
      \end{aligned}\]
  \end{minipage}}

\vskip 1cm
Desired output \fbox{
  \begin{minipage}[t]{0.22\textwidth}
    \[\begin{aligned}
        &A+B = C + D\\
        &\hskip 0.3cm = C \\ % The equal sign is again aligned
        &\hskip 0.3cm = C + E+F \\  % Should be right aligned
        &\hskip 0.3cm = G \\  % The equal sign is again aligned
      \end{aligned}\]
  \end{minipage}}
\end{document}

换句话说,如果有空格,我通常希望等号对齐。如果没有空格(如上例所示),那么我想选择一行(在本例中是最长的一行= C+E+F)并使其右对齐,然后使所有等号与右对齐行上的等号对齐。

在我上面的“解决方案”中,我不得不诉诸指定hskip来实现这个结果,但我想知道是否有办法自动完成此操作而无需我猜测正确的间距。

答案1

不是全自动的:但节省了您估计所需偏移的时间:使用两层align

Using \texttt{align}\fbox{ 
  \begin{minipage}[t]{0.22\textwidth}
          \begin{align*}
                A+B = C + D\\
                  \begin{aligned}
        &= C \\ % The equal sign is again aligned
                 &= C + E+F \\  % Should be right aligned
        &= G \\  % The equal sign is again aligned
                  \end{aligned}\end{align*}
  \end{minipage}}

(外部align没有&符号,因此将两行都设置为右对齐。这意味着第一行的末尾与内部最长行的末尾匹配aligned。内部在符号aligned前没有任何项&,因此将其中的所有内容设置为左对齐。)

在此处输入图片描述

答案2

自动执行?嗯,这需要相当复杂的代码,你应该:

  1. 测量等号处的“&”符号的宽度,
  2. 计算可用空间和方程组宽度之间的差异,
  3. 如果差值为负,则将其转换为第一个方程之后的方程的偏移量(从左边界开始)。
  4. 写出方程组的替代形式。在这里使用mathtools包及其宏很方便\MoveEqLeft[<offset>],其中<offset>以单位给出em(见下面的示例)。

因此,我仅描述算法,说明如何实现这一点。并展示一种更简单的手动实现方法:

  • em在第一次编译时估计右侧最大方程突出部分的尺寸(以 为单位)。
  • <offset>然后根据您的估计在 \MoveEqLeft` 中设置。
  • 第二次编译应给出期望的结果。如果没有,则相应地更正 od 大小<offset>并重复编译。

例如:

\documentclass{article}
\usepackage{mathtools}

\begin{document}
Desired output

\fbox{
  \begin{minipage}[t]{0.22\textwidth}
    \[\begin{aligned}
    \MoveEqLeft[1.5]
A + B = C + D       \\   
    & = C           \\
    & = C + E + F   \\
    & = G
      \end{aligned}
    \]
  \end{minipage}
    }
\end{document}

在此处输入图片描述

相关内容