En caso de que necesite ejecutar una lista de comandos de compilación compleja con arara
, sé que synctex: yes
solo es necesario en el último paso, por ejemplo:
% arara: pdflatex
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
Pero si necesito la shell : yes
opción, por ejemplo porque estoy usando tikzexternalize
, ¿en qué punto debo ponerla?
Aquí un mwe:
% arara: pdflatex: { shell : yes }
% arara: biber
% arara: pdflatex: { shell : yes }
% arara: pdflatex: { shell : yes , synctex: yes }
\documentclass[11pt,openright]{book}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[british]{babel}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix={Figures/}] % activate!
\usepackage[style=authoryear-icomp, backend=biber,hyperref=true]{biblatex}
\usepackage{csquotes}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\begin{tikzpicture}
\fill[green] (0,0) rectangle (1,1);
\end{tikzpicture}
\cite{aristotle:rhetoric}
\printbibliography
\end{document}
Respuesta1
Guardé su archivo como test.tex
(y eliminé el prefijo de los archivos de figuras, pero es irrelevante).
Entonces corrí
pdflatex -shell-escape test
pdflatex test
lo cual no dio ningún problema. La segunda ejecución emite el mensaje.
===== Image 'test-figure0' is up-to-date. ======
lo que confirma mi afirmación.
Por lo tanto, concluyo que shell: yes
sólo es necesario para la primera ejecución del lote, lo que lleva a
% arara: pdflatex { shell: yes }
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
Tendrías problemas si alguna imagen de TikZ contiene \ref
o \cite
, pero esto es independiente arara
y ejecutar siempre pdflatex
con la -shell-escape
opción no lo solucionará.
Por otro lado, otros paquetes que necesitan -shell-escape
pueden comportarse de manera diferente, por lo que me temo que no existe una regla general.