\documentclass[12pt,border=1pt,crop,multi=false,tikz,class=scrartcl]{standalone}
\usepackage{chemfig,chemmacros}
\usepackage{color}
\usepackage{xcolor}
\renewcommand*{\familydefault}{\sfdefault}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1} } }
\setatomsep{2em}
\setdoublesep{.6ex}
\setarrowdefault{,1.2, thick}
\setbondstyle{thick,cap=round}
\makeatletter
% From: http://tex.stackexchange.com/a/125761
% Initial arguments:
% #1, #2: Same as for -U> (above arrow)
% #3: Additional label at midpoint (also above arrow)
% #4, #5, #6: Like #1, #2, and #3, but below arrow
\definearrow9{-X>}{%
\CF@arrow@shift@nodes{#7}%
\expandafter\draw\expandafter[\CF@arrow@current@style,-CF](\CF@arrow@start@node)--(\CF@arrow@end@node)node[midway](Xarrow@arctangent){};%
\edef\CF@tmp@str{\ifx\@empty#1\@empty[draw=none]\fi}%
\expandafter\draw\CF@tmp@str (Xarrow@arctangent)%
arc[radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#8\@empty0.333\else#8\fi,start angle=\CF@arrow@current@angle-90,%
delta angle=-\ifx\@empty#9\@empty60\else#9\fi]node(Xarrow1@start){};
\edef\CF@tmp@str{[\ifx\@empty#2\@empty draw=none,\fi-CF]}%
\expandafter\draw\CF@tmp@str (Xarrow@arctangent)%
arc[radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#8\@empty0.333\else#8\fi,start angle=\CF@arrow@current@angle-90,%
delta angle=\ifx\@empty#9\@empty60\else#9\fi]node(Xarrow1@end){};
\edef\CF@tmp@str{\ifx\@empty#4\@empty[draw=none]\fi}%
\expandafter\draw\CF@tmp@str (Xarrow@arctangent)%
arc[radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#8\@empty0.333\else#8\fi,start angle=\CF@arrow@current@angle+90,%
delta angle=\ifx\@empty#9\@empty60\else#9\fi]node(Xarrow2@start){};
\edef\CF@tmp@str{[\ifx\@empty#5\@empty draw=none,\fi-CF]}%
\expandafter\draw\CF@tmp@str (Xarrow@arctangent)%
arc[radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#8\@empty0.333\else#8\fi,start angle=\CF@arrow@current@angle+90,%
delta angle=-\ifx\@empty#9\@empty60\else#9\fi]node(Xarrow2@end){};
\edef\CF@tmp@str{\if\string-\expandafter\@car\detokenize{#7.}\@nil-\else+\fi}%
\CF@arrow@display@label{#1}{0}\CF@tmp@str{Xarrow1@start}{#2}{1}\CF@tmp@str{Xarrow1@end}%
\CF@arrow@display@label{#3}{0.5}\CF@tmp@str\CF@arrow@start@node{}{}{}\CF@arrow@end@node%
\edef\CF@tmp@str{\if\string-\expandafter\@car\detokenize{#7.}\@nil+\else-\fi}%
\CF@arrow@display@label{#4}{0}\CF@tmp@str{Xarrow2@start}{#5}{1}\CF@tmp@str{Xarrow2@end}%
\CF@arrow@display@label{#6}{0.5}\CF@tmp@str\CF@arrow@start@node{}{}{}\CF@arrow@end@node%
}
\makeatother
\pagestyle{empty}
\thispagestyle{empty}
\begin{document}
\schemestart[][west]
\chemname{\chemfig{
P(=[2]O)(-[:150]HO)(-[:210]HO)-[:-30]O-[:30]-[::-60](-[::-60]OH)-[::60](=[::60]O)-[::-60]OH}
}{\color{blue}3--phosphoglycerate}
\arrow{-X>[\ch{NAD}\pch][\ch{H}\pch+\\\ch{NADH}][][][][\color{purple}EC 1.1.1.95]}[,2.5]
\chemname{\chemfig{
P(=[2]O)(-[:150]HO)(-[:210]HO)-[:-30]O-[:30]-[::-60](=[::-60]O)-[::60](=[::60]O)-[::-60]OH}
}{\color{blue}3--phosphohydroxypyruvate}
\arrow{-X>[*{0}\ch{L-glutamate}][*{0}2\ch{-oxoglutarate}][][][][*{0}\color{purple}EC 2.6.1.52]}[-90,1.5]
\chemname{\chemfig{
P(=[2]O)(-[:150]HO)(-[:210]HO)-[:-30]O-[:30]-[::-60](-[::-60]NH_2)-[::60](=[::60]O)-[::-60]OH}
}{\color{blue}O--phosphoserine}
\arrow{-X>[][][\color{purple}EC 3.1.3.3][\ch{H2O}][\ch{P_i}][][-2ex]}[-180,2]
\chemname{\chemfig{
HO-[:30]-[::-60](-[::-60]NH_2)-[::60](=[::60]O)-[::-60]OH}
}{\color{blue}serine}
\schemestop
\end{document}