![为什么数学模式中不允许有空行?](https://linux22.com/image/417716/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%AD%E4%B8%8D%E5%85%81%E8%AE%B8%E6%9C%89%E7%A9%BA%E8%A1%8C%EF%BC%9F.png)
答案1
造成这种行为的主要原因有两个:
这使得错误恢复在技术上更容易,错误信息(希望)更清晰,因为当 TeX 遇到缺失时,
$
你可以确定它至少在抛出错误的段落中。Knuth 在 TeXbook 第 135 页给出了这个原因:\danger Conversely, a blank line or ^|\par| is not permitted in math mode. This gives \TeX\ another way to recover from a missing~|$|; such errors will be confined to the paragraph in which they occur.
另一个原因是为了保持一致性(至少在我看来)。如果
\par
在数学模式下忽略空白行(这是隐式的),这将与在文本模式下开始新段落的情况相矛盾。为了防止这种混淆,抛出错误而不是产生一些不一致的行为是明智的。
如果您使用的是 LuaTeX 而不是 pdfTeX 或 XeTeX,您可以让引擎忽略此错误。只需将其添加\suppressmathparerror=1
到前言中即可。