有没有什么办法可以将chemfig
方案外部化tikz
?
目前,将简单的 chemfig 图片外部化的一个好方法是将它们放置在\begin{tikzpicture}
...\end{tikzpicture}
环境中。正如所讨论的,这可以自动完成这里。
我知道用绘制的箭头\chemmove
不起作用,因为这答案,但我希望找到一种方法来外部化简单的方案,就像下面这个一样。
这是我的(更新后的)MWE:
\documentclass{article}
\usepackage{chemfig}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\schemestart
\chemfig{A}\arrow{->[\scriptsize above]}\chemfig{B}
\schemestop
\end{tikzpicture}
\caption{}
\end{figure}
\end{document}
tikzexternal
有趣的是,之前禁用schememestart
并在之后立即重新启用只会为“A”生成相应的外部图形。添加第二个\tikzexternalenable
也会为 B 生成图片。见下文:
\begin{figure}
\centering
\tikzexternaldisable
\schemestart
\tikzexternalenable
\chemfig{A}\arrow{->[\scriptsize above]}\tikzexternalenable\chemfig{B}
\schemestop
\caption{}
\end{figure}
编辑:事实证明我的 MWE 太小,无法重现该问题。以下是我发现导致错误的简单原因列表。我认为它们可以轻松修复。
我的箭头被重新定义,以便自动打印出标签
scriptsize
(现在在更新的 MWE 中手动触发)。但是,这会出现以下错误:
TeX 容量超出,抱歉 [输入堆栈大小=5000]。 \pgf@selectfontorig ->\pgf@selectfontorig
\nullfont任何时候字体大小或粗细发生变化,无论是在两者之间
\schemestart
还是\schemestop
在\tikzpicture
环境中,都是如此。例如,\chemnum
的标准\cmpd{name}
给出了类似的错误,因为化合物的标签打印为\textbf{label}
。将有问题的文本括在括号中并不能解决这个问题。\parbox
并且\mbox
不起作用,可能是因为它们是嵌套环境?- 奖金:如果我的所有方案都能被事后重新定义为被包装在里面,那将是救命稻草,就像上面链接的答案中
tikzpicture
所做的那样。\chemfig