为什么命令窗口显示“\end 的使用与定义不匹配”?

为什么命令窗口显示“\end 的使用与定义不匹配”?

已成功为我的网站编译了约 200 个文件 www.earlymoderntexts.com,我遇到了四个无法编译的,但我找不到原因。对于每个问题,命令窗口的抱怨都以“使用\end不符合其定义”开头,我对此感到困惑;在这些文件中,我找不到任何异常的使用\end。有人能帮我吗?一位 87 岁的退休哲学教授的请求!

答案1

\end您不应该查看文档中的用法,而应该查看它的(可能意外的)重新定义,也许是在序言中。

例如,本文档产生如下错误:

\documentclass{article}

\def\end oops{}

\begin{document}


\begin{quote}
  zzzz
\end{quote}
\end{document}

错误:

! Use of \end doesn't match its definition.
l.10 \end{
          quote}
? 

\end 的使用\end{quote}看起来\end{document}没问题,但是\end已被重新定义为它后面必须始终跟有oops

为了看到这一点(假设重新定义在某些包代码中),请按如下方式修改文档:

\show\end

\documentclass{article}

\show\end

\def\end oops{}

\show\end

\begin{document}


\begin{quote}
  zzzz
\end{quote}
\end{document}

现在日志显示:

LaTeX2e <2017-04-15>
Babel <3.14> and hyphenation patterns for 84 language(s) loaded.
> \end=macro:
#1->\csname end#1\endcsname \@checkend {#1}\expandafter \endgroup \if@endpe \@d
oendpe \fi \if@ignore \@ignorefalse \ignorespaces \fi .
l.2 \show\end

? 
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/size10.clo))
> \end=macro:
#1->\csname end#1\endcsname \@checkend {#1}\expandafter \endgroup \if@endpe \@d
oendpe \fi \if@ignore \@ignorefalse \ignorespaces \fi .
l.6 \show\end

? 
> \end=macro:
oops->.
l.10 \show\end

? 

! Use of \end doesn't match its definition.
l.17 \end{
          quote}
? 

这说明\end第 2 行和第 6 行具有正常定义,但第 10 行具有改变的定义。

通过在文档中添加一些内容,\show\end您应该能够找到何时\end发生了更改。

相关内容