使用 TeXWorks 和 TeXLive,错误通常会显示相关文本,然后我就可以找到问题所在。当然,如果有一个按钮可以点击进入,那就太好了,但这并没有什么用。但是,我现在有一个很大的文档,突然,我收到以下错误,却不知道文档中的哪个地方出错了:
(c:/bin/texlive/2013/texmf-dist/tex/latex/hyperref/hyperref.sty
(c:/bin/texlive/2013/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
(c:/bin/texlive/2013/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty))
(c:/bin/texlive/2013/texmf-dist/tex/latex/oberdiek/auxhook.sty)
(c:/bin/texlive/2013/texmf-dist/tex/latex/hyperref/pd1enc.def)
(c:/bin/texlive/2013/texmf-dist/tex/latex/latexconfig/hyperref.cfg)
(c:/bin/texlive/2013/texmf-dist/tex/latex/url/url.sty))
Package hyperref Message: Driver (autodetected): hpdftex.
(c:/bin/texlive/2013/texmf-dist/tex/latex/hyperref/hpdftex.def
(c:/bin/texlive/2013/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))
(c:/bin/texlive/2013/texmf-dist/tex/latex/geometry/geometry.sty)
(c:/bin/texlive/2013/texmf-dist/tex/latex/listings/lstlang1.sty)
(./QuickFlippedLessons2.aux
! Undefined control sequence.
l.75 \@writefil
?
我没有保存以前的版本,因此查找此内容可能是一个非常繁琐的过程,我需要删除部分,直到找到相关的部分。我能做什么吗?
答案1
错误消息之前的一行
(./QuickFlippedLessons2.aux
表明错误发生在辅助文件内部。
\@writefile
是 LaTeX 内核命令,\@writefil
是截断版本。也许之前的运行因某种原因中止,辅助文件已关闭,但写入缓冲区仍处于打开状态。
删除QuickFlippedLessons2.aux
并重试。
答案2
()
控制台或日志文件中的 表示包含的文件。因此,此错误是在 LaTeX 处理文件时发生的。QuickFlippedLessons2.aux
行l.
首的 表示行号。因此,这告诉您 的\@writefil
第 75 行有一个未定义的控制序列QuickFlippedLessons2.aux
。
现在,.aux
文件会在之前的 LaTeX 运行期间自动创建,并在\begin{document}
当前运行中读取。除非您有意写入文件.aux
,否则我猜您之前中止了 LaTeX 运行,只向文件写入了部分内容.aux
。
如果是这种情况,点击enter此错误将命令 LaTeX 尽可能继续编译。如果这是唯一的问题,则运行将成功,文件.aux
将正确写入,并且错误将在以后的运行中消失。
或者,您可以删除该.aux
文件并重新编译。第一次运行将.aux
正确写入文件。
(Heiko 比我早了一分钟,但由于我试图讲得更详细,所以我将保留该帖子。)