2

I am working on a .tex file inside Visual Studio Code with the Latex Workshop extension installed. I get following error message when I want Latex to compile .svg files for me, following this post

You didn't enable `shell escape' (or `write18')

I tried to add '--shell-escape', '-shell-escape', '-enable-write18' to the arguments that are passed to the pdflatex tool in my settings.json with no effect...

"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": {}
    }
]
8
  • move --shell-escape to be before %DOC% with the other options like -file0line-error – David Carlisle Nov 15 '19 at 21:05
  • tried it, the error remains – shintobi Nov 15 '19 at 21:16
  • well on the commandline you want pdflatex -interaction=nonstopmode --shell-escape myfile.tex the filename has to come last. Show the form you used I assume you need a comma between the arguments, looking at your existing setup – David Carlisle Nov 15 '19 at 21:18
  • like this? magic argument settings – shintobi Nov 15 '19 at 21:26
  • that image looks wrong you have the filename diplom.tex and the placeholder %DOC% which I assume expands to the filename again – David Carlisle Nov 15 '19 at 21:29
5

I got it working by modifying latexmk task which seems to be invoked by default (auto-update on file edit). No idea if that's correct, but it seems to be working, maybe it'd be helpful to somebody else.

"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": {}
    },
    ...
]
1
  • 1
    A quick way to get to these settings is via Cmd/Ctrl + Shift + P and Preferences: Open Settings (JSON) – Fuhrmanator Oct 24 '20 at 15:08
0

If the output is created using the AutoBuild feature (build upon file change), the Workshop extension is using a default recipe. This is by default the first recipe in latex-workshop.latex.recipes and set to latexmk upon installation.

To change this to pdflatex and have the changes to the pdflatex command in latex-workshop.latex.tools applied when saving the Latex file the next time, you can create a new recipe and move it to the top of latex-workshop.latex.recipes.

    {
        "name": "create pdf",
        "tools": [
            "pdflatex"
        ]
    },
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.