5

Hello I need help drawing/typesetting an acid base reaction showing the conjugate pairs: enter image description here Here is what I have so far:

\documentclass{article}
\usepackage{chemfig}
\usepackage{endiagram}
\usepackage{booktabs}
\begin{document}
\setchemfig{cram width=3pt}
\schemestart
\chemname{\chemfig{H_{3}C-C(=[:45]O)-[:-45]O-[:0]H}}{Acetic Acid}
+
\chemname{\chemfig{H_{3}C-\Lewis{2:,N}(<:[:-15]H)<[:-40]H}}{Methylamine}
\arrow{<=>}
\chemname{\chemfig{H_{3}C-C(=[:45]O)-[:-45]O\rlap{${}^-$}}}{Acetate Ion}
+
\chemname{\chemfig{H_{3}C-N\rlap{${}^+$}(-[:45]H)(<:[:-15]H)<[:-40]H}}{Mathylammonium Ion}
\schemestop
\end{document}

Which produces the reaction and the lewis structures I am interested in. I do not need the colours nor the dots around the oxygen atoms, I only require assistance with the bottom section of the figure. My code currently produces this: enter image description here I know it might be possible to use \tikz[overlay,remember picture]{}, but I do not know how to label the text below the chemicals.

1 Answer 1

3

Something like this?

\documentclass{article}
\usepackage{chemfig}
\usepackage{endiagram}
\usepackage{booktabs}
\usetikzlibrary{tikzmark,positioning,shapes.geometric}
\definecolor{dullblue}{RGB}{178,201,231}
\begin{document}
\setchemfig{cram width=3pt}
\schemestart
\chemname{\chemfig{H_{3}C-C(=[:45]O)-[:-45]O-[:0]H}}{\tikzmarknode{A}{Acetic
Acid}}
+
\chemname{\chemfig{H_{3}C-\Lewis{2:,N}(<:[:-15]H)<[:-40]H}}{\tikzmarknode{B}{Methylamine}}
\arrow{<=>}
\chemname{\chemfig{H_{3}C-C(=[:45]O)-[:-45]O\rlap{${}^-$}}}{\tikzmarknode{C}{Acetate
Ion}}
+
\chemname{\chemfig{H_{3}C-N\rlap{${}^+$}(-[:45]H)(<:[:-15]H)<[:-40]H}}{\tikzmarknode{D}{Mathylammonium
Ion}}
\schemestop
\begin{tikzpicture}[overlay,remember picture]
\node[below=3mm of A,fill=dullblue,draw,ellipse] (Acid1) {Acid};
\node[below=3mm of B,draw,ellipse] (Base1) {Base};
\node[below=3mm of C,fill=dullblue,draw,ellipse] (Base2) {Base};
\node[below=3mm of D,draw,ellipse] (Acid2) {Acid};
\draw[blue!50] (Acid1) -- ++ (0,-1.5) coordinate(aux) -| (Base2);
\draw (Base1) -- ++ (0,-2)  -| (Acid2);
\node[anchor=south,blue!50,fill=white,outer sep=1pt] at (aux-|Base1) {Conjugate pair};
\end{tikzpicture}
\end{document}

enter image description here

2
  • That's exactly what I wanted, but one question what does aux-|Base1 do for the position of the conjugate pair node
    – sab hoque
    Nov 30, 2018 at 22:05
  • 1
    @sabhoque The coordinate (aux-|Base1) is the point with the y-coordinate of aux and the x-coordinate of Base1, as explained very nicely in this answer.
    – user121799
    Nov 30, 2018 at 22:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .