
Это может быть не совсем обычно, но мне нужно поместить несколько картинок 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.