如何启用“shell escape”(或“write18”)-Visual Studio Code(Latex Workshop 扩展)

如何启用“shell escape”(或“write18”)-Visual Studio Code(Latex Workshop 扩展)

我在安装了 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 扩展常见问题解答了解更多信息。

  1. 打开settings.json(例如cmd/ctrl + shift + PPreferences: Open Settings (JSON)在命令框中输入)
  2. 找到与 对应的条目latex-workshop.latex.tools。如果它不可见,请开始将其作为新条目输入,VSCode 将取消隐藏它。
  3. 添加"-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"
        ]
    },

相关内容