如何在 TikZ 框中的两个 chemfig 反应方案之间添加垂直空间

如何在 TikZ 框中的两个 chemfig 反应方案之间添加垂直空间

这是我之前的问题。我正在处理以下代码,将化学反应纳入云的形状。

\documentclass{article}
\usepackage{chemfig}
\usepackage{tikz}
\usetikzlibrary{shapes}

\newsavebox\ReactionBox
\sbox\ReactionBox{
\tiny
\setchemfig{compound style={draw,line width=0.8pt,
semitransparent,text opacity=1,inner sep=3pt,
rounded corners=1mm}}
\schemestart[0,1,line width=0.6mm]
$A + B$ \arrow([fill=cyan]--[fill=cyan]){->[k_1]}[,,green] $C$
\schemestop  

\schemestart[0,1,line width=0.6mm]
$C$ \arrow([fill=cyan]--[fill=cyan]){->[k_2]}[,,green] $D$
\schemestop  
}


\begin{document}
\begin{tikzpicture} 
    \node [align=center,cloud, draw,cloud puffs=10,cloud puff arc=120, aspect=2, inner ysep=2em] 
    {\usebox\ReactionBox};
\end{tikzpicture} 

\end{document}

问题是两个反应并排出现,而不是一个在另一个之上。如何解决这个问题?

在此处输入图片描述

答案1

一种方法是使用两个\saveboxes

在此处输入图片描述

tikz正如您所见,如果您简单使用,则 该问题与 无关\usebox\ReactionBox

笔记:

代码:

\documentclass[border=2pt]{standalone}
\usepackage{chemfig}
\usepackage{tikz}
\usetikzlibrary{shapes}

\newsavebox\ReactionBoxA
\newsavebox\ReactionBoxB
\sbox\ReactionBoxA{%  <-- Added %
\tiny
\setchemfig{compound style={draw,line width=0.8pt,
semitransparent,text opacity=1,inner sep=3pt,
rounded corners=1mm}}% <-- Added %
\schemestart[0,1,line width=0.6mm]
$A + B$ \arrow([fill=cyan]--[fill=cyan]){->[]}[,,green] $C$
\schemestop}

\sbox\ReactionBoxB{%
\tiny
\setchemfig{compound style={draw,line width=0.8pt,
semitransparent,text opacity=1,inner sep=3pt,
rounded corners=1mm}}%  <-- Added %
\schemestart[0,1,line width=0.6mm]
$C$ \arrow([fill=cyan]--[fill=cyan]){->[]}[,,green] $D$
\schemestop}


\begin{document}
\begin{tikzpicture} 
    \node [align=center,cloud, draw,cloud puffs=10,cloud puff arc=120, aspect=2, inner ysep=2em] 
    {\usebox\ReactionBoxA \\ \usebox\ReactionBoxA};
\end{tikzpicture} 

\end{document}

相关内容