Preencha o plano de fundo dos grupos funcionais no chemfig

Preencha o plano de fundo dos grupos funcionais no chemfig

Quero preencher o contexto de alguns grupos funcionais ou átomos, incluindo ligações para enfatizá-los. Por exemplo, para enfatizar o grupo carbonila em uma cetona, preencha o fundo de C=O como:

insira a descrição da imagem aqui

Estou usando o chemfig para desenhar equações químicas e tenho uma solução alternativa que cobre overlay (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)}};
}

Porém, preciso de uma maneira mais simples e inteligente, pois, desta forma, tenho que escrever o mesmo código duas vezes (o que pode ser muito longo se os átomos e ligações forem longos e complicados) e não funciona com ancoragens erradas de vez em quando .

Responder1

Você poderia marcardoisnós com a @{<name>}sintaxe e, em seguida, desenhe um retângulo com fill opacity=.2(ou o que for melhor para você):

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

resultado

informação relacionada