以下代码在 Texlipse 和 Miktex 2.9 x64 中可以正常工作。tikzexternalize 选项用于加速编译过程,只需确保shell 转义模式可以明确地将 -shell-escape 参数传递给编译器。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=figures/]
\begin{document}
\begin{tikzpicture}
\node[draw, circle, minimum width=1cm] {};
\end{tikzpicture}
\end{document}
现在,当将 article 类替换为 abntex2 类(如以下代码所示)时,figures 文件夹中不再生成 pdf 文件。
\documentclass[
% -- opções da classe memoir --
12pt, % tamanho da fonte
openright, % capítulos começam em pág ímpar (insere página vazia caso
% preciso)
twoside, % para impressão em verso e anverso. Oposto a oneside
a4paper, % tamanho do papel.
% -- opções da classe abntex2 --
%chapter=TITLE, % títulos de capítulos convertidos em letras maiúsculas
%section=TITLE, % títulos de seções convertidos em letras maiúsculas
%subsection=TITLE, % títulos de subseções convertidos em letras maiúsculas
%subsubsection=TITLE,% títulos de subsubseções convertidos em letras maiúsculas
% -- opções do pacote babel --
english, % idioma adicional para hifenização
french, % idioma adicional para hifenização
spanish, % idioma adicional para hifenização
brazil % o último idioma é o principal do documento
]{abntex2}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=figures/]
\begin{document}
\begin{tikzpicture}
\node[draw, circle, minimum width=1cm] {};
\end{tikzpicture}
\end{document}
然后控制台显示以下信息,其中主 tex 文件名为 DissDaniel.tex:
pdflatex.exe> ===== 'mode=convert with system call': Invoking 'pdflatex -shell-escape -halt-o
pdflatex.exe> n-error -interaction=batchmode -jobname "figures/DissDaniel-figure0" "\def\tikz
pdflatex.exe> externalrealjob{DissDaniel}\input{DissDaniel}"' ========
pdflatex.exe>
pdflatex.exe> ! Package tikz Error: Sorry, the system call 'pdflatex -shell-escape -halt-on-e
pdflatex.exe> rror -interaction=batchmode -jobname "figures/DissDaniel-figure0" "\def\tikzext
pdflatex.exe> ernalrealjob{DissDaniel}\input{DissDaniel}"' did NOT result in a usable output
pdflatex.exe> file 'figures/DissDaniel-figure0' (expected one of .pdf:.jpg:.jpeg:.png:). Plea
pdflatex.exe> se verify that you have enabled system calls. For pdflatex, this is 'pdflatex -
pdflatex.exe> shell-escape'. Sometimes it is also named 'write 18' or something like that. Or
pdflatex.exe> maybe the command simply failed? Error messages can be found in 'figures/DissD
pdflatex.exe> aniel-figure0.log'. If you continue now, I'll try to typeset the picture.
pdflatex.exe>
pdflatex.exe> See the tikz package documentation for explanation.
pdflatex.exe> Type H <return> for immediate help.
pdflatex.exe> ...
pdflatex.exe>
pdflatex.exe> l.32 \end{tikzpicture}