把 $$s 放在 `equation` 环境中:为什么 Latex 不抱怨?

Cha*_*art 5 latex

令我惊讶的是,最近问题中的 Latex 代码没有出现任何错误,更令我惊讶的是,在进一步调查后,克劳利的解释似乎是正确的。我对\begin{equation} ... \end{equation}代码的直觉显然是错误的,到底发生了什么?

考虑这个稍微修改过的代码:

\begin{equation} 
1: e^{i\pi}+1=0
$$  2: B\"ob $$ 
3: e=mc^2 
\end{equation}
Run Code Online (Sandbox Code Playgroud)

这似乎证明了 Crowley 对此类代码的解释,即“该代码对 LaTeX 所说的是开始方程,结束它,再次开始,排版切线定义并结束方程”是正确的:第 1 行和第 3 行只能在数学模式,第 2 行仅在文本模式下。

Latex 难道不应该看到 正在\end{equation}结束不是由 开始的显示数学吗\begin{equation}

Cro*_*ley 2

也许是因为环境mathdisplaymath

我刚刚尝试过这些代码

\[\alpha$$- 工作正常

\begin{displaymath}\alpha$$- 错误 (\begin{displaymath} ended by \end{document}) *

\displaymath\alpha$$- 工作正常

\displaymath\alpha\displaymath- 错误 (Bad math environment delimiter

\displaymath\alpha\enddisplaymath- 工作正常。

对称选项产生相同的结果,所以我认为 LaTeX 命令定义中有

\newcommand{\[}{\displaymath}
\newcommand{\]}{\enddisplaymath }
\newenvironment{displaymath}{\displaymath}{enddisplaymath}
Run Code Online (Sandbox Code Playgroud)

在 TeX 中类似

"if(displaymath)
 {$$ := \displaymath}
 else
 {$$ := \displaymath}"
Run Code Online (Sandbox Code Playgroud)

也许我错了,但这对我来说似乎是合乎逻辑的。


  • 注:这证明我错了。更好的说法是它说:“开始方程,切换到文本模式,切换回显示数学,排版切线定义,最后结束方程”。