我有带数学表达式的生成 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
。
该版本似乎也适用于align
和gather
;然而,可能会产生意想不到的效果。
\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}