使用 chemfig 检测自由基离子

使用 chemfig 检测自由基离子

有没有办法像在此处输入图片描述使用 chemfig 那样绘制自由基阳离子?


编辑#2

\chemfig{C(-[:-150]Y)(=[:90,,,2]\radcationleft O)-[:-30]\chemabove{C}{H}(-[:-90]R\rlap{'})-[:30]C(<[:-60]H)(<:[:-15]H)-[:90]C(<[:120]H)(<:[:165]H)-[:30]R}

定义为\radcationleft(改编自 unbonpetit 的代码)

\newcommand*\radcationleft{\chemabove[0pt]{\lewis{4.,\rule[0pt]{0pt}{4.4pt}}}{\vspace{-.8pt} \scriptsize+ \hspace{5pt}}}

画一个漂亮的

在此处输入图片描述

请注意,这仅适用于 Helvetica ( tgheros),因为对齐是通过眼睛进行的。


编辑#1

我尝试过 unbonpetit 和 Steven 的方法。Steven 的代码更容易适应我试图绘制的分子:chemfig 将点和 + 符号视为原子,我只需要纠正到达原子,这样双键将碳与氧连接起来,而不是符号:

\chemfig{Y-[::30]C(=[::60,,,2]\stackon[0pt]{$\cdot$}{\scriptsize +}O)-[::-60]\chemabove{C}{H}(-[::-60]R\rlap{'})-[::60]C(<[::-90]H)(<:[::-50]H)-[::60]C(<[::30]H)(<:[::70]H)-[::-60]R}

屈服于

在此处输入图片描述

虽然

\chemfig{Y-[::30]C(=[::60]\chemabove[0pt]{\lewis{4.,\vphantom o}}{\scriptsize +}O)-[::-60]\chemabove{C}{H}(-[::-60]R\rlap{'})-[::60]C(<[::-90]H)(<:[::-50]H)-[::60]C(<[::30]H)(<:[::70]H)-[::-60]R}

我明白了

在此处输入图片描述

我不知道该如何改正。

最后一件事,我怎样才能稍微降低符号以使它们相对于 O 垂直居中?

答案1

chembove由于可以堆叠东西,因此不需要额外的包装。

\documentclass{article}
\usepackage{chemfig}
\begin{document}
\chemfig{A-\chemabove[0pt]{\Lewis{4.,\vphantom o}}{\scriptstyle+}O-B}
\end{document}

在此处输入图片描述

编辑:仍然不需要像“stackengine”这样的额外包或额外复杂的宏。Lewis并且chemabove可以完成工作:

\documentclass{article}
\usepackage{chemfig}
\begin{document}
\chemfig{Y-[::30]C(=[::60,,,2]\chemabove[0pt]{\Lewis{4.,\vphantom{\scriptstyle +}}}{\scriptstyle +}|O)-[::-60]\chemabove{C}{H}(-[::-60]R\rlap{'})-[::60]C(<[::-90]H)(<:[::-50]H)-[::60]C(<[::30]H)(<:[::70]H)-[::-60]R}
\end{document}

在此处输入图片描述

答案2

忽略我的第一个例子中化学上不正确的结构,仍然可以使用堆栈来完成你要求的操作。

这个问题似乎也相关:像书一样绘制路易斯结构

编辑以实现更符合 OP 愿望的垂直间距,并将代码放置在宏中\cation

\documentclass{article}
\usepackage{chemfig,stackengine}
% ORIGINAL DEFINITION
\newcommand\cation{\stackon[.3pt]{$\cdot$}{\scriptsize +}}
% REVISED DEFINITION
\renewcommand\cation{\raisebox{-.3pt}{\stackon[-.2pt]{$\cdot$}{\scriptsize +}}}
\begin{document}
\chemfig{!{ring}-[:30]-[:-30](-[:-90]NH_2)-[:30](=[:90]O)(-[:-30]
  \cation O)}

\vspace{2em}
\chemfig{Y-[::30]C(=[::60,,,2]%
\cation O)-[::-60]\chemabove{C}{H}(-[::-60]R\rlap{'})-[::60]C(<[::-90]H)(<:[::-50]H)-[::60]C(<[::30]H)(<:[::70]H)-[::-60]R}

\end{document}

在此处输入图片描述

相关内容