数组行上的方程标签?

数组行上的方程标签?

我正在尝试排版一些线性方程组,并且希望变量垂直对齐,有点像这样:

   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}

输出:

在此处输入图片描述 我现在使用命令在数学对齐运算符周围添加了细空格\ms。感谢@barbarabeeton 和@Bernard。

相关内容