2

I've been trying to draw the following reaction scheme using chemfig: Reaction scheme

Following the response given here: chemfig: double harpoon + arched in/out arrow in reaction, I've managed to draw the following scheme: Created scheme

Which uses the arrow <U=> defined as:

\makeatletter
\definearrow2{<U=>}{%
    \CF@arrow@shift@nodes{#2}%
    \path[allow upside down](\CF@arrow@start@node)--(\CF@arrow@end@node)%
            node[pos=0,yshift=1pt](\CF@arrow@start@node @u0){}%
            node[pos=0,yshift=-1pt](\CF@arrow@start@node @d0){}%
            node[pos=1,yshift=1pt](\CF@arrow@start@node @u1){}%
            node[pos=1,yshift=-1pt](\CF@arrow@start@node @d1){};%
    \begingroup%
        \pgfarrowharpoontrue%
        \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node @u0)--(\CF@arrow@start@node @u1)node[pos=0.4](Uarrow@arctangent){};%
        \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node @d1)--(\CF@arrow@start@node @d0);%
    \endgroup%
    \expandafter\draw\expandafter(Uarrow@arctangent) arc (270:190:.333) node (Uarrow@end) {};%
    \node[anchor=south,yshift=2pt] at ([email protected]) {#1};
}
\makeatother

As you may have noticed by now, I am missing the rate constants w and z. I've tried to modified the definition of the arrow <U=>, but I haven't been able to create the complete diagram yet. Here is a fully working example:

    \documentclass{article}
\usepackage{chemfig}
\makeatletter
\definearrow2{<U=>}{%
    \CF@arrow@shift@nodes{#2}%
    \path[allow upside down](\CF@arrow@start@node)--(\CF@arrow@end@node)%
            node[pos=0,yshift=1pt](\CF@arrow@start@node @u0){}%
            node[pos=0,yshift=-1pt](\CF@arrow@start@node @d0){}%
            node[pos=1,yshift=1pt](\CF@arrow@start@node @u1){}%
            node[pos=1,yshift=-1pt](\CF@arrow@start@node @d1){};%
    \begingroup%
        \pgfarrowharpoontrue%
        \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node @u0)--(\CF@arrow@start@node @u1)node[pos=0.4](Uarrow@arctangent){};%
        \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node @d1)--(\CF@arrow@start@node @d0);%
    \endgroup%
    \expandafter\draw\expandafter(Uarrow@arctangent) arc (270:190:.333) node (Uarrow@end) {};%
    \node[anchor=south,yshift=2pt] at ([email protected]) {#1};
}
\makeatother


\begin{document}
\section{Example}
\begin{equation}
\label{threestateslinear1}
\schemestart
A
\arrow{<=>[$x$][$y$]}
B
\arrow{<U=>[D]}
C
\schemestop
\end{equation}
\end{document}

What am I missing?

2
  • 1
    Welcome to TeX.SE! Instead of pasting only a code snippet, please add a fully but minimal working example!
    – user156344
    Feb 17, 2019 at 15:04
  • 1
    Thans @JouleV, I have added a working example. Feb 17, 2019 at 15:18

1 Answer 1

5

enter image description here

The above images is produced using the following MWE:

\documentclass{article}
\usepackage{chemfig}
\catcode`\_=11
\definearrow4{<U=>}{%
    \CF_arrowshiftnodes{#4}%
    \path[allow upside down](\CF_arrowstartnode)--(\CF_arrowendnode)%
            node[pos=0,yshift=1pt](\CF_arrowstartnode u0){}%
            node[pos=0,yshift=-1pt](\CF_arrowstartnode d0){}%
            node[pos=1,yshift=1pt](\CF_arrowstartnode u1){}%
            node[pos=1,yshift=-1pt](\CF_arrowstartnode d1){};%
    \begingroup%
        \pgfarrowharpoontrue%
        \expandafter\draw\expandafter[\CF_arrowcurrentstyle](\CF_arrowstartnode u0)--(\CF_arrowstartnode u1)node[pos=0.4](Uarrowarctangent){};%
        \expandafter\draw\expandafter[\CF_arrowcurrentstyle](\CF_arrowstartnode d1)--(\CF_arrowstartnode d0);%
    \endgroup%
    \expandafter\draw\expandafter(Uarrowarctangent) arc (270:190:.333) node (Uarrowend) {};%
    \node[anchor=south,yshift=2pt] at (Uarrowend.north) {#1};
    \node[anchor=south,yshift=2pt,xshift=5pt] at (Uarrowarctangent) {#2};  
    \node[anchor=south,yshift=-8pt,xshift=5pt] at (Uarrowarctangent) {#3};
}
\catcode`\_=8


\begin{document}
\section{Example}
\begin{equation}
\label{threestateslinear1}
\schemestart
A
\arrow{<=>[$x$][$y$]}
B
\arrow{<U=>[D][$w$][$z$]}
C
\schemestop
\end{equation}
\end{document}

Previous MWE (for versions of chemfig older than 1.4):

\documentclass{article}
\usepackage{chemfig}
\makeatletter
\definearrow4{<U=>}{%      %<--------------------
    \CF@arrow@shift@nodes{#4}%    %<--------------------
    \path[allow upside down](\CF@arrow@start@node)--(\CF@arrow@end@node)%
            node[pos=0,yshift=1pt](\CF@arrow@start@node @u0){}%
            node[pos=0,yshift=-1pt](\CF@arrow@start@node @d0){}%
            node[pos=1,yshift=1pt](\CF@arrow@start@node @u1){}%
            node[pos=1,yshift=-1pt](\CF@arrow@start@node @d1){};%
    \begingroup%
        \pgfarrowharpoontrue%
        \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node @u0)--(\CF@arrow@start@node @u1)node[pos=0.4](Uarrow@arctangent){};%
        \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node @d1)--(\CF@arrow@start@node @d0);%
    \endgroup%
    \expandafter\draw\expandafter(Uarrow@arctangent) arc (270:190:.333) node (Uarrow@end) {};%
    \node[anchor=south,yshift=2pt] at ([email protected]) {#1};
    \node[anchor=south,yshift=2pt,xshift=5pt] at (Uarrow@arctangent) {#2};    %<--------------------
    \node[anchor=south,yshift=-8pt,xshift=5pt] at (Uarrow@arctangent) {#3};    %<--------------------
}
\makeatother


\begin{document}
\section{Example}
\begin{equation}
\label{threestateslinear1}
\schemestart
A
\arrow{<=>[$x$][$y$]}
B
\arrow{<U=>[D][$w$][$z$]}
C
\schemestop
\end{equation}
\end{document}

Lines that I have changed or added are highlighted with %<--------------------. Please note that absolute positioning of the labels as done in the example might not be the most elegant solution.

2
  • I tried running this example in Overleaf but it doesn't work anymore. Jul 31, 2021 at 22:31
  • 1
    @LucasAlanis: Thanks for making me aware of this. I just edited my answer to adapt it to the new syntax. The new MWE should now work with verisons of chemfig that are newer than 1.4.
    – leandriis
    Aug 1, 2021 at 10:23

You must log in to answer this question.

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