我想用 Chemfig/Tikz 重现反应方案

我想用 Chemfig/Tikz 重现反应方案

我想要重现以下链接所指向的论文第 1322 页上的反应方案(图 1)。 论文链接。 我正在用 Chemfig 尝试这个,我能够重现中间的圆圈。但我不知道如何让框架围绕圆圈。这是我目前的代码:

\documentclass{article}
\usepackage{chemfig,siunitx}
\setcompoundsep{7em}
\begin{document}
\makeatletter
\definearrow1{s>}{%
\ifx\@empty#1\@empty
\expandafter\draw\expandafter[\CF@arrow@current@style,-CF](\CF@arrow@start@node)--(\CF@arrow@end@node);%
\else
\def\curvedarrow@style{shorten <=\CF@arrow@offset,shorten >=\CF@arrow@offset,}%
\CF@expadd@tocs\curvedarrow@style\CF@arrow@current@style
\expandafter\draw\expandafter[\curvedarrow@style,-CF](\CF@arrow@start@name)..controls#1..(\CF@arrow@end@name);
\fi
}

\schemestart
F \ \arrow(ff--aa){<=>[$k_1$][$k_{-1}$]}A \arrow(--bb){s>[+(60:1)and+(120:1)]}[,1] B
\arrow(--tt){<=>[$k_{-2}$][$k_2$]}T
\arrow(@bb--@aa){s>[+(-120:1)and+(-60:1)]}[,1]
\schemestop
\end{document}

如果有人能帮忙就太好了。谢谢

答案1

您可以使用以下方式重新创建该方案\chemmove(注意:需要多次编译)。

\documentclass{article}
\usepackage{chemfig,siunitx}
\usetikzlibrary{arrows} % required for '-o' arrow tips
\setcompoundsep{7em}
\begin{document}
\makeatletter
\definearrow3{s>}{% define an arrow with three arguments for labels
\ifx\@empty#1\@empty
\expandafter\draw\expandafter[\CF@arrow@current@style,-CF](\CF@arrow@start@node)--(\CF@arrow@end@node);%
\else
\def\curvedarrow@style{shorten <=\CF@arrow@offset,shorten >=\CF@arrow@offset,}%
\CF@expadd@tocs\curvedarrow@style\CF@arrow@current@style
\expandafter\draw\expandafter[\curvedarrow@style,-CF](\CF@arrow@start@name)..controls#1..(\CF@arrow@end@name)
    node [midway,anchor=north] {#2}
    node [midway,anchor=south] {#3};
\fi
}

\schemestart
F \arrow(ff--aa){<->>[$k_1$][$k_{-1}$]}A
\arrow(--bb){s>[+(60:1)and+(120:1)][$\alpha$]}[,1] B% add label
\arrow(--tt){<->>[$k_{2}$][$k_{-2}$]}T
\arrow(@bb--@aa){s>[+(-120:1)and+(-60:1)][][$\beta$]}[,1]% add label
\schemestop

% chemmove part
\chemmove[-o]{% sets arrow tip for every \draw
\draw ([yshift=5pt]ff.north) -- +(0,2cm) -| ([xshift=1cm,yshift=1cm]aa.north);
\draw ([yshift=5pt]tt.north) -- +(0,2cm) -| ([xshift=-1cm,yshift=1cm]bb.north);
\draw ([yshift=-5pt]ff.south) -- +(0,-2cm) -| ([xshift=1cm,yshift=-1cm]aa.south);
\draw ([yshift=-5pt]tt.south) -- +(0,-2cm) -| ([xshift=-1cm,yshift=-1cm]bb.south);
}

\end{document}

结果:

在此处输入图片描述

相关内容