5

If I wanted to draw something like this with the chemfig package, how would I do that?

enter image description here

I'm especially wondering how to draw the arrows in the most simple and beautiful way possible.

Update: With help from one of the replies i've managed to fully complete the right side of the arrow. My code so far looks like this:

\documentclass[border=5mm]{standalone}
\usepackage{chemfig}
\definesubmol{e}{-[,.15,,,draw=none]}

\begin{document}

\schemestart
    \chemfig{[:30]**6(--(-C(=[90]O)-O)----)}
    %
    \quad \arrow \quad
    %
    \chemfig{[:30]**6(--(!e\Lewis{0.,})----)}
    \arrow{0}[,0]\+
    \chemfig{C(=[90]O)(=[270]O)}
\schemestop

\end{document}

This is how it looks: Can

I'm still missing a few elements as you can probably see being:

  1. The Lewis dot on the oxygen molecule is not showing.
  2. The arrows are still missing.
  3. The left side is not properly lined up with the arrow and the right side.

If anyone has any improvements to my code, feel free to say so! :)

5
  • 1
    Probably useful for the product part of the reaction: tex.stackexchange.com/q/59816/134144
    – leandriis
    Oct 10, 2019 at 20:05
  • Thank you! Helped a lot. I've updated the question with my drawing so far. Still have a bunch of issues though!
    – MathIsHard
    Oct 10, 2019 at 20:48
  • 1
    Great update. The missing radical dot on the left side can be added using \lewis{0.,O} as in \chemfig{[:30]**6(--(-C(=[90]O)-\lewis{0.,O})----)}.
    – leandriis
    Oct 10, 2019 at 20:57
  • 1
    For the curved arrows, you might find \mcfpush from the mol2chemfig package useful. You can find an example here: tex.stackexchange.com/q/508895/134144
    – leandriis
    Oct 10, 2019 at 21:00
  • Whew, that seems difficult! For some reason, my compiler can't use the mol2chemfig package, weird.. Even when i copy the code directly from the other post, it wont compile :/. Anyway, im gonna take a look at it tomorrow.
    – MathIsHard
    Oct 10, 2019 at 21:15

1 Answer 1

5
\documentclass{article}

\usepackage{chemfig}
\usetikzlibrary{calc}

\begin{document}

\setchemfig{lewis radius =0.25ex,lewis sep =1ex}
\schemestart
\chemfig{
    [:-30]**6(---(@{a1}-[@{a2}0]C(=[2]O)(=[6,,,,draw=none]\phantom{O})
    -[@{a3}0]@{a4}\Lewis{0.,O}-[,0.7,,,draw=none])---)}
\arrow{->}
\chemfig{-[0,0.5,,,draw=none]**6(---(-[,0.3,,,draw=none]\Lewis{0.,})---)}
\arrow{0}[,0.2]
\+
\arrow{0}[,0.2]
\chemfig{C(=[2]O)(=[6]O)}
\schemestop
\chemmove{
    \draw[arrows = {-Stealth[harpoon]}, shorten <=1pt, shorten >=1pt]
        ($(a2)+(-1pt,0)$) .. controls +(270:10mm) and +(270:10mm) .. (a1);
    \draw[arrows = {-Stealth[harpoon]}, shorten <=1pt, shorten >=1pt]
        ($(a2)+(1pt,0)$) .. controls +(270:10mm) and +(270:10mm) .. ($(a3)+(-1pt,0)$);
    \draw[arrows = {-Stealth[harpoon,swap]}, shorten <=2pt, shorten >=1pt]
        ($(a4)+(1.25ex,0)$) .. controls +(270:10mm) and +(270:10mm) .. ($(a3)+(1pt,0)$);
}

\end{document}

Edit

change \Lewis to \charge

\documentclass{article}
\usepackage{chemfig}
\usetikzlibrary{calc}
\begin{document}
\setchemfig{lewis radius =0.25ex,lewis sep =1ex}
\schemestart
\chemfig{
    [:-30]**6(---(@{a1}-[@{a2}0]C(=[2]O)(=[6,,,,draw=none]\phantom{O})
    -[@{a3}0]@{a4}\charge{0=\.}{O}-[,0.7,,,draw=none])---)}
\arrow{->}
\chemfig{-[0,0.5,,,draw=none]**6(---\charge{0:2pt=\.}{}---)}
\arrow{0}[,0.2]
\+
\arrow{0}[,0.2]
\chemfig{C(=[2]O)(=[6]O)}
\schemestop
\chemmove{
    \draw[arrows = {-Stealth[harpoon]}, shorten <=1pt, shorten >=1pt]
        ($(a2)+(-1pt,0)$) .. controls +(270:10mm) and +(270:10mm) .. (a1);
    \draw[arrows = {-Stealth[harpoon]}, shorten <=1pt, shorten >=1pt]
        ($(a2)+(1pt,0)$) .. controls +(270:10mm) and +(270:10mm) .. ($(a3)+(-1pt,0)$);
    \draw[arrows = {-Stealth[harpoon,swap]}, shorten <=2pt, shorten >=1pt]
        ($(a4)+(1.25ex,0)$) .. controls +(270:10mm) and +(270:10mm) .. ($(a3)+(1pt,0)$);
}
\end{document}

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.