当使用子方案在 chemfig 中写出反应机理时,两种化合物之间存在较大的垂直间隙,如附图所示。
如何才能达到图中所示的所需位置。迄今为止的尝试
documentclass{book}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\usepackage{chemfig,chemmacros}
\setatomsep{1.5em}
\setbondoffset{0pt}
\begin{document}
\schemestart
\subscheme[-90]{
\chemfig{CH_3CH=[@{d}]CH_2}
\arrow{0[][][-10pt]}
\chemfig{@{e}Br-[@{f}]@{g}Br}
}
\ce{->}
\chemfig{CH_3\chemabove{C}{\scrp}HCH_2Br} \+ \chemfig{Br^{-}}
\schemestop
\chemmove[cyan,>=latex,shorten <=2pt,shorten >=2pt]{
\draw[shorten >=1pt,->] (d) ..controls +(-90:1cm) and +(135:1cm) .. (e) ;}
\chemmove[red,>=latex,shorten <=1pt,shorten >=2pt]{
\draw[shorten >=0pt,->] (f) ..controls +(-90:.5cm) and +(-90:1cm) .. (g)
;}
\end{document}
答案1
调整丙烯和溴之间的不可见箭头的尺寸应该会让你更接近预期的输出。
我还替换了弃用的
\setatomsep{1.5em}
\setbondoffset{0pt}
命令
\setchemfig{atom sep=1.5em,
bond offset=0pt}
使代码可以与chemfig
1.3 版(自 2018 年 3 月起)以上的版本编译。
最后,我为反应添加了另一种布局,因为试剂通常画在反应物旁边或反应箭头上方,而不是反应物下方的某处。
\documentclass{book}
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\usepackage{chemfig,chemmacros}
\setchemfig{atom sep=1.5em,
bond offset=0pt}
\begin{document}
\schemestart
\subscheme[-90]{
\chemfig{CH_3CH=[@{d}]CH_2}
\arrow{0}[-90,0.25]
\chemfig{@{e}Br-[@{f}]@{g}Br}
}
\ce{->}
\chemfig{CH_3\chemabove{C}{\scrp}HCH_2Br} \+ \chemfig{Br^{-}}
\schemestop
\chemmove[cyan,>=latex,shorten <=2pt,shorten >=2pt]{
\draw[shorten >=1pt,->] (d) ..controls +(-90:.75cm) and +(135:1cm) .. (e) ;}
\chemmove[red,>=latex,shorten <=1pt,shorten >=2pt]{
\draw[shorten >=0pt,->] (f) ..controls +(-90:.5cm) and +(-90:1cm) .. (g)
;}
\vspace{3cm}
\schemestart
\chemfig{CH_3CH=[@{d}]CH_2}
\arrow{->[\chemfig{@{e}Br-[@{f}]@{g}Br}]}
\chemfig{CH_3\chemabove{C}{\scrp}HCH_2Br} \+ \chemfig{Br^{-}}
\schemestop
\chemmove[cyan,>=latex,shorten <=2pt,shorten >=2pt]{
\draw[shorten >=1pt,->] (d) ..controls +(90:.75cm) and +(135:.75cm) .. (e) ;}
\chemmove[red,>=latex,shorten <=1pt,shorten >=2pt]{
\draw[shorten >=0pt,->] (f) ..controls +(90:.5cm) and +(90:.5cm) .. (g)
;}
\end{document}
答案2
两种方法,仅使用“chemfig”包中的命令
化学反应结束后定位Br2:
\setchemfig{atom sep=1.5em,bond offset=0pt} \begin{document} \schemestart \chemfig{CH_3CH=[@{a},1.5]CH_2} \arrow{->} \chemfig{CH_3\chemabove{C}{\scriptstyle+}HCH_2Br} \+ \chemfig{Br^{-}} \arrow(@{a}--){0}[320,.6]\chemfig{@{b}Br-[@{c},1.5]@{d}Br} %--------------------------------------------------------------- \chemmove{ \draw[red,shorten <=2pt,shorten >=1pt](a).. controls +(270:8mm) and +(90:8mm)..(b); \draw[red,shorten <=1pt,shorten >=1pt](c).. controls +(90:6mm) and +(90:6mm)..(d); } \schemestop \end{document}
或者将 Br2 放在开头,但你需要重新定位反应箭头
\begin{document} \schemestart \chemfig{CH_3CH=[@{a},1.5]C@{z}H_2} \arrow(@{a}--){0}[320,.6]\chemfig{@{b}Br-[@{c},1.5]@{d}Br} \arrow(@{z}--){->} \chemfig{CH_3\chemabove{C}{\scriptstyle+}HCH_2Br} \+ \chemfig{Br^{-}} %--------------------------------------------------------------- \chemmove{ \draw[red,shorten <=2pt,shorten >=1pt](a).. controls +(270:8mm) and +(90:8mm)..(b); \draw[red,shorten <=1pt,shorten >=1pt](c).. controls +(90:6mm) and +(90:6mm)..(d); } \schemestop \end{document}
两者的结果非常相似。
溴与 270 度角
\begin{document}
\schemestart
%
\chemfig{CH_3CH=[@{a},1.5]C@{z}H_2}
%
\arrow(@{a}--){0}[320,.6]\chemfig{@{b}Br-[@{c},1.5]@{d}Br}
%
\arrow(@{z}--){->}
%
\chemfig{CH_3@{y}\chemabove{C}{\scriptstyle+}HCH_2Br}
%
\arrow(@{y}--){0}[-90,.3]\+ \chemfig{Br^{-}}
%
%---------------------------------------------------------------
\chemmove{
\draw[red,shorten <=2pt,shorten >=1pt](a).. controls +(270:8mm) and +(90:8mm)..(b);
\draw[red,shorten <=1pt,shorten >=1pt](c).. controls +(90:6mm) and +(90:6mm)..(d);
}
\schemestop
\end{document}