首頁 >開發工具 >VSCode >淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法

青灯夜游
青灯夜游轉載
2021-03-04 10:58:037176瀏覽

本篇文章跟大家介紹一下VSCode配置LaTeX,使用VSCode來寫LaTeX的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談VSCode配置LaTeX編輯器的方法

相關推薦:《vscode教學

許多人都是用texstudio 或winedt 配合texlive 寫淺談VSCode配置LaTeX編輯器的方法 文檔,很長一段時間內texstudio 是我唯一的編輯器,然而,顏控的我受不了那原始的介面,於是我看上了VSCode。漂亮、免費、開源是我選擇 VSCode 的主要原因。

網路上有很多介紹VSCode 淺談VSCode配置LaTeX編輯器的方法 的文章,不過在設定外部閱讀器的介紹稍微有點少,我在網路上找了很久才在LaTeX Workshop 作者的github 主頁上找到方法,同時也萌發了寫一篇教學的想法。

本文主要介紹使用 VSCode 撰寫簡單的文件以及設定外部PDF閱讀器的方法。

如果你已經安裝好了texlive、VSCode 和SumatraPDF,並且不想看完整篇文章,只想快點上手,請翻到文章末尾的附錄,將程式碼全部複製到VSCode 的設置裡,然後把「...」的地方替換成軟體在自己電腦上的路徑,然後就可以使用了。

1. 安裝texlive

可以從下列網址下載texlive 的映像檔:

mirrors.huaweicloud.com

##https://mirrors.aliyun.com/CTAN##/systems/texlive/Images/其他高校的開源鏡像站像清華、中科大也可以,但是速度上我感覺還是華為雲和阿里雲的更快一點。

載入texlive 2020 的iso 文件,

淺談VSCode配置LaTeX編輯器的方法

右鍵install-tl-windows,點擊以管理員身份運行,進入安裝介面,點擊左下角的「Advanced」進入進階安裝來取消你不需要安裝的巨集包。

淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法

點選「Customize」來取消勾選不需要的巨集套件。

淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法

單是把非中英的語言包取消勾選可以省掉 1G 的空間,要是嫌麻煩全部安裝也可以。

淺談VSCode配置LaTeX編輯器的方法安裝介面右下角可選擇是否安裝 TeXworks 編輯器,我覺得既然都來看這篇文章了,那這個應該可以不要了。設定完安裝路徑等選項後點選“安裝”,之後靜坐 20 分鐘 - 3 小時等待安裝完成。

2. 安裝VSCode 上的

外掛程式淺談VSCode配置LaTeX編輯器的方法與此同時,下載VSCode 並安裝,VSCode 的安裝很簡單,這裡就不嘮叨了。

淺談VSCode配置LaTeX編輯器的方法

VSCode 安裝完成之後,在擴充功能商店安裝 LaTeX Workshop 外掛程式。

淺談VSCode配置LaTeX編輯器的方法安裝完成後,隨便開啟一個 tex 來源文件,

#

淺談VSCode配置LaTeX編輯器的方法 可以看到,程式碼已經被高亮顯示。

3. 配置VSCode 的 淺談VSCode配置LaTeX編輯器的方法插件

在VSCode 介面下按下F1,然後鍵入“setjson”,點擊“首選項: 開啟設定(JSON)”,

淺談VSCode配置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%"
        ]
    }
],

