![LaTeX 正在编译更改之前的文件](https://linux22.com/image/259858/LaTeX%20%E6%AD%A3%E5%9C%A8%E7%BC%96%E8%AF%91%E6%9B%B4%E6%94%B9%E4%B9%8B%E5%89%8D%E7%9A%84%E6%96%87%E4%BB%B6.png)
我正在使用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
无法编译文件,这是不可能的。
我可能只是忽略了一些显而易见的事情,但我不知道为什么会发生这种情况。
编辑:
根据评论中给我的建议,我尝试过:
运行前删除所有辅助文件
LaTeX
。它确实有效,但对于我来说,测试解决方案看起来有点复杂 - 由于我正在学习,所以犯了很多错误,每次尝试改进代码后我都应该删除辅助文件。当 LaTeX 停止编译时输入
r
。然后LaTeX
继续编译,但首先 - 每次在同一个文件上再次运行 LaTeX 时,我都必须重新输入它,即使我没有更改它;其次 - 输出不是应该生成的输出 - 两个具有完全相同输入的不同文件会产生不同的输出。
答案1
这是 LaTeX 本身的属性。文件中的某些信息.aux
对文档的更改很敏感,尤其是以下更改:
babel
加载和语言hyperref
加载中
如果您认为使用相同的文件名最简单,我建议您始终在此简单文档上运行 LaTeX:
\batchmode
\documentclass{article}
\begin{document}
Hello World!
\end{document}
它应该清除辅助文件中的信息,一切都应该顺利运行。
显然,更简单的解决方案是使用 TeXworks 内置命令
文件 -> 删除辅助文件...
每当您粘贴新的 MWE 时。