Texmaker 有一个内置的 pdf 查看器,支持开箱即用的 synctex 正向/反向搜索。此内置查看器可以嵌入或显示在单独的窗口中,外部查看器始终有一个单独的窗口。由于我有两个屏幕,因此我使用双窗口布局。
现在我想切换到苏门答腊PDF作为外部查看器,但找不到如何配置 Texmaker 以使正向搜索正常工作。
我已提交功能要求将该信息添加到Texmaker 文档已经。这里有人知道怎么做吗?可能使用一些DDE 命令...
答案1
似乎 Texmaker 不允许 DDE 命令,但是自 1.9 版 SumatraPDF不仅支持通过 DDE 命令进行前向搜索,还支持通过命令行开关进行前向搜索。 自 3.2.1 版 Texmaker具有使用前向搜索所需的所有变量。这些变量包括
%
对于主文件的基本名称(不带路径和扩展名),!
获取主文档所在目录的完整路径,#
当前活动文件的基本名称(无路径、无扩展名)和@
为行号。
因此通常可以采取以下措施:
""C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance "!/%.pdf" -forward-search "!/#.tex" @
当包含子目录时,此操作将失败。一种解决方法是手动将 subDirName 添加到路径:
""C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance "!/%.pdf" -forward-search "!/subDirName/#.tex" @
但是 subDirName 在所有项目中都应该相同,所以这更多的是一种变通方法而不是真正的解决方案。
以下是我的 Texmaker 配置的屏幕截图:
答案2
我刚刚制作了一份文档,描述了如何设置 Texmaker 和 SumatraPDF 以及正向和反向搜索,但完全可移植,这有点棘手。操作方法链接http://goo.gl/hxDeu(无重定向:http://goo.gl/hxDeu+)或参见下文:
1. 配置 Texmaker 使用 SumatraPDF 作为具有正向搜索功能的外部 PDF 查看器 打开便携式 Texmaker 并将路径设置为外部查看器,如下所示:
./SumatraPDF/SumatraPDF.exe %.pdf -reuse-instance -forward-search %.tex @
请注意,SumatraPDF.exe 的路径与 Texmaker 可执行文件相关,您可能需要编辑此路径以匹配您的文件夹结构。
2. 在 SumatraPDF 中配置反向搜索
默认情况下,SumatraPDF 不允许通过 GUI 配置反向搜索。运行以下命令:
SumatraPDF.exe -inverse-search "texmaker.exe %f -line %l"
您不应更改 texmaker.exe 文件的路径,即使您的文件夹结构与我的不同。
3.创建启动批处理文件
由于 SumatraPDF 中的一些限制,每次我们想要使用 SumatraPDF 作为外部查看器时,我们都必须使用以下批处理文件启动 Texmaker。将以下命令放入 texmaker-portable.bat 中,并将此文件保存到与 Texmaker.exe 相同的文件夹中。另请注意,您可以将任何参数传递给 texmaker.exe 本身,并将其传递给 texmaker-portable.bat。
@echo off
set PATH=%~dp0;%PATH%
start /D "%~dp0" texmaker.exe %*
4.运行texmaker-portable.bat并测试设置
故障排除
- 确保在格式化 tex 文件时使用
-synctex=1
或参数-synctex=-1
- tex 文件的名称中不应包含空格(Texmaker 和 SumatraPDF 可以很好地处理空格,但即使使用参数也可能无法创建 SyncTeX 文件
-synctex=1
) - 确保使用批处理文件启动了 Texmaker,并通过 Texmaker 启动了 SumatraPDF(此链是强制性的)
答案3
这是对上面 Vlastimil 的回答的回应。我发现反向搜索在没有批处理文件的情况下也能正常工作。我只需在 Sumatra PDF 选项中使用以下行(它会自动显示为选项)。我使用的是 Sumatra 2.1.1 和 Texmaker 3.5。
"C:\Program Files (x86)\Texmaker\texmaker.exe" "%f" -line %l
正如其他人所说,前向搜索也可以通过 Texmaker 选项中的命令行进行:
"C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe" -reuse-instance %.pdf -forward-search "#.tex" @
答案4
这个答案旨在理解 TeXmaker v4.5 和 TeXstudio v2.12.22 与 SumatraPDF v3.2 的步骤
TeXmaker
- 在 Texmaker 中,转到
Options > Configure Texmaker > Commands
在
External Viewer
字段中(如果您使用 SumatraPDF),输入"C:\Program Files\SumatraPDF\SumatraPDF.exe" -1 -s @%.tex %.pdf
在 SumatraPDF 中,转到
Settings > Options
,然后输入Set inverse search command-line
"C:\Program Files (x86)\Texmaker\texmaker.exe" "%f" -line %l
特克斯工作室
如果你使用 TeXstudio
- 在 TeXstudio 中,转到
Options > Configure TeXstudio > Commands
在
External PDF Viewer
字段中输入"C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance -inverse-search "\"C:/Program Files (x86)/texstudio/texstudio.exe\" \"%%f\" -line %%l" -forward-search "?c:am.tex" @ "?am.pdf"
在 SumatraPDF 中,转到
Settings > Options
,然后在 中Set inverse search command-line
输入"C:/Program Files (x86)/texstudio/texstudio.exe" "%f" -line %l