Vscode+Latex+SumatraPDF环境配置¶
约 845 个字 165 行代码 4 张图片 预计阅读时间 5 分钟
本次推文主要记录自己在 Vscode 中配置 Latex 环境 的过程,希望可以对正在频繁使用 Latex 的小伙伴有所帮助。
我接触 Latex 是在读研期间,刚开始主要用 Overleaf,不用下载任何软件,也不用配置任何环境,直接就能拿来用,但是编译速度真的很拉,可能是国内网络环境导致的,后来又接触了 Texstudio,本地化运行,编译更加稳定,速度也有所提升。
在如今 AI 遍地飞的时代,写代码总喜欢 AI 辅助,写的时候有一些联想,按下 Tad 键直接可以自动补全,利用各种插件的加持,使得过程更加丝滑、界面更美观,显然 Texstudio 已经不能满足我的需求。
这时在网上看到一些主流的 IDE 都是可以关联 Latex 的,那我就在最常用的 Vscode 中关联一下吧,将环境配置过程做了总结,要是你也想在 Vscode 中配置 Latex,不妨照着试一试~
主要支持:
- Latex 语法自动补全
- 与 Sumatra PDF 梦幻联动
- Vscode 中编译,Sumatra 预览
- 正向搜索,点击 Vscode 任意代码位置即可跳转Sumatra 相应位置
- 反向搜索,双击 PDF 任意位置即可跳转 Vscode 相应 Latex 代码位置
- 保存文件时自动编译
- 自动格式化 tex 代码
- 加速编译小技巧
软件安装部分就省略了,主要就是TeX Live 和 VSCode 的安装,这里假设你都已经安装好了,本文主要记录环境配置过程。
1 环境配置¶
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 后,点击右上角绿色小箭头即可编译
编译后可以直接在 Vscode 中进行预览,但是在较大文件时内部预览比较卡顿,这时可以利用 Sumatra PDF 进行实时预览,Sumatra PDF 是一款轻量级的 PDF 阅读软件(免费),启动速度极快,PDF 渲染速度也是极快。
可以左侧写 Latex 代码,右侧用 Sumatra PDF 预览,效果如下:
2 Sumatra PDF 环境配置¶
将下列代码加入配置文件中,注意<span class="underline">
每个人的安装路径不同,替换为自己的安装路径!
"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 中丝滑的写代码了。
3 进阶设置¶
3.1 保存后自动编译¶
如果我们不想每次编译都要点击右上角的小绿箭头,也可以在配置文件中加入:
现在就可以在 Vscode 中保存代码后自动编译了,效果如下:
3.2 格式化 Latex 代码¶
配置文件中加入:
"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 全盘搜索一下路径即可。
3.3 加速编译小技巧¶
当编译较大文档时,编译的时间将会变得很慢,这时,可以主文件开头加入:
加入这个命令后,将极大提升编译速度,同时会产生较大的内存,即不压缩PDF,可在最后编译时注释该命令。