使用VSCode編寫LaTeX

許多人都是用texstudio或者winedt配合texlive編寫 \LaTeX 文檔,很長一段時間內texstudio是我惟一的編輯器,然而,顏控的我受不了那原始的界面,因而我看上了VSCode。漂亮、免費、開源是我選擇VSCode的主要緣由。git

網上有不少介紹VSCode+ \LaTeX 的文章,不過在配置外部閱讀器的介紹稍微有點少,我在網上找了好久纔在LaTeX Workshop做者的github主頁上找到方法,同時也萌發了寫一篇教程的想法。github

本文主要介紹使用VSCode編寫簡單的文檔以及設置外部PDF閱讀器的方法。編輯器

安裝texlive工具

加載texlive 2018的iso文件,ui

\triangle 右鍵install-tl-advanced.bat,單擊以管理員身份運行,進入高級安裝界面。插件

\triangle 能夠在「選擇安裝方案」和「Installation collections」選擇須要安裝的功能,TEXDIR修改安裝目錄。3d

\triangle 不少宏包和功能我我的並不須要,所以我在這裏取消勾選,你們能夠根據須要勾選本身須要的功能,若是嫌麻煩所有安裝也能夠,並不消耗多少空間。code

\triangle 等待安裝完成。orm

安裝VSCode上的 \LaTeX 插件blog

與此同時,下載VSCode並安裝,VSCode的安裝很簡單,這裏就不嘮叨了。

\triangle VSCode安裝完成以後,在擴展商店安裝LaTeX Workshop插件。

安裝完成後,隨便打開一個tex源文件,

\triangle 能夠看到,代碼已經被高亮顯示。

配置VSCode

將如下代碼放入VSCode的設置區內。

"latex-workshop.latex.tools": [
    {
        // 編譯工具和命令
        "name": "xelatex",
        "command": "xelatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "%DOC%"
        ]
    },
    {
        "name": "pdflatex",
        "command": "pdflatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%DOC%"
        ]
    },
    {
        "name": "bibtex",
        "command": "bibtex",
        "args": [
            "%DOCFILE%"
        ]
    }
],

\triangle LaTeX Workshop默認的編譯工具是latexmk,你們根據須要修改所需的工具和命令,我不須要用到latexmk,所以我把其修改成中文環境最經常使用的xelatex,你們根據需求自行修改。

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

\triangle 用於配置編譯鏈,一樣地放入設置區。第一個recipe爲默認的編譯工具,如須要使用bibtex可在編譯時單擊VSCode界面左下角的小勾,單擊「Build LaTeX project」,選擇「xe->bib->xe->xe」,或者直接將「xe->bib->xe->xe」的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%"
    ]
},

\triangle 「viewer」設置閱讀器爲外置閱讀器,「command」爲SumatraPDF.exe的路徑,根據具體狀況修改。

如今就可使用VSCode編譯tex文件並以SumatraPDF爲閱讀器預覽了。

\triangle 右鍵編輯器空白處,單擊「Build LaTeX project」(可更改快捷鍵)就能夠以默認編譯工具xelatex編譯文件。

\triangle 單擊右上角的按鈕便可打開SumatraPDF並預覽。

正向搜索

"latex-workshop.view.pdf.external.synctex": {
    "command": "E:/Programs/SumatraPDF/SumatraPDF.exe",
    "args": [
        "-forward-search",
        "%TEX%",
        "%LINE%",
        "%PDF%"
    ]
},

\triangle 添加代碼進入設置區以配置正向搜索。「command」依舊是SumatraPDF.exe的存放位置,根據具體狀況修改。

\triangle 右鍵文件空白處,單擊「SyncTeX from cursor」便可正向搜索。

\triangle 能夠看到,光標所在的行的內容在PDF中高亮顯示。

反向搜索

打開SumatraPDF,進入設置->選項

\triangle 填入Code.exe的所在位置,另外添加如下命令

-g "%f:%l"

(感謝 

@Macrofuns

 指出,若是不加雙引號,在文件路徑有空格的狀況下會致使沒法反向搜索)

雙擊PDF中的任意一處便可跳轉到VSCode中所對應的內容的源代碼處。

這樣VSCode+texlive就徹底配置好了。

注意事項

  1. 若是經過VSCode編輯器內預覽按鈕打開SumatraPDF閱讀器則沒法進行反向搜索,如須要進行搜索,請先單獨打開SumatraPDF,再經過預覽按鈕預覽PDF;
  2. 最好不要清理xelatex生成的gz後綴的臨時文件,不然就不能進行正向和反向搜索;

對於問題1,LaTeX Workshop的做者給出瞭解釋:

Synctex inverse search doesn't work half the time (and How I got forward search to work for SumatraPDF) · Issue #637 · James-Yu/LaTeX-Workshop​github.com圖標

簡單地說,這是由於經過VSCode中預覽按鈕啓動的SumatraPDF是做爲VSCode的一個子進程運行的,這樣就沒法反過來調用Code.exe(後面這句是我猜的)。

這種問題目前沒法在插件層面解決,做者給出了一種解決方案,

使用CMD做爲命令而SumatraPDF.exe做爲參數,不過這種方法我尚未搞成功。

其餘設置

  • LaTeX Workshop默認保存的時候編譯,若是不喜歡這個設置,能夠添加如下代碼進入設置區:
"latex-workshop.latex.autoBuild.onSave.enabled": false,
  • latex-formatter是一款用於格式化 \LaTeX 代碼的插件,有須要能夠安裝。
相關文章
相關標籤/搜索