
Я хочу заполнить фон некоторых функциональных групп или атомов, включая связи, чтобы подчеркнуть их. Например, чтобы подчеркнуть карбонильную группу в кетоне, заполните фон 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}