Zur Verdeutlichung der Konfigurationsbestimmung nach dem CIP-System sieht man häufig Abbildungen in denen durch einen umkreisenden Pfeil nach links oder rechts die Zuordnung einer Struktur zu R oder S- verdeutlicht wird. (siehe Bild) Wie kann ein solcher Pfeil in eine Abbildung mit chemfig eingezeichnet werden ?

alt text

gefragt 20 Okt '13, 10:52

butts's gravatar image

butts
674163440
Akzeptiert-Rate: 40%

bearbeitet 20 Okt '13, 11:09

cgnieder's gravatar image

cgnieder
22.1k253463


Das folgende ist bestimmt nicht die eleganteste Lösung.

Setzt man die Formel zwischen \schemestart und \schemestop, dann wird jede Komponente zwischen verschiedenen \arrow-Aufrufen in eine TikZ-Node gesetzt. Diese werden in der Voreinstellung mit c1, c2 usw. durchgezählt. (Anzeigen lassen kann man sich das mit \schemedebug{true}.) Das nütze ich aus, um mit \chemmove (einem Wrapper um ein tikzpicture mit den Optionen remember picture, overlay) einen Bogen mit der arc-Operation zu zeichnen.

Außerdem benutze ich aus reiner Bequemlichkeit chemmacros, das einige IUPAC-Befehle zur Verfügung stellt, unter anderem \S, das innerhalb von \iupac{} die S-Konfiguration bedeutet.

Das folgende muss zweimal kompiliert werden:

\documentclass{article}

\usepackage{chemfig}
\usepackage{chemmacros}% für den \iupac-Befehl
\newcommand*\CIP[1]{{\color{blue}#1}}

\begin{document}

\schemestart
  \chemname{%
    \chemfig{
      \CIP{3}-[:90,.5,,,draw=none]H_3C
      -[:30]C
        (-[:90]CH_2(-[:90,.5,,,draw=none]\CIP{2})-[:150]H_3C)
        (<:[:-10]H-[::0,.5,,,draw=none]\CIP{4})
      <[:-60]OH-[:-90,.5,,,draw=none]\CIP{1}}
    }{\iupac{\S-2-Butanol}}
  \arrow{0}
  \chemname{%
    \hflipnext\chemfig{
      \CIP{3}-[:90,.5,,,draw=none]H_3C
      -[:30]C
        (-[:90]CH_2(-[:90,.5,,,draw=none]\CIP{2})-[:150]H_3C)
        (<:[:-10]H-[::0,.5,,,draw=none]\CIP{4})
      <[:-60]OH-[:-90,.5,,,draw=none]\CIP{1}}
    }{\iupac{\R-2-Butanol}}
\schemestop
\chemmove{
  \draw[->]
    (c1.east)++(0:.5cm) arc [radius=2.5cm,delta angle=210, start angle=0] ;
  \draw[->]
    (c2.west)++(0:-.5cm) arc [radius=2.5cm,delta angle=-210, start angle=180] ;
}

\end{document}

alt text

TikZ-Meister mögen das als Ausgangspunkt für elegantere Lösungen verwenden...

Permanenter link

beantwortet 20 Okt '13, 11:43

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 09 Nov '13, 15:24

Ich habe Deine Lösung für das Problem gleich ausprobiert. Leider erhielt ich folgenden Fehlermeldung:

! LaTeX Error: File `language/ghsystem_english.def' not found.

Weißt Du hier vielleicht woran es liegen könnte?

(20 Okt '13, 11:58) butts

@butts Klingt danach, als ob Du MiKTeX verwendest und Deine Version von chemmacros veraltet ist. Versuche \usepackage[ghsystem=false]{chemmacros}.

(20 Okt '13, 12:01) cgnieder

@Clemens mit der von Dir vorgeschlagenen Änderung klappt es. VIELEN DANK !

Noch eine off-topic-Frage: Wenn ich mit Deiner Antwort zufrieden bin, wie kann ich das denn kennzeichnen - über die Vergabe von Punkten mit dem button 'Vergib Punkte'
unterhalb der von dir geposteten Antwort ?

(20 Okt '13, 12:09) butts

@butts: Du kannst für die Antwort stimmen (auch für alle anderen und auch die anderen Fragen), indem Du auf den Daumen rauf/runter links neben den Fragen/Antworten klickst. Dort siehst Du auch ein Häkchen, mit dem Du eine Anwort akzeptieren kannst, wenn Du magst. »Vergib Punkte« würde ich für herausragende Posts aufheben, da Du sie dann von Deinen eigenen Punkten abgibst...

(20 Okt '13, 12:12) cgnieder

@Clemens ich versuche Deine Lösung nachzuvollziehen. im draw-Befehl wird ein Kreisbogen zwischen zwei nodes gezeichnet, wenn ich das richtig verstehe. Woher kommt denn die Bezeichnung der nodes ?? Der erste heißt offensichtlich c1 und der zweite node heißt 0 ??? Also ich beziehe mich auf diese Codezeile aus Deiner Lösung:

(c1.east)++(0:.5cm) arc [radius=2.5cm,delta angle=210, start angle=0] ;

(25 Okt '13, 12:00) butts

Die Bezeichnung c1 kommt von chemfig selbst. Zwischen \schemestart und \schemestop werden die einzelnen Nodes (die Teile zwischen einzelnen \arrows als Nodes gezeichnet, die durchnummeriert als c1, c2 usw bezeichnet werden, wenn man keine eigenen Namen vergibt. Man kann sich das mit \schemedebug{true} anzeigen lassen. ++(0:.5cm) verschiebt die aktuelle Koordinate (++) mit Hilfe von Polarkoordinaten (Winkel von 0° mit einem Radius von 0,5cm). Das ist Standard-TikZ und im pgfmanual ausführlich beschrieben.

(25 Okt '13, 12:23) cgnieder
(25 Okt '13, 12:37) cgnieder

@Clemens

ich wollte Deine Lösung nun so abwandeln, daß ich neben der S-Form des Moleküls gleich die R-Form zeichnen lasse. Ich hätte dabei gern den umkreisenden Pfeil genau spiegelbildlich zum dem in der S-Form. Die Startpunkte beider Pfeile sollen sich genau nebeneinander auf gleicher Höhe befinden. Ich bekomme das nicht hin. Könntest Du mir da nochmal helfen ? ich versuchte in Abwandlung Deines Codebeispiels:

(c1.west)++(0:.5cm) arc [radius=2.5cm,delta angle=-210, start angle=0] ;

das hat jedoch nicht funktioniert.

(09 Nov '13, 10:46) butts

@butts: siehe überarbeitete Antwort

(09 Nov '13, 15:25) cgnieder
Ergebnis 5 von 9 show 4 more comments
Deine Antwort
Vorschau umschalten

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

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×41

gestellte Frage: 20 Okt '13, 10:52

Frage wurde gesehen: 11,125 Mal

zuletzt geändert: 09 Nov '13, 15:25