表格和 \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 中。

相关内容