Chemfig 方案和 tikz 外部

Chemfig 方案和 tikz 外部

有没有什么办法可以将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 太小,无法重现该问题。以下是我发现导致错误的简单原因列表。我认为它们可以轻松修复。

  1. 我的箭头被重新定义,以便自动打印出标签 scriptsize(现在在更新的 MWE 中手动触发)。

    但是,这会出现以下错误:

    TeX 容量超出,抱歉 [输入堆栈大小=5000]。 \pgf@selectfontorig ->\pgf@selectfontorig
    \nullfont

    任何时候字体大小或粗细发生变化,无论是在两者之间\schemestart还是\schemestop\tikzpicture 环境中,都是如此。例如,\chemnum的标准\cmpd{name}给出了类似的错误,因为化合物的标签打印为 \textbf{label}。将有问题的文本括在括号中并不能解决这个问题。

  2. \parbox并且\mbox不起作用,可能是因为它们是嵌套环境?
  3. 奖金:如果我的所有方案都能被事后重新定义为被包装在里面,那将是救命稻草,就像上面链接的答案中tikzpicture所做的那样。\chemfig

相关内容