Caso você precise executar uma lista de comandos de compilação complexa com arara
, sei que isso synctex: yes
é necessário apenas na última etapa, por exemplo:
% arara: pdflatex
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
Mas se eu precisar da shell : yes
opção, por exemplo porque estou usando tikzexternalize
, em que ponto(s) devo colocá-la?
Aqui está:
% 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}
Responder1
Salvei seu arquivo como test.tex
(e removi o prefixo dos arquivos de figura, mas é irrelevante).
Então eu corri
pdflatex -shell-escape test
pdflatex test
o que não deu problema. A segunda execução emite a mensagem
===== Image 'test-figure0' is up-to-date. ======
o que confirma minha afirmação.
Assim concluo que shell: yes
só é necessário para a primeira execução do lote, levando a
% arara: pdflatex { shell: yes }
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
Você teria problemas se alguma imagem TikZ contivesse \ref
ou \cite
, mas isso é independente arara
e sempre rodar pdflatex
com a -shell-escape
opção não resolveria o problema.
Por outro lado, outros pacotes que precisam -shell-escape
podem se comportar de maneira diferente, então não existe uma regra geral, infelizmente.