Sie sind auf Seite 1von 16

LATEX und Chemie

Clemens Niederberger
Meinem subjektiven Empfinden nach, scheint die Anzahl der LATEX-Nutzer unter
Chemikern (sehr) langsam zu steigen. Das mag der Tatsache geschuldet sein,
dass es inzwischen mit Paketen wie chemfig [14], mhchem [3], chemmacros [5],
chemnum [6], modiagram [8], endiagram [7] und bohr [4] eine Reihe Pakete gibt, die
auch Chemikern eine Vielzahl von Mglichkeiten mit LATEX erffnet und an deren
Existenz ich einen bescheidenen Anteil habe.
Dieser Artikel soll daher einen berblick ber die wichtigsten Pakete1 im Zusammenhang mit Chemie bieten und jeweils ihre Funktionalitt kurz beschreiben.

Einleitung und berblick


Vor noch nicht allzu langer Zeit habe ich eine Reihe von Blogartikeln zu LATEX
und Chemie geschrieben2 , anhand derer ich diesen Artikel aufbauen mchte.
Die Artikelreihe ist in sechs Teile unterteilt, dieser Artikel bekommt die gleiche
Aufteilung und ist zum Teil lediglich eine Kopie der dort erschienenen Beitrge:
1.
2.
3.
4.
5.
6.

Die Grundlagen mit chemmacros [5],


Summen- und Verhltnisformeln & Reaktionsgleichungen,
Strukturformeln: das chemfig Paket [14],
Sicherheitsdaten: die Pakete rsphrase, hpstatement [3] und ghsystem [5],
Nummerieren von Verbindungen: das chemnum Paket [6] und
Spezielle Diagramme: die Pakete modiagram [8], endiagram [7] und bohr [4].

Neben den hier schon erwhnten Paketen gibt es noch eine ganze Reihe weiterer,
die ich soweit es passt an den entsprechenden Stellen im Artikel erwhnen
werde.

Die Grundlagen mit chemmacros


Das chemmacros Paket ist eigentlich ein Bndel aus mehreren Paketen, die vor
ein paar Jahren mal als private Sammlung von Makros entstanden sind. Inzwischen ist es zu einem Allrounder angewachsen und erfreut sich immer grerer
Beliebtheit (wenn die steigende Anzahl der Bugreports und Supportanfragen als
1

wichtigste in diesen Zusammenhang ist notwendigerweise eine subjektive Auswahl.

http://texwelt.de/blog/tag/chemie/

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

Mastab verwendet werden kann). Die wesentlichen Pakete sind chemmacros,


chemformula und ghsystem. Die zwei zuletzt genannten werden in spteren Abschnitten besprochen, hier geht es nun um chemmacros.
chemmacros stellt Hilfe fr (unter anderem) folgende Bereiche bereit:

Hilfe zur Eingabe von iupac-Namen,


einfache Eingabe hufig bentiger Partikel-Symbole,
Phasendeskriptoren,
Hilfe bei der Eingabe von Oxidationszahlen und Ladung, unter anderem auch
formaler Ladungen,
einfache Angabe thermodynamischer Eigenschaften,
Spektroskopische Daten,
Umgebungen fr Reaktionsgleichungen, eng verbunden mit dem chemformula
Paket, und
Newman-Projektionen

Im folgenden werden nur einige davon herausgegriffen und beschrieben. Das


Handbuch zu chemmacros ist ber 50 Seiten lang: es muss in anbetracht der Lnge
des Artikels also eine Auswahl getroffen werden.
iupac-Namen

Jeder, der sich ein bisschen mit Chemie beschftigt, lernt irgendwann die kompliziert klingenden Namen kennen, die zum Beispiel folgendermaen lauten:
(4-(4,4-Bis(dimethylaminophenyl)benzhydryliden)cyclohexa-2,5-dien-1-yliden)dimethylammoniumchlorid

Die Namen einfach nur einzugeben kann schnell zu bervollen Boxen fhren:
1
2
3

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

4
5
6

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

7
8

\end{document}

Es gibt mehrere Lsungsanstze fr solche Probleme, etwa die Verwendung


