我正在尝试排版一些线性方程组,并且希望变量垂直对齐,有点像这样:
x - z = 4 (12)
-3x - y + 2z = -6 (13)
2x +7y -12z = 57 (14)
我可以在array
环境中对齐变量,也可以使用align
环境(及其变体)对方程进行编号,但是我可以同时进行这两项操作吗?
答案1
您可以使用alignat
,并提供一些提示来获得正确的间距。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{4}
x & & &-{} & z &={} & 4 \\
-3x &-{} & y &+{} & 2z &={} & -6 \\
2x &+{} & 7y &-{} & 12z &={} & 57
\end{alignat}
\end{document}
解释:alignat
构建“右-左”对齐的列对,这些列对之间没有空格。
因此,对于每个变量和操作/关系,我们需要四对这样的对。每对的第二列隐式以 开头,但为了获得正确的间距,{}
我们需要在操作/关系符号后再添加一列。{}
如果想要在左边使用括号,可以使用empheq
:
\documentclass{article}
\usepackage{amsmath,empheq}
\begin{document}
\begin{empheq}[left=\empheqlbrace]{alignat=4}
x & & &-{} & z &={} & 4 \\
-3x &-{} & y &+{} & 2z &={} & -6 \\
2x &+{} & 7y &-{} & 12z &={} & 57
\end{empheq}
\end{document}
答案2
看来您需要alignat
的功能amsmath
。下面给出了一个示例:
\documentclass{article}
\usepackage{amsmath}
\def\ms{{\,}}
\begin{document}
\begin{alignat}{4}
x& & -z &= 4&\\
-3x& -y& + 2z &= -6&\\
2x& +7y& -12z &= 57&
\end{alignat}
or
\begin{alignat}{7}
x& & & \ms- \ms& z &\ms=\ms& 4&\\
-3x& \ms-\ms& y& \ms+ \ms& 2z &\ms=\ms& -6&\\
2x& \ms+\ms& 7y& \ms- \ms& 12z &\ms=\ms& 57&
\end{alignat}
\end{document}
输出: