Dada uma lista de comandos de compilação arara, em quais etapas devo usar a opção "shell: yes"?

Dada uma lista de comandos de compilação arara, em quais etapas devo usar a opção "shell: yes"?

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 : yesopçã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: yessó é 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 \refou \cite, mas isso é independente ararae sempre rodar pdflatexcom a -shell-escapeopção não resolveria o problema.

Por outro lado, outros pacotes que precisam -shell-escapepodem se comportar de maneira diferente, então não existe uma regra geral, infelizmente.

informação relacionada