Is there a way to draw a radical cation like enter image description here using chemfig?

Edit #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}

with \radcationleft defined as (an adaptation of unbonpetit's code)

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

draws a pretty

enter image description here

Note that this only works with Helvetica (tgheros), as the alignment is made by eye.

Edit #1

I've tried both unbonpetit's and Steven's methods. Steven's code was easier to adapt to the molecule I'm trying to draw: chemfig treats the dot and + signs as an atom and I just needed to correct the arrival atom, so that the double bond links the carbon with the oxygen instead of the signs:

\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}

yields to

enter image description here

While with

\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}

I'm getting this

enter image description here

and I don't know how to correct it.

One last thing, how can I lower the symbols a bit to make them vertically centered with respect to the O?

  • See chemfig's \lewis macro
    – cgnieder
    Jun 2 '15 at 10:35
  • @clemens I can draw a neutral radical using it, but I can't show the charge of a radical ion. Jun 2 '15 at 10:53
  • Please see my revision. I have tried to vertically center the result and now use the macro \cation. Jun 2 '15 at 12:21
  • Both of the methods described below work. I prefer to use unbonpetit's one because it uses the radical's dot so it blends better with other structures with neutral radicals. Thanks to both anyway :-) Jun 2 '15 at 22:06
  • 1
    Your \radcationleft macro can also be written like this: \newcommand\radcationleft{\raisebox{1ex}{\Lewis{6.,\scriptscriptstyle+}}}
    – unbonpetit
    Jun 3 '15 at 5:13

No need the extra package since chembove can stack stuff.

\chemfig{A-\chemabove[0pt]{\Lewis{4.,\vphantom o}}{\scriptstyle+}O-B}

enter image description here

EDIT: Still no need of extra package like "stackengine" or extra complicated macro. Lewis and chemabove can do the job:

\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}

enter image description here

  • Thank you for your answer, I can't make it work for my molecule, though. See the edit in the question. Jun 2 '15 at 12:11
  • Can I suggest it as a feature to add? ;) It's useful for mass spectrometry. Jun 2 '15 at 22:45

Ignoring the chemically incorrect structure of my 1st example, one can nonetheless use a stack to do what you ask.

This question also seems related: Draw Lewis structures like a book

EDITED to achieve vertical spacing more in line with OP's desire, and to place code in the macro \cation.

\newcommand\cation{\stackon[.3pt]{$\cdot$}{\scriptsize +}}
\renewcommand\cation{\raisebox{-.3pt}{\stackon[-.2pt]{$\cdot$}{\scriptsize +}}}
  \cation O)}

\cation O)-[::-60]\chemabove{C}{H}(-[::-60]R\rlap{'})-[::60]C(<[::-90]H)(<:[::-50]H)-[::60]C(<[::30]H)(<:[::70]H)-[::-60]R}


enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.