Hallo!

Ich habe die Definition für den Reaktionspfeil im Internet gefunden:

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{chemfig}
\newcommand*\circleatom[1]{\tikz\node[circle,draw]{\printatom{#1}};}
\makeatletter
\definearrow6{-y>}{%
\CF@arrow@shift@nodes{#4}%
\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){};
\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}]}[-90,,thick]
Pyruvat
\schemestop
\end{document}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Allerdings ist die Definition für einen horizontalen Reaktionspfeil gedacht und nicht für einen vertikalen, so wie ich es verwende.

Wie kann ich die Beschriftung "PykF, PykA" nach links verschieben?

gefragt 24 Jul '13, 14:30

Bettina's gravatar image

Bettina
665181923
Akzeptiert-Rate: 25%

bearbeitet 28 Jul '13, 15:02

cgnieder's gravatar image

cgnieder
22.1k253463


neue Antwort:

es ist im Grunde ganz einfach: lass den 180-Grad-Anker weg:

Code, hier editierbar zum Übersetzen:
\schemestart
PEP
\arrow{%
-y>[*{0}\scriptsize{ADP}]%
[*{0}\scriptsize{ATP}]%
[*{0}{PykF, PykA}]%
}[-90,,thick]
Pyruvat
\schemestop
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

Code, hier editierbar zum Übersetzen:
\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:
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ursprüngliche Antwort:

Wenn Du die Zeile

\CF@arrow@shift@nodes{#4}%
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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:

Code, hier editierbar zum Übersetzen:
\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]
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ergebnis eins

Ergebnis zwei

Permanenter link

beantwortet 24 Jul '13, 14:44

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 25 Jul '13, 08:47

Leider funktioniert es nicht mit dem Zeilenumbruch aus meiner anderen Fragen (http://texwelt.de/wissen/fragen/904/zeilenumbruch-in-der-beschriftung-von-reaktionpfeil-in-chemfig)

[*{180.180}{\rotatebox{180}\stack{PykF,\\PykA}}]
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Jetzt steht es auf dem Kopf.

(24 Jul '13, 15:30) Bettina
1

@Bettina Da fehlt eine Klammer: [*{180.180}{\rotatebox{180}{\stack{PykF,\\PykA}}}]. Wahrscheinlich solltest Du auch das optionale Argument zu \stack benutzen, um die Breite anzupassen.

(24 Jul '13, 17:19) cgnieder

Sorry, ich hab schon wieder eine Frage. Wie mache ich aus dem Reaktionspfeil ein Gleichgewichtspfeil? Also so etwas wie <=y>?

(24 Jul '13, 19:23) Bettina

@Bettina kannst Du das als neue Frage stellen? Der Kommentarbereich eignet sich für eine Antwort auf die Frage nicht...

(24 Jul '13, 21:41) cgnieder

Ok, das mache ich heute Abend.

(25 Jul '13, 08:57) Bettina

@Bettina hat sich Deine Frage bezüglich eines <=y> Pfeils eigentlich erledigt?

(29 Aug '13, 16:47) cgnieder

@Clemens Danke der Nachfrage! Ich stecke gerade in der Diplomarbeit und deshalb bin ich leider noch nicht dazu gekommen, die Frage zu formulieren. Nichts desto trotz hat sich die Frage noch nicht für mich erledigt. Ich muss sehen, wann ich es schaffe, sie zu stellen.

(29 Aug '13, 17:49) Bettina
Ergebnis 5 von 7 show 2 more comments
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×50
×41
×35

gestellte Frage: 24 Jul '13, 14:30

Frage wurde gesehen: 20,973 Mal

zuletzt geändert: 29 Aug '13, 17:49

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×