![编译错误后,Texworks pdf viewer 突然无法链接到 \input -ed 源](https://linux22.com/image/339025/%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF%E5%90%8E%EF%BC%8CTexworks%20pdf%20viewer%20%E7%AA%81%E7%84%B6%E6%97%A0%E6%B3%95%E9%93%BE%E6%8E%A5%E5%88%B0%20%5Cinput%20-ed%20%E6%BA%90.png)
我的 LaTeX 论文组织在一个主文件中,其中存放着\input
各个章节。直到最近,我才能够打开Main.pdf
,导航到我正在处理的章节,并Jump to Source
打开相应的章节 tex 文件。
以前有个 bug,如果我遇到编译错误,texworks pdf viewer 就会变成空白,我必须在更正错误并重新编译论文后手动关闭并重新打开它。但之后它就可以正常工作了。
几天前,由于编译错误,texworks viewer 完全无法“查看”章节文件。如果我在论文的任何其他部分“跳转到源代码”,它会打开正确的文件,但如果我在发生错误的特定章节中,它会显示:Cannot read file "": No file name specified
。此外,编辑器中的“自动跟踪焦点”也不再起作用。
- 恢复到编译错误发生之前的文档的早期版本并不能解决问题,因此问题不在于 tex 代码。
- 删除所有辅助/不必要的文件(包括 synctex.gz)并从头开始编译并不能解决问题,因此问题不是损坏的 synctex 文件。
- 删除 texworks、清除 ~/.TeXworks 和 ~/.config/TUG 文件夹并从头开始重新安装都不能解决问题,所以问题不在于我的特定配置(除非系统中存在我不知道的隐藏配置和临时文件)
我现在在两台机器上都遇到了这个问题,我不得不格式化其中一台机器,看看能否解决这个问题。我想知道是不是最近的 texworks 更新破坏了某些东西?还有人遇到过这个问题吗?
抱歉,我知道 tex.stackexchange 不是一个错误跟踪器,但确实没有明显的地方可以询问或报告此问题,而且这在提交之前严重影响了我的工作流程 :|
编辑:我的 TeXworks 版本TeXworks 0.5r1350 (Debian)
来自 Linux Mint 17 存储库。我将尝试使用 texworks ppa 中的较新版本,如果此版本能解决问题,则进行更新。
更新:该问题在最新版本(0.6.1)中仍然存在,并且在引入编译错误之前来自 git 的代码版本中也存在该问题。
进一步更新:我把问题缩小到了第二次运行pdflatex
。我的汇编如下:
pdflatex # Synchronisation works but citations are broken
biber
pdflatex # Synchronisation works
pdflatex # Sunchronisation breaks
这是我几个月来一直使用的方法。我不知道为什么它在上周坏了。我现在也不确定我的引用在第二次运行后是否正确同步(第三次运行就是为了这个目的)。
#2 和 #3 之间的控制台输出除了重命名了几个 ID 之外,其他方面看起来完全相同,只是 #2 显示以下消息:
Package rerunfilecheck Warning: File `Oxford_Thesis.out' has changed.
(rerunfilecheck) Rerun to get outlines right
(rerunfilecheck) or use package `bookmark'.
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
而 #3 则不然。
答案1
对于遇到同样问题的其他人来说,问题是我的编译脚本使用了pdflatex->biber->pdflatex->pdflatex。
这曾经是获得适当交叉引用所期望做的事情。看来突然(在更新之后?)正确的程序是仅使用 pdflatex->biber->pdflatex。第二次 pdflatex 调用后,交叉引用似乎没问题。第三次 pdflatex 调用破坏了 synctex。
如果发生这种情况,请清除所有 .aux 文件并使用 pdflatex->biber->pdflatex 再次编译。