如何构造一个长方程,将其分为左侧和右侧以占据一个窄列?

如何构造一个长方程,将其分为左侧和右侧以占据一个窄列?

我有一个使用两列文章文档类的家庭作业文档,如下所示。

\documentclass[twocolumn]{article}
\usepackage[a4paper,margin=1cm]{geometry}
\usepackage{amsmath}
\begin{document}
\begin{enumerate}
    \item The degree of (C) is 3.
    \item The degree of (A) is 1.
    \item
    $
    \begin{aligned}[t]
        \begin{split}
        -3x(x+1)&-2x(x-1) \\
                        &+4(x^2-3x-1)   
        \end{split}
            &= 
        \begin{split}
        -3x^2&-3x-2x^2+2x\\
                 &+4x^2-12x-4   
        \end{split}\\
            &= -x^2-13x-4       
    \end{aligned}
    $
\end{enumerate}
\end{document}

我想要实现的目标是:

  • 长方程分为 LHS 和 RHS。
  • =一致对齐的。

我想要实现的输出大致如下面的“截图”所示。

在此处输入图片描述

红线代表前两项,绿线代表长方程。黑线代表假设的列分隔符。

如何构造一个长方程,将其分为左侧和右侧以占据一个窄列?

答案1

这是基于mafp 的回答aligned,但左侧未使用。请注意\!前面的\begin{aligned}和 {}+,它们对于适当间距是必需的!

输出

\documentclass[twocolumn]{article}
\usepackage[a4paper,margin=1cm]{geometry}
\usepackage{amsmath}
\begin{document}
\begin{enumerate}
    \item The degree of (C) is 3.
    \item The degree of (A) is 1.
    \item%
    $
    \!\begin{aligned}[t]
      -3x(x+1)-2x(x-1) \\
        {}+4(x^2-3x-1) &= \!\begin{aligned}[t]
                          -3x^2-3x-2x^2+2x \\
                          {}+4x^2-12x-4
                          \end{aligned} \\
                       &= -x^2-13x-4
    \end{aligned}
    $
\end{enumerate}
\end{document}

答案2

以下是 mafp 答案的变体,其中aligned环境相对于枚举标签的间距是固定的。这比 Hendrik 的答案稍微复杂一些,但实现了您在原始示例中似乎想要的+和运算符的对齐。-

#1. 基本解决方案

如果等式的第一行没有特别大的数字,则以下内容就足够了。

\documentclass[twocolumn]{article}
\usepackage[a4paper,margin=1cm]{geometry}
\usepackage{amsmath}
\setlength\columnseprule{0.5pt}
\begin{document}
\begin{enumerate}
    \item The degree of (C) is 3.
    \item The degree of (A) is 1.
    \item \strut\\[\dimexpr-\baselineskip-\lineskip]\strut
          $\begin{aligned}[t]\!
             \begin{aligned}[b]\!
               -3x(x+1) &- 2x(x-1) \\
                        &+ 4(x^2-3x-1)
             \end{aligned}
             &=
             \begin{aligned}[t]\!
               -3x^2 &- 3x   - 2x^2 + 2x \\
                     &+ 4x^2 - 12x  - 4
             \end{aligned} \\
             &= -x^2 - 13x - 4
    \end{aligned}$
\end{enumerate}
\end{document}

具有垂直对齐的 <code>aligned</code> 环境的枚举

魔术线\strut\\[\dimexpr-\baselineskip-\lineskip]\strut强制换行,以强制 LHS 的顶行位于枚举项的第一行下方;\strut(aDavid Carlisle 建议使用这种方法来强制使行与行之间的垂直间距明确界定在这样的背景下)允许我们通过撤消垂直空间和粘合宽度将第一行拉回到枚举项的级别。

#2. 通用解决方案

如果数学第一行中有任何异常高的元素,例如

\left( \sum_\substack{a\\b} \right)

那么前一个解决方案就不太适用了:最高元素的顶部将被拉到枚举项文本行的顶部。您可以通过\smashing 来解决这个问题,但它很有可能与前一个枚举项重叠。

在这种情况下,需要一点手动操作,但它应该能给出一个完全通用的解决方案。需要做的是将高数学元素复制到一个框中,以便 TeX 可以测量其高度,然后使用该高度两个都在您的枚举环境中对空格做出适当的调整,并在换行符后进行间距修正。感谢 Andrew Swann 指出正确的方法是使用\dp\strutbox(在这种情况下,请参阅那里的评论线程底部)。