von babel-Shortcuts. chemmacros stellt hier den Befehl \iupac bereit, innerhalb
dessen \- einen Bindestrich mit Umbruchstelle erzeugt, \| eine Umbruchstelle
mit ganz kleinem Kern:

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

1
2
3
4
5
6

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

7
8
9

(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

10
11
12

\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}

13
14

\end{document}

So oder so sind solche Namen nicht bequem einzugeben, aber das liegt in der
Natur der Sache: sie sind lang und kompliziert. Darum neigen Chemiker ja dazu,
Verbindungen Nummern zu geben und mit ihnen auf die entsprechende Substanz
zu verweisen. Wie man das am besten macht, wird in einem spteren Abschnitt
ab Seite 9 besprochen.
Der \iupac-Befehl hat noch ein paar weiterer Vorteile: chemmacros definiert eine
ganze weiterer Makros, die im Argument von \iupac gltig sind. Das folgende
Beispiel zeigt eine kleine Auswahl:
1
2
3

\iupac{Bis(\hapto{5}cyclo\|penta\|dienyl)\|eisen} \par
\iupac{\cip{2S,3S}\-Weins\"aure} \par
\iupac{\a\-(Tri\|chloro\|methyl)\-\w\-chloro\|poly(1,4\-phenylene\|methylen)}

Bis(5cyclopentadienyl)eisen
(2S,3S)-Weinsure

-(Trichloromethyl)--chloropoly(1,4-phenylenemethylen)

Zu erkennen sind hier zum Beispiel \hapto und \cip. Andere verfgbare Makros
wren \ortho, \cis und \trans und viele mehr. Auerdem ist es leicht, sich
eigene weiterer Makros zu definieren.
Phasendeskriptoren

Die Aggregatszustnde von Stoffen werden blicherweise auf zwei Weisen angegeben: als Tiefstellung oder in Klammern nach der betreffenden Substanz. iupac
empfiehlt letzteres [2]:
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).

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

4
chemmacros ermglicht beide Schreibweisen:
1
2
3

\ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas} \par


\chemsetup[phases]{pos=sub}
\ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}

C (f) + 2 H2O (fl)


C(f) + 2 H2O(fl)

CO2 (g) + 2 H2 (g)


CO2(g) + 2 H2(g)

Die wichtigsten Phasendeskriptoren sind verfgbar, weitere knnen leicht selbst


definiert werden:
1
2

\NewChemPhase{\aqi}{aq,$\infty$}% aqueous solution at infinite dilution


\NewChemPhase{\cd}{cd}% condensed phase

Ladungen

Ladungen sind eigentlich einfach umzusetzen, sollte man meinen: es sind ja nur
hochgestellte Plus- und Minus-Symbole. Obwohl das grundstzlich stimmt, ist es
nur die halbe Wahrheit: es gibt eben auch partielle Ladungen, die Unterscheidung
zwischen tatschlichen und formalen Ladungen, Oxidationszahlen (also hypothetische Ladungen). . . chemmacros stellt fr alle diese Ladungen Mglichkeiten
bereit, sie umzusetzen:
1
2

\ox{1,Na}\ox{-1,Cl} \par
Ph\pch \quad Ph\fpch \quad \ch{ Ph+ } \par
I

NaCl
Ph+

+
Ph

Ph+

Summen- und Verhltnisformeln & Reaktionsgleichungen


Kein Dokument ber Chemie kommt ohne Formeln wie H2SO4 oder PO43 aus.
Fr solche Formeln bieten sich zwei Pakete an: mhchem [3] und chemformula, das
Teil des chemmacros-Bndels [5] ist. Beide hneln sich sehr, es gibt aber auch eine
Reihe von Unterschieden, die sich etwa in der genauen Syntax oder im visuellen
Ergebnis bemerkbar machen.
1
2

\Package{chemformula}: \ch{H2SO4} \ch{PO4^3-} \par


\Package{mhchem}: \ce{H2SO4} \ce{PO4^3-}
chemformula: H2SO4 PO43
mhchem: H2 SO4 PO43

