許多人都是用texstudio 或winedt 配合texlive 編寫 文檔,很長一段時間內texstudio 是我唯一的編輯器,然而,顏控的我受不了那原始的介面,於是我看上了VSCode。漂亮、免費、開源是我選擇 VSCode 的主要原因。
網路上有許多介紹VSCode 的文章,但在設定外部閱讀器的介紹稍微有點少,我在網路上找了很久才在LaTeX Workshop 作者的github 首頁找到方法,同時也萌發了寫一篇教學的想法。
本文主要介紹使用 VSCode 撰寫簡單的文件以及設定外部PDF閱讀器的方法。
如果你已經安裝好了texlive、VSCode 和SumatraPDF,並且不想看完整篇文章,只想快點上手,請翻到文章末尾的附錄,將程式碼全部複製到VSCode 的設置裡,然後再根據第5節設定反向搜尋就可以使用了。
1. 安裝texlive
#載入texlive 2019 的iso 文件,
右鍵install-tl-windows,點擊以管理員身份執行,進入安裝介面。
可以點選「Advanced」進入進階安裝來取消你不需要安裝的巨集套件。
點擊「Customize」來取消勾選不需要的巨集套件。
很多巨集套件和功能我個人並不需要,因此我在這裡取消勾選,大家可以根據需要勾選自己需要的功能,如果嫌麻煩全部安裝也可以,並不消耗多少空間。
設定完安裝路徑等選項之後點選“安裝”,之後靜坐 20 分鐘等待安裝完成。
2. 安裝VSCode 上的[公式] 外掛程式
與此同時,下載VSCode 並安裝,VSCode 的安裝很簡單,這裡就不嘮叨了。
VSCode 安裝完成之後,在擴充功能商店安裝 LaTeX Workshop 外掛程式。
安裝完成後,隨便打開一個 tex 原始文件,
可以看到,程式碼已經被高亮顯示。
3. 配置 VSCode 的 [公式] 外掛程式
將下列程式碼放入 VSCode 的設定區內。
"latex-workshop.latex.tools": [ { // 编译工具和命令 "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "%DOCFILE%" ] }, { "name": "pdflatex", "command": "pdflatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOCFILE%" ] }, { "name": "bibtex", "command": "bibtex", "args": [ "%DOCFILE%" ] } ],
[公式] LaTeX Workshop 預設的編譯工具是latexmk,大家根據需要修改所需的工具和指令,我不需要用到latexmk,因此我把其修改為中文環境常用的xelatex,大家根據需要自行修改。 (感謝@huan Yu ,將tools 中的%DOC%替換成%DOCFILE%就可以支援中文路徑下的檔案了)
"latex-workshop.latex.recipes": [ { "name": "xelatex", "tools": [ "xelatex" ] }, { "name": "xe->bib->xe->xe", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] } ],
[公式] 用來設定編譯鏈,同樣地放入設定區。第一個recipe 為預設的編譯工具,如需要使用bibtex 可在編譯時點選VSCode 介面左下角的小勾,點選“Build LaTeX project”,選擇“xe->bib->xe-> xe”,另外的方法是使用右側欄,或者直接將“xe->bib->xe->xe”的Recipe 放到第一位,就可以作為默認Recipe 編譯了,但因為編譯次數比較多,速度會比較慢。大家可以依需求自行按照格式加入自己需要的編譯鏈。
要使用pdflatex,只需在tex 文件首加入以下程式碼:
%!TEX program = pdflatex
要使用SumatraPDF 預覽編譯好的PDF文件,新增以下程式碼進入設定區。
"latex-workshop.view.pdf.viewer": "external", "latex-workshop.view.pdf.external.command": { "command": "E:/Programs/SumatraPDF/SumatraPDF.exe", "args": [ "%PDF%" ] },
[公式] “viewer”設定閱讀器為外部閱讀器,“command”為 SumatraPDF.exe 的路徑,根據具體情況修改。
現在就可以使用 VSCode 編譯 tex 檔案並以 SumatraPDF 為閱讀器預覽了。
插件经过几次更新之后已经去掉了右键菜单选项,选项被移动到了右侧栏。点击右侧栏的 图标,再点击你所想要使用的Recipe就可以编译了,如果用快捷键则默认使用第一条 Recipe 编译。或者也可以使用快捷键 Ctrl+Alt+V。
单击右上角的按钮即可打开 SumatraPDF 并预览。
4. 配置正向搜索
"latex-workshop.view.pdf.external.synctex": { "command": "E:/Programs/SumatraPDF/SumatraPDF.exe", "args": [ "-forward-search", "%TEX%", "%LINE%", "%PDF%" ] },
[公式] 添加代码进入设置区以配置正向搜索。“command”依旧是 SumatraPDF.exe 的存放位置,根据具体情况修改。
单击“SyncTeX from cursor”即可正向搜索。
可以看到,光标所在的行的内容在 PDF 中高亮显示。
5. 配置反向搜索
打开 SumatraPDF,进入设置->选项->设置反向搜索命令行
添加以下命令
"Code.exe" "resources\app\out\cli.js" -g "%f":"%l"
根据 VSCode 具体的安装位置将“Code.exe”和“resources\app\out\cli.js”换成 VSCode 在自己的电脑上的安装位置,例如:
"C:\Users\Marvey\AppData\Local\Programs\Microsoft VS Code\Code.exe" "C:\Users\Marvey\AppData\Local\Programs\Microsoft VS Code\resources\app\out\cli.js" -g "%f":"%l"
(感谢 @Macrofuns 指出,如果不加双引号,在文件路径有空格的情况下会导致无法反向搜索)
双击 PDF 中的任意一处即可跳转到 VSCode 中所对应的内容的源代码处。
这样 VSCode + texlive 就完全配置好了。
最好不要清理 xelatex 生成的 gz 后缀的临时文件,否则就不能进行正向和反向搜索;
之前的文章中,我提到了从 VSCode 预览按钮启动 SumatraPDF 会无法反向搜索的问题,现在已经解决,解决方法是在反向搜索命令中添加
"resources\app\out\cli.js"
解决方案来源:
https://link.zhihu.com/?target=https%3A//github.com/James-Yu/LaTeX-Workshop/issues/637%23issuecomment-473145503
6. 其他设置
LaTeX Workshop 默认保存的时候自动编译,如果不喜欢这个设置,可以添加以下代码进入设置区:
"latex-workshop.latex.autoBuild.run": "never",
附录
// LaTeX "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "%DOCFILE%" ] }, { "name": "pdflatex", "command": "pdflatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOCFILE%" ] }, { "name": "bibtex", "command": "bibtex", "args": [ "%DOCFILE%" ] } ], "latex-workshop.latex.recipes": [ { "name": "xelatex", "tools": [ "xelatex" ] }, { "name": "xe->bib->xe->xe", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] }, { "name": "pdflatex", "tools": [ "pdflatex" ] } ], "latex-workshop.view.pdf.viewer": "external", "latex-workshop.view.pdf.external.command": { // ********** "command": "C:/Program Files/SumatraPDF/SumatraPDF.exe", // 注意修改路径 "args": [ // ********** "%PDF%" ] }, "latex-workshop.view.pdf.external.synctex": { // ********** "command": "C:/Program Files/SumatraPDF/SumatraPDF.exe", // 注意修改路径 "args": [ // ********** "-forward-search", "%TEX%", "%LINE%", "%PDF%" ] },
推荐教程:vscode教程
以上是如何使用VSCode編寫LaTeX?的詳細內容。更多資訊請關注PHP中文網其他相關文章!