无法使用 lualatex 运行 tikz externalize,但它以前可以工作

无法使用 lualatex 运行 tikz externalize,但它以前可以工作

我正在尝试使用 lualatex 来使用 TikZ 外部化库(因为有各种需求)。它以前工作起来没有问题(大约 1.5 年前),但现在我已经升级了 - 我在 Debian 上测试,所以有 TeX Live 2016,luatex 宣布自己为“这是 LuaTeX,版本 1.0.0(TeX Live 2016/Debian)(格式=lualatex 2017.3.20)2017 年 4 月 20 日 20:31”。我尝试了这个最简单的文件,第一个示例取自 TikZ 外部化文档库。

\documentclass{article}
% main document, called main.tex
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize % activate!
\begin{document}
\loggingall
\begin{tikzpicture}
  \node {root}
    child {node {left}}
    child {node {right}
      child {node {child}}
      child {node {child}}
    };
\end{tikzpicture}

A simple image is \tikz \fill (0,0) circle(5pt);.
\end{document}

当我运行“pdflatex --shell-escape main”时,它运行良好,但是当我用 lualatex 替换 pdflatex 时,它就会崩溃:

! Package tikz Error: Sorry, the system call 'lualatex -shell-escape -halt-on-e
rror -interaction=batchmode -jobname "main-figure1" "\def\tikzexternalrealjob{m
ain}\input{main}"' did NOT result in a usable output file 'main-figure1' (expec
ted one of .pdf:.jpg:.jpeg:.png:). Please verify that you have enabled system c
alls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also name
d 'write 18' or something like that. Or maybe the command simply failed? Error 
messages can be found in 'main-figure1.log'. If you continue now, I'll try to t
ypeset the picture.

有人知道这里可能出了什么问题吗?“lualatex --shell-escape”本身工作正常(我在一个普通文件上尝试过),并且直接从命令行运行“lualatex -shell-escape -halt-on-error -interaction=batchmode -jobname“main-figure1”“\def\tikzexternalrealjob{main}\input{main}”似乎工作正常,如果这意味着什么的话。

谢谢!

答案1

你需要 shellesc 包

\documentclass{article}
\usepackage{shellesc}
% main document, called main.tex
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize % activate!
\begin{document}
\loggingall
\begin{tikzpicture}
  \node {root}
    child {node {left}}
    child {node {right}
      child {node {child}}
      child {node {child}}
    };
\end{tikzpicture}

A simple image is \tikz \fill (0,0) circle(5pt);.
\end{document}

相关内容