Bemerkbar werden die Unterschiede zum Beispiel bei kompletten Reaktionsgleichungen:


Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

1
2

\Package{chemformula}: \ch{H2O ->[ + H+ ] H3O+} \par


\Package{mhchem}: \ce{H2O ->[+\ce{H+}] H3O+}
chemformula: H2O
mhchem: H2 O

+ H+

H3O+

+ H+

H3 O+

Ich will hier keine Wertung vornehmen, welches Paket zu bevorzugen sei das
mag jeder Anwender fr sich selbst entscheiden. Ich werde chemformula nher
besprechen, und zwar weil ich es ein bisschen besser kenne ich bin der Autor.
chemformula versucht soweit wie mglich, den iupac-Vorgaben zu folgen. Daher

ist es mglich, Reaktionsgleichungen wie die folgende Recht einfach zu erhalten:


(1/5) KMnVII O4 + (8/5) HCl = (1/5) MnII Cl2 + (1/2) Cl2 + (1/5) KCl + (4/5) H2O
1
2
3
4
5

\chemsetup[chemformula]{compound-sep=0pt}
\begin{reaction*}
(1/5) K "\ox*{7,Mn}" O4 + (8/5) HCl ==
(1/5) "\ox*{2,Mn}" Cl2 + (1/2) Cl2 + (1/5) KCl + (4/5) H2O
\end{reaction*}

Eine Ausgabe, wie man sie etwa im Schulunterricht eher verwenden wrde,
verlangt nur kleinere Modifikationen:
1 VII
8
KMnO4 + HCl
5
5
1
2
3
4

1 II
1
1
4
MnCl2 + Cl2 + KCl + H2O
5
2
5
5

\begin{reaction*}
1/5 K "\ox{7,Mn}" O4 + 8/5 HCl ->
1/5 "\ox{2,Mn}" Cl2 + 1/2 Cl2 + 1/5 KCl + 4/5 H2O
end{reaction*}

Die in den letzten Beispielen verwendete reaction*-Umgebung wird vom


chemmacros Paket bereitgestellt und verwendet intern chemformulas \ch-Befehl.
chemformula hat zahlreiche Optionen, mit denen der Output den persnlichen

Prferenzen angepasst werden kann. Das geht von den Abstnden zwischen
den Formeln und den stchiometrischen Faktoren oder um das + herum ber
die Tatsache, dass die Pfeile selbst designt werden knnen, bis zur vertikalen
Ausrichtung der Hoch- und Tiefstellungen.

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

Strukturformeln: das chemfig Paket


Ein Paket, das betrchtlich dafr beigetragen haben drfte, dass LATEX sich auch
unter Chemikern steigender Beliebtheit erfreut, drfte das Paket chemfig [14]
sein. Es ermglicht auf sehr intuitive Art und Weise, Strukturformeln zu erstellen.
Zwar gibt es auch andere Pakete fr diese Aufgabe [10], ich glaube aber, dass
chemfig was Syntax und Funktionalitt angeht, die anderen hinter sich lsst.
Lediglich Programme wie ChemDraw3 sind weiterhin berlegene Alternativen.
\chemfig{-[:30]-[:-30]-[:30]}
\chemfig{-[:30](-[:90])-[:-30]-[:30]}

1
2

Der Hauptbefehl ist \chemfig. Er erkennt als Bindungen die Typen - (einfach),
= (doppel), =_ (doppel, rechts), = (doppel, links), (dreifach), < und > (Keil,
gefllt), <: und >: (Keil, gestrichelt) und <| und >| (Keil, hohl).
\chemfig{-[:60]=_[:0]-[:-60]}

Jede Bindung hat ein optionales Argument, mit dem die Richtung angegeben
werden kann. Diese kann auf drei Weisen angegeben werden:

\chemfig{-[hzahli]}: der Winkel betrgt 45 hzahli, absolut zur Horizonta-

len.

\chemfig{-[:hzahli]}: der Winkel betrgt hzahli, absolut zur Horizontalen.


\chemfig{-[::hzahli]}: der Winkel betrgt hzahli, relativ zur vorigen Bin-

