如果您需要使用 运行复杂的编译命令列表arara
,我知道synctex: yes
只需要在最后一步,例如:
% arara: pdflatex
% arara: frontespizio
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
但是如果我需要该shell : yes
选项,例如因为我正在使用tikzexternalize
,我应该把它放在哪个位置?
这里有一个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}
答案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
可能会有不同的行为,所以恐怕没有一般的规则。