`displaymath` 和 `equation*` 环境之间有区别吗?

`displaymath` 和 `equation*` 环境之间有区别吗?

amsmath文档

基本 LaTeX 不提供equation*环境,而是提供一个名为的功能等效的环境displaymath

他们真的相同还是有陷阱?也许与其他一些包交互?

答案1

它们的效果相似,但编程方式不同。equation*基于 amsmath 宏构建,因此与其他 amsmath 环境和命令更兼容。

例如,在 LaTeX环境中,即使加载了 amsmath,也displaymath无法使用环境。但在其中却是可能的。splitequation*

amsmath 重新定义\displaymath,以便使用equation*。这意味着,在加载 amsmath 后,这两个环境之间将不再有区别。此外,LaTeXdisplaymath很脆弱,而 amsmath 使其变得坚固。

为了看到这一点,这里有两行latex.ltx

\def\displaymath{\[}
\def\enddisplaymath{\]\@ignoretrue}

这两行位于amsmath.sty

\DeclareRobustCommand{\[}{\begin{equation*}}
\DeclareRobustCommand{\]}{\end{equation*}}

总而言之,如果您使用非常适合数学文本的 amsmath,那么您不必担心\displaymath

答案2

您可以在的第 55.2 节source2e.pdfamsmath.styLaTeX 别名的第 2523–2667 行中找到相关定义,其中和是带有一些检查的包装器。 重新定义\begin{displaymath}\[和,后者又带有一些检查的包装器。 因此它们执行相同的操作,正如 Stefan 指出的那样,一旦您加载,它们实际上就会执行相同的操作。\end{displaymath}\]\[\]$$amsmath\[\begin{equation*}\]\end{equation*}$$amsmath

相关内容