dung.
1
2

\chemfig{-[:30](-[2])-[:-30]-[:30]}
\chemfig{-[::30](-[::60])-[::-60]-[::60]}

Die bisherigen Beispiele haben schon eine weitere Syntax offenbart: Abzweigungen werden in runden Klammern angegeben. Atome werden ebenso einfach an
der verwendeten Stelle eingegeben. Eine Carbonsure ist also schnell geschrieben:
1

\chemfig{-[:30]-[:-30]-[:30](=[:90])-[:-30]OH}
http://www.cambridgesoft.com/Ensemble_for_Chemistry/ChemDraw/

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

O
OH

Auch Ringe lassen sich natrlich mit einfacher Syntax eingeben. chemfig ermglicht nicht nur die Eingabe von Skelettformeln, sondern es stellt die Mittel bereit,
ganze Reaktionsschemata einzugeben:
1
2
3
4
5
6
7
8
9
10
11
12
13

\schemestart
\chemfig{*6(=-(-)=O)}
\arrow{->[\+\ch{H+}]}
\chemleft[
\subscheme[90]{%
\chemfig{*6((-[2,0.33,,,draw=none]\fscrp)-=(-)-OH)}
\arrow{<->}
\chemfig{*6(=-(-)(-[6,0.4,,,draw=none]\fscrp)-OH)}
}
\chemright]
\arrow(@c3--)\chemfig{*6((-[2]R)-=(-)-OH)}
\arrow(@c4--)\chemfig{*6(=-(-)(-[6]R)-OH)}
\schemestop

+ H

OH

OH

OH

OH

Der im Beispiel verwendete Befehl \fscrp wird von chemmacros bereitgestellt.


chemfig erlaubt auch einige nderungen an den Voreinstellungen. Fr diesen
Artikel habe ich einige Vernderungen an den Einstellungen vorgenommen, die
nachfolgend gezeigt werden4 :
1
2
3
4
5
6
7
8
9

\setatomsep{1.78500 em}
\setdoublesep{0.35700 em}
\setbondoffset{0.18265 em}
\setbondstyle{line width = 0.06642 em}
\setcrambond
{\the\dimexpr 0.06642 em * 2 + 0.22832 em \relax}
{0.06642 em}
{0.25737 em}
\setarrowdefault{,,line width = 0.06642 em}

bernommen habe ich sie mehr oder weniger von Joseph Wright: http://www.texdev.net/tag/
chemfig/.

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

10

\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}

Kurz beschrieben haben die Befehle folgende Bedeutung:

\setatomsep{ h Lnge i } ist die Entfernung zwischen zwei Atomgruppen und

entspricht damit ungefhr der Binusngslnge.


\setdoublesep{ h Lnge i } ist die Entfernung zwischen zwei Bindungen einer
Doppelbindung.
\setbondoffset{ h Lnge i } ist der Abstand zwischen Atom und Bindung.
\setbondstyle{ h TikZ i } ist der TikZ-Stil der Bindungen.
\setcrambond{ h Lange 1 i }{ h Lnge 2 i }{ h Lnge 3 i } setzt die Keilbindungen
fest. h Lnge 1 i ist die Basis des gleichschenkligen Dreiecks, h Lnge 2 i die
Dicke der Striche einer gestrichelten Bindung und h Lnge 3 i der Abstand
zwischen Strichen einer gestrichelten Bindung.
\setarrowdefault{ h Winkel i , h Koeffizient i , h TikZ i } legt die Pfeileigenschaften in Schemata fest: den Default-Winkel ( h Winkel i ), die Default-Lnge in
Relation zur Standardlnge ( h Koeffizient i ) und den TikZ-Stil.
\setcompoundsep{ h Lnge i } legt den Standardabstand zwischen Formeln in
einem Schema fest und beeinflusst daher die Standardpfeillnge.
\setarrowoffset{ h Lnge i } ist der Abstand zwischen Formel und Pfeil in
einem Schema.
\printatom{ h Atom i } ist der Befehl, mit dem die Atome geschrieben werden.

