
這可能不是一件平常的事情,但我需要將一些 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
變成了一次性的托克斯。