淺談VSCode配置LaTeX編輯器的方法 LaTeX Workshop 預設的編譯工具是latexmk ,大家根據需要修改所需的工具和指令,我不需要用到latexmk,因此我把其修改為中文環境常用的xelatex,大家根據需要自行修改。 (感謝@huan Yu ,將tools 中的%DOC%替換成%DOCFILE%就可以支援編譯中文路徑下的檔案了

"latex-workshop.latex.recipes": [
    {
        "name": "xelatex",
        "tools": [
            "xelatex"
        ],
    },
    {
        "name": "pdflatex",
        "tools": [
            "pdflatex"
        ]
    },
    {
        "name": "xe->bib->xe->xe",
        "tools": [
            "xelatex",
            "bibtex",
            "xelatex",
            "xelatex"
        ]
    },
    {
        "name": "pdf->bib->pdf->pdf",
        "tools": [
            "pdflatex",
            "bibtex",
            "pdflatex",
            "pdflatex"
        ]
    }],

淺談VSCode配置LaTeX編輯器的方法 用來設定編譯鏈,同樣地放入設定區。第一個recipe 為預設的編譯工具,如需要使用bibtex 可使用以下方法:

  • 在編譯時點選VSCode 介面左下角的小勾,點選「Build LaTeX project ”,選擇帶bib 的Recipe,也可使用快捷鍵快速選擇;

  • 將帶bib 的Recipe 放到第一位,就可以作為默認Recipe 編譯了,也可以但因為編譯次數比較多,速度會比較慢;

  • 在文件的開頭加上%!BIB program = bibtex

淺談VSCode配置LaTeX編輯器的方法

##要使用pdflatex,只需在tex 文件首加入以下程式碼:

%!TEX program = pdflatex
要使用SumatraPDF 預覽編譯好的PDF文件,新增以下程式碼進入設定區。

"latex-workshop.view.pdf.viewer": "external","latex-workshop.view.pdf.external.viewer.command": "C:/.../SumatraPDF.exe","latex-workshop.view.pdf.external.viewer.args": [
    "-forward-search",
    "%TEX%",
    "%LINE%",
    "-reuse-instance",
    "-inverse-search",
    "\"C:/.../Microsoft VS Code/Code.exe\" \"C:/.../Microsoft VS Code/resources/app/out/cli.js\" -gr \"%f\":\"%l\"",
    "%PDF%"],

“viewer”選擇使用外部閱讀器,“viewer.command”和“viewer.args”中有“...”的地方需要根據自己電腦上SumatraPDF 和VSCode 的安裝位置修改,記得把盤符也改了。 淺談VSCode配置LaTeX編輯器的方法

現在就可以使用 VSCode 編譯 tex 檔案並以 SumatraPDF 為閱讀器預覽了。

淺談VSCode配置LaTeX編輯器的方法

外掛程式經過幾次更新後已經去掉了右鍵選單選項,選項被移到左側欄了。點擊左側欄的 淺談VSCode配置LaTeX編輯器的方法 圖標,再點擊你所想要使用的 Recipe 就可以編譯了,如果用快捷鍵則預設使用第一條 Recipe 編譯。點選右上角的放大鏡按鈕或按 Ctrl Alt v 開啟 SumatraPDF 進行預覽。 淺談VSCode配置LaTeX編輯器的方法

4. 設定正向和反向搜尋
"latex-workshop.view.pdf.external.synctex.command": "C:/.../SumatraPDF.exe","latex-workshop.view.pdf.external.synctex.args": [
    "-forward-search",
    "%TEX%",
    "%LINE%",
    "-reuse-instance",
    "-inverse-search",
    "\"C:/.../Microsoft VS Code/Code.exe\" \"C:/.../Microsoft VS Code/resources/app/out/cli.js\" -gr \"%f\":\"%l\"",
    "%PDF%",],

新增程式碼進入設定區以配置正向搜索,和上面一樣,裡面「.. .」的部分結合自身情況修改(感謝@Macrofuns 指出,如果不加雙引號,在文件路徑有空格的情況下會導致無法反向搜索)。 淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法

點選「SyncTeX from cursor」即可正向搜尋。 淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法 可以看到,光标所在的行的内容在 PDF 中高亮显示(可以自己配置快捷键,我设置的是 Alt + S)。

淺談VSCode配置LaTeX編輯器的方法

淺談VSCode配置LaTeX編輯器的方法 在PDF中双击即可反向搜索

不要清理生成的名字中带 synctex 的文件,否则就不能进行正向和反向搜索;

之前的文章中,我提到了从 VSCode 预览按钮启动 SumatraPDF 会无法反向搜索的问题,现在已经解决,解决方法是在反向搜索命令中添加

"resources\app\out\cli.js"

解决方案来源:

https://github.com/James-Yu/LaTeX-Workshop/issues/637#issuecomment-473145503

这个方法目前有个 bug,SumatraPDF 要从 VSCode 中打开才能进行反向搜索,单独打开的 SumatraPDF 在进行反向搜索时会跳转到 VSCode 的配置文件 cli.js。

6. 快捷键设置

在 VSCode 界面下按下 F1,键入“keyjson”,选择“打开键盘快捷方式(JSON)”,然后把以下代码放入:

{
    "key": "alt+s",
    "command": "latex-workshop.synctex",
    "when": "editorTextFocus && !isMac"},{
    "key": "alt+b",
    "command": "latex-workshop.build",
    "when": "editorTextFocus && !isMac"},{
    "key": "alt+t",
    "command": "latex-workshop.kill",
    "when": "editorTextFocus && !isMac"},{
    "key": "alt+e",
    "command": "latex-workshop.recipes"},

这段代码的意义是将 Alt+s 绑定到正向搜索,将 Alt+b 绑定到使用默认 recipe 编译,将 Alt+t 绑定到终止编译,将 Alt+e 绑定到选择其他 recipe 编译,可以自行更换为适合自己的快捷键,只需修改“key”那一项即可。

7. 其他设置

  • LaTeX Workshop 默认保存的时候自动编译,如果不喜欢这个设置,可以添加以下代码进入设置区:
"latex-workshop.latex.autoBuild.run": "never",
  • 如果编译出错,插件会弹出两个很烦人的气泡,不喜欢的话可以在设置中添加以下代码:
"latex-workshop.message.error.show": false,"latex-workshop.message.warning.show": false,

附录

注意:只需把以下代码放入设置区的方括号里,不要删去方括号,不要忘记替换软件的路径。

// LaTeX
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,

"latex-workshop.latex.tools": [
    {
        "name": "xelatex",
        "command": "xelatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%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": "pdflatex",
        "tools": [
            "pdflatex"
        ]
    },
    {
        "name": "xe->bib->xe->xe",
        "tools": [
            "xelatex",
            "bibtex",
            "xelatex",
            "xelatex"
        ]
    },
    {
        "name": "pdf->bib->pdf->pdf",
        "tools": [
            "pdflatex",
            "bibtex",
            "pdflatex",
            "pdflatex"
        ]
    }
],
"latex-workshop.view.pdf.viewer": "external",

"latex-workshop.view.pdf.external.viewer.command": "C:/.../SumatraPDF.exe",
"latex-workshop.view.pdf.external.viewer.args": [
    "-forward-search",
    "%TEX%",
    "%LINE%",
    "-reuse-instance",
    "-inverse-search",
    "\"C:/.../Microsoft VS Code/Code.exe\" \"C:/.../Microsoft VS Code/resources/app/out/cli.js\" -gr \"%f\":\"%l\"",
    "%PDF%"
],

"latex-workshop.view.pdf.external.synctex.command": "C:/.../SumatraPDF.exe",
"latex-workshop.view.pdf.external.synctex.args": [
    "-forward-search",
    "%TEX%",
    "%LINE%",
    "-reuse-instance",
    "-inverse-search",
    "\"C:/.../Microsoft VS Code/Code.exe\" \"C:/.../Microsoft VS Code/resources/app/out/cli.js\" -gr \"%f\":\"%l\"",
    "%PDF%",
],

更多编程相关知识,请访问:编程视频!!

以上是淺談VSCode配置LaTeX編輯器的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:zhihu.com。如有侵權,請聯絡admin@php.cn刪除