Tabela e \tikzexternalize

Tabela e \tikzexternalize

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, ' tabuestá fora' é o melhor que posso dizer: faça uma pergunta separada mostrando o que você quer fazer e tentaremos encontrar uma tabumaneira livre.


Para quem tem mentalidade técnica, o problema vem

\def\tabu@nowrite #1#{{\afterassignment}\toks@}

que é \letum substituto para o \writeprimitivo para execuções de composição tipográfica de teste. Como você pode ver, isso simplesmente transforma o argumento \writeem um pacote descartável.

informação relacionada