Таблица и \tikzexternalize

Таблица и \tikzexternalize

Это может быть не совсем обычно, но мне нужно поместить несколько картинок tikz в таблицу с экстернализацией. Я сделал

\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}

Работает, если отключить tikzexternal. Есть предложения?

решение1

Это «особенность» tabu. Если вы проследите код, то обнаружите, что он намеренно отключает запись (помимо прочего) для выполнения пробных запусков набора без какого-либо реального результата от операций записи. Это включает в себя отключение \write18, которое необходимо TikZ для выполнения экстернализации. Таким образом, « tabuвышло» — лучшее, что я могу сказать: задайте отдельный вопрос, показывающий, что вы хотите сделать, и мы постараемся найти tabuспособ без -.


Для технически подкованных людей проблема возникает из-за

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

который является \letзаменой примитива \writeдля пробных наборных запусков. Как вы можете видеть, это просто захватывает аргумент в \writeодноразовый toks.

Связанный контент