我将 LaTeX 文件存储在 mercurial 存储库中,以便备份和在家庭和办公室之间传输工作。这意味着我的 .tex 文件位于不同计算机上的不同路径中,但 .synctex.gz 文件中的信息使用绝对路径。这意味着如果我在家更新和编译文件,将其推送,然后在办公室将其拉出,则反向搜索会中断,直到我重新编译文件并重新生成 synctex 文件。这特别烦人,因为进行反向搜索最有用的时间是当您刚刚打开当前正在处理的文件并需要“随机访问”才能找到正确部分时 - 在 PDF 中最简单的操作。
我看不出有任何方法可以自定义 synctex 的输出,但是否有一些隐藏的技巧?我使用 Okular 和 gvim 以及标准反向搜索命令:
gvim --servername GVIM --remote +%l %f
也许可以修改它以删除绝对路径,但当正确的文件与 PDF 不在同一目录中时,这似乎容易出错,而且在任何情况下,我在自定义此命令时都遇到了麻烦。
我希望我可以在 mercurial 中添加一个钩子来处理 synctex 文件,但这似乎也是一个非常糟糕的解决方案。在我看来,“正确”的解决方案是使用 SyncTeX 生成相对路径,但他们似乎坚持保留绝对路径。我认为无论如何我们都不能依赖他们做任何事情,因为/./
路径中间出现了混乱。