這篇文章將為大家詳細(xì)講解有關(guān)使用VSCode編寫LaTeX的方法,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)2013年至今,先為陽谷等服務(wù)建站,陽谷等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陽谷企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。許多人都是用 texstudio 或者 winedt 配合 texlive 編寫 文檔,很長一段時間內(nèi) texstudio 是我的編輯器,然而,顏控的我受不了那原始的界面,于是我看上了 VSCode。漂亮、免費(fèi)、開源是我選擇 VSCode 的主要原因。
網(wǎng)上有很多介紹 VSCode + 的文章,不過在配置外部閱讀器的介紹稍微有點(diǎn)少,我在網(wǎng)上找了很久才在 LaTeX Workshop 作者的 github 主頁上找到方法,同時也萌發(fā)了寫一篇教程的想法。
本文主要介紹使用 VSCode 編寫簡單的文檔以及設(shè)置外部PDF閱讀器的方法。
如果你已經(jīng)安裝好了 texlive、VSCode 和 SumatraPDF,并且不想看完整篇文章,只想快點(diǎn)上手,請翻到文章末尾的附錄,將代碼全部復(fù)制到 VSCode 的設(shè)置里,然后再根據(jù)第5節(jié)設(shè)置一下反向搜索就可以使用了。
1. 安裝 texlive
加載 texlive 2019 的 iso 文件,
右鍵 install-tl-windows,單擊以管理員身份運(yùn)行,進(jìn)入安裝界面。
可以點(diǎn)擊“Advanced”進(jìn)入高級安裝來取消你不需要安裝的宏包。
點(diǎn)擊“Customize”來取消勾選不需要的宏包。
很多宏包和功能我個人并不需要,因此我在這里取消勾選,大家可以根據(jù)需要勾選自己需要的功能,如果嫌麻煩全部安裝也可以,并不消耗多少空間。
設(shè)置完安裝路徑等選項之后點(diǎn)擊“安裝”,之后靜坐 20 分鐘等待安裝完成。
2. 安裝 VSCode 上的 [公式] 插件
與此同時,下載 VSCode 并安裝,VSCode 的安裝很簡單,這里就不嘮叨了。
VSCode 安裝完成之后,在擴(kuò)展商店安裝 LaTeX Workshop 插件。
安裝完成后,隨便打開一個 tex 源文件,
可以看到,代碼已經(jīng)被高亮顯示。
3. 配置 VSCode 的 [公式] 插件
將以下代碼放入 VSCode 的設(shè)置區(qū)內(nèi)。
"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 默認(rèn)的編譯工具是 latexmk,大家根據(jù)需要修改所需的工具和命令,我不需要用到 latexmk,因此我把其修改為中文環(huán)境常用的 xelatex,大家根據(jù)需要自行修改。(感謝 @huan Yu ,將 tools 中的 %DOC%替換成%DOCFILE%就可以支持中文路徑下的文件了)
"latex-workshop.latex.recipes": [ { "name": "xelatex", "tools": [ "xelatex" ] }, { "name": "xe->bib->xe->xe", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] } ],
[公式] 用于配置編譯鏈,同樣地放入設(shè)置區(qū)。第一個 recipe 為默認(rèn)的編譯工具,如需要使用 bibtex 可在編譯時單擊 VSCode 界面左下角的小勾,單擊“Build LaTeX project”,選擇“xe->bib->xe->xe”,另外的方法是使用右側(cè)欄,或者直接將“xe->bib->xe->xe”的Recipe 放到第一位,就可以作為默認(rèn) Recipe 編譯了,但因?yàn)榫幾g次數(shù)比較多,速度會比較慢。大家可以根據(jù)需要自行按照格式添加自己需要的編譯鏈。
要使用 pdflatex,只需在 tex 文檔首加入以下代碼:
%!TEX program = pdflatex
要使用 SumatraPDF 預(yù)覽編譯好的PDF文件,添加以下代碼進(jìn)入設(shè)置區(qū)。
"latex-workshop.view.pdf.viewer": "external", "latex-workshop.view.pdf.external.command": { "command": "E:/Programs/SumatraPDF/SumatraPDF.exe", "args": [ "%PDF%" ] },
[公式] “viewer”設(shè)置閱讀器為外置閱讀器,“command”為 SumatraPDF.exe 的路徑,根據(jù)具體情況修改。
現(xiàn)在就可以使用 VSCode 編譯 tex 文件并以 SumatraPDF 為閱讀器預(yù)覽了。
插件經(jīng)過幾次更新之后已經(jīng)去掉了右鍵菜單選項,選項被移動到了右側(cè)欄。點(diǎn)擊右側(cè)欄的 圖標(biāo),再點(diǎn)擊你所想要使用的Recipe就可以編譯了,如果用快捷鍵則默認(rèn)使用第一條 Recipe 編譯?;蛘咭部梢允褂每旖萱I Ctrl+Alt+V。
單擊右上角的按鈕即可打開 SumatraPDF 并預(yù)覽。
4. 配置正向搜索
"latex-workshop.view.pdf.external.synctex": { "command": "E:/Programs/SumatraPDF/SumatraPDF.exe", "args": [ "-forward-search", "%TEX%", "%LINE%", "%PDF%" ] },
[公式] 添加代碼進(jìn)入設(shè)置區(qū)以配置正向搜索?!癱ommand”依舊是 SumatraPDF.exe 的存放位置,根據(jù)具體情況修改。
單擊“SyncTeX from cursor”即可正向搜索。
可以看到,光標(biāo)所在的行的內(nèi)容在 PDF 中高亮顯示。
5. 配置反向搜索
打開 SumatraPDF,進(jìn)入設(shè)置->選項->設(shè)置反向搜索命令行
添加以下命令
"Code.exe" "resources\app\out\cli.js" -g "%f":"%l"
根據(jù) 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 指出,如果不加雙引號,在文件路徑有空格的情況下會導(dǎo)致無法反向搜索)
雙擊 PDF 中的任意一處即可跳轉(zhuǎn)到 VSCode 中所對應(yīng)的內(nèi)容的源代碼處。
這樣 VSCode + texlive 就完全配置好了。
好不要清理 xelatex 生成的 gz 后綴的臨時文件,否則就不能進(jìn)行正向和反向搜索;
之前的文章中,我提到了從 VSCode 預(yù)覽按鈕啟動 SumatraPDF 會無法反向搜索的問題,現(xiàn)在已經(jīng)解決,解決方法是在反向搜索命令中添加
"resources\app\out\cli.js"
解決方案來源:
https://link.zhihu.com/?target=https%3A//github.com/James-Yu/LaTeX-Workshop/issues/637%23issuecomment-473145503
6. 其他設(shè)置
LaTeX Workshop 默認(rèn)保存的時候自動編譯,如果不喜歡這個設(shè)置,可以添加以下代碼進(jìn)入設(shè)置區(qū):
"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%" ] },
關(guān)于使用VSCode編寫LaTeX的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。