编译以下文档将引发错误
Paragraph ended before \align was complete
和
Displaymath should end with $$
因为数学环境/displaymath中不允许 par-break。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
Empty
are not allowed.
\end{align}
$$
Empty lines
are not allowed
$$
\end{document}
然而,在编辑时,我经常在按下回车键(创建新行)之后和添加任何内容之前意外地进行编译,因此我正在寻找一种允许在数学模式下分段的方法,最好忽略它们。
仅供比较,如果我只需要 display-math 而不需要 AMS 环境,那么可行的解决方案是
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\begin{document}
\everydisplay{\def\par{\mathbf{\color{red}-forgotten-par-}}}
$$
Empty\,lines
are\,now\,allowed
but\,you\,get\,a\,reminder
$$
\end{document}
是否存在适用于所有常见数学环境的解决方案?
答案1
我不推荐它,但是如果 luatex 是一个选项,它允许禁用这两个错误而无需对宏进行任何更改。
\suppressmathparerror = 1
\suppresslongerror = 1
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
Empty
are not allowed.
\end{align}
$$
Empty lines
are not allowed
$$
\end{document}
答案2
这是对问题第一个版本的回答。
你在自找麻烦。部分解决方案,为金钱而工作,但没有amsmath
用于基于 - 的环境。请查看并永远不要使用它。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\let\normalpar=\par
\def\par{\ifmmode \else\normalpar \fi}
\begin{align}
Empty
%
are not allowed.
\end{align}
$$
Empty lines
are not allowed
$$
\end{document}