vscode只有utf8_基于VSCode搭建LaTeX写作环境
前言
由于要進行畢業設計,配置了一套VSCode環境以便于“優雅的”書寫代碼和論文
LaTeX常用于排版學術論文,它可以讓我們專心于內容而不用費心于排版或字體。LateX有TeX Studio等類似于IDE一類的編輯器,但是總感覺這類工具功能的確完善,但總有些別扭(丑),加上一些其他因素,我就把注意打到了VSCode上,期望打造一個一體化的開發寫作環境。
內容
環境->基礎配置->正反向搜索
環境及版本
注意:未來的版本更新可能導致本文章失效- 操作系統:Windows 10
- Visual Studio Code 1.14.1
- Tex Live 2019(清華鏡像)
- LaTeX Workshop 8.6.0 (VSCode擴展)
- SumatraPDF (非必需,內置實現更好用,感謝 @曾旋 )
配置
首先在VSCode中安裝LaTeX Workshop
VSCode擴展之后進入首選項進行配置,找到擴展LaTeX中的Tools或Recipes,進入settings.json
首先配置工具和編譯鏈
將下方內容填充進settings.json:
如果實在不知道應當放在那里可以查一下settings.json的格式,本文最后會放上一個完整的配置"latex-workshop.latex.tools": [{// 編譯工具和命令"name": "pdflatex","command": "pdflatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","%DOCFILE%"]},{"name": "xelatex","command": "xelatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","-pdf","%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"]}]這里只是簡單配置了幾種編譯鏈,具體寫文章時應按需要到這里配置新的編譯鏈。
此時可以新建tex文件,嘗試一下編譯生成pdf了,保存文件時會自動編譯,點擊右上方的預覽按鈕查看pdf,默認使用內置窗口。
%test.tex documentclass[UTF8]{ctexart} begin{document} 你好,world! end{document}根據我上方的配置文件,默認采用xelatex編譯。可以在左面LaTeX面板中看到配置的編譯鏈。
或者在命令面板Ctrl+Shift+P中選擇Build with recipe
至此,一個簡易的LaTeX寫作環境已經搭建完成,還需要根據需要再自定義編譯工具和工具鏈。
通過內置PDF瀏覽器實現正反向搜索
感謝評論區提示。
通過SumatraPDF實現正反向搜索(不推薦)
最開始并不打算使用外置PDF閱讀器,但內置PDF只能實現正向搜索,而Adobe Acrobat又不支持SyncTex,只能采用開源的SumatraPDF。
由于VSCode的子進程機制導致現在使用反向搜索有點奇怪,要么必須從VSCode右上角的預覽按鈕啟動閱讀器,要么必須自己啟動PDF。下面會將兩種配置寫在一起供自己選擇,配置里帶cli.js的語句是只能在VSCode內啟動預覽,不帶cli的必須在外面啟動PDF閱讀器,注釋掉其中一句就行。這個問題具體可見Github上的issue:Synctex inverse search doesn't work half the time
打開VSCode的settings.json,加入以下內容:
注意下面所有的路徑要修改為自己設備上的安裝目錄 "latex-workshop.view.pdf.viewer": "external", "latex-workshop.view.pdf.external.viewer.command": "D:/SumatraPDF/SumatraPDF.exe", // 注意修改路徑"latex-workshop.view.pdf.external.viewer.args": ["%PDF%"],"latex-workshop.view.pdf.external.synctex.command": "D:/SumatraPDF/SumatraPDF.exe", // 注意修改路徑"latex-workshop.view.pdf.external.synctex.args": ["-forward-search","%TEX%","%LINE%","-reuse-instance","-inverse-search",//""D:Microsoft VS CodeCode.exe" -r -g "%f:%l"", //無cli版本,需外界啟動""D:Microsoft VS CodeCode.exe" "D:Microsoft VS Coderesourcesappoutcli.js" -r -g "%f:%l"", //有cli,必須內部啟動"%PDF%"]之后在SumatraPDF的設置中,設定反向搜索命令行,要和剛才的cli選擇一致,注意更換安裝目錄
有cli.js:
"D:Microsoft VS CodeCode.exe" "D:Microsoft VS Coderesourcesappoutcli.js" -r -g "%f:%l"無cli.js:
"D:Microsoft VS CodeCode.exe" -r -g "%f:%l"配置完之后最好將兩個軟件全關掉,使用“正常(妥協)的方法”:
- 命令行有cli的在VSCode內啟動預覽
- 沒有cli的自行打開SumatraPDF
之后就能享受到正反向搜索了,正向在VSCode內的快捷鍵為Crtl+Alt+J,反向在SumatraPDF內雙擊內容即可。
如果之后反向搜索功能間歇性抽搐的話還是要重啟一下應用看看是不是沒有用“正確的方法”。
總結
VSCode的擴展性的確很強,盡管在反向搜索上有點問題,但不影響它的主要功能,不需要反向搜索用內置的分屏瀏覽也完全足夠。
在Windows上如果想要有更好的體驗可以將編輯器的中文字體更換一下,這里推薦一個更紗黑體,其他操作系統也可以參考一下,畢竟VSCode是全平臺的編輯器,只不過反向搜索的SumatraPDF只有Windows版,其他操作系統需要尋找替代品。
這里再放一個完整的配置:
"latex-workshop.view.pdf.viewer": "external", "latex-workshop.view.pdf.external.viewer.command": "D:/SumatraPDF/SumatraPDF.exe", // 注意修改路徑"latex-workshop.view.pdf.external.viewer.args": ["%PDF%"],"latex-workshop.view.pdf.external.synctex.command": "D:/SumatraPDF/SumatraPDF.exe", // 注意修改路徑"latex-workshop.view.pdf.external.synctex.args": ["-forward-search","%TEX%","%LINE%","-reuse-instance","-inverse-search",//""D:Microsoft VS CodeCode.exe" -r -g "%f:%l"", //無cli版本,需外界啟動""D:Microsoft VS CodeCode.exe" "D:Microsoft VS Coderesourcesappoutcli.js" -r -g "%f:%l"", //有cli,必須內部啟動"%PDF%"],"latex-workshop.latex.tools": [{// 編譯工具和命令"name": "pdflatex","command": "pdflatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","%DOCFILE%"]},{"name": "xelatex","command": "xelatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","-pdf","%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"]}]總結
以上是生活随笔為你收集整理的vscode只有utf8_基于VSCode搭建LaTeX写作环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乌鲁木齐公园悦府林香苑是哪个开发商?
- 下一篇: 乌鲁木齐万科都会传奇三期是哪个开发商?