LaTeX: chemische Formeln erstellen VI – ChemFig

LaTeX & Chemie – der Überblick als pdf und Quelldatei: LaTeX & Chemie - Überblick (v2011/03/12, 414.78 kB, 745 mal heruntergeladen)

ChemFig – Christian Tellecheas Paket

Seit dem 07.03.2011 ist die aktuelle Version 0.4 von ChemFig auf CTAN erhältlich. Nachdem Version 0.3 neben anderen Verbesserungen schon die Neuerungen \chemname{<formel>}{<name>} zur Beschriftung und \chemmove{} zur Erstellung von Elektronenverschiebungspfeilen brachte, ist ChemFig jetzt vollständig mit eTeX, LaTeX and ConTeXt einsetzbar, da der Code in TeX neugeschrieben wurde.

Wie angekündigt kommt hier noch der Beitrag über ChemFig. Einbinden lässt sich das Paket über \usepackage{chemfig}. Der wichtigste Befehl ist \chemfig{}. ChemFig verwendet TikZ, um die Formeln zu zeichnen. Das heißt, dass alle Formeln von ChemFig in eine tikzpicture-Umgebung geschrieben werden. Schauen wir uns zunächst die Grundsyntax an:

% Beispiel 1
\chemfig{-[:30]=[:-30]-[:30]=[:-30]}


Einfache Bindungen werden mit dem Bindestrich gesetzt, Doppelbindungen mit dem Istgleich-Zeichen. Daneben gibt es noch eine ganze Reihe anderer Befehle für verschiedene Bindungstypen. (<,>,~, usw.). Jeder Bindungsbefehl hat optionale Argumente, das in eckigen Klammern hinter dem Befehl gesetzt wird. Das erste Argument gibt die Bindungsrichtung an. Entweder wird die Bindungsrichtung mit einer Zahl von 0-7 angegeben, die jede für ein entsprechendes Vielfaches von 45° zur Horizontalen steht. Oder man gibt mit : den absoluten Winkel zur Horizontalen an. Damit ergibt Beispiel 1 folgenden Output:

Verzweigungen werden ganz einfach in Klammern gesetzt, Atome an die entsprechende Stelle im Molekül geschrieben.

% Beispiel 2: D-Erythrose
\chemfig{HO-[:-30]-[:30](<[2]OH)-[:-30](<:[6]OH)-[:30]=[:-30]O}

Überzeugend auch das Zeichnen von Ringen:

% Beispiel 3
\chemfig{*6(1-2-3-4-5-6-)} \qquad \chemfig{A*5(---=-)} \\
\chemfig{*6(---O-(-OH)--)} \qquad \chemfig{**6(---(-Br)---)
}

Mit * wird die Ringgröße festgelegt. Dann folgt in Klammern die Spezifizierung. Die Bindungstypen werden wie in offenkettigen Molekülen gesetzt, genauso Atome und Seitenketten. Mit **6 erhält man Benzol.

Möchte man Ringe “selbst basteln” oder verbrückte Substanzen setzen, verwendet man ? als Anker. Er wird an einer Stelle als Markierung gesetzt. An der anderen Stelle, die mit der ersten verbunden werden soll, wird er wieder gesetzt. Man kann auch zweimal auf ihn zurückgreifen.

% Beispiel 4
\chemfig{A-B(-[1]W-X?)(-[7]Y-Z)-C?} \qquad
\chemfig{A-B(-[1]W-X?)(-[7]Y-Z?)-C?
}

Braucht man mehrere Anker, kann man ihnen als optionales Argument in eckigen Klammern ein Label geben.

% Beispiel 5
\chemfig{A?[a]-[:-72]B-C?[a]?[b]-[:72]D-[:144]E?[a]?[b]}

Annelierte Ringe sind auch relativ leicht zu realisieren:

% Beispiel 6
\chemfig{A*6(-B*5(----)=-=-=)}

ChemFig liefert noch einige Befehle, um die Ausgabe den eigenen Bedürfnissen anzupassen. Viele der schon vorgestellten Befehle haben noch eine ganze Reihe optionaler Argumente, durch die man beispielsweise die Länge, Dicke und Farbe der Bindungen ändern kann. Es lassen sich unsichtbare Bindungen erstellen usw. usf. Interessant sind auf jeden Fall die folgenden Befehle: \setatomsep{}, \chemrel[Text  oben][Text unten]{} und \chemsign[]{+}. Mit dem ersten kann man die Default-Bindungslänge[1] verändern. Mir war die Voreinstellung zu lang. Ich verwende lieber \setatomsep{2em}. Mit den letzten beiden Befehlen lassen sich Gleichungen realisieren.

% Beispiel 7
\chemfig{-[:30]-[:-30]OH} \chemsign{+} \chemfig{-[:150]=[2]O}
\chemrel[{[H$^\oplus$]}]{->}
\chemfig{-[:30]-[:-30]O-[:30](-[2]OH)-[:-30]
}\\
%
\chemfig{-[:30](=[2]O)-[:-30]-[:30]-[:-30]O-[:30]-[:-30]}
\chemrel[{[OH$^\ominus$]}]{<>}
\chemfig{=[:30](-[2]OH)-[:-30]-[:30]-[:-30]O-[:30]-[:-30]}
\chemsign{+}
\chemfig{-[:30](-[2]OH)=[:-30]-[:30]-[:-30]O-[:30]-[:-30]
}

Zusätzlich bietet ChemFig noch etwas, das die anderen Strukturformel-Pakete nicht mitbringen: Lewis-Formeln.

