(5) 反応機構 その4: ラジカル反応
今回は (マニュアルにすら載っていない) ラジカル反応の書きかたについて見てみます。
ひとまず片羽矢印をかいてみます。
そのためには \draw
のオプションに arrows={[left]}
を加えます。
[left]
を [right]
にすると書かれる (消される) 羽が逆になります1。
\schemestart
\chemfig{@{edu1}A} \+ \chemfig{@{edu2}B}
\arrow
\chemfig{X}
%
\chemmove{
\draw[arrows={[left]}](edu1)..controls +(90:5mm) and +(90:5mm)..(edu2);
}
\schemestop
\bigskip
\schemestart
\chemfig{@{edu3}C} \+ \chemfig{@{edu4}D}
\arrow
\chemfig{Y}
%
\chemmove{
\draw[arrows={[right]}](edu3)..controls +(90:5mm) and +(90:5mm)..(edu4);
}
\schemestop
電子は \charge
または \Charge
で書けます。
なお、 \charge
と \Charge
は、電子がバウンディングボックスに含まれない/含まれる点が異なります:
さて、以下の例では A の不対電子を右側に書いているので、その辺りから矢印を出るようにするため、制御点の基準位置を指定します。
具体的には、 (edu1)
の部分を (edu1.0)
と書くことで、edu1 の 0 度の位置を基準にしています。
\schemestart
\chemfig{@{edu1}\Charge{0=\.}{A}} \+ \chemfig{@{edu2}B}
\arrow
\chemfig{X}
%
\chemmove{
\draw[arrows={[left]}] (edu1.0)..controls +(90:5mm) and +(90:5mm)..(edu2);
}
\schemestop
さて、ここからが苦行です (笑)。
矢印を電子から出ているよう見せるために、いろいろパラメータをいじります。 基本、ひたすらトライアンドエラーです。
\schemestart
\chemfig{@{edu1}\Charge{0=\.}{A}} \+ \chemfig{@{edu2}B}
\arrow
\chemfig{X}
%
\chemmove{
\draw[arrows={[left]},shorten <=3pt,shorten >=2pt]
(edu1.0)..controls +(60:4mm) and +(120:5mm)..(edu2);
}
\schemestop
まぁ、こんなとこでしょうか。こだわると際限がなくなるので、ある程度のところで妥協するのが良いと思います (笑)。 上では制御点の基準位置を 0 度にしましたが、実際には角度を付けた方が綺麗になるかもしれません:
\schemestart
\chemfig{@{edu1}\Charge{0=\.}{A}} \+ \chemfig{@{edu2}B}
\arrow
\chemfig{X}
%
\chemmove{
\draw[arrows={[left]},shorten <=1pt,shorten >=2pt]
(edu1.20)..controls +(60:5mm) and +(120:5mm)..(edu2);
}
\schemestop
あんまり変わらないですかね (笑)。まぁお好みで。
さて、もう少し実際的 (?) な例を書いてみると、こんな感じでしょうか。
が、正直コードは「汚い」です。この例では \+ と Y の間に仮想的な原子 (ここでは適当に \phantom{OO}
としました)
を置いて、そこに矢印がくるようにしてます。
\schemestart
\chemfig{@{x}\charge{0=\.}{X}} \+ \chemfig{@{null}\phantom{OO}} \chemfig{Y-[@{bind},0.75]@{z}Z}
\arrow
\chemfig{X-[:0,0.75]Y} \+ \chemfig{\charge{180=\.}{Z}}
%
\chemmove{
\draw[arrows={[left]},shorten <=3pt]
(x.0)..controls +(60:5mm) and +(120:5mm)..(null.135);
%
\draw[arrows={[right]},shorten <=3pt]
(bind)..controls +(100:5mm) and +(60:5mm)..(null.45);
%
\draw[arrows={[left]},shorten <=3pt,shorten >=3pt]
(bind)..controls +(80:4mm) and +(110:4mm)..(z.90);
}
\schemestop
最後に、もうちょっときちんとした例を書いてみます。 この例では、
\usetikzlibrary{calc}
が必要になりますので、いずれもプリアンブル (の \usepackage{chemfig}
よりも後ろ) に書いておいて下さい
(前回記事 参照)。
\setchemfig{atom sep=2em}
\schemestart
\chemfig{*6(---@{C}(-[@{sb}]@{H}H)---)}
\hspace{16pt}
\chemfig{@{Cl}\Charge{180=\.}{Cl}}
\arrow{->[][$-$\chemfig{HCl}]}[,1.2]
%
\chemmove{
\draw[arrows={[right]},shorten <=3pt,shorten >=2pt]
(sb)..controls +(100:3mm) and +(100:5mm)..(C);
\draw[arrows={[left]},shorten <=3pt,shorten >=0pt]
(sb)..controls +(-70:5mm) and +(-135:5mm)..($(H)!0.45!(Cl)$);
\draw[arrows={[left]},shorten <=3pt,shorten >=0pt]
(Cl.180)..controls +(60:5mm) and +(35:5mm)..($(H)!0.55!(Cl)$);
}
%
\chemfig{*6(---(-[,.2,,,draw=none]@{r}\Charge{0=\.}{})---)}
\arrow{->[\chemfig{@{Cl1}Cl-[@{sbCl},1.5]@{Cl2}Cl}][$-$\chemfig{\Charge{0=\.}{Cl}}]}[,1.5]
%
\chemmove{
\draw[arrows={[left]},shorten <=2pt,shorten >=2pt]
(r)..controls +(90:5mm) and +(110:5mm)..($(r)!0.45!(Cl1)$);
\draw[arrows={[right]},shorten <=3pt,shorten >=2pt]
(sbCl)..controls +(100:5mm) and +(70:5mm)..($(r)!0.55!(Cl1)$);
\draw[arrows={[left]},shorten <=3pt,shorten >=2pt]
(sbCl)..controls +(80:5mm) and +(110:5mm)..(Cl2);
}
%
\chemfig{*6(---(-Cl)---)}
\schemestop
なお [left]
は [harpoon]
, [right]
は [harpoon,swap]
と書くこともできます。