Цветовые функциональные группы в синтаксисе chemfig

Цветовые функциональные группы в синтаксисе chemfig

Я хочу окрасить простые функциональные группы в органических молекулах с помощью пакета chemfig. Я придумал решение, которое достигает того, что я хочу (MWE), но я считаю, что этооченьгромоздко. Я думал, что можно было бы обернуть целую группу в один единственный colorоператор.Этот вопрос о раскрашивании фонагруппы атомов chemfigтакже дает четкое графическое выделение группы атомов.

Является ли мое решение и решение вопроса выше самым простым способом раскрасить или пометить группы атомов (включая связи) в chemfig? Сейчас у меня нет необходимости легко воспроизводить множество цветных функциональных групп, но я хотел бы узнать, есть ли более простые способы решить эту проблему без предварительного определения макросов для каждой группы.

Я полагаю, что понимаю, что основная проблема заключается в способе chemfigиспользования TiкZ-узлы для рисования структур, но я не могу не думать, что должен быть способ определить некоторую цветовую среду, которая применима ко всем TiкZ-узлы, созданные chemfig.

МВЭ:

\documentclass{article}

\usepackage{chemfig}

\begin{document}
    \chemfig{H-C(-[2]H)(-[6]H)-C(-[2]H)(-[6]H)-{\color{blue}C}(=[1,,,,blue] {\color{blue}O})(-[7,,,,blue] {\color{blue}OH})}
\end{document}

Производство

введите описание изображения здесь

решение1

Относится кэта почта.

\documentclass{article}
\usepackage{chemfig}
\begin{document}
    \def\RED{\gdef\printatom##1{\color{red}\ensuremath{\mathrm{##1}}}}
    \def\BLACK{\gdef\printatom##1{\color{black}\ensuremath{\mathrm{##1}}}}
    \noindent
    \chemfig{H-C(-[2]H)(-[6]H)-C(-[2]H)(-[6]H)(-[,,,,draw=none]\RED)([,,,,,red]-[,,,,black]C(=[1]O)(-[7]OH))}\BLACK \\[1cm]
    \chemfig{H-C(-[2]H)(-[6]H)-C(-[2]H)(-[6]H)(-C(=[1]O)(-[7]OH))}
\end{document}

Где

  • [,,,,red]заключается в установке цвета связей внутри COOH.
  • [,,,,black]заключается в установке цвета связи между C2H5 и COOH.
  • (-[,,,,draw=none]\RED)заключается в создании специального атома для изменения цвета.
    • Вы можете изменить цвет в любом месте, но иногда это может привести к неправильному размещению/расстоянию.
    • (например, chemfigчитается \RED COOHкак пять атомов, при этом первый атом имеет нулевую ширину.)

Связанный контент