对齐

对齐

考虑以下代码及其结果:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{align}
 A >& B > C &> D \\
 A >& E &>D
\end{align}

\begin{eqnarray}
 A >& B > C &> D \\
 A >& E &> D
\end{eqnarray}

\end{document}

在此处输入图片描述

我希望结果是第二个而不是第一个。但是,我想在 align 环境中实现这一点。

  1. 我可以这样做吗?
  2. & 到底起什么作用?

编辑:感谢您迄今为止的帮助。我喜欢(并赞成)所有提出的选项,但如果我希望两行都编号怎么办?所以不要使用 ,而要align*使用align

答案1

alignat 带有和 的变体,模仿来自 的命令eqmakebox的构造:\documentclass{article}\vdotswithinmathtools

\usepackage{amsmath}
\usepackage{eqparbox}
\begin{document}

\begin{alignat}{3}
 A & > B & & \eqmakebox[A]{$ {}>{} $} C &&> D \\
 A & > & & \eqmakebox[A]{$ E $}& & >D
\end{alignat}

\end{document} 

在此处输入图片描述

关于 & 符号用法的解释

align和之间的唯一区别alignat在于,对齐方程的列之间的间距是由用户根据环境选择alignat

为了n列,你必须使用2n – 1 &:从第二个开始,每个&标记一个新列的开始,以下&标记其列中的对齐点。

在这里,我设置了3列,因此5&,列之间没有间距。

答案2

使用数组可以更好地实现这一点:

\documentclass{article}
\usepackage{array}

\begin{document}

\[
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.5}
\begin{array}{c *{3}{ >{{}}c<{{}} c } }
A &> & B &> & C &> & D \\
A &> & \multicolumn{3}{c}{E} &> & D
\end{array}
\]

\end{document}

在此处输入图片描述

七个对齐点,关系符号的偶数列,因此被空子公式包围以产生正确的空间。列间填充(本地)设置为零。

答案3

您可以使用alignat而不是align一些低级命令来获得居中,或者您可以使用包eqnarray

对齐

示例输出

\documentclass{article}

\usepackage{amsmath}

\makeatletter
\newcommand{\ccol}[1]{\omit\column@plus\hfill$\m@th\displaystyle #1$\hfill\span}
\makeatother

\begin{document}

\begin{alignat}{2}
 A >{}& B > C &&> D \\
 A >{}&\ccol{E}&>D
\end{alignat}

\end{document}

方程阵列

第二个示例

\documentclass{article}

\usepackage{eqnarray}

\begin{document}

\arraycolsep 0pt
\begin{equationarray}{rcl}
 A >{}& B > C &{}> D \\
 A >{}&E&{}>D
\end{equationarray}

\end{document}

答案4

只要您不需要对单个方程进行编号,这里就有 TABstack。

\documentclass[a4paper]{article}
\usepackage{tabstackengine}
\TABstackMath
\begin{document}
\[
\setstacktabulargap{0pt}
\TABbinary
\tabularCenterstack{rcl}{
 A >& B > C &> D \\
 A >& E &> D
}
\]
\end{document}

在此处输入图片描述

相关内容