用$\LaTeX$写文档的时候正反向搜索无疑非常有用。但是最近发现在TeXStudio中正反向搜索失效了,软件默认在编译参数中就有“-synctex=1”,所以并不是这个问题。一开始以为是bug,后来用VS Code编译同一个文档,发现可以正反向搜索,就意识到并不是$\LaTeX$的问题,估计是TeXStudio设置的问题。
正反向搜索是靠.synctex文件实现的。在编译生成文档后,同时会出现.synctex.gz文件,解压即为.synctex文件。打开TeXStudio编译生成的.synctex文件,第二行出现了乱码,乱码应该是因为路径中有中文字符。
显然这一行指明了tex源文件的位置,乱码了自然不行。然后又查看VS Code编译产生的.synctex文件,果然没有乱码。
好了,原因找到了,下面就是怎么解决它。涉及到路径的问题,多半是编译的时候路径没有加双引号。看TeXStudio编译时的消息,应该是首先把路径更改到源文件所在目录,编译时文件名前没有路径。再去看设置-->命令面板,默认编译命令设置是下面这样的,可以看到其中 %.tex 指代源文件名。
面板下方有特殊字符的说明,其中果然提供了包含路径在双引号中的字符,即 ?ame"。于是将 %.tex 改成了 ?ame"。
再次编译,正反向搜索终于正常了!
太棒了,我也遇到同样的问题
不知道是否可以转载到CSDN,将标明出处
欢迎转载