chemfig ist sehr umfangreich, daher soll das bis hierher als Einstieg ausreichen.

Es hat eine ausfhrliche Anleitung auf Englisch und eine ebenso ausfhrliche auf
Franzsisch.

Sicherheitsdaten: die Pakete rsphrase, hpstatement und ghsystem


Jedem Chemie-Studenten sind sie vermutlich vertraut, als Chemiker arbeitenden
sowieso: Die R- und S-Stze und mittlerweile auch die H- und P-Stze des Globally
Harmonized System of Classification and Labelling of Chemicals (GHS). Ich kann mich
an meine ersten Semester noch gut erinnern, wo jedes Laborexperiment mit
der Hausaufgabe begann, fr alle bentigten Chemikalien die R- und S-Stze
herauszusuchen und fr das Experiment ein Sicherheitsdatenblatt zu erstellen.
Die ntige inhaltliche Beschftigung mit den Stzen knnen die LATEX-Pakete, die
in diesem Abschnitt vorgestellt werden, natrlich nicht abnehmen. Sie knnen
einem allerdings erhebliche Schreibarbeit abnehmen. Fr Studenten, die sich
unbedingt mit denen ihnen unbekannten Chemikalien vertraut machen mssen,

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

birgt das aber vielleicht auch die Gefahr, die Stze nicht genug zur Kenntnis zu
nehmen.
Die R- und S-Stze, die in absehbarer Zeit obsolet werden, knnen mit dem Paket
rsphrase aus dem mhchem-Bndel [3] in einer Reihe von Sprachen abgerufen
werden. Die Verwendung ist recht einfach:
1
2

Der Risiko-Satz \rsnumber{R34}


lautet \rsphrase{R34}

Der Risiko-Satz R 34 lautet Verursacht Vertzungen.

hnlich funktioniert das Paket hpstatement vom gleichen Bndel:


1
2

Der Satz mit der Nummer \hpnumber{H200}


lautet "\hpstatement{H200}"

Zum Zeitpunkt des Schreibens dieses Artikels verursachte hpstatement (v1.00)


allerdings Fehlermeldungen, wenn man das Paket babel [1] dazuldt, weshalb
die Beispielausgabe hier ausbleiben muss.
Als Alternative zu hpstatement gibt es das ltere Paket ghsystem aus dem
chemmacros-Bndel [5].
1
2

Der Satz mit der Nummer \ghs[hide]{h}{200}


lautet "\ghs*{h}{200}"

3
4

\ghs{h}{200}

Der Satz mit der Nummer H200 lautet Instabil, explosiv


H200: Instabil, explosiv

Es verlangt nicht nach babel und verwendet als Voreinstellung Englisch, reagiert
aber auf babel und verwendet die richtige Sprache, sofern die entsprechenden
bersetzungen vorhanden sind. Die Sprache kann auch unabhngig von babel
per Option gewhlt werden.
Der Befehl \ghs{hTypi}{hNummer i} hat wie am Beispiel ersichtlich Optionen
und eine Sternvariante. Die im Beispiel gezeigte Option hide sorgt dafr, dass
die Ausgabe des eigentlichen Satzes unterdrckt wird. Bei der Sternvariante wird
hingegen die Nummer unterdrckt und nur der Satz ausgegeben. Am Ende des
Beispiels wird die Standardausgabe gezeigt.

Nummerieren von Verbindungen: das chemnum Paket


In Artikeln, die sich mit Chemie beschftigen oder konkreter mit bestimmten Stoffen oder Stoffklassen, mit Reaktionstypen oder -mechanismen oder Synthesen,
ist es blich, die Substanzen, die behandelt werden zwar einmal zu benennen,
Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

10

