[Tex/LaTex] Arranging vertical reaction with “plus(+)” in chemfig scheme

chemfig

I'm now trying to draw some basic chemistry scheme with the package "chemfig". I tried to draw something like this:

Actually I successfully created the image above via the following code:

\documentclass[12pt]{article}
\usepackage{chemfig,chemmacros}
\usepackage{amsmath}
\begin{document}
\schemestart
E\arrow(enzyme--){0}[0,0]\+S\arrow{<=>[$k_{1}$][$k_{2}$]}ES\arrow{->[$ k_{3} $][]}E\+P
\arrow(@enzyme--){0}[-90,0.15]+\arrow{0}[-90,0.15]I\arrow{<=>[*{0}$ k_{4} $][*{0}$ k_{5} $]}[-90]EI
\schemestop
\end{document}

But it seems to me that it wasn't a good idea to use invisible arrows to provide enough space between "E" and "+" and "I". (Besides, if I use \+ instead, it would move slightly to the right side.) Is there any other way to arrange this vertical reaction? Also, is there another way to name "E" and "S" separately without using invisible array? Thank you very much.

Best Answer

tex.stackexchange identifed your question as close to mine, so here is a solution based on this answer that uses \definearrow:

reaction E+S=ES->E+P crossed with reaction E+I=EI

\documentclass[12pt]{standalone}
\usepackage{chemfig}

\makeatletter
\definearrow{2}{p}{%
    \expandafter\path\expandafter[\CF@arrow@current@style,-CF](\CF@arrow@start@node)--(\CF@arrow@end@node)
    node[midway, anchor=center]{+};
    \CF@arrow@display@label{#1}{0.5}{+}{\CF@arrow@start@node}{#2}{0.5}{-}{\CF@arrow@end@node}
}
\makeatother

\begin{document}
\schemestart
E\arrow(enzyme--){p}[0,0.5]S\arrow{<=>[$k_{1}$][$k_{2}$]}ES\arrow{->[$ k_{3} $][]}E\arrow{p}[,0.5]P
\arrow(@enzyme--){p}[-90,0.5]I\arrow{<=>[*{0}$ k_{4} $][*{0}$ k_{5} $]}[-90]EI
\schemestop
\end{document}
Related Question