为什么在数学模式下插入两个换行符时 Latex 无法编译?

为什么在数学模式下插入两个换行符时 Latex 无法编译?

当您尝试编译以下代码时:

\begin{equation}
   \phi = \psi

\end{equation}

编译失败并显示以下错误消息:

! Missing $ inserted.

我知道如何修复这个问题。但我仍然想了解编译器到底想做什么,以及为什么它无法编译这个看似正确的代码。我不是问如何在输出文件中插入换行符。

顺便说一下,我只尝试使用pdftex编译器。我不确定这是否在每个编译器上都会发生。

答案1

这是 TeX(不是 latex)内置的最低级别的错误检查,类似于失控参数检查,默认情况下,如果您省略宏的右括号, \zz{....它不会吞噬您的整个文档,错误会被困在段落末尾。

类似地,如果你开始数学运算,但在数学运算结束之前结束段落,那么这是一个错误,会在段落末尾标记出来,

\par请注意,触发错误的不是 latex 或两个换行符(报告为 token ),而是 par 原语的出现,因此这个普通的 Tex 文档给出了相同的错误

$$a\endgraf$$


\bye

相反,尽管公式中有一个空行,但此乳胶文档不会产生任何错误:

\documentclass{article}

\begin{document}

\begin{equation}\let\par\relax
   \phi = \psi

\end{equation}


\end{document}

相关内容