LaTeX und Chemie (2) – Summen- und Verhältnisformeln & Reaktionsgleichungen

Nachdem ich im letzten Beitrag über ein paar Grundlagen gesprochen habe und einen Ausblick gegeben habe, soll sich in diesem Post nun alles um chemische Summen- und Verhältnisformeln drehen und wie man auf bequeme Weise einfache Reaktionsgleichungen erstellen kann.

Noch mal der Überblick. Folgende Themen werden außerdem behandelt:


Für Summenformeln und Reaktionsgleichungen gibt es zwei Pakete, die genannt werden müssen:

Beide werden aktiv entwickelt und gepflegt und ich kann nicht eines gegenüber dem anderen empfehlen, darum sollen hier beide gleichwertig behandelt werden. Entsprechende Beispiele werden für beide Pakete parallel gezeigt sofern möglich. Zur aktiven Entwicklung mag ich auch gerne folgendes Statement aus der Dokumentation von mhchem v3.13 wiederholen:

The mhchem package is still under development. Admittedly, very slow development with large breaks in between, but still progressing. Version 4 will be a major rewrite of the code with some new features and slight syntax changes (this will be the reason for the new number). While I try to support the old syntaxes via the version option, please note that slight changes in spacing (and therefore changed line breaks and page breaks) can occur from release to release.

Beim Laden der Pakete gibt es keine großen Überraschungen:

\usepackage{chemformula}
\usepackage[version=3]{mhchem
}

Beiden Paketen gemeinsam ist, dass sie jeweils einen Befehl bereitstellen, der die Arbeit macht. mhchems Befehl ist \ce{}, chemformulas Befehl ist \ch{}. Sehen wir uns ein paar Grundbeispiele an:

chemformel1

Wenn Sie die Formeln aufmerksam vergleichen, werden Ihnen bei den gesetzten Formeln subtile Unterschiede auffallen. Welche Variante Ihnen besser gefällt, müssen Sie selbst entscheiden.

Der Input scheint bei beiden zunächst identisch zu sein: sowohl \ce{H2SO4} als auch \ch{H2SO4} gibt die Summenformel von Schwefelsäure. Die Unterschiede treten erst zu Tage, wenn man nicht einzelne Summenformeln eingibt sondern ganze Gleichungen.

\ce{4 Na + 2 H2SO4 -> 2 Na2SO4 + 2 H2 ^}\par
\ch{4 Na + 2 H2SO4 -> 2 Na2SO4 + 2 H2 ^
}

chemformel2

Während chemformula darauf besteht, dass stöchiometrische Faktoren getrennt von den Summenformeln eingegeben wird, führt das bei mhchem zu zu geringen Abständen zwischen Faktor und Formel. In der Tat sollte man bei mhchem keine Leerzeichen lassen, was einem chemformula hingegen nicht verzeiht:

\ce{4Na + 2H2SO4 -> 2Na2SO4 + 2H2 ^}\par
\ch{4Na + 2H2SO4 -> 2Na2SO4 + 2H2 ^
}

chemformel3

Es gibt weitere solcher Unterschiede, die aber nicht alle im einzelnen besprochen werden sollen. An den letzten Beispielen sollte Ihnen etwas anderes aufgefallen sein: offenbar kann man auch ohne Aufwand Reaktionspfeile zeichnen. Und in der Tat:

chemformel4

chemformula verwendet TikZ um die Pfeile zu zeichen. Bei mhchem kann man das ebenfalls verwenden, muss es aber erst durch eine Option aktivieren. Sowohl bei mhchem wie auch bei chemformula habe die Pfeile jeweils zwei optionale Argumente, um die Pfeile zu beschriften. AUch hier gibt es wieder Unterschiede: bei mhchem werden die Beschriftungen in Mathe-Modus gesetzt. Will man das nicht, muss man sich aktiv darum kümmern. chemformula verwendet grundsätzlich keinen Mathe-Modus.

\begin{tabular}{lll}
  Mathe & Text & Formel \\
  \texttt{mhchem} \\
    \ce{A ->[a2][b2] B} &
    \ce{A ->T[a2][b2] B} &
    \ce{A ->C[a2][b2] B} \\
      &
    \ce{A ->[\text{a2}][\text{b2}] B} &
    \ce{A ->[\ce{a2}][\ce{b2}] B} \\
  \texttt{chemformula} \\
    \ch{A ->[$a2$][$b2$] B} &
    \ch{A ->[a2][b2] B} &
    \ch{A ->[ a2 ][ b2 ] B}
\end{tabular
}

chemformel5

Vieles wurde noch nicht gesagt, Interessierte dürfen aber gerne in den Dokumentationen der beiden Pakete schwelgen und herausfinden, was man noch so alles machen kann.


Weiter geht’s mit Strukturformeln: das chemfig Paket.

Ü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.

05. 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

    Hi Clemens,

    vielen Dank für die tolle Latex Seite zum Thema Chemie.
    Ich habe eine Frage zum mhchem Paket:
    Ich möchte gerne die Summenformel Te$_{3.54}$Y$_{0.46}$Ge$_2$ mit mhchem schreiben.
    Also \ce{Te3.54Y0.46Ge2}
    Allerdings wird durch den Punkt immer ein Malzeichen erzeugt. Weißt du wie ich das umgehen kann?
    Vielen Dank Gruß Michael

    • Das ist bekanntes Verhalten: ein Punkt wird als Addukt-Symbol interpretiert. Bei mhchem entkommt man dem Parser meistens mit Mathemodus. In diesem Fall ist die Lösung aber einfach: explizite Tiefstellungen verwenden

      \documentclass{article}
      \usepackage[version=3]{mhchem}
      \begin{document}
      Te$_{3.54}$Y$_{0.46}$Ge$_2$

      \ce{Te3.54Y0.46Ge2}

      \ce{Te_{3.54}Y_{0.46}Ge2}
      \end{document
      }

      Für chemformula gilt übrigens ähnliches:

      \documentclass{article}
      \usepackage{chemformula}
      \begin{document}
      Te$_{3.54}$Y$_{0.46}$Ge$_2$

      \ch{Te3.54Y0.46Ge2}

      \ch{Te_{3.54}Y_{0.46}Ge2}
      \end{document
      }
  2. Hi Clemens,

    vielen Dank für die ausführliche Anleitung. Gibt es eine Möglichkeit, in einer Reaktionsgleichung einen Pfeil nach unten zu machen, also als Zeichen dafür, dass etwas ausgefallen ist?

  3. Bei mir klappt keins von beiden so wirklich. Egal, mit welchem Paket ich versuche, bespielsweise ein Carbonation zu zeichnen, weder mhchem mit \ce noch chemformula mit \ch schafft es, die Ladung direkt über den Indize des O zu packen.
    Ich habe auch alle mir einfallenden Codes ausprobiert, aber weder
    \ch{CO3^{2-}} noch
    \ch{CO_3^{2-}} noch
    \ch{CO^{2-}_3} haben funktioniert, ebenso wenig, wenn ich mhchem genutzt habe. Kann mir jemand helfen?

    • @Jona Doch, chemformula kann das: \setchemformula{charge-hshift=0pt}. Siehe Seite 13f und Seite 17ff der aktuellen Dokumentation für Gründe, warum das in der Voreinstellung anders ist (IUPAC-Empfehlung) und weitere Informationen.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert