Estoy intentando utilizar la biblioteca de externalización de TikZ usando lualatex (debido a diversas necesidades). Solía funcionar sin problemas (digamos hace aproximadamente 1,5 años), pero ahora lo actualicé: estoy en pruebas de Debian, al igual que TeX Live 2016, luatex se anuncia como "Esto es LuaTeX, versión 1.0.0 (TeX Live 2016/Debian) (formato=lualatex 2017.3.20) 20 de abril de 2017 20:31". Probé este archivo más simple, el primer ejemplo tomado de la biblioteca de documentación de externalización de 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}
Cuando ejecuto "pdflatex --shell-escape main", funciona bien, pero cuando reemplazo pdflatex con lualatex, funciona con:
! 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.
¿Alguien tiene alguna idea de lo que podría estar mal aquí? "lualatex --shell-escape" funciona bien (lo probé en un archivo trivial) y ejecuta 'lualatex -shell-escape -halt-on-error -interaction=batchmode -jobname "main-figure1" "\def\ tikzexternalrealjob{main}\input{main}"' directamente desde una línea de comando pareció funcionar bien, si eso significa algo.
¡Gracias!
Respuesta1
Necesitas el paquete 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}