我应该使用哪个命令来显示方程式?

我应该使用哪个命令来显示方程式?

关于这个问题已经有很多相关问题被问到:

但我仍然对目前给出的相互矛盾的建议感到困惑。所以我又试了一次。

哪一个应该是在我的 LaTeX 文档中生成显示方程的首选命令?

到目前为止的建议表明应该使用\[ ... \],也许\begin{equation*} ... \end{equation*},或者甚至可能使用gather*align*环境amsmath

而且绝对应该避免使用$$...$$eqnarray环境。

现在我不得不说,从语言的角度来看,我有一个强的因为它equation*不像\[ ... \]符号那样神秘,而且语义上最准确。

那么,可以使用吗equation*?也许只能在加载后使用amsmath?或者应该将equation/equation*环境重新定义为其他内容,以便改进间距、包支持或其他方面?

答案1

您应该使用 amsmath 中的环境。实际上,equationalign就是您通常所需要的。

  • 如果您有一个方程式,请使用equation。 (或者equation*如果您不想对其进行编号。下面的大多数其他环境也有类似的 * 变体。)

  • 如果您有一个跨越多行的方程,则可以使用multline,或使用split(在equation)来对齐各部分。

  • 如果您有多个方程式并且希望它们对齐,请使用align(或align*)。

  • 如果您只是想独立排版多个方程式(不对齐),请使用gather

对于某些特殊情况,还有flalignalignat。请参阅LaTeX 数学简明指南或者texdoc amsldocPDF) 以获取关于这些环境的更多文档。

\[只是说“在数学显示中设置以下内容”,就像普通的 TeX 一样$$(您不应该使用),并且相当于displaymath。如果您想要一个未编号的方程式并且懒得打字(从语义上讲,这不是一个好习惯),或者,我猜,当您只是“显示”一些不是实际方程式的长数学时,您可以使用它。并且永远不要使用 等式数组

答案2

环境equation无法比较,\[...\]因为它是编号。相当于\[...\]displaymath环境。因此,您可以将其用于无编号方程。

尽管 amsmath 重新定义了方程式以允许带星号的版本。

由于始终建议使用 amsmath,因此使用equationequation*可能更加一致。

$$eqnarray是毫无疑问的,而gatheralign类似的是为多行公式设计的,我不会将它们滥用于单行公式。

答案3

全面披露:我对 amsmath 有天生的偏见。

尽管在大多数情况下,\[...\]与 equation* 环境相当,但有一个地方却不可以。如果您使用的是 ams 文档类,则会在 旁边自动放置一个 qed 标记\end{proof}。如果证明以其他环境(显示或列表)结尾,则 qed 标记会单独放置在下一行。

如果您的证明以未编号的显示结束,您可能希望将 qed 标记放在与显示相同的行上。 \qedhere,放置在显示环境之前\end{...}会将 qed 标记移到显示范围内。 但它不适用于\[...\],也不适用于\begin{eqnarray}...\end{eqnarray}。 (它也适用于\end{enumerate}\end{itemize},但这不是这里的问题。)

相关内容