表和 \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變成了一次性的托克斯。

相關內容