在数学模式下忽略空行

在数学模式下忽略空行

我有带数学表达式的生成 LaTeX 代码。我的问题是这些生成的表达式可能包含一些 pdflatex 无法编译的空行。代码是由自定义应用程序生成的,我无法更改其输出。我必须通过一些删除这些行的后处理应用程序或直接在 LaTeX 中处理它。

代码示例:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
    \[

       x^{2} + \sqrt{7} - \frac{3}{7}

    \]

    \(x^{2}

    \)
\end{document}

所以我的问题是:有没有办法忽略或替换 LaTeX 中的空白行?谢谢。

答案1

你可以尝试

\documentclass{article}
\usepackage{amsmath}
\everymath=\expandafter{\the\everymath\let\par\relax}
\everydisplay=\expandafter{\the\everydisplay\let\par\relax}

\begin{document}
    \[

       x^{2} + \sqrt{7} - \frac{3}{7}

    \]

    \(x^{2}

    \)
\end{document}

但这对于对齐环境不起作用amsmath

该版本似乎也适用于aligngather;然而,可能会产生意想不到的效果。

\documentclass{article}
\usepackage{amsmath}
\usepackage{etoolbox}
\everymath=\expandafter{\the\everymath\let\par\relax}
\everydisplay=\expandafter{\the\everydisplay\let\par\relax}

\makeatletter
\patchcmd[\long]{\collect@@body}{}{}{}{}
\patchcmd[\long]{\push@begins}{}{}{}{}
\patchcmd[\long]{\addto@envbody}{}{}{}{}
\patchcmd[\long]{\align@}{}{}{}{}
\patchcmd[\long]{\gather@}{}{}{}{}
\patchcmd[\long]{\measure@}{}{}{}{}
\patchcmd[\long]{\gmeasure@}{}{}{}{}
\makeatother

\begin{document}
    \begin{align}

       x^{2} + \sqrt{7} - \frac{3}{7}

    \end{align}
    \begin{gather}

       x^{2} + \sqrt{7} - \frac{3}{7}

    \end{gather}

    \(x^{2}

    \)
\end{document}

相关内容