Füllen Sie den Hintergrund der funktionellen Gruppen in Chemfig

Füllen Sie den Hintergrund der funktionellen Gruppen in Chemfig

Ich möchte den Hintergrund einiger funktioneller Gruppen oder Atome einschließlich Bindungen füllen, um sie hervorzuheben. Um beispielsweise die Carbonylgruppe in einem Keton hervorzuheben, füllen Sie den Hintergrund von C=O wie folgt:

Bildbeschreibung hier eingeben

Ich verwende Chemfig zum Zeichnen chemischer Gleichungen und habe einen Workaround, der mit Overlay (Chemmove) abdeckt:

\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)}};
}

Ich brauche jedoch eine einfachere und intelligentere Methode, da ich auf diese Weise denselben Code zweimal schreiben muss (was sehr lang sein kann, wenn die Atome und Bindungen lang und kompliziert sind) und es von Zeit zu Zeit aufgrund einer falschen Verankerung nicht funktioniert.

Antwort1

Sie könnten markierenzweiKnoten mit der @{<name>}Syntax und zeichnen Sie dann ein Rechteck mit fill opacity=.2(oder was auch immer Ihnen am besten passt):

\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}

Ergebnis

verwandte Informationen