Учитывая список команд компиляции arara, на каком этапе/этапах мне следует использовать опцию «shell : yes»?

Учитывая список команд компиляции arara, на каком этапе/этапах мне следует использовать опцию «shell : yes»?

Если вам нужно запустить сложный список команд компиляции с помощью arara, я знаю, что это synctex: yesнеобходимо только на последнем шаге, например:

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

Но если мне нужна эта shell : yesопция, например, потому что я использую tikzexternalize, в какой точке/точках мне ее следует разместить?

Вот пример:

% 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}

решение1

Я сохранил ваш файл как test.tex(и удалил префикс для файлов рисунков, но это не имеет значения).

Потом я побежал

pdflatex -shell-escape test
pdflatex test

что не дало никаких проблем. Второй запуск выдает сообщение

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

что подтверждает мое заявление.

Таким образом, я прихожу к выводу, что shell: yesэто необходимо только для первого запуска партии, что приводит к

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

У вас могут возникнуть проблемы, если какая-либо картинка TikZ содержит \refили \cite, но это не зависит от araraи постоянный запуск pdflatexс этой -shell-escapeопцией не исправит ситуацию.

С другой стороны, другие пакеты, которым это необходимо, -shell-escapeмогут вести себя по-другому, поэтому, боюсь, общего правила не существует.

Связанный контент