我怎样才能像下图这样对齐方程式?
我知道
\begin{equation}
\begin{split}
x_1'(t) &= x_1(t)+2 x_2(t) \\
x_2'(t) &= 3 x_1(t)
\end{split}
\end{equation}
但它只会对齐等号,而不会对齐变量。
答案1
您可以使用
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{3}
x_{1}'(t) &= &x_{1}(t) &{}+{}& 2&x_{2}(t)\\
x_{2}'(t) &= 3&x_{1}(t) & & &
\end{alignat*}
\end{document}
请注意,我添加了三个对齐点,以防您也需要在右侧垂直对齐第二个因素。
我希望清楚如何将其扩展到三个以上的对齐点。(对于 n 个对齐点,&
需要 2n-1 个。)
PS 记住使用 来{}
获得 周围的正确间距+
。
更新
如果您不需要超过两个对齐点,则可以使用以下方法:
\begin{alignat*}{2}
x_{1}'(t) &={}& &x_{1}(t) + 2x_{2}(t)\\
x_{2}'(t) &={}& 3&x_{1}(t)
\end{alignat*}
答案2
尤其是如果您的方程组相当小(就像您发布的示例一样),您可以简单地使用\phantom
指令:它们插入与其参数等同的空格。(但是,如果方程组变得更大,则可能值得承担与其他提议方法相关的开销。)
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{split}
x_1'(t) &= \phantom{3}x_1(t)+2 x_2(t) \\
x_2'(t) &= 3 x_1(t)
\end{split}
\end{equation}
\end{document}
答案3
简单的array
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
% \begin{split}
\begin{array}{r@{\;}r@{}l}
x_1'(t) =& x_1(t)&{}+2 x_2(t) \\
x_2'(t) =& 3 x_1(t)&
% \end{split}
\end{array}
\end{equation}
\end{document}
垂直间距可能需要在 后添加适当的长度进行一些校正\\
。顺便说一句:可以推断出您示例中的图像只是 的效果array
,但没有 的校正。和符号\arraycolsep
周围的间距太大。+
=