我在安装了 Latex Workshop 扩展的 Visual Studio Code 中处理 .tex 文件。当我想让 Latex 为我编译 .svg 文件时,我收到以下错误消息:这个帖子
You didn't enable `shell escape' (or `write18')
我尝试在传递给我的 settings.json 中的 pdflatex 工具的参数中添加“--shell-escape”、“-shell-escape”、“-enable-write18”,但没有任何效果......
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%",
"--shell-escape"
],
"env": {}
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
],
"env": {}
}
]
答案1
我通过修改让它工作latexmk该任务似乎默认调用(文件编辑时自动更新)。
查看LaTeX Workshop 扩展常见问题解答了解更多信息。
- 打开
settings.json
(例如cmd/ctrl + shift + P
,Preferences: Open Settings (JSON)
在命令框中输入) - 找到与 对应的条目
latex-workshop.latex.tools
。如果它不可见,请开始将其作为新条目输入,VSCode 将取消隐藏它。 - 添加
"-shell-escape",
到参数。
例子:
"latex-workshop.latex.tools": [
...
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-shell-escape", // <---- added this line
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
...
]
答案2
如果使用 AutoBuild 功能(根据文件更改构建)创建输出,则 Workshop 扩展使用默认配方。默认情况下,这是 latex-workshop.latex.recipes 中的第一个配方,并在安装时设置为 latexmk。
要将其更改为 pdflatex,并在下次保存 Latex 文件时应用对 latex-workshop.latex.tools 中的 pdflatex 命令的更改,您可以创建一个新的配方并将其移动到 latex-workshop.latex.recipes 的顶部。
{
"name": "create pdf",
"tools": [
"pdflatex"
]
},