% Beispiel 8
\chemfig{[:40]H-\lewis{13,O}-[::-80]H}

Hier wird der Befehl \lewis{<position><elektronenzustand>,<winkel>} eingesetzt. <position> bezeichnet die Position des Elektrons oder Elektronenpaars, <elektronenzustand> kann entweder ein Punkt . sein (Elektron), weggelassen werden (El.-Paar) oder ein senkrechter Strich | sein (leeres Kästchen). Damit lassen sich die verschiedensten Lewisformeln realisieren.

% Beispiel 9
\chemfig{HO-[,0.75]\chemabove{N}{\scriptstyle\oplus}(=[1,0.75]\lewis{02,O})
-[7,0.75]\chemabove{\lewis{157,O}}{\scriptstyle\ominus}
}

Beim letzten Beispiel kam der Befehl \chemabove{}{} zum Einsatz, mit dem man die Ladung eines Atoms oberhalb positionieren kann. Es gibt auch einen entsprechenden \chembelow-Befehl.

Als letztes noch ein Beispiel aus dem Manual, um Ihnen zu zeigen, wie weit man mit ChemFig gehen kann.

% Beispiel 10
\setcrambond{3pt}{}{}
\chemfig{<[:10](>[:85,1.8]?(-[:160,0.6])-[:20,0.6])
>[:-10]-[:60](=[:30,0.6]O)-[:170]?(-[:30,0.6])-[:190]-[:240]}

\vspace*{1cm}

\setcrambond{2pt}{}{}
\definesubmol{c1}{-[:200]-[:120]O-[:190]}
\definesubmol{c2}{-[:170](-[:200,0.7]HO)<[:300](-[:170,0.6]HO)
-[:10,,,,line width=2pt](-[:-40,0.6]OH)>[:-10]}
\definesubmol{csub}{-[:155,0.65]-[:90,0.65]}
\chemfig{O(!{c1}(!{csub}O(!{c1}(!{csub}OH)!{c2}))!{c2})-[:-30]
(-[:-90]CN)-[:30]*6(=-=-=-)
}

Wenn Sie wollen, können Sie ChemFig samt Manual, das zahlreiche Beispiele enthält, aber nur auf Englisch und Französisch vorliegt, auf CTAN oder hier (Downloadlink: chemfig (v1.0a, 1.16 MB, 156 mal heruntergeladen)) herunterladen.

Wenn Ihnen ChemFig gefällt, haben Sie vielleicht auch an myChemistry Interesse, eines meiner Pakete, das das Erstellen von Reaktionsschemata mit ChemFig ermöglicht.

Eine ausführlichere Beschreibung von ChemFig (auf deutsch) finden Sie in meiner LaTeX-Einführung.

Zurück zu “LaTeX: chemische Formeln erstellen V” (weitere).
Weiter zu “LaTeX: chemische Formeln erstellen VII” (Zusammenspiel)

Bookmark and Share
  1. [1] Genauer: den Abstand zwischen zwei Atomen.

07. Oktober 2010 von Clemens
Kategorien: Chemie, LaTeX, LaTeX und Chemie | Schlagwörter: , , , , , , , | 9 Kommentare

Kommentare (9)

  1. Hallo,
    Ich benutze Miktex. Was brauch ich außer chemfig.sty für ein Paket? Und wie genau binde ich dann diese Paket ein? Wenn ich \usepackage{chemfig} schreibe und im Dokument \chemfig{bsp-figur}, wird das Dokument zwar bearbeitet und er meckert nicht rum, aber ich sehe meine figur nicht. Was soll ich machen???

  2. Hallo Katrin,
    Für chemfig muss pgf/TikZ installiert sein. Wenn es installiert ist, muss es aber nicht extra eingebunden werden, dass geschieht mit chemfig automatisch.
    Ich kenne MiKTeX nicht, aber offenbar kann man dort im Paketverzeichnis pgf finden und installieren.
    Ich bin etwas erstaunt, dass er nicht meckert? Steht in der log-Datei nichts?

  3. Hallo,
    also ich hab rausgefunden, dass Miktex die Paket von selbst installiert, wenn man sie braucht.  Somit hab ich jetzt chemfig. Nur funktioniert es nicht wirklich. Egal was ich eingebe, alle Elemente erscheinen auf einer Stelle und Bindungen sind nirgends zu finden. So war das nicht geplant. Weißt du Rat?

  4. Hallo, also ich hab rausgefunden, dass Miktex die Paket von selbst installiert, wenn man sie braucht.  Somit hab ich jetzt chemfig. Nur funktioniert es nicht wirklich. Egal was ich eingebe, alle Elemente erscheinen auf einer Stelle und Bindungen sind nirgends zu finden. So war das nicht geplant. Weißt du Rat?

    • Hallo Katrin,
      Magst Du vielleicht ein Minimal-Beispiel und die log-Datei posten oder mir per E-Mail schicken? Sonst wird die Ursachen-Suche zum Ratespiel.

  5. Wie geht eine dreifachbindung? wie zb bei H — C = — N ?

    Danke für dieses geile paket , Georg

    • Der Dank gebürt natürlich dem Paketautoren Christian Tellechea! Eine Dreifachbindung wird (wie auch in der Doku zum Paket vermerkt) mit einer Tilde erstellt:

      \chemfig{H-C~C-H}

      \chemfig{H-C~C-H}

      Gruß

  6. Danke Dir, wo finde ich besagte Doku??

    Gruss Georg

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert

*