我尝试编译一个文件,但 LaTeX 不喜欢某些东西(我不知道是什么)。现在,当我尝试编译时,系统提示“该进程无法访问该文件,因为它正在被另一个进程使用。”所以显然,TeX 仍在尝试编译该文件或其他东西。据我所知,问题在于文件synctex.gz
仍然(繁忙)。我该如何终止此进程?
答案1
Steven B. Segletes 发表了部分正确的回应。
您需要终止 pdflatex,但然后您还应该删除文件“xxx.synctex.gz(busy)”。
但是,请注意,这只会帮助删除文件“xxx.synctex.gz(busy)”。根据我的经验,此错误是由于您的 tex 代码中的错误而发生的,因此,如果您成功删除该文件,然后尝试再次编译,则可能必须重新执行整个过程。
很多令人困惑的事情是,当您从任务管理器中关闭 pdflatex 后,文件浏览器可能仍会显示“xxx.synctex.gz(忙)”。实际上,该文件不再忙,您可以随意删除它。
原因如下:
synctex.gz 文件是一个反向查找文件,它使您能够单击 pdf 中的某个位置,然后让您的 .tex 编辑器将光标移动到 .tex 文件中生成 pdf 中该点的位置。
当 pdflatex 生成此文件时,它会将文件命名为“xxx.synctex.gz(busy)”,然后将其锁定以防止您访问。因此,无论文件是否被锁定,您的文件浏览器都会显示“xxx.synctex.gz(busy)”。
当 pdflatex 完成时,它会将文件从“xxx.synctex.gz(busy)”重命名为“xxx.synctex.gz”。
答案2
我遇到了同样的问题,但发现这只是与 Google Drive 的冲突,试图在 texmaker 完成编译之前同步文件。
因此,如果您使用 Google Drive、Dropbox 或类似软件进行了连续备份,请尝试关闭它们并再次编译。
答案3
如果您正在运行 Linux,您可以运行$ lsof synctex.gz
来查找哪个进程打开了该文件,然后将kill
其打开。
答案4
我在 Windows 7 中运行 pdfLaTeX 和 TeXworks (MiKTeX 2.9) 时遇到了同样的问题。当我与远程服务器失去连接时,会出现“xxx.synctex.gz(busy)”的提示,而我的 .tex 文件目录本来应该同步为“始终离线可用”。
恢复与远程服务器的连接或将整个目录复制回本地驱动器后,我能够再次运行 pdfLaTeX 并完全编译,自动正确重命名 synctex.gz 文件并删除(繁忙)版本。