在下面的分子图中,我只想圈出第一个分子最右边的 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}