ansonsten aber durch Nummern auf sie zu verweisen. Verschiedene Pakete haben versucht, eine entsprechende Funktionalitt fr LATEX dafr bereitzustellen.
Zu erwhnen wren etwa chemcono [13], bpchem [9], chemcompounds [12] und
chemnum [6]. Dieser Abschnitt wird das zuletzt genannte etwas nher beleuchten.
Die Grundfunktionalitt ist schnell erklrt: der Hauptbefehl \cmpd{hIDi} erzeugt
zum einen eine Nummer und ein internes Label fr hIDi, wenn es vorher noch
nicht verwendet wurde, und kann zum anderen spter dazu verwendet werden,
diese Nummer wieder zu setzen:
1
2
3
4
5
6

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{chemnum}
\usepackage{chemformula}
\begin{document}

7
8
9

Hier geht es um \ch{CH3-CH2-OH} (\cmpd{ethanol}). \cmpd{ethanol} ist


Bestandteil \ldots

10
11

\end{document}

Hier geht es um CH3 CH2 OH (1). 1 ist Bestandteil . . .

Neben dem Hauptbefehl gibt es noch eine Sternvariante \cmpd*, die ein noch nicht
festgelegtes Label festlegt, aber nichts schreibt, und eine Plus-Variante \cmpd+, die
ein Label nicht erzeugt, sondern nur darauf verweist (was etwa in berschriften
sinnvoll sein kann).
Soweit ist hier noch nichts besonderes und (fast) alle oben genannten Pakete
machen das hnlich. Etwas, was chemnum den anderen Paketen tatschlich voraus
hat, ist die native Untersttzung von Sublabeln:
1
2
3
4
5
6
7
8

\chemname{\chemfig{*6(=-=-(-R)=-)}}{\cmpd{benzene.{H,Me,OH,NH2}}}
\begin{tabular}{lll}
& \ch{-R}
& Name \\\hline
\cmpd[sub-only]{benzene.H}
& \ch{-H}
& Benzol \\
\cmpd[sub-only]{benzene.Me} & \ch{-CH3} & Toluol \\
\cmpd[sub-only]{benzene.OH} & \ch{-OH} & Phenol \\
\cmpd[sub-only]{benzene.NH2} & \ch{-NH2} & Phenylamin (Anilin)
\end{tabular}

2ad

a
b
c
d

R
H
CH3
OH
NH2

Name
Benzol
Toluol
Phenol
Phenylamin (Anilin)
Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

11

NBS
O
OH

Br
TMP1

TMP2

Abbildung 1: Beispiel-PostScript-Datei fr die Ersetzung von temporren


Textstrings.

Sublabel werden einfach durch den Trenner . eingegeben: \cmpd{hmaini.hsubi}.


Wie fast alles kann das Symbol fr den Trenner auch gendert werden. Wie im
Beispiel zu sehen ist, kann auch eine Liste von Sublabeln eingegeben werden.
Ein weiterer Bonus von chemnum ist die Mglichkeit, mit dem Befehl \cmpdref
in EPS und PostScript-Bildern vorgefertigte temporre Textmarker durch die
entsprechenden Label zu ersetzen. Das ist fr all diejenigen von Interesse, die
ihre Schemata nicht mit chemfig erstellen, sondern etwa ChemDraw verwenden.
Das Prinzip ist Recht einfach. Stellen wir uns die Datei scheme-tmp.eps5 (siehe
Abbildung 1) vor.
Setzt man nun (in einer Gruppe in der Regel in einer Umgebung) vor den entsprechenden \includegraphics-Aufruf den Befehl \replacecmpd{hIDi}, dann
werden die entsprechenden Strings TMP1 und TMP2 ersetzt:
1
2
3
4
5
6
7
8

\begin{figure}
\centering
\replacecmpd{Alc}
% ersetzt TMP1
\replacecmpd{EtherBr} % ersetzt TMP2
\includegraphics{scheme-tmp.ps}
\caption{Beispiel"=PostScript"=Datei mit ersetzten Textstrings.}
\label{fig:scheme-tmp-voll}
\end{figure}

Damit diese Ersetzung funktioniert, wenn man pdfLATEX oder LuaLATEX verwendet, kann man in der Regel das Paket auto-pst-pdf [11] verwenden und mit
shell-escape bersetzen. Das funktioniert allerdings nicht mit XELATEX. Das
Ergebnis des Beispiels ist in Abbildung 2 zu sehen.

