eqnarray 与 align

eqnarray 与 align

动机

我想在我的 LaTeX 文档中包含一系列相关方程式,例如,用于证明。据我所知,我有两个不错的选择,eqnarrayalign

问题

eqnarray和之间有什么区别align?我怎么知道应该使用哪一个?或者这到底重要吗?

答案1

尽管eqnarray看起来效果“还不错”,避免使用 eqnarray! 避免使用 eqnarray! 避免使用 eqnarray!

其中提到了两个主要问题上面的文档

  • eqnarray在操作符周围设置水平空间=,该空间与其他环境中设置的空间不一致,例如\[...\]$$...$$(它更宽)。
  • eqnarray(还有eqnarray*!)公式编号定义不明确,导致引用时出现编号错误——主要是在使用命令\nonumber

使用align和其余的 ams 环境。请参阅texdoc amsldoc(PDF) 或者LaTeX 数学简明指南以获取有关如何使用它们的文档。

答案2

align来自amsmath,而eqnarray来自基本 LaTeX,因此我认为前者更好。以下是一些区别:

  • eqnarray有两个对齐点(基本上只是array带有默认前导码);align有一个。x + y &=& zx + y &= z
  • eqnarray根据不同的因素改变对齐点的间距;align保持固定(这通常是你想要的)
  • eqnarray允许行间分页;align不允许
  • \\ *\\*与中的处理方式相同eqnarray,但在 中不起作用align(因为*在方程中经常出现)

(主要摘自《LaTeX Companion》第 8.2.1 节)

答案3

除了间距更好、需要输入的“&”符号更少之外,alignvs的一个很大的优点eqnarray是,您可以\qedhere在最后一行的末尾包含一个,并将漂亮的 CQFD 方块(也称为“Halmos”)放置在与您的最后一个公式相同的高度,而不是在下面。

\begin{proof} The proof is a follows: 
\begin{align}
(x+y)^3&=(x+y)(x+y)^2\\
       &=(x+y)(x^2+2xy+y^2)\\
       &=x^3+3x^2y+3xy^3+x^3.\qedhere
\end{align}
\end{proof}

在此处输入图片描述

答案4

如果你必须使用该eqnarray环境,那么有一个名为eqnarray(可用这里) 至少可以消除中间列周围的多余空间。比较:

\documentclass{article}

\usepackage{eqnarray,amsmath}

\begin{document}

\begin{eqnarray*}
A&=&B,\\
C&=&D,\\
E&=&F
\end{eqnarray*}

\begin{align*}
A&=B,\\
C&=D,\\
E&=F
\end{align*}

\end{document}

该软件包适用于 LaTeX 2.09,但它可能仍然有效。

我注意到,在我的示例中, 和eqnarray*align*居中位置略有不同(eqnarray*比 左侧少 1 点align*)。我不确定为什么。如果在 中使用{B,}{D,}而不是 和B,,则两个显示的居中位置完全相同,因此我认为结尾的标点符号导致了问题。(默认设置似乎存在同样的问题。)D,eqnarray*eqnarray*

相关内容