如何在 chemfig 中修改某些节点的样式

如何在 chemfig 中修改某些节点的样式

在下面的分子图中,我只想圈出第一个分子最右边的 OH 和第二个分子最左边的 H,以表明它们参与了水的形成:

\documentclass{article}
\usepackage{chemfig} % for typesetting molecules

\begin{document}

\chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]C(=[5]O)(-[7]OH)))-C(=[2]O)-OH} % I want to circle this last OH
\chemsign{+}
\chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]*6(=-=-=-)))-C(=[1]O)(-[7]O-CH_3)} % I want to circle the H of the H_2N near the beginning
\chemrel{<>} \\
\chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]C(=[5]O)(-[7]OH)))-C(=[2]O)-N(-[2]H)-CH(-[6]CH_2(-[6]*6(=-=-=-)))-C(=[1]O)(-[7]O-CH_3)}
\chemsign{+}
\chemfig{H_2O} \
\end{document}

在此处输入图片描述

我知道如果我把

\setnodestyle{draw,circle}

在 之后的第一行\begin{document},然后我可以让所有节点(原子)都圈起来,但我只想圈出我提到的两个,但我无法成功在参数\setnodestyle中插入\chemfig。有人知道如何在 chemfig 中自定义修改一个节点的样式吗?

答案1

由于您可以在 tikzpictures 中使用 tikzpictures,因此您可以例如定义一些\circleatom命令并在其中使用它\chemfig

\documentclass{article}
\usepackage{chemfig} % for typesetting molecules
\newcommand*\circleatom[1]{\tikz\node[draw,circle]{#1};}
\begin{document}

\chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]C(=[5]O)(-[7]OH)))-C(=[2]O)-\circleatom{OH}} % I want to circle this last OH
\chemsign{+}
\chemfig{CH(-[4]\circleatom{H}_2N)(-[6]CH_2(-[6]*6(=-=-=-)))-C(=[1]O)(-[7]O-CH_3)} % I want to circle the H of the H_2N near the beginning
\chemrel{<>} \\
\chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]C(=[5]O)(-[7]OH)))-C(=[2]O)-N(-[2]H)-CH(-[6]CH_2(-[6]*6(=-=-=-)))-C(=[1]O)(-[7]O-CH_3)}
\chemsign{+}
\chemfig{H_2O}

\end{document}

在此处输入图片描述

编辑:更好的定义\circleatom

\newcommand*\circleatom[1]{\tikz\node[circle,draw]{\printatom{#1}};}

\printatom将确保如果您将其更改为无衬线打印原子,则芳香剂的显示将相同。

顺便说一句:我可能会使用chemfig的策划命令\schemestart\arrow\schemestop排版反应。

\documentclass{article}
\usepackage{chemfig}
\newcommand*\circleatom[1]{\tikz\node[circle,fill=green!30]{\printatom{#1}};}
\setatomsep{2em}
\setcompoundsep{7em}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\begin{document}

\schemestart
 \chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]C(=[5]O)(-[7]OH)))-C(=[2]O)-\circleatom{OH}} % I want to circle this last OH
 \+
 \chemfig{CH(-[4]\circleatom{H}_2N)(-[6]CH_2(-[6]*6(=-=-=-)))-C(=[1]O)(-[7]O-CH_3)} % I want to circle the H of the H_2N near the beginning
 \arrow{<=>}[-90]
 \chemfig{CH(-[4]H_2N)(-[6]CH_2(-[6]C(=[5]O)(-[7]OH)))-C(=[2]O)-N(-[2]H)-CH(-[6]CH_2(-[6]*6(=-=-=-)))-C(=[1]O)(-[7]O-CH_3)}
 \+
 \chemfig{\circleatom{H_2O}}
\schemestop
\end{document}

在此处输入图片描述

相关内容