关于这个问题已经有很多相关问题被问到:
但我仍然对目前给出的相互矛盾的建议感到困惑。所以我又试了一次。
哪一个应该是在我的 LaTeX 文档中生成显示方程的首选命令?
到目前为止的建议表明应该使用\[ ... \]
,也许\begin{equation*} ... \end{equation*}
,或者甚至可能使用gather*
或align*
环境amsmath
。
而且绝对应该避免使用$$...$$
或eqnarray
环境。
现在我不得不说,从语言的角度来看,我有一个强的因为它equation*
不像\[ ... \]
符号那样神秘,而且语义上最准确。
那么,可以使用吗equation*
?也许只能在加载后使用amsmath
?或者应该将equation
/equation*
环境重新定义为其他内容,以便改进间距、包支持或其他方面?
答案1
您应该使用 amsmath 中的环境。实际上,equation
和align
就是您通常所需要的。
如果您有一个方程式,请使用
equation
。 (或者equation*
如果您不想对其进行编号。下面的大多数其他环境也有类似的 * 变体。)如果您有一个跨越多行的方程,则可以使用
multline
,或使用split
(在equation
)来对齐各部分。如果您有多个方程式并且希望它们对齐,请使用
align
(或align*
)。如果您只是想独立排版多个方程式(不对齐),请使用
gather
。
对于某些特殊情况,还有flalign
和alignat
。请参阅LaTeX 数学简明指南或者texdoc amsldoc
(PDF) 以获取关于这些环境的更多文档。
\[
只是说“在数学显示中设置以下内容”,就像普通的 TeX 一样$$
(您不应该使用),并且相当于displaymath
。如果您想要一个未编号的方程式并且懒得打字(从语义上讲,这不是一个好习惯),或者,我猜,当您只是“显示”一些不是实际方程式的长数学时,您可以使用它。并且永远不要使用 等式数组。
答案2
环境equation
无法比较,\[...\]
因为它是编号。相当于\[...\]
是displaymath
环境。因此,您可以将其用于无编号方程。
尽管 amsmath 重新定义了方程式以允许带星号的版本。
由于始终建议使用 amsmath,因此使用equation
和equation*
可能更加一致。
$$
和eqnarray
是毫无疑问的,而gather
和align
类似的是为多行公式设计的,我不会将它们滥用于单行公式。
答案3
全面披露:我对 amsmath 有天生的偏见。
尽管在大多数情况下,\[
...\]
与 equation* 环境相当,但有一个地方却不可以。如果您使用的是 ams 文档类,则会在 旁边自动放置一个 qed 标记\end{proof}
。如果证明以其他环境(显示或列表)结尾,则 qed 标记会单独放置在下一行。
如果您的证明以未编号的显示结束,您可能希望将 qed 标记放在与显示相同的行上。 \qedhere
,放置在显示环境之前\end{...}
会将 qed 标记移到显示范围内。 但它不适用于\[...\]
,也不适用于\begin{eqnarray}...\end{eqnarray}
。 (它也适用于\end{enumerate}
和\end{itemize}
,但这不是这里的问题。)