\documentclass[twocolumn]{article}
\usepackage[a4paper,margin=1cm]{geometry}
\usepackage{amsmath}
\setlength\columnseprule{0.5pt}
\begin{document}
\begin{enumerate}
    \item The degree of (C) is 3.
    \item The degree of (A) is 1.

          \savebox0{$\displaystyle
                     \left( \sum_{\substack{\text{very low} \\
                                            \text{subscripts}}}
                            \text{math} \right)$}
          \vspace{\dimexpr\ht0-\baselineskip}
    \item \strut\\[\dimexpr-\ht0-\lineskip-\dp\strutbox]\strut
          $\begin{aligned}[t]\!
             \begin{aligned}[b]\!
               -3x(x+1) & \left( \sum_{\substack{\text{very low} \\
                                                 \text{subscripts}}}
                          \text{math} \right) \\
                        &+ 4(x^2-3x-1)
             \end{aligned}
             &=
             \begin{aligned}[t]\!
               -3x^2 &- 3x   - 2x^2 + 2x \\
                     &+ 4x^2 - 12x  - 4
             \end{aligned} \\
             &= -x^2 - 13x - 4
    \end{aligned}$
\end{enumerate}
\end{document}

具有垂直对齐的 <code>aligned</code> 环境的枚举

答案3

当前解决方案并未解决后续行右对齐的问题。一种可能性是使用multlined来自的环境mathtools。这将涉及指定或确定额外的宽度。下面的示例中演示了两个项目中的单独右对齐。

示例输出

\documentclass{article}

\usepackage{mathtools}

\newlength{\mylonglth}
\setlength{\multlinegap}{0pt}

\begin{document}

\begin{enumerate}
\item The degree of (C) is 3.
\item The degree of (A) is 1.
\item%
  $\!
  \begin{aligned}[t]
    -3x(x+1)-2x(x-1)&\\
    {}+4(x^2-3x-1)
    &= \!
    \begin{multlined}[t][0.35\textwidth]
      {-}3x^2-3x-2x^2+2x\\
      {}+4x^2-12x-4
    \end{multlined} \\
    &= -x^2-13x-4\\
    &= \!
    \begin{multlined}[t][0.35\textwidth]
      {-}3x^2-3x+2x\\
      \shoveright{{}+3x-55}\\
      {}+4x^2-12x-4
    \end{multlined}
  \end{aligned}
  $
\item%
  \settowidth{\mylonglth}{${-}3x^2-3x-2x^2+2x$}%
  $\!
  \begin{aligned}[t]
    -3x(x+1)-2x(x-1)&\\
    {}+4(x^2-3x-1)
    &= \!
    \begin{multlined}[t][\mylonglth]
      {-}3x^2-3x-2x^2+2x\\
      {}+4x^2-12x-4
    \end{multlined} \\
    &= -x^2-13x-4\\
    &= \!
    \begin{multlined}[t][\mylonglth]
      {-}3x^2-3x+2x\\
      \shoveright{{}+3x-55}\\
      {}+4x^2-12x-4
    \end{multlined}
  \end{aligned}
  $
\end{enumerate}

\end{document}

答案4

这两个版本与您的绘图并不完全相似,但可能是有价值。 对齐

\documentclass[twocolumn]{article}
\usepackage[a4paper,margin=1cm]{geometry}
\usepackage{amsmath}
\begin{document}
\begin{enumerate}
    \item The degree of (C) is 3.
    \item The degree of (A) is 1.
    \item%
    $
    \begin{aligned}[t]
        \begin{aligned}[b]
        -3x(x+1)-2x(x-1) \\
                        {}+4(x^2-3x-1)
        \end{aligned}
            &=
        \begin{aligned}[t]
        -3x^2-3x-2x^2+2x\\
                 {}+4x^2-12x-4
        \end{aligned}\\
            &= -x^2-13x-4
    \end{aligned}
    $
    \item Some text
    \begin{align*}
        \begin{aligned}[b]
        -3x(x+1)-2x(x-1) \\
                        {}+4(x^2-3x-1)
        \end{aligned}
            &=
        \begin{aligned}[t]
        -3x^2-3x-2x^2+2x\\
                 {}+4x^2-12x-4
        \end{aligned}\\
            &= -x^2-13x-4
    \end{align*}
\end{enumerate}
\end{document}

相关内容