LaTeX und Chemie (3) – Strukturformeln: das „chemfig“ Paket

Die Grundlagen sind nun gelegt. Dann können wir uns nun dem zuwenden, was all diejenigen mit Chemie-Unterricht verbinden, denen das Fach eines mit sieben Siegeln geblieben ist [1]: den Strukturformeln der organischen Chemie. In einer Antwort zu der Frage Can you make chemical structure diagrams in LaTeX?
habe ich auf fünf verschiedene Pakete hingewiesen, die das prinzipiell ermöglichen. Eines von ihnen, chemfig, soll hier kurz vorgestellt werden.

Erst noch einmal der Überblick. Folgende Themen werden außerdem behandelt:


chemfig ist ein generisches Paket, was bedeutet, dass es mit LaTeX, plain TeX und ConTeXt verwendet werden kann. Es benötigt eTeX.

 \input chemfig.tex % mit plain TeX
 \usepackage{chemfig} % mit LaTeX
 \usemodule[chemfig] % mit ConTeXt

Um die Strukturformeln zu zeichnen, wird unter der Haube TikZ verwendet. Der wichtigste Befehl ist \chemfig{}. Mit ihm werden die Strukturformeln erstellt. Das Grundprinzip ist einfach: Atome werden als Buchstaben eingegeben. Da sie in der Voreinstellung im Mathe-Modus gesetzt werden, können Tiefstellungen oder Hochstellungen direkt verwendet werden. Bindungen werden mit - eingegeben. Die Eingabe \chemfig{H-CH_3} gibt dann:

chemfig1

Die Voreinstellung für Länge der Bindungen, Dicke der Linien usw. können natürlich geändert werden. Verzweigungen werden in runde Klammern () geschrieben. Eine Bindung hat ein optionales Argument, mit dem die Richtung der Bindung angegeben werden kann. Es erwartet als erste Eingabe eine von drei Möglichkeiten:

  • <integer> eine natürliche Zahl zwischen 0 und 7, die ein Vielfaches von 45° zur Horizontalen (im Gegenuhrzeigersinn) als Winkel festlegt.
  • :<real> eine Dezimalzahl, die den Winkel zur Horizontalen (im Gegenuhrzeigersinn) festlegt.
  • ::<real> eine Dezimalzahl, die den Winkel relativ zur vorherigen Bindung (im Gegenuhruhrzeigersinn) festlegt.

Folgende Eingaben

\chemfig{H-C(-[2]H)(-[6]H)-H}
\chemfig{H-C(-[:90]H)(-[:-90]H)-H}
\chemfig{H-C(-[::90]H)(-[::-90]H)-H
}

ergeben alle

chemfig2

chemfig kennt neun verschiedene Bindungstypen:

chemfig-bindungen

Zahlreiche weitere Möglichkeiten werden geboten: Ringe können mit einer bestimmte Syntax eingegeben werden, entfernte Atome können verbunden werden, durch den Einsatz von TikZ können Bindungen angepasst werden und auch Elektronenverschiebungspfeile eingezeichnet werden, mit weiteren Makros ist es möglich Elektronenpaare einzuzeichen, Atome über- oder untereinander zu schreiben uvm.

Eine Möglichkeit soll vor allem noch erwähnt werden: man kann Reaktionsschemata erstellen. Diese Möglichkeit hat chemfig seit v1.0. Was damit möglich ist, wird zum einen im Handbuch in der Gallery durch viele Beispiele gezeigt, weitere Beispiele hab ich in einem Beitrag auf der LaTeX Community gezeigt.

Es würde den Rahmen dieses Blogs sprengen, alle Möglichkeiten zu beschreiben oder zu erwähnen. Ein komplexeres Beispiel möchte ich aber noch kurz zeigen. Der Quelltext kann auf WriteLaTeX eingesehen werden. Er erstellt nach zwei Kompilierdurchgängen folgendes Schema:

chemfig3


[1] Wir wollen sie für diesen Beitrag mal im Dunkeln lassen ;)


Weiter geht’s mit Sicherheitsdaten: die Pakete rsphrase, hpstatement und ghsystem.

Über Clemens

Ich bin ein LaTeX-Enthusiast, der auch mit ein paar Paketen wie chemmacros oder fnpct einen bescheidenen Beitrag zur LaTeX-Vielfalt beitragen hat. Ich habe noch einen eigenen Blog: einzelMEINUNG und einen englischsprachigen Blog, der sich ausschließlich mit LaTeX beschäftigt mychemistry.eu.

31. August 2013 von Clemens
Kategorien: LaTeX | Schlagwörter: , , | 6 Kommentare

Kommentare (6)


  1. Warning: preg_replace_callback(): Error while studying pattern in /opt/osqa-1.0rc-2/apps/osqa/blog/wp-includes/formatting.php on line 1610

    Hallo !

    Mit Chemfig habe ich schon viele kleinere Übersichten erstellt.
    Für viele Verbindungen in der Biochemie wäre es schön ein Symbol für einen Phosphatrest zu haben.
    In den Übersichten entsprechender Lehrbücher wird da oft ein P in einem Kreis genutzt.
    Gibt es eine Möglichkeit so etwas in chemfig ( oder vielleicht in tikz)
    zu definieren und dann als “Atom” in einer chemfig-Formel zu verwenden ?

    Danke ! thomas

      • Hallo Clemens !

        Ja genau so etwas suchte ich. Vielen Dank für Deine schnelle Antwort !
        Den von Dir gegebenen Beispielcode:

        \newcommand*\circleatom[1]{\tikz\node[circle,fill=green!30]{\printatom{#1}};}

        nutzend habe ich erstmal bloß kopiert und kompiliert. Nun ergaben sich für mich gleich zwei, drei weitere Fragen:

        Wäre es möglich die Größe des um das Atom gezogenen Kreises noch vorzugeben ?

        Wäre es auch möglich, wenn die farbige Unterlegung wie im Beispiel nicht gewünscht ist stattdessen lediglich einen mit schwarzer Kreislinie gekennzeichneten Kreis
        einzuzeichnen ? Und kann die Größe dieses Kreises variiert werden ?
        Kann man den Beispielcode so abwandeln, daß man damit sowohl Bindungen als auch an den Bindungen sitzende Atome innerhalb einer Strukturformel mit beliebiger Farbe unterlegen könnte z.B. mit einer Form `square` oder `rectangle` statt `circle` ?

        Das sind jetzt gleich einige Fragen – ich hoffe das stört Dich nicht .

        Danke für Deine letzte Antwort und herzliche Grüße !

        viele Dank , Thomas

  2. Hallo!

    Ich habe ein Problem: ich möchte eine Reaktionsgleichung mit Strukturformeln machen. Die Strukturformeln einzeln sind kein Problem, aber ich bekomme kein plus hin (ich habe versucht: \chemsign{+})… außerdem ist die Reaktiongleichung so lang, dass sie nicht auf eine Seite passt und der Rest wird “abgeschnitten”.
    Über Hilfe würde ich mich sehr freuen! Danke!

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert