本次推文主要记录自己在 Vscode 中配置 Latex 环境的过程,希望可以对正在频繁使用 Latex 的小伙伴有所帮助。
我接触 Latex 是在读研期间,刚开始主要用 Overleaf,不用下载任何软件,也不用配置任何环境,直接就能拿来用,但是编译速度真的很拉,可能是国内网络环境导致的,后来又接触了 Texstudio,本地化运行,编译更加稳定,速度也有所提升。
在如今 AI 遍地飞的时代,写代码总喜欢 AI 辅助,写的时候有一些联想,按下 Tad 键直接可以自动补全,利用各种插件的加持,使得过程更加丝滑、界面更美观,显然 Texstudio 已经不能满足我的需求。
这时在网上看到一些主流的 IDE 都是可以关联 Latex 的,那我就在最常用的 Vscode 中关联一下吧,将环境配置过程做了总结,要是你也想在 Vscode 中配置 Latex,不妨照着试一试~
主要支持:
软件安装部分就省略了,主要就是TeX Live 和 VSCode 的安装,这里假设你都已经安装好了,本文主要记录环境配置过程。
Vscode 中安装Latex Workshop 插件,打开设置中的配置文件
//------------------------------LaTeX 配置----------------------------------
//右键菜单
"latex-workshop.showContextMenu":true,
//从使用的包中自动补全命令和环境
"latex-workshop.intellisense.package.enabled":true,
//编译出错时设置是否弹出气泡设置
"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":"latexmk",
"command":"latexmk",
"args":[
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env":{}
},
{
"name":"lualatex",
"command":"lualatex",
"args":[
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-shell-escape",//这个命令行在网上的Latex Workshop设置里一般没有,所以直接recipe会报错
"%DOCFILE%"
]
},
{
"name":"bibtex",
"command":"bibtex",
"args":[
"%DOCFILE%"
]
},
{
"name":"biber",
"command":"biber",
"args":[
"%DOCFILE%"
]
}
],
// 用于配置编译链
"latex-workshop.latex.recipes":[
{
"name":"XeLaTeX",
"tools":[
"xelatex"
]
},
{
"name":"PDFLaTeX",
"tools":[
"pdflatex"
]
},
{
"name":"xelatex -> bibtex -> xelatex*2",
"tools":[
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name":"xelatex -> biber -> xelatex*2",
"tools":[
"xelatex",
"biber",
"xelatex",
"xelatex"
]
},
{
"name":"pdflatex -> bibtex -> pdflatex*2",
"tools":[
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
}
],
//文件清理。此属性必须是字符串数组
"latex-workshop.latex.clean.fileTypes":
[
"*.aux",//包含有关文档交叉引用、标签和参考文献等信息
"*.bbl",//用于管理文献引用和参考文献列表
"*.blg",
"*.idx",
"*.ind",
"*.lof",//插图目录
"*.lot",
"*.out",
"*.toc",//目录
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
],
//设置为onFaild 在构建失败后清除辅助文件
"latex-workshop.latex.autoClean.run":"onFailed",
// 使用上次的recipe编译组合
"latex-workshop.latex.recipe.default":"lastUsed",
"latex-workshop.synctex.indicator":"circle",//正向搜索显示
"latex-workshop.view.pdf.internal.synctex.keybinding":"double-click",//双击反向搜索
"editor.wordWrap":"on",
"editor.renderControlCharacters":false,
"security.workspace.trust.untrustedFiles":"newWindow",//
"files.autoSave":"afterDelay",// 自动保存
重启 Vscode 后,点击右上角绿色小箭头即可编译
可以左侧写 Latex 代码,右侧用 Sumatra PDF 预览,效果如下:
将下列代码[2]加入配置文件中,注意每个人的安装路径不同,替换为自己的安装路径!
"latex-workshop.view.pdf.viewer":"external",
"latex-workshop.view.pdf.ref.viewer":"external",
"latex-workshop.view.pdf.external.viewer.command":"C:/APP/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.viewer.args":[
"%PDF%"
],
"latex-workshop.view.pdf.external.synctex.command":"C:/APP/SumatraPDF/SumatraPDF.exe",//定位
"latex-workshop.view.pdf.external.synctex.args":[
"-forward-search",
"%TEX%",
"%LINE%",
"%PDF%"],
然后在SumatraPDF 的设置中的高级选项里面插入以下代码,这里以个人 Vscode 安装位置为准
InverseSearchCmdLine = "D:\APP\Microsoft VS Code\Code.exe""D:\APP\Microsoft VS Code\resources\app\out\cli.js" --ms-enable-electron-run-as-node -r -g "%f":"%l"
EnableTeXEnhancements = true
经过以上配置,就可以在 Vscode 中丝滑的写代码了。
如果我们不想每次编译都要点击右上角的小绿箭头,也可以在配置文件中加入:
"latex-workshop.latex.autoBuild.run":"onSave",
现在就可以在 Vscode 中保存代码后自动编译了,效果如下:
配置文件中加入:
"latex-workshop.formatting.latex":"latexindent",
"latex-workshop.formatting.latexindent.path":"D:\\APP\\texlive\\2024\\bin\\windows\\latexindent.exe",//替换自己的路径
"editor.formatOnSave":true
一般情况下在安装 TexLive 后会,已经包含了 latexindent.exe,只需要用 Everything 全盘搜索一下路径即可。
当编译较大文档时,编译的时间将会变得很慢,这时,可以主文件开头加入:
\special{dvipdfmx:config z 0}
加入这个命令后,将极大提升编译速度,同时会产生较大的内存,即不压缩PDF,可在最后编译时注释该命令。