*neue Antwort:*
es ist im Grunde ganz einfach: lass den 180-Grad-Anker weg:
\schemestart
PEP
\arrow{%
-y>[*{0}\scriptsize{ADP}]%
[*{0}\scriptsize{ATP}]%
[*{0}{PykF, PykA}]%
}[-90,,thick]
Pyruvat
\schemestop
Damit wird das Label auf die linke Seite des Pfeils gesetzt. (Im Code unten habe ich mal ein paar Kommentare eingefügt, wie die Pfeildefinition funktioniert.)
![Ergebnis][1]
\documentclass{article}
\usepackage{chemfig}
\makeatletter
% Einen Pfeiltyp `-y>' mit 6 optionalen Argumenten definieren:
% \arrow{-y>[<Label Bogen Anfang>]%
% [<Label Bogen Ende>]%
% [<Label unterhalb>]%
% [<Pfeil Offset>]%
% [<Quotient Bogenradius/Pfeillänge>]% Default: 0.333
% [<Hälfte Winkel des Bogens>]% Default: 60
% }
\definearrow{6}{-y>}{%
% eventuelle Verschiebung:
\CF@arrow@shift@nodes{#4}%
% zeichne Hauptpfeil:
\expandafter\draw\expandafter[\CF@arrow@current@style,-CF@full]
(\CF@arrow@start@node)--(\CF@arrow@end@node)node[midway](yarrow@arctangent){};%
% gibt es Label #1?
\edef\CF@tmp@str{\ifx\@empty#1\@empty[draw=none]\fi}%
% wenn ja, zeichne Linke Bogenhälfte:
\expandafter\draw\CF@tmp@str (yarrow@arctangent)%
arc[
radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#5\@empty0.333\else#5\fi,
start angle=\CF@arrow@current@angle-90,
delta angle=-\ifx\@empty#6\@empty60\else#6\fi
]
node(yarrow@start){};
% gibt es Label #2?
\edef\CF@tmp@str{[\ifx\@empty#2\@empty draw=none,\fi-CF@full]}%
% wenn ja, zeichne zweite Bogenhälfte:
\expandafter\draw\CF@tmp@str (yarrow@arctangent)%
arc[
radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#5\@empty0.333\else#5\fi,
start angle=\CF@arrow@current@angle-90,
delta angle=\ifx\@empty#6\@empty60\else#6\fi
]
node(yarrow@end){};
% Label platzieren; dafür müssen wir das Vorzeichen der Verschiebung kennen:
\edef\CF@tmp@str{\if\string-\expandafter\@car\detokenize{#4.}\@nil-\else+\fi}%
% platziere Label #1 und #2:
\CF@arrow@display@label{#1}{0}{\CF@tmp@str}{yarrow@start}{#2}{1}{\CF@tmp@str}{yarrow@end}%
% platziere Label #3:
\CF@arrow@display@label{#3}{0.5}{-}{\CF@arrow@start@node}{}{}{}{\CF@arrow@end@node}%
}
\makeatother
\begin{document}
\schemestart
A \arrow{-y>[a][b][c]} B
\schemestop
\bigskip
\schemestart[-90]
A \arrow{-y>[*{0}a][*{0}b][*{0}c]} B
\schemestop
\bigskip
\schemestart
PEP
\arrow{%
-y>[*{0}\scriptsize{ADP}]%
[*{0}\scriptsize{ATP}]%
[*{0}{PykF, PykA}]%
}[-90,,thick]
Pyruvat
\schemestop
\end{document}
----------
*ursprüngliche Antwort:*
Wenn Du die Zeile
\CF@arrow@shift@nodes{#4}%
hinter die Pfeildefinition setzt aber _bevor_ die Label gesetzt werden, kannst Du das vierte Argument verwenden, um das Label zu verschieben. Das hat natürlich den Nachteil, dass man den Pfeil selbst damit nicht mehr verschieben kann.
Um das Label nach links zu schieben, könnte man dann eine negative Länge verwenden, oder man könnte das Label gar nicht verschieben und einen anderen Anker in Kombination mit `\rotatebox verwenden`: `[*{180.180}{\rotatebox{180}{PykF, PykA}}]`.
Beides wird im folgende Code gezeigt:
\documentclass{article}
\usepackage{chemfig}
\makeatletter
\definearrow6{-y>}{%
% \CF@arrow@shift@nodes{#4}% <= nicht hier
\expandafter\draw\expandafter[\CF@arrow@current@style,-CF@full]
(\CF@arrow@start@node)--(\CF@arrow@end@node)node[midway](yarrow@arctangent){};%
\edef\CF@tmp@str{\ifx\@empty#1\@empty[draw=none]\fi}%
\expandafter\draw\CF@tmp@str (yarrow@arctangent)%
arc[
radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#5\@empty0.333\else#5\fi,
start angle=\CF@arrow@current@angle-90,
delta angle=-\ifx\@empty#6\@empty60\else#6\fi
]
node(yarrow@start){};
\edef\CF@tmp@str{[\ifx\@empty#2\@empty draw=none,\fi-CF@full]}%
\expandafter\draw\CF@tmp@str (yarrow@arctangent)%
arc[
radius=\CF@compound@sep*\CF@current@arrow@length*\ifx\@empty#5\@empty0.333\else#5\fi,
start angle=\CF@arrow@current@angle-90,
delta angle=\ifx\@empty#6\@empty60\else#6\fi
]
node(yarrow@end){};
\CF@arrow@shift@nodes{#4}% <= hier
\edef\CF@tmp@str{\if\string-\expandafter\@car\detokenize{#4.}\@nil-\else+\fi}%
\CF@arrow@display@label{#1}{0}\CF@tmp@str{yarrow@start}{#2}{1}\CF@tmp@str{yarrow@end}%
\CF@arrow@display@label{#3}{0.5}-\CF@arrow@start@node{}{}{}\CF@arrow@end@node
}
\makeatother
\begin{document}
\schemestart
PEP
\arrow{%
-y>[*{0.180}\scriptsize{ADP}]%
[*{0.180}\scriptsize{ATP}]%
[*{0.180}{PykF, PykA}]%
[10pt]%
}[-90,,thick]
Pyruvat
\schemestop
\schemestart
PEP
\arrow{%
-y>[*{0.180}\scriptsize{ADP}]%
[*{0.180}\scriptsize{ATP}]%
[*{180.180}{\rotatebox{180}{PykF, PykA}}]%
}[-90,,thick]
Pyruvat
\schemestop
\end{document}
![Ergebnis eins][1]
eins][2]
![Ergebnis zwei][2]
zwei][3]
[1]: http://i.imgur.com/gM8Q95p.png
[2]: http://i.imgur.com/zr4ISoX.png
[2]: [3]: http://i.imgur.com/Z1uPCYc.png