
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=1
參數也可能無法建立 SyncTeX 檔案) - 確保您透過 Texmaker 使用批次檔和 SumatraPDF 啟動了 Texmaker(此鍊是強制性的)
答案3
這是對上方 Vlastimil 的答案的回應。我發現反向搜尋在沒有批次文件的情況下也可以正常工作。我只是在 Sumatra PDF Options 中使用以下行(它作為選項自動出現)。我正在使用 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 中,轉到
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