LaTeX und Chemie (1) – Die Grundlagen mit „chemmacros“

Einleitung

In den letzten Jahren scheint sich auch unter Chemikern (oder vermutlich eher unter Chemie-Studenten) LaTeX immer größerer Beliebtheit zu erfreuen. Das mag damit zusammenhängen, dass es inzwischen eine ganze Reihe von Paketen gibt, die einem für die Chemie benötigte Anforderungen erleichtern. Dieser Beitrag ist ein erster in einer Reihe, die die bekanntesten Pakete vorstellen soll. Den Anfang machen soll hier eines meiner eigenen Pakete: chemmacros. Der Grund dafür ist nicht etwa, weil es von mir ist, sondern weil es viele der ganz grundlegenden Funktionen bereitstellt, etwa für Substanz-Namen nach IUPAC, pH und pKs oder Oxidationszahlen.

In weiteren Beiträgen werde ich die folgenden Themen behandeln:

Das chemmacros Paket

Das chemmacros Paket entstand vor einigen Jahren als lose Liste privater Makros, ist heute aber ein vollwertiges Paket, das gebündelt ist mit weiteren Paketen wie den noch zu besprechenden chemformula und ghsystem. Es stellt einige verschiedene Helfer bereit:

Nicht alle dieser Funktionen werde ich hier besprechen, sondern mich auf die IUPAC-Namen, Partikel, Phasen und Ladungen beschränken.

IUPAC-Namen

IUPAC-Namen von Substanzen können ziemlich lang und ziemlich unleserlich werden: so heißt Kristallviolett etwa mit systematischem Namen

(4-(4,4′-Bis(dimethylaminophenyl)benzhydryliden)cyclohexa-2,5-dien-1-yliden)dimethylammoniumchlorid

Solche und noch längere Namen können ein Problem darstellen, da sie grundsätzlich erst einmal nur an den Bindestrichen umgebrochen werden können. Das folgende Beispiel

\documentclass{article}
\usepackage{chemmacros}
\usepackage{showframe}
\begin{document}

(4-(4,4'-Bis(dimethylaminophenyl)benzhydryliden)cyclohexa-2,5-dien-1-yliden)dimethylammoniumchlorid

\end{document
}

liefert die Fehlermeldung

Overfull \hbox (129.97336pt too wide) in paragraph at lines 6--7

und sieht folgendermaßen aus:

iupac1

Natürlich kann man mit babels shortcuts und notfalls mit manuellem Eingreifen bessere Ergebnisse erreichen. Durch den Befehl \iupac und mit Hilfe seiner Hilfsmakros \- und \| (sie haben ihre Bedeutung nur innerhalb von \iupac) lässt sich ebenfalls ein besseres Ergebnis erreichen:

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}
\chemsetup[iupac]{ hyphen-post-space = 0pt }
\usepackage{showframe}
\begin{document
}

(4"=(4,4'"=Bis"-(di"-methyl"-amino"-phenyl)"-benz"-hydr"-y"-l"-iden)%
"-cyclo"-hexa"=2,5"=dien"=1"=y"-li"-den)"-di"-methyl"-ammonium"-chlorid

\iupac{(4\-(4,4'\-Bis\|(di\|methyl\|amino\|phenyl)\|benz\|hydr\|y\|li\|den)%
  \|cyclo\|hexa\-2,5\-dien\-1\-y\|li\|den)\|di\|methyl\|ammonium\|chlorid}

\end{document}

iupac2

Wäre das der einzige Vorteil von \iupac, bräuchte man den Befehl wohl nicht. Allerdings hat chemmacros eine ganze Reihe semantischer Befehle, die ihre Bedeutung im Zweifellsfall nur innerhalb von \iupac haben, wie zum Beispiel \cis und \trans. Zudem hat chemmacros eine Schnittstelle, um eigene solcher Befehle zu erstellen.

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}
\usepackage{newtxmath,newtxtext}
\chemsetup[iupac]{ hyphen-post-space = 0pt }
\usepackage{showframe}
\begin{document}

\iupac{Bis(\hapto{5}cyclo\|penta\|dienyl)\|eisen}

\iupac{\cip{2S,3S}\-Weins\"aure}

\iupac{\a\-(Tri\|chloro\|methyl)\-\w\-chloro\|poly(1,4\-phenylene\|methylen)}

\end{document
}

iupac3

Phasen

Nach IUPAC-Vorgaben werden Aggregatszustände in Klammern an die betreffende Formel angehängt [Coh+08, S. 54]:

The [...] symbols are used to represent the states of aggregation of chemical species. The letters are appended to the formula in parentheses and should be printed in Roman (upright) type without a full stop (period).

Auf der anderen Seite ist es auch weit verbreitet, Phasen-Indikatoren als Tiefstellung zu setzen chemmacros erlaubt beides mit einem gemeinsamen Befehl:

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}

\DeclareChemPhase{\aqi}{aq,$\infty$
}% aqueous solution at infinite dilution
\DeclareChemPhase{\cd}{cd}% condensed phase

\begin{document}

\ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\par
NaOH\aqi\ \ch{H2O\cd} U\phase{cr}

\chemsetup[phases]{pos=sub}

\ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\par
NaOH\aqi\ \ch{H2O\cd} U\phase{cr}

\end{document
}

phasen

Ladungen

Ladungen sind doch einfach, nicht? Das sind doch nur hochgestelltes Plus oder Minus. Ja schon, aber… es gibt eben auch partielle Ladungen, die Unterscheidung zwischen tatsächlichen und formalen Ladungen, Oxidationszahlen (als hypothetische Ladungen). Alle diese verschiedenen Varianten sind einfach möglich mit chemmacros.

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{chemmacros
}
% \chemsetup[option]{circled=all}
\begin{document}

\ox{1,Na}\ox{-1,Cl}

Ph\pch \quad Ph\fpch \quad \ch{ Ph+ }

\end{document
}

ladungen

Quellennachweise

  • Coh+08 E. Richard Cohan, Tomislav Cvitaš, Jeremy G. Frey, Bertil Holmström, Kozo Kuchitsu, Roberto Marquardt, Ian Mills, Franco Pavese, Martin Quack, Jürgen Stohner, Herbert L. Strauss, Michio Takami und Anders J Thor. “Quantities, Symbols and Units in Physical Chemistry”, IUPAC Green Book. 3. Ausgabe, 2. Druck. IUPAC & RSC Publishing, Cambridge, 2008.

Weiter geht’s mit Summen- und Verhältnisformeln und Reaktionsgleichungen: die Pakete mhchem und chemformula.

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

04. August 2013 von Clemens
Kategorien: LaTeX | Schlagwörter: , , | 7 Kommentare

Kommentare (7)


  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

    Interessantes Paket. Um chemische Strukturen zu setzen, verwende ich das PPCH-TeX Paket.

  2. Bin ganz neu bei Latex und würde gerne wissen wie ich das Paket am besten in TexShop integrieren kann.
    LG Eugen

    • TeXShop ist nur ein Editor, also das Programm, mit dem Du Deine LaTeX-Dateien schreibst. Die (La)TeX-Installation wird auch bei Dir entweder MiKTeX oder TeX Live sein. Bei beiden ist chemmacros schon seit langem enthalten, das einzige, was man machen muss, ist eine komplette Installation.

  3. Hello Über CLEMENS.
    I want to write chemical reactions & formulas on my blog. For this, I check your blog. But the language that you entered is not understandable for me. Can you translate this in English language.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert