我的 latex 破了,可能损坏了 amsmath 包

我的 latex 破了,可能损坏了 amsmath 包

我遇到了一个非常不寻常的情况(至少对我来说)。

无论出于什么原因,在使用 tex 很长一段时间后,今天我的 latex 突然出现错误消息:

“扫描@newenv 的使用情况时文件结束。”

问题是,它几乎向我拥有的每个 tex 文件都发出相同的消息,而无需修改它们,并且没有以前类似的错误。最终,我发现问题发生在使用“amsmath”包的 tex 文件中。

问题肯定不是文档中缺少“}”。是我的 amsmath 包以某种方式损坏了,还是我遗漏了什么?

答案1

该错误与不完整的声明有关,\newenvironment因此获取该错误的最自然方式是提供如下文件

\documentclass{article}

\newenvironment{zz}{}{

\begin{document}

\end{document}

其产生的终端输出为

LaTeX2e <2021-06-01> patch level 1
L3 programming layer <2021-08-27>
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/02/12 v1.4n Standard LaTeX document class
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/size10.clo)))
Runaway argument?
{ \par \begin {document} \par \end {document} 
! File ended while scanning use of \@newenv.
<inserted text> 
                \par 

但是amsmath源文件amsmath.sty 确实会使用\newenvironment,因此如果您以某种方式截断它,则可能会出现相同的错误。

如果我截断文件,那么文档

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\end{document}

产生终端输出

LaTeX2e <2021-06-01> patch level 1
L3 programming layer <2021-08-27>
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/02/12 v1.4n Standard LaTeX document class
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/size10.clo)) (./amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsopn.sty))
Runaway argument?
{ 
! File ended while scanning use of \@newenv.
<inserted text> 
                \par 

需要注意的是日志的不同格式具体

(./amsmath.sty

给出了完整路径amsmath.sty 并在此处显示本地副本。并且在这种情况下没有)与此匹配( (错误消息前一行上只有两个)而不是三个) ,这表明错误是在仍然打开的文件中的代码中触发的,而不是像第一种情况下的文档中的错误。)amsmath.sty

因此,完整的日志将允许您找到包含损坏的文件\newenviornment

相关内容