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

然而,我需要更简单、更智能的方法,因为这样,我必须编写两次相同的代码(如果原子和键很长且很复杂,则可能会很长),并且它有时无法处理错误的锚定。

答案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}

结果

相关内容