配置 LaTeX-Workshop¶
{
"ltex.additionalRules.enablePickyRules": false,
"ltex.additionalRules.motherTongue": "zh-CN",
"ltex.language": "en-US",
"ltex.checkFrequency": "edit",
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
],
"env": {}
}
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": ["latexmk"]
},
{
"name": "PDFLaTeX",
"tools": ["pdflatex"]
}
],
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.latex.outDir": "build",
"latex-workshop.synctex.afterBuild.enabled": true,
"latex-workshop.linting.chktex.enabled": false,
"latex-workshop.linting.lacheck.enabled": false,
"latex-workshop.latexindent.args": [
"-c",
"%DIR%/",
"%TMPFILE%",
"-m",
"-l",
"%WORKSPACE_FOLDER%/.latexindent.yaml"
],
"[latex]": {
"editor.formatOnSave": false, // formatOnSave slows down everything that needs saving
"editor.wordBasedSuggestions": false
},
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 2500,
"files.insertFinalNewline": true,
"editor.wordWrap": "bounded",
"editor.rulers": [80],
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true
}
使用了 LTeX、LaTeX Workshop 在 VS Code 中支持 \(\mathrm{\LaTeX}\) 语法,基本已经完美,但美中不足的是,$ 没有自动配对!经过一番探索,除了使用 Code 自带的 code-snippet 功能(多少有点累赘)外,目前(2022/11/03)可以通过修改 LaTeX Workshop 源码中的配置文件实现,之后可能会有原生支持这个功能。
VS Code 默认将扩展都放在 ~/.vscode/extensions 文件夹下(可以通过命令行选项 --extension-dir 修改),LaTeX Workshop 的文件放在 .vscode/extensions/james-yu.latex-workshop-8.29.0 下(版本号可能不同)。在该目录下,找到 syntax 目录,里面就是插件对语言的新增定义。打开 latex-language-configuration.json 文件,将 autoClosingPair 按照如下方式修改:
{
// 省略
"autoClosingPairs": [
// 省略
["{", "}"],
["[", "]"],
["(", ")"],
["`", "'"], // 不要忘了逗号
["$", "$"] // 新增
]
// 省略
}
也就是在 autoClosingPairs 数组中加上 ["$", "$"] 一项,就可以了。重启 VS Code,在 \(\rm{\LaTeX}\) 代码中$ 就可以自动配对了。
废话几句,这个功能已经有人求了五年了1。不是技术上不可行,而是这样的话,所有用户的 $ 都会自动配对且用户不能取消配对。用户自己选择 $ 配对是否生效的权利,是 VS Code 的 API 提供的。VS Code 迟迟没有提供类似的 API……