我在 Win10 平台上使用 TexStudio。作为外部 pdf 查看器,我使用 SumatraPDF。昨晚我获得了 Texstudio 3.0.4(64 发行版)的新更新,从那时起,我在反向搜索方面遇到了问题。
在 texstudio 命令设置中我插入了以下行:
"C:\Users\...\AppData\Local\SumatraPDF/SumatraPDF.exe" -reuse-instance -inverse-search "\"C:\Program Files\texstudio\texstudio.exe\" \"%%f\" -line %%l" -forward-search "?c:am.tex" @ "?am.pdf"
在苏门答腊,我将反向搜索命令设置为:
"C:\Program Files\TeXstudio\texstudio.exe" "%f" -line %l
在我关闭 Sumatra 之前,一切都运行正常。事实上,如果我关闭应用程序,下次运行它时,反向搜索将不再起作用。命令行确实被重置为
C:\Program
这意味着每次打开应用程序时我都必须手动插入命令行。我注意到在启动时出现以下错误消息:
Error loading C:\Users\...\Documents\My_tex_project_here\texstudio\texstudio.exe %f -line %l
我不知道为什么它试图在那里设置 texstudio 的路径(这是我的 tex 项目的文件夹)。我不知道如何解决这个问题,除非让 Sumatra 一直运行。
答案1
Texstudio 将反斜杠转义的双引号替换为三个双引号。https://github.com/texstudio-org/texstudio/blob/master/src/execprogram.cpp#L46:
到目前为止,反斜杠转义的双引号无法使用,因为该选项
Tools/SupportShellStyleLiteralQuotes
导致用(三重双引号)BuildManager::parseExtendedCommandLine()
替换\"
(反斜杠转义的双引号)"""
解决这个问题的方法是改用单引号括住inverse-search
命令。
所以Texstudio设置命令是:
"C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance -inverse-search '"C:\Program Files\TeXstudio\texstudio.exe" "%%f" -line %%l' -forward-search "?c:am.tex" @ "?am.pdf"