Bei welchen Schritten sollte ich in einer Liste mit Arara-Kompilierungsbefehlen die Option „Shell: Yes“ verwenden?

Bei welchen Schritten sollte ich in einer Liste mit Arara-Kompilierungsbefehlen die Option „Shell: Yes“ verwenden?

Falls Sie eine komplexe Kompilierungsbefehlsliste mit ausführen müssen arara, weiß ich, dass dies synctex: yesnur im letzten Schritt notwendig ist, zum Beispiel:

% arara: pdflatex
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }

Aber wenn ich die shell : yesOption brauche, beispielsweise weil ich verwende tikzexternalize, an welcher/n Stelle/n sollte ich sie einfügen?

Hier ein 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}

Antwort1

Ich habe Ihre Datei unter folgendem Namen gespeichert test.tex(und das Präfix für die Abbildungsdateien entfernt, aber das ist irrelevant).

Dann rannte ich

pdflatex -shell-escape test
pdflatex test

was kein Problem gab. Der zweite Lauf gibt die Meldung aus

===== Image 'test-figure0' is up-to-date. ======

was meine Aussage bestätigt.

Daher komme ich zu dem Schluss, dass shell: yesnur für den ersten Batch-Lauf erforderlich ist, was zu

% arara: pdflatex { shell: yes }
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }

Es würden Probleme auftreten, wenn ein TikZ-Bild \refoder enthält \cite, dies ist jedoch unabhängig davon arara, und das ständige Ausführen pdflatexmit der -shell-escapeOption würde das Problem nicht beheben.

Andererseits -shell-escapekönnten sich andere Pakete, die dies benötigen, anders verhalten, sodass es, fürchte ich, keine allgemeine Regel gibt.

verwandte Informationen