如果您需要使用 運行複雜的編譯命令列表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
可能會有不同的行為,所以恐怕沒有一般規則。