令我惊讶的是,最近问题中的 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}?
也许是因为环境math和displaymath。
我刚刚尝试过这些代码
\[\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)
也许我错了,但这对我来说似乎是合乎逻辑的。