方程式对齐插入空格

方程式对齐插入空格

我想制作如下排列的方程式:

x = y x 
    z
  = a x
    b

以下是 MWE:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{align*} 
x &=  &y \times  \\
  &   &z         \\
  &=  &a \times  \\
  &   &b  
\end{align*}

\end{document}

然而,它产生了这样的结果:

右对齐方程

您能否建议我如何按照我的意愿进行对齐?

谢谢

答案1

你有太多的&。对于这种对齐,你需要一个“特殊技巧”:

\begin{align*}
x ={} & y \times{} \\
      & z \\
  ={} & a \times{} \\
      & b
\end{align*}

(空子公式)的目的{}是为了在关系和运算符号周围留出正确的间距。

align一个空的子公式被隐式地插入到(或) 环境的偶数列中align*。偶数列左对齐,而奇数列右对齐。

另一种方法(但更复杂)是

\begin{align*}
x &= y \times{} \\
  &\mathrel{\hphantom{=}} z \\
  &= a \times{} \\
  &\mathrel{\hphantom{=}} b
\end{align*}

无论如何,二元运算符号后面{}的 都是必需的,如下例所示。

\documentclass{article}
\usepackage{amsmath}

\begin{document}

Good example of the alignment you want:
\begin{align*}
x ={} & y \times{} \\
      & z \\
  ={} & a \times{} \\
      & b
\end{align*}
The following is equivalent to the above one
\begin{align*}
x &= y \times{} \\
  &\mathrel{\hphantom{=}} z \\
  &= a \times{} \\
  &\mathrel{\hphantom{=}} b
\end{align*}
Compare the spacing around $\times$ in the following example:
\begin{align*}
x ={} & y \times \\
      & z \\
  ={} & a \times \\
      & b
\end{align*}

\end{document}

在此处输入图片描述

答案2

这里有两种使用 TABstacks 的方法,这两种方法都不需要空子组的“特殊技巧”。第一种情况,使用 OP 建议的对齐标签,它需要等效的“特殊技巧”,\TABbinary即在每个单元格的开头和结尾添加一个空子组。或者,tabstackengine堆栈的 align 版本不需要这样的技巧。

\documentclass{article}
\usepackage{tabstackengine}
\setstacktabulargap{0pt}
\stackMath
\begin{document}
\[ 
\TABbinary
\tabularCenterstack{rcl}{
x &=  &y \times  \\
  &   &z         \\
  &=  &a \times  \\
  &   &b 
} 
\]
\[ 
\alignCenterstack{
x =  &y \times  \\
     &z         \\
  =  &a \times  \\
     &b 
} 
\]
\end{document}

在此处输入图片描述

相关内容