当您尝试编译以下代码时:
\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}