(5) 反応機構 その4: ラジカル反応

今回は (マニュアルにすら載っていない) ラジカル反応の書きかたについて見てみます。

まず片羽矢印を書くのにプリアンブル (の \usepackage{chemfig} よりも後ろ) に、

\usetikzlibrary{arrows,arrows.meta}

を追加する必要があります。

ひとまず片羽矢印をかいてみます。そのためには \draw のオプションに arrows={->[left]} を加えます。[left] (または [harpoon]) を [right] (または [harpoon,swap]) にすると書かれる (消される) 羽が逆になります。

\schemestart
\chemfig{@{edu1}A| \+ @{edu2}B}
\arrow
\chemfig{X}
% 
\chemmove{
  \draw[arrows={->[left]}](edu1)..controls +(90:5mm) and +(90:5mm)..(edu2);
}
\schemestop

\bigskip

\schemestart
\chemfig{@{edu3}C| \+ @{edu4}D}
\arrow
\chemfig{Y}
% 
\chemmove{
  \draw[arrows={->[right]}](edu3)..controls +(90:5mm) and +(90:5mm)..(edu4);
}
\schemestop

電子は \lewis または \Lewis で書けます。
なお、\lewis\Lewis は、電子が box に含まれない/含まれる点が異なります:

さて、以下の例では A の不対電子を右側に書いているので、その辺りから矢印を出るようにするため、制御点の基準位置を指定します。具体的には、(edu1) の部分を (edu1.0) と書くことで、edu1 の 0 度の位置を基準にしています。

\schemestart
\chemfig{@{edu1}\Lewis{0.,A}| \+ @{edu2}B}
\arrow
\chemfig{X}
% 
\chemmove{
  \draw[arrows={->[left]}] (edu1.0)..controls +(90:5mm) and +(90:5mm)..(edu2);
}
\schemestop

さて、ここからが苦行です (笑)。

矢印を電子から出ているよう見せるために、いろいろパラメータをいじります。基本、ひたすらトライアンドエラーです。

\schemestart
\chemfig{@{edu1}\Lewis{0.,A}| \+ @{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}\Lewis{0.,A}| \+ @{edu2}B}
\arrow
\chemfig{X}
% 
\chemmove{
  \draw[arrows={->[left]},shorten <=1pt,shorten >=2pt]
  (edu1.20)..controls +(60:5mm) and +(120:5mm)..(edu2);
}
\schemestop

あんまり変わらないですかね (笑)。まぁお好みで。

なお、片羽矢印で stealth 形の羽を使いたいときは、小文字ではなく大文字から始まる Stealth を使う必要があるようです。

さて、もう少し実際的 (?) な例を書いてみると、こんな感じでしょうか。が、正直コードは「汚い」です。この例では + と Y の間に仮想的な原子 (ここでは適当に \phantom{o} としました) を置いて、そこに矢印がくるようにしてます。前回のように TikZ の calc を使った方法でも良いかもしれません。

\schemestart
\chemfig{@{x}\lewis{0.,X}| \hspace{1ex}
  \+ @{null}\phantom{o}| \hspace{1ex} Y-[@{bind},0.75]@{z}Z}
\arrow
\chemfig{X-[:0]Y \+ \lewis{4.,Z}}
% 
\chemmove{
  \draw[arrows={-Stealth[left]},shorten <=3pt]
  (x.0)..controls +(60:5mm) and +(120:5mm)..(null.135);
  % 
  \draw[arrows={-Stealth[right]},shorten <=3pt]
  (bind)..controls +(100:5mm) and +(60:5mm)..(null.45);
  % 
  \draw[arrows={-Stealth[left]},shorten <=3pt,shorten >=3pt]
  (bind)..controls +(80:4mm) and +(110:4mm)..(z.90);
}
\schemestop

最後に、もうちょっときちんとした例を書いてみます。この例では、\usetikzlibrary{arrows,arrows.meta} に加えて、

\usetikzlibrary{calc}

も必要になりますので、いずれもプリアンブル (の \usepackage{chemfig} よりも後ろ) に書いておいて下さい (前回記事参照)。

\setchemfig{atom sep=2em}
\schemestart
\chemfig{*6(---@{C}(-[@{sb}]@{H}H)---)}
\hspace{16pt}
\chemfig{@{Cl}\Lewis{4.,Cl}}
\arrow{->[][$-$\chemfig{HCl}]}[,1.2]
% 
\chemmove{
  \draw[arrows={-Stealth[right]},shorten <=3pt,shorten >=2pt]
  (sb)..controls +(100:3mm) and +(100:5mm)..(C);
  % \draw[arrows={-Stealth[left]},shorten <=3pt,shorten >=2pt]
  % (sb)..controls +(110:10mm) and +(55:10mm)..($(H)!0.45!(Cl)$);
  \draw[arrows={-Stealth[left]},shorten <=3pt,shorten >=0pt]
  (sb)..controls +(-70:5mm) and +(-135:5mm)..($(H)!0.45!(Cl)$);
  \draw[arrows={-Stealth[left]},shorten <=3pt,shorten >=0pt]
  (Cl.180)..controls +(60:5mm) and +(35:5mm)..($(H)!0.55!(Cl)$);
  % \draw[arrows={-Stealth[right]},shorten <=3pt,shorten >=0pt]
  % (Cl.180)..controls +(-120:5mm) and +(-135:5mm)..($(H)!0.55!(Cl)$);
}
%% 
\chemfig{*6(---(-[,.2,,,draw=none]@{r}\Lewis{0.,})---)}
\arrow{->[\chemfig{@{Cl1}Cl-[@{sbCl},1.5]@{Cl2}Cl}][$-$\chemfig{\Lewis{0.,Cl}}]}[,1.5]
% 
\chemmove{
  \draw[arrows={-Stealth[left]},shorten <=2pt,shorten >=2pt]
  (r)..controls +(90:5mm) and +(110:5mm)..($(r)!0.45!(Cl1)$);
  \draw[arrows={-Stealth[right]},shorten <=3pt,shorten >=2pt]
  (sbCl)..controls +(100:5mm) and +(70:5mm)..($(r)!0.55!(Cl1)$);
  \draw[arrows={-Stealth[left]},shorten <=3pt,shorten >=2pt]
  (sbCl)..controls +(80:5mm) and +(110:5mm)..(Cl2);
}
%%
\chemfig{*6(---(-Cl)---)}
\schemestop

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です