分割环境中的多行方程

分割环境中的多行方程

=我在环境中排列了一系列方程split。(它们实际上都是同一个方程,因此除了第一个方程之外,其他方程的左边都缺失了。)

不幸的是,最后一个方程太长了,一行都写不下。它需要拆分。我不知道惯例是什么,但我认为它应该右对齐。你怎么做呢?

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{split}
  x &= a + a \\
  &= b + b + b + b \\
  &= c + c + c + c + c + c + c + c + c + c + c + c \\
% obviously does not work
  \hfill + c + c + c + c + c + c + c + c + c + c 
\end{split}
\]
\end{document}

答案1

你可以利用mathtools'multlined环境:

\documentclass{article}
\usepackage{amsmath,mathtools}
\begin{document}
\[
\begin{split}
  x &= a + a \\
    &= b + b + b + b \\
    &= \!\begin{multlined}[t]
       c + c + c + c + c + c + c + c + c + c + c + c \\
         + c + c + c + c + c + c + c + c + c + c
     \end{multlined}
   \end{split}
\]
\end{document}

输出 1

注意:\!之前的环境是为了获得=和之间的正确间距c

还可以将两行的总宽度(从第一行左边距到最后一行右边距)指定为可选参数multlined

\documentclass{article}
\usepackage{amsmath,mathtools}
\begin{document}
\[
\begin{split}
  x &= a + a \\
    &= b + b + b + b \\
    &= \!\begin{multlined}[t][10cm]
       c + c + c + c + c + c + c + c + c + c + c + c \\
         + c + c + c + c + c + c + c + c + c + c
     \end{multlined}
   \end{split}
\]
\end{document}

输出 2

如果希望两行右对齐,可以将键设置mathtoolsfirstline-afterskip0pt全局或本地均可:

\documentclass[border=5pt,preview]{standalone}
\usepackage{amsmath,mathtools}
\begin{document}
\mathtoolsset{firstline-afterskip=0pt}
\[
\begin{split}
  x &= a + a \\
    &= b + b + b + b \\
    &= \!\begin{multlined}[t]
       c + c + c + c + c + c + c + c + c + c + c + c \\
         + c + c + c + c + c + c + c + c + c + c
     \end{multlined}
   \end{split}
\]
\end{document}

输出 3

答案2

标准且最简单的方法是添加一条线,split然后向右移动,比如说一个四边形。这是我更喜欢的方法,不用担心对齐。

或者,使用multlinedfrom mathtools

\documentclass{article}
\usepackage{amsmath,mathtools}
\begin{document}
\[
\begin{split}
x &= a + a \\
  &= b + b + b + b \\
  &= c + c + c + c + c + c + c + c + c + c + c + c \\
  &\qquad + c + c + c + c + c + c + c + c + c + c
\end{split}
\]
\[
\begin{split}
x &= a + a \\
  &= b + b + b + b \\
  &= \mathtoolsset{firstline-afterskip=0pt}
     \!\begin{multlined}[t] % <---- don't forget \!
     c + c + c + c + c + c + c + c + c + c + c + c \\
       + c + c + c + c + c + c + c + c + c + c
     \end{multlined}
\end{split}
\]
\end{document}

在此处输入图片描述

答案3

例如,您可以使用堆栈。如果行高一致,则可行:

\documentclass{article}
\usepackage{amsmath,stackengine}
\stackMath
\begin{document}
\[
\begin{split}
  x &= a + a \\
  &= b + b + b + b \\
  &= \stackengine{\baselineskip}{c + c + c + c + c + c + c + c + c + c + c + c}
  {{}+ c + c + c + c + c + c + c + c + c + c}{U}{r}{F}{F}{L}
\end{split}
\]
\end{document}

在此处输入图片描述

如果堆叠的行的高度不是标准高度,则会出现以下情况:

\documentclass{article}
\usepackage{amsmath,stackengine}
\stackMath
\begin{document}
\[
\begin{split}
  x &= a + a \\
  &= b + b + b + b \\
  &= \stackengine{5pt}{c + c + c + c + \dfrac{a}{b} + c + c + c + c + c + c + c}
  {{}+ c + \dfrac{c}{d} + c + c + c + c + c + c + c + c}{U}{r}{F}{F}{S}
\end{split}
\]
\end{document}

在此处输入图片描述

的第 5 个参数\stackengine由 给出,{r}定义堆栈的对齐方式。其他选项是{l}{c}

相关内容