chemfigで官能基の背景を記入する

chemfigで官能基の背景を記入する

結合を含むいくつかの官能基や原子の背景を塗りつぶして強調したいです。たとえば、ケトンのカルボニル基を強調するには、C=O の背景を次のように塗りつぶします。

ここに画像の説明を入力してください

私は化学方程式を描くために chemfig を使用していますが、オーバーレイ (chemmove) でカバーする回避策があります。

\chemfig{R|_1-@{kc}C(=[:90]O)-R|_2}
\chemmove{
    \node[fill=purple!20,anchor=text,inner sep=0.1em]
        at (kc.text) {\chemfig{C(=[:90]O)}};
}

しかし、この方法では同じコードを 2 回記述する必要があり (原子や結合が長くて複雑な場合は非常に長くなる可能性があります)、間違ったアンカーで動作しないことが時々あるため、よりシンプルでスマートな方法が必要です。

答え1

マークできる構文を使用してノードを作成し、 (または最も適した方法で)@{<name>}四角形を描画します。fill opacity=.2

\documentclass{article}
\usepackage{chemfig,tikz}
\begin{document}
\chemfig{R_1-@{C}C(=[:90]@{O}O)-R_2}
\chemmove{
  \draw[
    fill=purple,
    draw=purple,
    fill opacity=.2,
    rounded corners=2pt
  ]
    ([xshift=-3pt,yshift=-1pt]C.south west)
    rectangle
    ([xshift=3pt,yshift=3pt]O.north east) ;
}
\end{document}

結果

関連情報