
Pode não ser uma coisa comum de se fazer, mas preciso colocar algumas imagens tikz em uma tabela com externalização. Eu fiz
\documentclass{report}
\usepackage{tabu}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
%\tikzexternaldisable
%
\begin{filecontents}{A.tikz}
\begin{tikzpicture}
\draw (0,0) rectangle (2,2);
\end{tikzpicture}
\end{filecontents}
\begin{filecontents}{B.tikz}
\begin{tikzpicture}
\draw (0,0) rectangle (2,2);
\end{tikzpicture}
\end{filecontents}
%
\begin{document}
\begin{table}
\begin{tabu}{cc}
\tikzsetnextfilename{A}
\input{A.tikz}
&
\tikzsetnextfilename{B}
\input{B.tikz}
\end{tabu}
\end{table}
\end{document}
Funciona se eu desabilitar o tikzexternal. Alguma sugestão?
Responder1
Este é um 'recurso' do tabu
. Se você rastrear o código, descobrirá que ele desabilita deliberadamente a escrita (entre outras coisas) para fazer execuções de teste de composição sem qualquer resultado real das operações de gravação. Isso inclui desabilitar \write18
, que é necessário ao TikZ para fazer a externalização. Como tal, ' tabu
está fora' é o melhor que posso dizer: faça uma pergunta separada mostrando o que você quer fazer e tentaremos encontrar uma tabu
maneira livre.
Para quem tem mentalidade técnica, o problema vem
\def\tabu@nowrite #1#{{\afterassignment}\toks@}
que é \let
um substituto para o \write
primitivo para execuções de composição tipográfica de teste. Como você pode ver, isso simplesmente transforma o argumento \write
em um pacote descartável.