已成功为我的网站编译了约 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
发生了更改。