LaTeX und Chemie (5) – Nummerieren von Verbindungen: das chemnum Paket

In Artikeln, die sich mit Chemie beschäftigen 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, ansonsten aber durch Nummern auf sie zu verweisen. Verschiedene Pakete haben versucht, eine entsprechende Funktionalität für LaTeX dafür bereitzustellen. Zu erwähnen wären etwa [cci]chemcono[/cci], [cci]bpchem[/cci], [cci]chemcompounds[/cci] und [cci]chemnum[/cci]. Dieser Beitrag wird das zuletzt genannte etwas näher beleuchten.

Dieser Artikel ist Teil einer Reihe, die außerdem noch folgende Themen behandelt:


Zunächst einmal sollte ich klarstellen, dass ich der Autor von [cci]chemnum[/cci] bin, nur damit keine Missverständnisse aufkommen. Außerdem will ich gleich zu Beginn sagen, dass [cci]chemnum[/cci] derzeit noch in der Version 0.* vorliegt. Version 1.0 ist in Arbeit und wird einige unsichtbare wie sichtbare Änderungen mit sich bringen. Seit dem 12. März 2014 liegt [cci]chemnum[/cci] in Version 1 vor, dessen Syntax sich in Details von früheren Versionen unterscheidet.

Die Grundfunktionalität ist schnell erklärt: der Hauptbefehl [cci lang=”latex”]\cmpd{

[cce lang=”latex”]\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{chemnum}
\usepackage{chemformula}
\begin{document}

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

\end{document}[/cce]

chemnum1

Neben dem Hauptbefehl gibt es noch eine Sternvariante [cci lang=”latex”]\cmpd*[/cci], die ein noch nicht festgelegtes Label festlegt, aber nichts schreibt, und eine Plus-Variante [cci lang=”latex”]\cmpd+[/cci], 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 [cci]chemnum[/cci] den anderen Paketen tatsächlich voraus hat, ist die native Unterstützung von Sublabeln:

[cce lang=”latex”]\documentclass{article}
\usepackage{chemnum,chemfig,chemformula,booktabs}
\begin{document}

\setatomsep{2em}

\chemname{\chemfig{*6(=-=-(-R)=-)}}{\cmpd{benzene.{H,Me,OH,NH2}}}
\begin{tabular}{lll}
& \ch{-R} & Name \\\midrule
\cmpd[sub-only]{benzene.H} & \ch{-H} & Benzene \\
\cmpd[sub-only]{benzene.Me} & \ch{-CH3} & Toluene \\
\cmpd[sub-only]{benzene.OH} & \ch{-OH} & Phenol \\
\cmpd[sub-only]{benzene.NH2} & \ch{-NH2} & Phenylamine (Aniline)
\end{tabular}

\end{document}[/cce]

chemnum1

Sublabel werden einfach durch den Trenner [cci].[/cci] eingegeben: [cci lang=”latex”]\cmpd{

.}[/cci]. Wie fast alles kann das Symbol für den Trenner auch geändert werden. Version 1.0 wird übrigens die Liste der Sublabel komprimieren können, so dass [cci lang=”latex”]\cmpd{benzene.{H,Me,OH,NH2}}[/cci] dann 1a–d ergibt. Mit der jetzigen Version muss man dafür stattdessen (nachdem man sichergestellt hat, dass alle Sublabel erzeugt worden sind, etwa durch [cci lang=”latex”]\cmpd*{benzene.{H,Me,OH,NH2}}[/cci]) [cci lang=”latex”]\cmpd{benzene.{H..NH2}}[/cci] verwenden, was zugegebenermaßen fehleranfällig ist.

Ein weiterer Bonus von [cci]chemnum[/cci] ist die Möglichkeit, mit dem Befehl [cci lang=”latex”]\cmpdref[/cci] in EPS und PostScript-Bildern vorgefertigte temporäre Textmarker durch die entsprechenden Label zu ersetzen. Das ist für all diejenigen von Interesse, die ihre Schemata nicht mit [cci]chemfig[/cci] erstellen, sondern etwa ChemDraw verwenden. Das Prinzip ist Recht einfach. Stellen wir uns folgende Datei [cci]scheme-tmp.eps[/cci](1) vor:

scheme-tmp

Aus folgendem Quelltext
[cce lang=”latex”]% arara: pdflatex: { shell: on }
\documentclass{article}
\usepackage{chemnum,graphicx,auto-pst-pdf}
\begin{document}

\replacecmpd{Alc} % ersetzt TMP1
\replacecmpd{EtherBr} % ersetzt TMP2
% \replacecmpd{third} % wuerde TMP3 ersetzen
\includegraphics{scheme-tmp.ps}

\end{document}[/cce]

wird dann nach kompilieren mit [cci]pdflatex –shell-escape[/cci] zu folgendem:
chemnum3

Es soll hier nicht unerwähnt bleiben, dass der Befehl [cci lang=”latex”]\cmpdref[/cci] in Version 1.0 wahrscheinlich eine andere Funktion bekommen wird. Statt dessen wird es für diese Funktionalität wahrscheinlich den Befehl [cci lang=”latex”]\replacecmpd[/cci] geben.

Damit ist das wesentliche gesagt und die Serie zu LaTeX und Chemie fast abgeschlossen.


(1) Die im Artikel verlinkte Datei ist tatsächlich eine PNG-Datei.


Weiter geht’s mit Spezielle Diagramme: die Pakete [cci]modiagram[/cci], [cci]endiagram[/cci] und [cci]bohr[/cci].

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

25. Januar 2014 von Clemens
Kategorien: LaTeX | Schlagwörter: , , | 10 Kommentare

Kommentare (10)

Schreibe einen Kommentar