这可能不是常有的事,但我需要将一些 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 中。