Tatschlich ist es die in der chemnum-Dokumentation verwendete scheme-tmp.ps. Fr diesen Artikel


wurde eine PDF-Datei verwendet, die aus der PS-Datei erzeugt wurde.

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

12

NBS
O
OH

Br
3

Abbildung 2: Beispiel-PostScript-Datei mit ersetzten Textstrings.

Spezielle Diagramme: die Pakete modiagram, endiagram und bohr


Zum Schluss will ich noch ganz kurz auf drei Pakete eingehen, die vor allem in
der Lehre von Interesse sein drften. Auf alle drei Pakete werde ich nur ganz
kurz eingehen und jeweils nur eine wenige Beispiele zeigen.
Das modiagram-Paket

Mit dem Paket modiagram [8] kann man einfache Moleklorbital-Diagramme


erstellen. Dieses Paket entstand in einer Mischung von Eigenbedarf und Herausforderung. Es fhrte zu meiner ersten Antwort auf TeX.sx6 . Sein Ziel ist es,
mit einigermaen einfacher Syntax Moleklorbital-Diagramme zu erstellen. Dem
Anspruch kann es nicht vllig gerecht werden: die Syntax ist weniger flexibel als
ntig und die Mglichkeiten sind zu eingeschrnkt. Ehrlicherweise bruchte das
Paket meiner Meinung nach eine Generalberholung. Vielleicht kommt das noch
eines Tages. . .
Im Rahmen dieses Artikels soll ein einzelnes Beispiel zur Demonstration gengen:
1
2
3
4
5
6
7
8
9
10
11
12

\begin{MOdiagram}[labels,names,style=square]
\atom[\ch{N}]{left}{
2p = {0;up,up,up}
}
\atom[\ch{O}]{right}{
2p = {2;pair,up,up}
}
\molecule[\ch{NO}]{
2pMO = {1.8,.4;pair,pair,pair,up} ,
color = {2piy* = red}
}
\end{MOdiagram}

Wie das damit erstellte Diagramm aussieht, ist in Abbildung 3 zu sehen.


6

http://tex.stackexchange.com/a/37803/5049/

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

13

2 x

2 y 2 z

2p x 2p y 2p z

2p x 2p y 2p z
2 y 2 z

2 x

NO

Abbildung 3: Beispiel fr ein Diagramm, das mit dem Paket modiagram erstellt
wurde.

Das endiagram-Paket

Auch dieses Paket entstand aus Eigenbedarf. Es soll ermglichen, mit wenig
Aufwand den qualitativen Energieverlauf einer Reaktion anzuzeigen. Ein erstes
Beispiel soll das demonstrieren.
1
2
3

\begin{endiagram}
\ENcurve{1,4,0}
\end{endiagram}

Dieser Code erzeugt das folgende Diagramm:

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

14

endiagram stellt eine ganze Reihe von Einstellungsmglichkeiten bereit, um dieses

Diagramm zu bearbeiten oder komplexere Diagramme zu erstellen. Auch hier


soll es fr diesen Artikel ausreichen, ein Beispiel zu zeigen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

% \DeclareSIUnit{\calory}{cal}
\sisetup{per-mode = fraction}
\ENsetup{
y-label = above ,
energy-step = 100 ,
energy-unit = \kilo\calory\per\mole ,
energy-unit-separator = { in } ,
calculate = false ,
AddAxisLabel/font = \footnotesize
}
\begin{endiagram}[scale=1.5]
\ENcurve{2.232,4.174,.308}
\AddAxisLabel*{0;1;2;3;4}
\ShowEa[label,connect={draw=none}]
\ShowGain[label]
\end{endiagram}

E in

kcal
mol

400
300

Ea

200

H < 0

100
0

Das bohr-Paket

Dieses Paket entstand bei der Beantwortung einer Frage auf TeX.sx7 . Ziel ist es,
einfache Atommodelle nach dem bohrschen Atommodell darzustellen:
1

\bohr{3}{Li}

http://tex.stackexchange.com/a/73498/5049

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

15

Li

