每次要重開 pdf viewer 很麻煩,而且最近突然無法在編譯好 pdf 後自動更新 viewer 了,很惱人。找了方法來解決,雖然不夠完美,不過很夠用了。
更新: 有時候會失靈需要重新安裝 VSCode
Related post: [Use VSCode to Write LaTeX Paper]
Environment
- Win10
- VSCode Version: 1.63.2
- Latex Workshop: v8.23.0
- Trigger Task on Save: v0.2.17
Steps
Install Trigger Task on Save (ID: gruntfuggly.triggertaskonsave)
settings.json
(global):{ // your other settings... "latex-workshop.latex.autoBuild.run": "onSave", "latex-workshop.view.pdf.viewer": "tab", "triggerTaskOnSave.tasks": { "update pdf": [ "*.tex" ] }, }
.vscode/tasks.json
(local):{ "version": "2.0.0", "tasks": [ { "label": "build", "command": "${command:latex-workshop.build}", "problemMatcher": [], }, { "label": "update pdf", "command": "${command:latex-workshop.refresh-viewer}", "dependsOn":["build"], "problemMatcher": [], "group": { "kind": "build", "isDefault": true } } ] }
說明
會需要 Trigger Task on Save 是因為要在儲存 *.tex 的檔案時觸發 “update pdf” 的 task,由於 “update pdf” 依賴 (dependsOn) “build”,所以會先執行 “build” 的 task,結束後呼叫 refresh-viewer。
不完美之處
可以看到整個流程會呼叫兩次 build (一次是 onSave、一次是 triggerTaskOnSave),取消其中一者會導致 pdf viewer 在 pdf 還沒編譯好時就更新。兩個都存在就會等第一次編譯好才更新 (真是奇怪的 bug),因此缺點就是會編譯兩次,不過第二次因為是重複所以速度很快幾乎不影響使用。