LaTeX 正在编译更改之前的文件

LaTeX 正在编译更改之前的文件

我正在使用LaTeX作为OSX 10.8.2编辑TeXworks器。

为我的问题寻找解决方案,我正在尝试编译问题或答案中发布的不同代码。我创建了几个test文件,在其中复制粘贴了我想要尝试的代码。我意识到,如果我删除所有内容并粘贴全新的代码,LaTeX就会出现错误,就像它试图将新文档与旧文档一起编译一样。在删除后但在复制新内容之前保存文件,甚至关闭它并再次打开,都无济于事,我每次都必须创建一个新test文件。

我从来没有遇到过这个问题,在我的文档上“正常”工作,只是现在我经常收到错误消息(当我尝试更改代码以满足我的需要时)。

举个例子,当我尝试编译这个时:

\documentclass[twocolumn]{article}
\usepackage{fontspec}
 \usepackage{polyglossia}

\newcommand*{\glossaryname}{Dictionary}
\usepackage[nonumberlist,xindy]{glossaries}
\newcommand{\dictentry}[3]{%
 \newglossaryentry{#1}%
{%
name=#1,
description={#2 & #3}}%
\glslink{#1}{}%
}

 \makeglossaries
\setmainlanguage{polish}

\begin{document}
\dictentry{on}{bal}{ggg} %
\dictentry{ja}{ccc}{ddd} %
\dictentry{pies}{zzzz}{abc} %

\printglossary[style=super]%
\end{document}

我收到以下错误:

(./15.gls

! 未定义的控制序列。

Dr.\space \DTLinitials

{土豚}\space Foobar

l.5 ...etentrycounter[]{page}\glsnumberformat{1}}}

我并不是说我尝试编译的文件没有问题,而是Dr.\space\DTLinitials{Aardvark}\space Foobar根本不是这个文件的一部分,而是前一个文件的一部分......

我想可能是因为LaTeX仍然引用了创建的文件makeglossaries,所以我想再次运行它,但由于LaTeX无法编译文件,这是不可能的。

我可能只是忽略了一些显而易见的事情,但我不知道为什么会发生这种情况。

编辑:

根据评论中给我的建议,我尝试过:

  1. 运行前删除所有辅助文件LaTeX。它确实有效,但对于我来说,测试解决方案看起来有点复杂 - 由于我正在学习,所以犯了很多错误,每次尝试改进代码后我都应该删除辅助文件。

  2. 当 LaTeX 停止编译时输入r。然后LaTeX继续编译,但首先 - 每次在同一个文件上再次运行 LaTeX 时,我都必须重新输入它,即使我没有更改它;其次 - 输出不是应该生成的输出 - 两个具有完全相同输入的不同文件会产生不同的输出。

答案1

这是 LaTeX 本身的属性。文件中的某些信息.aux对文档的更改很敏感,尤其是以下更改:

  • babel加载和语言
  • hyperref加载中

如果您认为使用相同的文件名最简单,我建议您始终在此简单文档上运行 LaTeX:

\batchmode
\documentclass{article}
\begin{document}
Hello World!
\end{document}

它应该清除辅助文件中的信息,一切都应该顺利运行。


显然,更简单的解决方案是使用 TeXworks 内置命令

文件 -> 删除辅助文件...

每当您粘贴新的 MWE 时。

相关内容