![分割环境中的多行方程](https://linux22.com/image/327953/%E5%88%86%E5%89%B2%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%A4%9A%E8%A1%8C%E6%96%B9%E7%A8%8B.png)
=
我在环境中排列了一系列方程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}
注意:\!
之前的环境是为了获得=
和之间的正确间距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}
如果希望两行右对齐,可以将键设置mathtools
为firstline-afterskip
,0pt
全局或本地均可:
\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}
答案2
标准且最简单的方法是添加一条线,split
然后向右移动,比如说一个四边形。这是我更喜欢的方法,不用担心对齐。
或者,使用multlined
from 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}
。