TexStudio 正向和反向搜索,内置 Sumatra PDF

TexStudio 正向和反向搜索,内置 Sumatra PDF

网络上有很多关于正向和反向搜索的内容 - 一开始它适用于我在网上找到的配置。但现在删除 ini 以返回标准选项后,它甚至无法与内置查看器配合使用。

我的设置:Windows 10、TexStudio、内置查看器、Sumtra PDF。在命令、外部 PDF 查看器下,我输入:“C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe”-reuse-instance -inverse-search "\"C:\texstudio/texstudio.exe\" \"%%f\" -line %%l" -forward-search "?c:am.tex" @ "?am.pdf"

它仍会跳转到随机位置 - 带有两个查看器。我需要什么选项?

(我还将包含在 _ 中的 .tex 文件的名称修复为 -。没有变得更好。)

答案1

我发现Alper Yazar 的博客有帮助。以下是简要总结:

步骤1. 打开配置 - TexStudio >> 选项 >> 配置 TeXstudio... 第2步 命令 >> 外部 PDF 查看器:

"C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance %.pdf

步骤 3a。构建 >> PDF 查看器 >> 外部 PDF 查看器

步骤 3b。构建 >> 用户命令 >> 添加

user0:Forward Search
dde:///"C:/Program Files/SumatraPDF/SumatraPDF.exe":SUMATRA/control/  [ForwardSearch("?am.pdf","?c:am.tex",@,0,0,1)]

步骤4。快捷方式 >> 菜单 >> 工具 >> 用户:将当前快捷方式更改为 F2

步骤5.SumatraPDF >> 设置 >> 选项 >> 设置反向搜索命令行

"C:/Program Files/texstudio/texstudio.exe" "%f" -line %l

笔记:(1)请根据您的安装调整路径;(2)不要忘记步骤 5 中的引号;(3)我使用了 SumatraPDF v3.2 64 位和 TeXstudio 3.1.1;(4)在 TeXstudio tex 代码中按 F2 跳转到 SumatraPDF [正向搜索],在 SummatraPDF 中双击文本跳转到 TeXstudio [反向搜索];(5)如果需要:TeXstudio 具有正向和反向搜索,即(a)撤消步骤 3a [使用内部查看器](b)在 tex 代码中单击鼠标右键并选择“转到 PDF”(c)在 PDF 中右键单击 + 转到源文件

答案2

Sumatra 中的“设置反向搜索命令行”选项似乎默认隐藏,只有在第一次使用后才会显示。只需插入一行:

InverseSearchCmdLine = “C:/Program Files/texstudio/texstudio.exe” “%f” -line %l

不幸的是,声誉不足以发表评论。

答案3

我在 Windows 10 上使用 TeXStudio 3.2.1 和 SumatraPDF 3.3.3。

指令位于https://www.sumatrapdfreader.org/docs/Use-SumatraPDF-as-a-pre-viewer-for-LaTeX-editors似乎不再适用于这个新版本的 TeXStuido。一个可能的解决方法是使用单引号而不是双引号来'引用 的参数,并用 TexStudio 不再识别的替换任何。-inverse-search"\""

例如,TeXStudio 和 SumatraPDF 的可执行文件的路径分别为:
C:\Program Files\TeXstudio\texstudio.exe
C:\Users\demouser\AppData\Local\SumatraPDF\SumatraPDF.exe

然后,完整的呼叫者填写外部 PDF 查看器在 TeXStudio > 选项 > 配置 TeXStudio > 命令中:
"C:\Users\demouser\AppData\Local\SumatraPDF\SumatraPDF.exe" -forward-search "?c:am.tex" @ -inverse-search '"C:\Program Files\TeXstudio\texstudio.exe" "%%f" -line %%l' "?am.pdf"

答案4

TeXStudio 配置中使用“”符号存在一些问题。因此我们可以使用以下解决方案:将其移至 bat 文件中。

runSumatraWithInverseSearch.bat在同一文件夹中创建文件texstudio.exe

@ECHO OFF
"C:\Program Files\SumatraPDF\SumatraPDF.exe" -forward-search "%1" %2 -inverse-search "\"%~dp0texstudio.exe\" \"%%f\" -line %%l" "%3"

(您可以使用相对路径"%~dp0..\SumatraPDF\SumatraPDF.exe":)

然后将 TeXStudio 命令->外部 PDF 查看器设置为

"[txs-app-dir]/runSumatraWithInverseSearch.bat" "?c:am.tex" @ "?am.pdf"

它是如何工作的?[txs-app-dir]— 是 texstudio.exe 文件的路径。 runSumatraWithInverseSearch.bat — 是带有足够“”符号的 bat 文件。我们将 tex 文件名、行号和 pdf 文件名传递给 bat 文件。

相关内容