Was als einfache TikZ-Bilder begann, hat die Funktionalitt des Pakets schnell
erweitert. Zum Beispiel kann man das Paket die Atomnamen selbst einfllen
lassen:
1
2
3

\setbohr{insert-missing}
\bohr{6}{}
\bohr{}{Ne}

Ne

Damit das mglich ist, muss das Paket Atomsymbole den Elektronenzahlen
zuordnen knnen. Tatschlich kann es das und noch ein bisschen mehr:
1
2
3
4
5
6
7
8
9

\elementsymbol{80}
\elementsymbol{rhenium}\par
\atomicnumber{Hg}
\atomicnumber{Rhenium}\par
\elementname{80}
\elementname{Rh}\par
\elconf{Cu}\par
\elconf{Kupfer}\par
\elconf{29}

Hg Rh
80 75
Quecksilber Rhenium

1 s 2 2 s 2 2 p 6 3 s 2 3 p 6 3 d 10 4 s 1
1 s 2 2 s 2 2 p 6 3 s 2 3 p 6 3 d 10 4 s 1
1 s 2 2 s 2 2 p 6 3 s 2 3 p 6 3 d 10 4 s 1

Zum Schluss
Ich hoffe, dass dieser Artikel einen kleinen Einblick gewhren konnte, wie vielseitig inzwischen das Angebot von Paketen fr den Bereich Chemie ist. Natrlich
konnte hier bei allen gezeigten Paketen jeweils nur an der Oberflche gekratzt
werden, ganz abgesehen davon, dass es noch unzhlige weitere Pakete gibt. Unter
Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

LATEX und Chemie

16

http://www.mychemistry.eu/known-packages/ findet man eine umfassende

Liste von Paketen, die im entferntesten mit Chemie zu tun haben.

Literatur
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]

Javier Bezos und Johannes L. Braams. babel. Version 3.9k. 2014. url: http:
//mirror.ctan.org/macros/latex/required/babel/.
E. Richard Cohan u. a. Quantities, Symbols and Units in Physical Chemistry,
IUPAC Green Book. 3rd Edition. 2nd Printing. IUPAC & RSC Publishing,
Cambridge, 2008.
Martin Hensel. mhchem. Version 3.17. 2014. url: http://mirror.ctan.
org/macros/latex/contrib/mhchem/.
Clemens Niederberger. bohr. Version 0.4. 2013. url: http://mirror.ctan.
org/macros/latex/contrib/bohr/.
Clemens Niederberger. chemmacros. Version 4.5a. 2014. url: http : / /
mirror.ctan.org/macros/latex/contrib/chemmacros/.
Clemens Niederberger. chemnum. Version 1.0b. 2014. url: http://mirror.
ctan.org/macros/latex/contrib/chemnum/.
Clemens Niederberger. endiagram. Version 0.1c. 2013. url: http://mirror.
ctan.org/macros/latex/contrib/endiagram/.
Clemens Niederberger. modiagram. Version 0.2e. 2014. url: http://mirror.
ctan.org/macros/latex/contrib/modiagram/.
Bjrn Pedersen. bpchem. Version 1.06. 2004. url: http://mirror.ctan.org/
macros/latex/contrib/bpchem/.
rake. Can you make chemical structure diagrams in LATEX? url: https://tex.
stackexchange.com/questions/52722/ (besucht am 18. 02. 2014).
Will Robertson und Johannes Groe. auto-pst-pdf. Version 0.6. 2009. url:
http://mirror.ctan.org/macros/latex/contrib/auto-pst-pdf/.
Stefan Schenk. chemcompounds. Version 1.1.3. 2006. url: http://mirror.
ctan.org/macros/latex/contrib/chemcompounds/.
Stefan Schulz. chemcono. Version 1.3. 1999. url: http://mirror.ctan.org/
macros/latex/contrib/chemcono/.
Christian Tellechea. ChemFig. Version 1.0g. 2013. url: http : / / mirror .
ctan.org/macros/generic/chemfig/.

Die TEXnische Komdie ?/?? Entwurf 30. Juni 2014 12:06

Das könnte Ihnen auch gefallen