为什么数学模式中不允许有空行?

为什么数学模式中不允许有空行?

在此处输入图片描述

梅威瑟:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$$
let p^k be the statement that, for some value n=k, A^k=\begin{pmatrix}1&0 \\ k&0 \end{pmatrix} 

$$
\end{document}

看来 Latex 不允许在数学模式下出现空行。如果我删除最后一个空行,上面的代码是完全可以编译的。但空行会导致错误。Latex 不直接忽略空行是否有更深层次的原因?

答案1

造成这种行为的主要原因有两个:

  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.
    
  2. 另一个原因是为了保持一致性(至少在我看来)。如果\par在数学模式下忽略空白行(这是隐式的),这将与在文本模式下开始新段落的情况相矛盾。为了防止这种混淆,抛出错误而不是产生一些不一致的行为是明智的。

如果您使用的是 LuaTeX 而不是 pdfTeX 或 XeTeX,您可以让引擎忽略此错误。只需将其添加\suppressmathparerror=1到前言中即可。

相关内容