
Es ist vielleicht nicht üblich, aber ich muss einige Tikz-Bilder in eine Tabelle mit Externalisierung einfügen. Ich habe
\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}
Es funktioniert, wenn ich tikzexternal deaktiviere. Irgendwelche Vorschläge?
Antwort1
Dies ist ein „Feature“ von tabu
. Wenn Sie den Code verfolgen, werden Sie feststellen, dass er das Schreiben (unter anderem) absichtlich deaktiviert, um Probeläufe des Satzes durchzuführen, ohne dass die Schreibvorgänge wirkliche Ergebnisse liefern. Dazu gehört auch das Deaktivieren von \write18
, das von TikZ für die Externalisierung benötigt wird. Daher tabu
ist „ ist out“ das Beste, was ich sagen kann: Stellen Sie eine separate Frage, in der Sie zeigen, was Sie tun möchten, und wir werden versuchen, einen tabu
-freien Weg zu finden.
Für technisch Interessierte besteht das Problem darin,
\def\tabu@nowrite #1#{{\afterassignment}\toks@}
Dies dient \let
als Ersatz für das \write
Primitiv für Probesatzläufe. Wie Sie sehen, wird das Argument hierdurch einfach \write
in ein Wegwerf-Toks übernommen.