使用 TeXstudio 和 MikTeX 外部化 TikZ

使用 TeXstudio 和 MikTeX 外部化 TikZ

我遇到了与之前写到的相同的问题,但外部化不起作用。我总是收到以下消息:

tikz: Sorry, the system call 'pdflatex -halt-on-error -interact

我尝试通过 输入一些来自 Matlab 的模拟结果matlab2tikz。如果我运行.tex文件时没有外部化,它就可以正常工作,但如果我写

\tikzexternalize[prefix=tikzfig/]

它不起作用了。

这是我的标题的一部分:

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\usepackage{tikz}
\usepackage{tikzscale}
\usepgfplotslibrary{external}
\tikzexternalize[prefix=tikzfig/]

我也看到了答案这里,但它仍然不起作用。

我正在使用 Miktex 和 Texstudio。dvips由于我正在使用,所以我也通过它进行编译psfrag。编译命令是:

pdflatex -shell-escape name

其中name只是文件名,没有文件扩展名,这里.tex

答案1

您收到的错误消息不完整。如果您从命令行调用 pdflatex,您将收到完整的错误消息:

! Package tikz Error: Sorry, the system call 'pdflatex -halt-on-error -interaction=batchmode -jobname "chapter-figure0" "\def\tikzexternalrealjob{chapter}\input{chapter}"' did NOT result in a usable output file 'chapter-figure0' (expected one of .pdf:.jpg:.jpeg:.png:).

您的问题有所不同,但您可能能够以类似的方式解决它。对我来说,手动运行“pdflatex -halt-on-error -interaction=batchmode -jobname "chapter-figure0" "\def\tikzexternalrealjob{chapter}\input{chapter}"”可以得到我需要的文件,但对于大量图片来说这并不令人满意。使用“\tracingall”进一步调试导致此错误:

\pgf@tempa ->pdflatex -halt-on-error -interaction=batchmode -jobname "chapter-figure0" "\def\tikzexternalrealjob{chapter}\input{chapter}" runsystem(pdflatex -halt-on-error -interaction=batchmode -jobname "chapter-figure0" "\def\tikzexternalrealjob{chapter}\input{chapter}")...disabled (restricted).

可以通过使用“--shell-escape”选项运行 pdflatex 来解决此问题。添加此选项的具体步骤取决于您的 tex 编辑器。对于 TeXstudio,请转到选项、配置 texstudio、命令,然后将“pdflatex -synctex=1 -interaction=nonstopmode %.tex”更改为“pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex”。这完全解决了问题。

相关内容