summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/chemmacros
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-02-11 00:49:37 +0000
committerKarl Berry <karl@freefriends.org>2012-02-11 00:49:37 +0000
commit48ea98193ab70b9d4d1e5fb2acddd70a1ff3d5ae (patch)
tree292cdab18d35cc42df39f2d819c5b0751c97be39 /Master/texmf-dist/doc/latex/chemmacros
parent3562f80e5794c062e8d3b071c4305e06688cafcb (diff)
chemmacros (10feb12)
git-svn-id: svn://tug.org/texlive/trunk@25352 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/chemmacros')
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/README6
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros-codehelper.tex40
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.pdfbin686813 -> 700294 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.tex176
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.pdfbin675839 -> 688962 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.tex159
6 files changed, 280 insertions, 101 deletions
diff --git a/Master/texmf-dist/doc/latex/chemmacros/README b/Master/texmf-dist/doc/latex/chemmacros/README
index 5aeb58fcda7..62abfad050f 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/README
+++ b/Master/texmf-dist/doc/latex/chemmacros/README
@@ -1,16 +1,16 @@
--------------------------------------------------------------------------
-the CHEMMACROS bundle v3.0c
+the CHEMMACROS bundle v3.0d
-> chemmacros package -> macros and commands for chemists
-> chemformula package -> typeset chemical compounds and reactions
-> ghsystem package -> typeset H & P statements and pictograms
from the globally harmonised system (GHS)
-2012/02/05
+2012/02/10
--------------------------------------------------------------------------
This bundle succeeds the chemmacros package which is now part of the
bundle
--------------------------------------------------------------------------
Clemens Niederberger
-Web: http://www.mychemistry.eu/
+Web: https://bitbucket.org/cgnieder/chemmacros/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
Copyright 2011-2012 Clemens Niederberger
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros-codehelper.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros-codehelper.tex
index 03e65615038..de6120d8a49 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros-codehelper.tex
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros-codehelper.tex
@@ -5,9 +5,9 @@
% - macros and commands for chemists - %
% --------------------------------------------------------------------------- %
% - Clemens Niederberger - %
-% - 2012/02/05 - %
+% - 2012/02/10 - %
% --------------------------------------------------------------------------- %
-% - http://www.mychemistry.eu/ - %
+% - https://bitbucket.org/cgnieder/chemmacros/ - %
% - contact@mychemistry.eu - %
% --------------------------------------------------------------------------- %
% - If you have any ideas, questions, suggestions or bugs to report, please - %
@@ -42,6 +42,7 @@
% system used in the listings source (lstsample).
\RequirePackage[final]{listings}
\RequirePackage{framed,xcolor}
+\RequirePackage[framemethod=tikz]{mdframed}
\RequirePackage[colorinlistoftodos,disable]{todonotes}
\xdefinecolor{code}{rgb}{.6,.25,.15}
\xdefinecolor{key}{rgb}{0.02,0.48,0.18}
@@ -92,8 +93,10 @@
{
abinitio,
aq,
+ aqi,
ba,
bottomrule,
+ cd,
cdot,
ce,
cee,
@@ -112,7 +115,8 @@
cstsetup,
DeclareInstance,
DeclareSIUnit,
- DeclareParticle,
+ DeclareChemParticle,
+ DeclareChemPhase,
definecolor,
delm,
delp,
@@ -134,6 +138,8 @@
ghslistall,
ghspic,
Gibbs,
+ glqq,
+ grqq,
HNMR,
Helmholtz,
hertz,
@@ -180,13 +186,18 @@
per,
pgfarrowsdeclarealias,
pH,
+ phase,
+ photon,
pKa,
pKb,
pOH,
+ positron,
Pot,
prt,
R,
redox,
+ RenewChemParticle,
+ RenewChemPhase,
renewtagform,
renewstate,
rightarrow,
@@ -212,6 +223,8 @@
tiny,
toprule,
trans,
+ upbeta,
+ upgamma,
volt,
vphantom,
vspave,
@@ -337,8 +350,10 @@
{
abinitio,
aq,
+ aqi,
ba,
bottomrule,
+ cd,
cdot,
ce,
cee,
@@ -357,7 +372,8 @@
cstsetup,
DeclareInstance,
DeclareSIUnit,
- DeclareParticle,
+ DeclareChemParticle,
+ DeclareChemPhase,
definecolor,
delm,
delp,
@@ -379,6 +395,8 @@
ghslistall,
ghspic,
Gibbs,
+ glqq,
+ grqq,
HNMR,
Helmholtz,
hertz,
@@ -425,13 +443,18 @@
per,
pgfarrowsdeclarealias,
pH,
+ phase,
+ photon,
pKa,
pKb,
pOH,
+ positron,
Pot,
prt,
R,
redox,
+ RenewChemParticle,
+ RenewChemPhase,
renewtagform,
renewstate,
rightarrow,
@@ -457,6 +480,8 @@
tiny,
toprule,
trans,
+ upbeta,
+ upgamma,
volt,
vphantom,
vspave,
@@ -582,6 +607,13 @@
\NewDocumentCommand \da { m }
{ \texttt { ( #1 ) } }
+\NewDocumentCommand \achtung { m }
+ {
+ \begin{mdframed}[linecolor=red,backgroundcolor=red!10]
+ #1
+ \end{mdframed}
+ }
+
\cs_new:Nn \chemmacros_doc_todo:nn
{ \todo [ #1 ] { #2 } }
\cs_generate_variant:Nn \chemmacros_doc_todo:nn { xn }
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.pdf
index 08d6149cb35..26ba8c843ba 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.pdf
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.tex
index 1927fa332a2..947468eee49 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.tex
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_de.tex
@@ -5,9 +5,9 @@
% - macros and commands for chemists - %
% --------------------------------------------------------------------------- %
% - Clemens Niederberger - %
-% - 2012/02/03 - %
+% - 2012/02/10 - %
% --------------------------------------------------------------------------- %
-% - http://www.mychemistry.eu/ - %
+% - https://bitbucket.org/cgnieder/chemmacros/ - %
% - contact@mychemistry.eu - %
% --------------------------------------------------------------------------- %
% - If you have any ideas, questions, suggestions or bugs to report, please - %
@@ -27,12 +27,12 @@
% - - %
% - The Current Maintainer of this work is Clemens Niederberger. - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[DIV11,toc=index]{scrartcl}
+\documentclass[DIV11,idx=totoc,toc=bib]{scrartcl}
\usepackage{fontspec,xltxtra}
\usepackage{polyglossia}
\setmainlanguage{german}
\usepackage[normalem]{ulem}
-\usepackage{chemfig,chemstyle,multicol,makeidx,booktabs}
+\usepackage{chemfig,chemstyle,upgreek,multicol,makeidx,booktabs,csquotes}
\usepackage[german]{chemmacros}
\usepackage[version=3]{mhchem}
\usepackage[para]{footmisc}
@@ -60,6 +60,25 @@
suffix_3p "\\nohyperpage{\\,ff.}"
\end{filecontents}
+\usepackage[backend=biber,style=alphabetic,maxbibnames=20]{biblatex}
+\addbibresource{\jobname.bib}
+\begin{filecontents}{\jobname.bib}
+@book{iupac:greenbook,
+ author = {E. Richard Cohan and Tomislav Cvita\v{s} and Jeremy G. Frey and Bertil Holmström and kozo Kuchitsu and Roberto Marquardt and Ian Mills and Franco Pavese and Martin Quack and Jürgan Stohner and Herbert L. Strauss and Michio Takami and Anders J Thor},
+ title = {“Quantities, Symbols and Units in Physical Chemistry”, IUPAC Green Book},
+ edition = {3rd Edition. 2nd Printing},
+ year = {2008},
+ publisher = { IUPAC \&\ RSC Publishing, Cambridge}
+}
+@misc{eu:ghsystem_regulation,
+ author = {{The European Parliament and The Council of the European Union}},
+ title = {Regulation (EC) No 1272/2008 of the European Parliament and of the Council},
+ subtitle = {on classification, labelling and packaging of substances and mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC) No 1907/2006},
+ journal = {Official Journal of the European Union},
+ date = {2008-12-16}
+}
+\end{filecontents}
+
\DeclareInstance{xfrac}{chemformula-text-frac}{text}
{
scale-factor = 1 ,
@@ -149,14 +168,14 @@ Vielleicht erinnern Sie Sich, dass \chemmacros' Optionen alle verschiedenen Modu
\ghsystem verwendet die Pakete \chemmacros, \paket{tabu}, \paket{longtable}, \paket{ifpdf} und \paket{graphicx}. \ghsystem hat keine eigenen Paketoptionen sondern leitet alle weiter an \chemmacros.
-\section{Motivation}
+\section{Motivation und Hintergrund}
\chemmacros entstand vor einigen Jahren als wachsende Liste von Makros, die ich häufig verwendete. Ich kann mich nicht mehr genau erinnern, wann und warum ich entschied, sie als Paket zu veröffentlichen. Nun \textendash\ hier ist es und ich hoffe, Sie werden das eine oder andere ebenfalls nützlich finden.
-Ich nehme an, dass fast jeder Chemiker, der \LaTeX\ für seine Dokumente verwendet, das großartige Paket \paket{mhchem} kennt. \chemformula soll \emph{kein} Ersatz für \paket{mhchem} sondern eine Alternative sein. Ich überlegte eine ganze Zeit lang hin und her, ob ich \chemformula wirklich schreiben sollte. Ein paar Kleinigkeiten in \paket{mhchem} haben mich immer gestört, aber sie schienen nicht genug für ein neues Paket. Noch nicht einmal genug, um ein „feature request“ an den Autoren von \paket{mhchem} zu senden. Letztlich hat mich der Spaß und die Herausforderung überzeugt.
+Ich nehme an, dass fast jeder Chemiker, der \LaTeX\ für seine Dokumente verwendet, das großartige Paket \paket{mhchem} kennt. Es gab immer ein paar Schwierigkeiten, \paket{mhchem} und \chemmacros zur Zusammenarbeit zu bewegen. Ein paar Kleinigkeiten in \paket{mhchem} haben mich zudem immer gestört, aber sie schienen nicht genug für ein neues Paket. Noch nicht einmal genug, um ein \enquote{feature request} an den Autoren von \paket{mhchem} zu senden. Die Herausforderung und der Spaß, ein neues Paket zu erschaffen, sowie der Wunsch nach größtmöglicher Flexibilität führten so zu \chemformula.
-\chemformula funktioniert sehr ähnlich wie \paket{mhchem}, ist aber strenger was das Eingeben von Verbindungen, stöchiometrischen Faktoren und Pfeilen angeht. Gleichzeitig bietet \chemformula ein paar Möglichkeiten, den Output anzupassen, die \paket{mhchem} nicht bietet. Wenn Sie zufrieden mit \paket{mhchem} sind, gibt es keinen Grund, zu \chemformula zu wechseln. Aber vielleicht sind Sie ja neugierig.
+\chemformula funktioniert sehr ähnlich wie \paket{mhchem}, ist aber strenger was das Eingeben von Verbindungen, stöchiometrischen Faktoren und Pfeilen angeht. Gleichzeitig bietet \chemformula ein paar Möglichkeiten, den Output anzupassen, die \paket{mhchem} nicht bietet. Da \chemformula als Alternative zu \paket{mhchem} gedacht ist, bietet \chemmacros eine Option, mit der Sie zwischen \paket{mhchem} und \chemformula wählen können.
-Als Chemiker wissen Sie vermutlich, dass die \textsc{United Nations} das „\textbf{G}lobally \textbf{H}armonized \textbf{S}ystem of Classification and Labelling of Chemicals“ (GHS) als weltweiten Ersatz für die zahlreichen ähnlichen aber doch verschiedenen Systeme der einzelnen Länder entwickelt haben. Obwohl es noch nicht in allen Ländern umgesetzt wurde\footnote{\url{http://www.unece.org/trans/danger/publi/ghs/implementation_e.html}}, ist das nur eine Frage der Zeit. Das Paket \ghsystem gibt Ihnen nun die Möglichkeit, alle „hazard and precautionary statements“ auf einfache Weise einzugeben und aufzurufen.
+Als Chemiker wissen Sie vermutlich, dass die \textsc{United Nations} das \enquote{\textbf{G}lobally \textbf{H}armonized \textbf{S}ystem of Classification and Labelling of Chemicals} (GHS) als weltweiten Ersatz für die zahlreichen ähnlichen aber doch verschiedenen Systeme der einzelnen Länder entwickelt haben. Obwohl es noch nicht in allen Ländern umgesetzt wurde\footnote{\url{http://www.unece.org/trans/danger/publi/ghs/implementation_e.html}}, ist das nur eine Frage der Zeit. Das Paket \ghsystem gibt Ihnen nun die Möglichkeit, alle \enquote{hazard and precautionary statements} auf einfache Weise einzugeben und aufzurufen. Die Sätze wurden der EU Reguletion 1272/2008 entnommen \cite{eu:ghsystem_regulation}.
\section{Installation und Laden des Bundles}\secidx{Laden des Bundles}\secidx{Installation}
Das Bundle enthält drei Style-Dateien\footnote{Die mit der Endung \texttt{sty}.}, einem Ordner namens \texttt{language/}, der die Sprach-Definitions-Dateien für GHS enthält (Endung \texttt{def}) und einem Ordner \texttt{pictures/}, der \texttt{eps}-, \texttt{jpg}- und \texttt{png}-Dateien enthält (die GHS Piktogramme). Wenn Sie das Bundle von Hand installieren, \emph{bitte achten Sie darauf, die Ordner \texttt{language/} und \texttt{pictures/} in den \emph{gleichen} Ordner wie die Style-Dateien zu kopieren}.
@@ -245,7 +264,7 @@ Einige einfache Makros, um häufig verwendete Teilchen darzustellen. Außerdem e
\item \cmd{ba} \ba (Base)
\item \cmd{fplus} \fplus
\item \cmd{fminus} \fminus
- \item \cmd{transitionstatesymbol} \transitionstatesymbol\ (verwendet \TikZ)
+ \item \cmd{transitionstatesymbol} \transitionstatesymbol
\item \cmd{standardstate} \standardstate. Dieses Symbol wird nur dann von \chemmacros bereitgestellt, wenn das Paket \paket{chemstyle} nicht geladen wurde. Die Idee ist von dort ausgeliehen\footnote{Vielen Dank an den Paketautoren \href{http://www.texdev.net/}{Joseph Wright}.}.
\end{description}
@@ -270,18 +289,21 @@ Sie hat nur dann Auswirkungen, wenn das Paket \paket{chemfig} geladen wurde, da
\ba \Nu
\end{beispiel}
-\subsection{Eigene}\secidx[eigene]{Teilchen, Ionen und Symbole}
-Wenn Sie mögen, können Sie eigene Teilchen definieren.
+\subsection{Eigene Teilchen definieren}\secidx[eigene]{Teilchen, Ionen und Symbole}
+Manchmal kann es sicherlich nützlich sein, andere Teilchen als Makro zur Verfügung zu haben, etwa \lstinline+\positron+ oder \lstinline+\photon+. Mit dieem Befehl kann das einfach errechit werden:
\begin{description}
- \item \cmd{DeclareParticle}{<cmd>}\ma{<definition>}
+ \item \cmd{DeclareChemParticle}{<cmd>}\ma{<definition>}
+ \item \cmd{RenewChemParticle}{<cmd>}\ma{definition}
\end{description}
-Abhängig von der \key{method}, die Sie gewählt haben, ist \texttt{<definition>} entweder eine mit \paket{mhchem} oder mit \chemformula definierte Formel. Das so definierte Teilchen wird sich wie die schon vorgestellten verhalten mit einer Ausnahme: wenn Sie \key{method}{mhchem} gewählt haben, wird das Teilchen die Option \key{circled} \emph{nicht beachten}. Wenn Sie in diesem Fall formale Ladungen für das Teilchen wollen, müssen Sie es mit den von \chemmacros zur Verfügung gestellten Befehlen (siehe Abschnitt \ref{sec:ladungen}) definieren. Wenn Sie allerdings \key{method}{chemformula} gewählt haben, \emph{wird} das Teilchen die Option \key{circled} beachten.
+Abhängig von der \key{method}, die Sie als Option gewählt haben, wird die \texttt{<definition>} entweder mit \paket{mhchem} oder mit \chemformula erfolgen. Das Teilchen verhält sich wie die vordefinierten mit einer Ausnahme: das Teilchen, das auf diese Weise definiert wurde, gehorcht der Option \key{circled} nur, wenn Sie \key{method}{chemformula} gewählt haben. Wenn Sie mit \key{method}{mhchem} formale Ladungen wollen, müssen Sie \chemmacros' Befehle (siehe Abschnitt \ref{sec:ladungen}) explizit einsetzen.
\begin{beispiel}
- \DeclareParticle{\Sod}{Na+}
- \DeclareParticle{\Pot}{K+}
- \Sod \Pot \chemsetup[option]{circled=all} \Sod \Pot
+ % uses the `upgreek' package
+ \DeclareChemParticle{\positron}{$\upbeta$+}
+ \DeclareChemParticle{\photon}{$\upgamma$}
+ \RenewChemParticle{\el}{$\upbeta$-}
+ \positron\ \photon\ \el
\end{beispiel}
-Die Teilchen werden nur definiert, wenn \texttt{<cmd>} nicht schon bereits für einen anderen Befehl vergeben ist. Ist er vergeben, wird \chemmacros entweder eine Warnung oder eine Fehlermeldung bringen, abhängig von der Option \key{strict}.
+\cmd{DeclareChemParticle} definiert das Teilchen nur dann, wenn \texttt{<cmd>} noch nicht existiert. Andernfalls wird \chemmacros entweder eine Warnung oder einen Fehler ausgeben, abhängig vob der Option \key{strict}. \cmd{RenewChemParticle} definiert ein Teilchen \emph{nur}, wenn \texttt{<cmd>} schon existiert und gibt andernfalls eine Warnung/einen Fehler.
\secidx*{Teilchen, Ionen und Symbole}
\section{Nomenklatur, Stereodeskriptoren und lateinische Ausdrücke}\label{sec:stereo}
@@ -567,7 +589,7 @@ kann man die verbreitetsten Reaktionsmechanismen spezifizieren. \texttt{<type>}
\item\cmd{mech}[e] Eliminierung \mech[e]
\item\cmd{mech}[e1] unimolekulare Eliminierung \mech[e1]
\item\cmd{mech}[e2] bimolekulare Eliminierung \mech[e2]
- \item\cmd{mech}[cb] unimolekulare Eliminierung „conjugated base“, \dh via Carbanion \mech[cb]
+ \item\cmd{mech}[cb] unimolekulare Eliminierung \enquote{conjugated base}, \dh via Carbanion \mech[cb]
\end{itemize}
\secidx*{Reaktionsmechanismen}
@@ -578,7 +600,7 @@ kann man die verbreitetsten Reaktionsmechanismen spezifizieren. \texttt{<type>}
\item \cmd{redox}(<name1>,<name2>)[<tikz>][<num>]{<text>}
\end{description}
-\cmd{OX} setzt \texttt{<atom>} in einen Knoten (eine „Node“) mit dem Namen \texttt{<name>}. Wenn Sie zwei \cmd{OX} verwendet haben, dann können sie mit \cmd{redox} verbunden werden. Die Namen der zu verbindenden Knoten werden in runde Klammern geschrieben. Da \cmd{redox} ein Tikzpicture mit den Optionen \texttt{remember picture,overlay} erstellt, muss das Dokument \emph{wenigstens zwei mal} kompiliert werden.
+\cmd{OX} setzt \texttt{<atom>} in einen Knoten (eine \enquote{Node}) mit dem Namen \texttt{<name>}. Wenn Sie zwei \cmd{OX} verwendet haben, dann können sie mit \cmd{redox} verbunden werden. Die Namen der zu verbindenden Knoten werden in runde Klammern geschrieben. Da \cmd{redox} ein Tikzpicture mit den Optionen \texttt{remember picture,overlay} erstellt, muss das Dokument \emph{wenigstens zwei mal} kompiliert werden.
\begin{beispiel}[ox]
\OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b){oxidation}
\end{beispiel}
@@ -945,33 +967,60 @@ Im Verzeichnis werden alle Reaktionen mit Zählen gelistet und alle anderen nich
\secidx*{Reaktionsumgebungen}
\section{Phasen}\label{sec:phasen}\secidx{Phasen}
-Anzeigen der Phase einer Substanz.
+\subsection{Grundlagen}\secidx[Grundlagen]{Phasen}
+Diese Befehle sollen helfen, die Phase einer Substanz anzuzeigen.
\begin{description}
- \item \cmd{sld}[<anything>] \sld
- \item \cmd{lqd}[<anything>] \lqd
+ \item \cmd{sld} \sld
+ \item \cmd{lqd} \lqd
\item \cmd{gas} \gas
\item \cmd{aq} \aq
\end{description}
-Bitte beachten Sie, dass die Befehle \cmd{solid} und \cmd{liquid} der v1.* nun \cmd{sld} \bzw \cmd{lqd} heißen. Beachten Sie außerdem, dass beide innerhalb von \cmd{ch} \emph{kein} optionales Argument haben!
+\achtung{Das Default-Verhalten der Phasen-Befehle hat sich geändert, um der IUPAC-Empfehlung zu folgen. Sowohl \cmd{sld} als auch \cmd{lqd} haben kein optionales Argument mehr.}
\begin{beispiel}
\ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\\
der Vollst\"andigkeit halber: NaCl\aq.
\end{beispiel}
-Mit der Paketoption \key[option]{german}{false} (siehe Abschnitt \ref{sec:optionen}) erhält man die englischen Varianten:
+Mit der Paketoption \key{german}{false} (siehe Abschnitt \ref{sec:optionen}) erhalten Sie die englischen Versionen:
\begin{beispiel}
- {\chemsetup[option]{german=false}
- \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas} }\\
- \ce{C \sld[s] + 2 H2O \lqd[l] -> CO2\gas{} + 2 H2\gas}
+ \chemsetup[option]{german=false}
+ \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}
\end{beispiel}
-Offensichtlich ist \cmd{sld}[s] identisch mit \cmd{lqd}[s].
+Die IUPAC-Empfehlung\footnote{Vielen Dank an Paul King für den Hinweis.} um einen Aggregatszustand anzuzeigen ist es, sie in Klammern nach der Formel zu schreiben \cite{iupac:greenbook}.Es ist jedoch ebenfalls verbreitet, sie als Tiefstellung zu setzen.
+
+\begin{myquote}[{IUPAC Green Book \cite[][p.\,54]{iupac:greenbook}}]
+ The [\ldots] 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).
+\end{myquote}
+
+Es gibt zwei Optionen, um den Output anzupassen:
+\begin{description}
+ \item \key[phases]{pos}{side/sub} Umschalten der Position des Phasen-Anzeigers. Default = \texttt{side}
+ \item \key[phases]{space}{<dim>} Ändern des Zwischenraums zwischen Formel und dem Phasen-Anzeiger bei \key{pos}{side}. Eine \TeX-Dimension. Default = \texttt{.1333em}
+\end{description}
+\begin{beispiel}
+ \chemsetup[phases]{pos=sub}
+ \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\\
+ der Vollst\"andigkeit halber: NaCl\aq.
+\end{beispiel}
-Man kann auch an andere Einsatzmöglichkeiten denken:
+\subsection{Eigene Phasen definieren}\secidx[eigene]{Phasen}
+Abhängig vom Thema ihres Dokuments müssen Sie unter Umständen andere Aggregatszustände anzeigen. Sie können Sie einfach definieren.
+\begin{description}
+ \item \cmd{DeclareChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
+ \item \cmd{RenewChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
+ \item \cmd{phase}{<phase>} Wenn Sie die Phase nur ein- oder zweimal verwenden müssen.
+\end{description}
+\cmd{DeclareChemPhase} definiert die Phase nur dann, wenn \texttt{<cmd>} noch nicht existiert. Andernfalls wird \chemmacros entweder eine Warnung oder einen Fehler ausgeben, abhängig vob der Option \key{strict}. \cmd{RenewChemParticle} definiert eine Phase \emph{nur}, wenn \texttt{<cmd>} schon existiert und gibt andernfalls eine Warnung/einen Fehler.
\begin{beispiel}
- C\sld[Graphit]
+ \DeclareChemPhase{\aqi}{aq,$\infty$}% aqueous solution at infinite dilution
+ \DeclareChemPhase{\cd}{cd}% condensed phase
+ \RenewChemPhase{\lqd}{lc}% liquid crystal
+ NaOH\aqi\ \ch{H2O\cd} U\phase{cr} A\lqd \\
+ \chemsetup[phases]{pos=sub}
+ NaOH\aqi\ \ch{H2O\cd} U\phase{cr} A\lqd
\end{beispiel}
\secidx*{Phasen}
@@ -1050,7 +1099,7 @@ Abhängig vom Typ stehen verschiedene Optionen zur Modifikation zur Auswahl:
Zusätzlich gibt es zwei Optionen, mit denen das \TikZ-Verhalten beeinflusst werden kann:
\begin{description}
- \item \key[orbital]{overlay}{\uline{true}/false} Das Orbital „braucht keinen Platz“; es wird mit dem \TikZ-Key \texttt{overlay} gezeichnet.
+ \item \key[orbital]{overlay}{\uline{true}/false} Das Orbital \enquote{braucht keinen Platz}; es wird mit dem \TikZ-Key \texttt{overlay} gezeichnet.
\item \key[orbital]{opacity}{<num>} Das Orbital wird durchsichtig; \texttt{<value>} kann Werte zwischen \texttt{1} (undurchsichtig) bis \texttt{0} (unsichtbar) annehmen.
\end{description}
@@ -1167,6 +1216,9 @@ Manche Optionen können ohne Wert verwendet werden. Dann wird der \uline{unterst
format & mhName & <commands> & & Seite \pageref{key:mhName_format} \\
fontsize & mhName & <fontsize> & \cmd{tiny} & Seite \pageref{key:mhName_fontsize} \\
width & mhName & <dim> & & Seite \pageref{key:mhName_width} \\
+ \multicolumn{5}{l}{Phasen:} \\
+ pos & phases & side/sub & side & Seite \pageref{key:phases_pos} \\
+ space & phases & <dim> & .1333em & Seite \pageref{key:phases_space} \\
\multicolumn{5}{l}{\cmd{newman}:} \\
angle & newman & <angle> & 0 & Seite \pageref{key:newman_angle} \\
scale & newman & <factor> & 1 & Seite \pageref{key:newman_scale} \\
@@ -1313,7 +1365,7 @@ Die Option \key{stoich-space} erlaubt Ihnen, den Leerraum zwischen stöchiometri
\secidx*{Stöchiometrische Faktoren}[Stoechiometrische Faktoren]
\section{Summenformeln}\label{ssec:compounds}\secidx{Summenformeln}
-\chemformula bestimmt Summenformeln als den Typ, der „nirgendwo sonst hineinpasst“. Das wird klarer werden, wenn Sie die anderen Typen kennen.
+\chemformula bestimmt Summenformeln als den Typ, der \enquote{nirgendwo sonst hineinpasst}. Das wird klarer werden, wenn Sie die anderen Typen kennen.
\begin{beispiel}
\ch{H2SO4} \\
\ch{[Cu(NH3)4]^2+}
@@ -1364,13 +1416,14 @@ Wenn jedoch ein Befehl eine Ziffer als Argument benötigt, wie \zB Leerraum-Befe
Siehe Abschnitt \ref{ssec:text} für einen Ausweg.
\subsection{Ladungen und andere Hochstellungen}\secidx[Ladungen]{Summenformeln}\secidx[Hochstellungen]{Summenformeln}
+\paragraph{Grundlagen}
Wenn eine Summenformel mit einem Plus- oder Minus-Zeichen \emph{endet}, wird es als Ladungssymbol interpretiert und hochgestellt. An anderen Stellen repräsentiert ein Plus eine Dreifachbindung und ein Dash eine Einfachbindung, siehe Abschnitt \ref{ssec:bonds}.
\begin{beispiel}
\ch{A+B} \ch{AB+} \\
\ch{A-B} \ch{AB-}
\end{beispiel}
-Für längere Ladungsgruppen oder andere Hochstellungen können Sie die Mathematik-Syntax verwenden. Sie beachtet Gruppen und erlaubt Mathematik in ihnen. Innerhalb dieser Gruppen werden weder \texttt{+} noch \texttt{-} als Bindungen interpretiert. Wenn sich ein Punkt \texttt{.} in einer Hochstellung befindet, zeigt er kein Addukt an sondern ein Radikal.
+Für längere Ladungsgruppen oder andere Hochstellungen können Sie die Mathematik-Syntax verwenden. Sie beachtet Gruppen und erlaubt Mathematik in ihnen. Innerhalb dieser Gruppen werden weder \texttt{+} noch \texttt{-} als Bindungen interpretiert. Wenn sich ein Punkt \texttt{.} in einer Hochstellung befindet, zeigt er kein Addukt an sondern ein Radikal. Ein \texttt{*} gibt den angeregten Zustand.
\begin{beispiel}
\ch{A^{x-}} \\
\ch{A^x-} \\
@@ -1379,7 +1432,8 @@ Für längere Ladungsgruppen oder andere Hochstellungen können Sie die Mathemat
\ch{RNO2^{-.}} \\
\ch{^31H} \\
\ch{^{14}6C} \\
- \ch{^{58}_{26}Fe}
+ \ch{^{58}_{26}Fe} \\
+ \ch{NO^*}
\end{beispiel}
Ionen und Ionenverbindungen mit mehr als einer Ladung werden genauso eingegeben:
@@ -1387,6 +1441,23 @@ Ionen und Ionenverbindungen mit mehr als einer Ladung werden genauso eingegeben:
\ch{SO4^2-} \ch{Ca^2+ SO4^2-}
\end{beispiel}
+\paragraph{Verhalten}\secidx[Hochstellungen!Verhalten]{Summenformeln}
+Die Hochstellungen verhalten sich unterschiedlich abhängig von ihrer Position in einer Summenformal, falls Hoch- und Tiefstellung direkt aufeinander folgen.
+\begin{beispiel}
+ \ch{^33B} \ch{{}^33B} \ch{3^3B} \\
+ \ch{^{23}_{123}B} \ch{{}^{23}_{123}B} \ch{_{123}^{23}B} \\
+ \ch{^{123}_{23}B} \ch{{}^{123}_{23}B} \ch{_{23}^{123}B}
+\end{beispiel}
+\begin{itemize}
+ \item Wenn eine Formel mit einer Hochstellung \emph{startet}, werden Hoch- und Tiefstellung \emph{rechts} ausgerichtet, ansonsten \emph{links}.
+ \item Wenn eine Hochstellung einer Tiefstellung \emph{folgt}, wird sie zusätzlich um eine Länge verschoben, die durch die Option \key{charge-hshift}{<dim>} bestimmt wird, siehe auch Seite \pageref{key:charge-hshift}f.
+\end{itemize}
+
+Der zweite Punkt folgt der IUPAC-Empfehlung:
+\begin{myquote}[{IUPAC Green Book \cite[][p.\,51]{iupac:greenbook}}]
+ In writing the formula for a complex ion, spacing for charge number can be added (staggered arrangement), as well as parentheses: \ch[charge-hshift=1ex]{SO4^2-}, \ch{(SO4)^2-} The staggered arrangement is now recommended.
+\end{myquote}
+
\subsection{Bindungen}\label{ssec:bonds}\secidx[Bindungen]{Summenformeln}
\chemformula kennt drei Sorten Bindungen:
\begin{beispiel}
@@ -1400,21 +1471,22 @@ Diese Optionen ermöglichen Ihnen, den Output anzupassen:
\begin{description}
\item \key{subscript-vshift}{<dim>} Extra vertikale Verschiebung der Tiefstellungen. Default = \texttt{0pt}
\item \key{subscript-style}{text/math} Stil, der für die Tiefstellungen verwendet wird. Default = \texttt{text}
- \item \key{charge-hshift}{<dim>} Verschiebung von Hochstellungen, wenn sie einer Tiefstellung folgen. Default = \texttt{.3ex}
- \item \key{charge-style}{text/math} Stiel, der für Hochstellungen verwendet wird. Default = \texttt{text}
+ \item \key{charge-hshift}{<dim>} Verschiebung von Hochstellungen, wenn sie einer Tiefstellung folgen. Default = \texttt{1ex}\label{key:charge-hshift}
+ \item \key{charge-style}{text/math} Stil, der für Hochstellungen verwendet wird. Default = \texttt{text}
\item \key{adduct-space}{<dim>} Leerraum links und rechts des Addukt-Punktes. Default = \lstinline+.1333em+
\item \key{bond-length}{<dim>} Die Länge der Bindungen. Als Default-Länge wird die Länge eines Halbgeviertstrichs verwendet, wie sie mit \lstinline+\settowidth{<len>}{\textendash}+ bestimmt wird.
\end{description}
-Vielleicht ist Ihnen aufgefallen, dass bei manchen Ionen die Ladungen etwas nach rechts verschoben sind:\secidx[Ladungen!Verschiebung]{Summenformeln}
+Vielleicht ist Ihnen aufgefallen, dass bei manchen Ionen die Ladungen nach rechts verschoben sind:\secidx[Ladungen!Verschiebung]{Summenformeln}
\begin{beispiel}
\ch{SO4^2-} \ch{NH4+} \ch{Na+}
\end{beispiel}
Sie werden verschoben, wenn sie einer Tiefstellung \emph{folgen}. Den Betrag der Verschiebung kann man mit der Option \key{charge-hshift} festlegen.
\begin{beispiel}
- \chemsetup[chemformula]{charge-hshift=0pt}
\ch{SO4^2-} \ch{NH4+} \ch{Na+} \\
- \chemsetup[chemformula]{charge-hshift=1ex}
+ \chemsetup[chemformula]{charge-hshift=.5ex}
+ \ch{SO4^2-} \ch{NH4+} \ch{Na+} \\
+ \chemsetup[chemformula]{charge-hshift=.5pt}
\ch{SO4^2-} \ch{NH4+} \ch{Na+}
\end{beispiel}
@@ -1458,7 +1530,7 @@ Die Länge der Bindungen ändern:\secidx[Bindungen!Laenge@Länge]{Summenformeln}
\secidx*{Summenformeln}
\section{Spezielle Input-Typen}\secidx{Spezielle Input-Typen}
-Es gibt einige “spezielle Input-Typen”. Sie bestehen nur aus einem Token, nämlich einem der folgenden:
+Es gibt einige \enquote{spezielle Input-Typen}. Sie bestehen nur aus einem Token, nämlich einem der folgenden:
\begin{description}
\item \cmd{ch}{ + } \ch{+} Erstellt ein Plus-Zeichen zwischen Formeln mit Leerraum links und rechts:\\
\cmd{ch}{2 Na + Cl2} \ch{2 Na + Cl2}
@@ -1522,6 +1594,7 @@ Pfeile werden auf die gleiche intuitive Weise eingegeben wie bei \paket{mhchem}.
\item \cmd{ch}{ -> } \ch{->} Standardpfeil nach rechts
\item \cmd{ch}{ <- } \ch{<-} Standardpfeil nach links
\item \cmd{ch}{ <-> } \ch{<->} Mesomerie-Pfeil
+ \item \cmd{ch}{ <> } \ch{<>} Reaktion in beide Richtungen
\item \cmd{ch}{ <=> } \ch{<=>} Gleichgewichts-Pfeil
\item \cmd{ch}{ \lstinline+<=>>+ } \ch{<=>>} Gleichgewicht liegt rechts
\item \cmd{ch}{ \lstinline+<<=>+ } \ch{<<=>} Gleichgewicht liegt links
@@ -1532,6 +1605,7 @@ Diese Pfeile werden alle mit \TikZ gezeichnet.
\ch{H2O + CO3^2- <=> OH- + HCO3-} \\
\ch{A <- B} \\
\ch{\{[CH2=CH-CH2]- <-> [CH2-CH=CH2]- \}} \\
+ \ch{A <> B} \\
\ch{H+ + OH- <=>> H2O} \\
\ch{2 NO2 <<=> N2O4}
\end{beispiel}
@@ -1554,7 +1628,7 @@ Der Beschriftungstext kann unabhängig vom Pfeil verarbeitet werden. Das Rezept
\ch{A ->[$\Delta$,~ [H+ ] ] B}
\end{beispiel}
-Mit den Leerzeichen verarbeitet \chemformula den Teil zwischen den Klammern als normalen Input. Die Pfeile lesen ihre Argumente erst \emph{nach} der Verarbeitung. Wie Sie sehen können „wachsen“ die Pfeile mit der Länge der Bschriftungen. Konstant bleibt der überstehende Teil.
+Mit den Leerzeichen verarbeitet \chemformula den Teil zwischen den Klammern als normalen Input. Die Pfeile lesen ihre Argumente erst \emph{nach} der Verarbeitung. Wie Sie sehen können \enquote{wachsen} die Pfeile mit der Länge der Beschriftungen. Konstant bleibt der überstehende Teil.
\begin{beispiel}
\ch{A ->[a] B} \\
\ch{A ->[ab] B} \\
@@ -1604,7 +1678,7 @@ Wenn Sie Ihren eigenen pgfarrows oder passende Aliase so definieren\footnote{Les
\section{Text unter Formeln}\secidx{Text unter Formeln}
\subsection{Syntax}\secidx[syntax]{Text unter Formeln}
-\chemformula hat eine eingebaute Syntax, um Text unter Formeln zu schreiben. Sie funktioniert ähnlich, Wie die optionalen ARgumente der Pfeile.
+\chemformula hat eine eingebaute Syntax, um Text unter Formeln zu schreiben. Sie funktioniert ähnlich wie die optionalen Argumente der Pfeile.
\begin{description}
\item\cmd{ch}{ !(<name>)( <formula> ) }
\end{description}
@@ -1613,7 +1687,7 @@ Wenn ein Ausrufezeichen von einem Paar von Klammern gefolgt wird, macht \chemfor
\ch{!(ethanol)( CH2CH2OH )}
\end{beispiel}
-Das gleiche, was für die Pfeilbeschriftungen gilt, goilt auch hier: wenn Sie Leerzeichen lassen, werden die verschiedenen Teile entsprechend ihres Typs verarbeitet, bevor der Text unter die Formel gschrieben wird.
+Das gleiche, was für die Pfeilbeschriftungen gilt, gilt auch hier: wenn Sie Leerzeichen lassen, werden die verschiedenen Teile entsprechend ihres Typs verarbeitet, bevor der Text unter die Formel geschrieben wird.
\begin{beispiel}
\ch{!(water)(H2O)} \quad
\ch{!( "\textcolor{blue}{water}" )( H2O )} \quad
@@ -1622,7 +1696,7 @@ Das gleiche, was für die Pfeilbeschriftungen gilt, goilt auch hier: wenn Sie Le
\ch{!(oxonium)( H3O+ )}
\end{beispiel}
-Wenn SIe aus irgendeinem Grund ein Ausrufezeichen wollen, \emph{ohne} dass es einen Text unter eine Formel setzt, müssen Sie lediglich darauf achten, dass ihm keine Klammern folgen.
+Wenn Sie aus irgendeinem Grund ein Ausrufezeichen wollen, \emph{ohne} dass es einen Text unter eine Formel setzt, müssen Sie lediglich darauf achten, dass ihm keine Klammern folgen.
\begin{beispiel}
\ch{H2O~(!)} \\
\ch{A!{}()}
@@ -1632,7 +1706,7 @@ Wenn SIe aus irgendeinem Grund ein Ausrufezeichen wollen, \emph{ohne} dass es ei
\chemformula stellt zwei Optionen bereit, um den Text anzupassen:
\begin{description}
\item \key{name-format}{<commands>} Das Ausgabeformat des Textes. Das kann beliebiger Input sein. Default = \lstinline+\scriptsize\centering+
- \item \key{name-width}{<dim>/auto} Die Breite der Box, in die der Text geschrieben wird. \texttt{auto} erkennt die Breite der Bschriftung und setzt die Box auf diese Breite. Default = \texttt{auto}
+ \item \key{name-width}{<dim>/auto} Die Breite der Box, in die der Text geschrieben wird. \texttt{auto} erkennt die Breite der Beschriftung und setzt die Box auf diese Breite. Default = \texttt{auto}
\end{description}
\begin{beispiel}
\ch{!(S\"aure)( H2SO4 ) -> B} \\
@@ -1649,7 +1723,7 @@ Als Standardeinstellung nimmt \chemformula keine Veränderungen am Output der Fo
\sample
\end{beispiel}
\newcommand*\sample{\ch{H2C-C+C-CH=CH+ + CrO4^2- <=>[x][y] 2.5 Cl^{-.} + 3_1/2 Na*OH_{(aq)} + !(name)( A^n ) "\LaTeXe"}}
-Nun ändern wir verschiedene Aspakte der Schrift und sehen, was passiert:
+Nun ändern wir verschiedene Aspekte der Schrift und sehen, was passiert:
\begin{beispiel}[below]
\sffamily Hallo \sample \\
\ttfamily Hallo \sample \normalfont \\
@@ -1702,7 +1776,7 @@ Wenn Sie \XeLaTeX\ oder \LuaLaTeX\ verwenden und das Paket \paket{fontspec} gela
\secidx*{Format und Schrift}
\section{Verwendung in Mathematik-Umgebungen}\secidx{Mathematik-Umgebungen}
-Der Befehl \cmd{ch} kann in Mathematikumgebungen eingesetzt werden. Er erkennt \lstinline+\\+ und \lstinline+&+ und reicht Sie weiter. Sie können aber die optionalen Argumente von \lstinline+\\+ nicht innerhalb von \cmd{ch} verwenden.
+Der Befehl \cmd{ch} kann in Mathematikumgebungen eingesetzt werden. Er erkennt \lstinline+\\+ und \lstinline+&+ und reicht sie weiter. Sie können aber die optionalen Argumente von \lstinline+\\+ nicht innerhalb von \cmd{ch} verwenden.
\begin{beispiel}
\begin{align}
\ch[arrow-tips=to]{
@@ -1851,8 +1925,8 @@ Manche Sätze haben Lücken:
Mit den folgenden Optionen können diese Lücken gefüllt werden:
\begin{description}
- \item\key{text}{<text>} Füllt „unsichtbare Lücke“, die einem Doppelpunkt folgt.
- \item\key{dots}{<text>} Füllt Lücke, die durch „\ldots“ angezeigt wird.
+ \item\key{text}{<text>} Füllt \enquote{unsichtbare Lücke}, die einem Doppelpunkt folgt.
+ \item\key{dots}{<text>} Füllt Lücke, die durch \enquote{\ldots} angezeigt wird.
\item\key{C-temperature}{<num>} Füllt Celsius-Temperatur.
\item\key{F-temperature}{<num>} Füllt Fahrenheit-temperatur.
\item\key{kg-mass}{<num>} Füllt Kilogramm-Masse.
@@ -2001,10 +2075,12 @@ Der folgende Code zeigt, wie \ref{tab:ghs-hp-statements} erzeugt wurde:
\section*{Vorschläge und Bugreports}\addcontentsline{toc}{section}{Vorschläge und Bugreports}
Feedback zu \chemmacros, \chemformula und \ghsystem ist hochwillkommen! Wenn Sie Vorschläge haben, Ihnen Features fehlen oder Ihnen Bugs auf\-fallen, zögern Sie nicht, mich zu kontaktieren. Wenn Sie irgendwelche Fehler finden, seien es chemische, falsche Dokumentation \usw, wäre ich über eine kurze E-Mail\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}} dankbar.
-Wenn Sie einen Bug finden, wäre es am besten, Sie schickten mir ein minimales Beispiel, mit dem ich den Bug reproduzieren kann. Sie können ihn auch als „Issue“ auf \url{https://bitbucket.org/cgnieder/chemmacros/} melden.
+Wenn Sie einen Bug finden, wäre es am besten, Sie schickten mir ein minimales Beispiel, mit dem ich den Bug reproduzieren kann. Sie können ihn auch als \enquote{Issue} auf \url{https://bitbucket.org/cgnieder/chemmacros/} melden.
Vielen Dank an alle, die mir schon Feedback zukommen ließen!
+\printbibliography[title=Quellen]% TODO Überschrift in „Quellen“ ändern
+
\printindex
\listoftodos
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.pdf
index 0c8da7715d1..606f7a751eb 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.pdf
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.tex
index 9efa1992357..213595f0e3b 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.tex
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_doc_en.tex
@@ -5,9 +5,9 @@
% - macros and commands for chemists - %
% --------------------------------------------------------------------------- %
% - Clemens Niederberger - %
-% - 2012/02/03 - %
+% - 2012/02/10 - %
% --------------------------------------------------------------------------- %
-% - http://www.mychemistry.eu/ - %
+% - https://bitbucket.org/cgnieder/chemmacros/ - %
% - contact@mychemistry.eu - %
% --------------------------------------------------------------------------- %
% - If you have any ideas, questions, suggestions or bugs to report, please - %
@@ -27,12 +27,12 @@
% - - %
% - The Current Maintainer of this work is Clemens Niederberger. - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[DIV11,toc=index]{scrartcl}
+\documentclass[DIV11,idx=totoc,toc=bib]{scrartcl}
\usepackage{fontspec,xltxtra}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage[normalem]{ulem}
-\usepackage{chemfig,chemstyle,multicol,makeidx,booktabs}
+\usepackage{chemfig,chemstyle,upgreek,multicol,makeidx,booktabs,csquotes}
\usepackage{chemmacros}
\usepackage[version=3]{mhchem}
\usepackage[para]{footmisc}
@@ -60,6 +60,25 @@
suffix_3p "\\nohyperpage{\\,ff.}"
\end{filecontents}
+\usepackage[backend=biber,style=alphabetic,maxbibnames=20]{biblatex}
+\addbibresource{\jobname.bib}
+\begin{filecontents}{\jobname.bib}
+@book{iupac:greenbook,
+ author = {E. Richard Cohan and Tomislav Cvita\v{s} and Jeremy G. Frey and Bertil Holmström and kozo Kuchitsu and Roberto Marquardt and Ian Mills and Franco Pavese and Martin Quack and Jürgan Stohner and Herbert L. Strauss and Michio Takami and Anders J Thor},
+ title = {“Quantities, Symbols and Units in Physical Chemistry”, IUPAC Green Book},
+ edition = {3rd Edition. 2nd Printing},
+ year = {2008},
+ publisher = { IUPAC \&\ RSC Publishing, Cambridge}
+}
+@misc{eu:ghsystem_regulation,
+ author = {{The European Parliament and The Council of the European Union}},
+ title = {Regulation (EC) No 1272/2008 of the European Parliament and of the Council},
+ subtitle = {on classification, labelling and packaging of substances and mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC) No 1907/2006},
+ journal = {Official Journal of the European Union},
+ date = {2008-12-16}
+}
+\end{filecontents}
+
\DeclareInstance{xfrac}{chemformula-text-frac}{text}
{
scale-factor = 1 ,
@@ -146,14 +165,16 @@ You might remember that \chemmacros' options all belong to different modules, se
\ghsystem uses the packages \chemmacros, \paket{tabu}, \paket{longtable}, \paket{ifpdf} and \paket{graphicx}. \ghsystem has no own package options but passes all options on to \chemmacros.
-\section{Motivation}
+\section{Motivation and Background}
\chemmacros started some years ago as a growing list of custom macros that I frequently used. I cannot completely recall when and why I decided to release them as a package. Well \textendash\ here we go and you might find it useful, too, I hope.
-I would guess that nearly every chemist using \LaTeXe\ is aware of the great \paket{mhchem} package. \chemformula is \emph{not} a replacement for \paket{mhchem} but an alternative. I thought about writing it for a while. Some minor points in \paket{mhchem} always bothered me, but they hardly seemed enough for a new package. They weren't even enough for a feature request to the \paket{mhchem} author. What convinced me at last was the fun and the challenge.
+I would guess that nearly every chemist using \LaTeXe\ is aware of the great \paket{mhchem} package. There have always been some difficulties intertwining it with \chemmacros, though. Also, some other minor points in \paket{mhchem} always bothered me, but they hardly seemed enough for a new package. They weren't even enough for a feature request to the \paket{mhchem} author. The challenge and the fun of creating a new package and the wish for a highly customizable alternative led to \chemformula.
+
+\chemformula works very similar to \paket{mhchem} but is more strict as to how compounds, stoichiometric factors and arrows are input. In the same time \chemformula offers possibilities to customize the output that \paket{mhchem} does not. Since \chemformula is meant as an \emph{alternative} to \paket{mhchem} \chemmacros offers a package option allowing you to choose which one of the two is used.
-\chemformula works very similar to \paket{mhchem} but is more strict as to how compounds, stoichiometric factors and arrows are input. In the same time \chemformula offers some possibilities to customize the output that \paket{mhchem} does not. If you are content with the way \paket{mhchem} works there is probably no need to use \chemformula. Maybe you are curious anyway.
+As a chemist you are probably aware of the fact that the \textsc{United Nations} have developed the \enquote{\textbf{G}lobally \textbf{H}armonized \textbf{S}ystem of Classification and Labelling of Chemicals} (GHS) as a global replacement for the various different systems in different countries. While it has not been implemented by all countries yet\footnote{\url{http://www.unece.org/trans/danger/publi/ghs/implementation_e.html}}, it as only a matter of time.
-As a chemist you are probably aware of the fact that the \textsc{United Nations} have developed the “\textbf{G}lobally \textbf{H}armonized \textbf{S}ystem of Classification and Labelling of Chemicals” (GHS) as a global replacement for the various different systems in different countries. While it has not been implemented by all countries yet\footnote{\url{http://www.unece.org/trans/danger/publi/ghs/implementation_e.html}}, it as only a matter of time. The package \ghsystem now enables you to typeset all the hazard and precautionary statements and pictograms in a very easy way.
+The package \ghsystem now enables you to typeset all the hazard and precautionary statements and pictograms in a very easy way. The statements are taken from EU regulation 1272/2008 \cite{eu:ghsystem_regulation}.
\section{Installation, Loading the Bundle}\secidx{Loading the Bundle}\secidx{Installation}
The bundle comes with three style files\footnote{Those ending \texttt{sty}.}, a directory called \texttt{language/} containing the language-definition files for GHS (ending \texttt{def}), and a directory \texttt{pictures/} containing \texttt{eps}, \texttt{jpg} and \texttt{png} files (the GHS pictogramms). If you install the bundle manually \emph{please make sure to place the directories \texttt{language/} and \texttt{pictures/} in the \emph{same} directory as the style files}.
@@ -241,7 +262,7 @@ Some simple macros for displaying often needed particles and a symbol. Please no
\item \cmd{ba} \ba (base)
\item \cmd{fplus} \fplus
\item \cmd{fminus} \fminus
- \item \cmd{transitionstatesymbol} \transitionstatesymbol\ (uses \TikZ)
+ \item \cmd{transitionstatesymbol} \transitionstatesymbol
\item \cmd{standardstate} \standardstate. This symbol is only provided by \chemmacros, if the package \paket{chemstyle} is not loaded; the idea is borrowed from there\footnote{many thanks to the package author \href{http://www.texdev.net/}{Joseph Wright}.}.
\end{description}
There is another command which allows to typeset radicals with charges and subscripts.
@@ -266,17 +287,20 @@ It only has any effect, if the package \paket{chemfig} is loaded, since it uses
\end{beispiel}
\subsection{Own Particles}\secidx[own]{Particles, Ions and Symbols}
-If you like you can define your own particles using
+Surely sometimes it can be handy to have other particle macros defined such as \lstinline+\positron+ or \lstinline+\photon+. This can easily be done with this command:
\begin{description}
- \item \cmd{DeclareParticle}{<cmd>}\ma{<definition>}
+ \item \cmd{DeclareChemParticle}{<cmd>}\ma{<definition>}
+ \item \cmd{RenewChemParticle}{<cmd>}\ma{definition}
\end{description}
-Depending on the \key{method} you chose as option the \texttt{<definition>} will either be formula defined with \paket{mhchem} or with \chemformula. The particle defined this way behaves like the predefined ones with one exception: if you chose \key{method}{mhchem} the particle \emph{will not} obey the option \key{circled}. If you want formal charges with this method you need to use \chemmacros' commands (see section \ref{sec:ladungen}) explicitly. If you chose \key{method}{chemformula} the partictle \emph{will} obey the \key{circled} option.
+Depending on the \key{method} you chose as option the \texttt{<definition>} will either be a formula defined with \paket{mhchem} or with \chemformula. The particle defined this way behaves like the predefined ones with one exception: if you chose \key{method}{mhchem} the particle \emph{will not} obey the option \key{circled}. If you want formal charges with this method you need to use \chemmacros' commands (see section \ref{sec:ladungen}) explicitly. If you chose \key{method}{chemformula} the partictle \emph{will} obey the \key{circled} option.
\begin{beispiel}
- \DeclareParticle{\Sod}{Na+}
- \DeclareParticle{\Pot}{K+}
- \Sod \Pot \chemsetup[option]{circled=all} \Sod \Pot
+ % uses the `upgreek' package
+ \DeclareChemParticle{\positron}{$\upbeta$+}
+ \DeclareChemParticle{\photon}{$\upgamma$}
+ \RenewChemParticle{\el}{$\upbeta$-}
+ \positron\ \photon\ \el
\end{beispiel}
-The particles are only defined if the \texttt{<cmd>} you chose is not already used by any other command. If it is already used \chemmacros will either give a warning or an error, depending on the option \key{strict}.
+\cmd{DeclareChemParticle} only defines a particle if \texttt{<cmd>} is not already used by any other command. If it \emph{is} already used \chemmacros will either give a warning or an error, depending on the option \key{strict}. \cmd{RenewChemParticle} \emph{only} defines a particle if \texttt{<cmd>} \emph{is} already used and issues a warning/error otherwise.
\secidx*{Particles, Ions and Symbols}
\section{Stereo Descriptors, Nomenclature, Latin Phrases}\label{sec:stereo}
@@ -560,7 +584,7 @@ one can specify the most common reaction mechanisms. \texttt{<type>} can have on
\item\cmd{mech}[e] elimination \mech[e]
\item\cmd{mech}[e1] unimolecular elimination \mech[e1]
\item\cmd{mech}[e2] bimolecular elimination \mech[e2]
- \item\cmd{mech}[cb] unimolecular elimination “conjugated base”, \ie via carbanion \mech[cb]
+ \item\cmd{mech}[cb] unimolecular elimination \enquote{conjugated base}, \ie via carbanion \mech[cb]
\end{itemize}
\secidx*{Reaction Mechanisms}
@@ -932,35 +956,60 @@ The list lists all reactions with a number and disregards reactions without numb
\secidx*{Reaction Environments}
\section{Phases}\label{sec:phasen}\secidx{Phases}
+\subsection{Basics}\secidx[basics]{Phases}
These commands are intended to indicate the phase of a compound.
\begin{description}
- \item \cmd{sld}[<anything>] \sld
- \item \cmd{lqd}[<anything>] \lqd
+ \item \cmd{sld} \sld
+ \item \cmd{lqd} \lqd
\item \cmd{gas} \gas
\item \cmd{aq} \aq
\end{description}
-Please notice, that the commands \cmd{solid} and \cmd{liquid} are now called \cmd{sld} and \cmd{lqd}, respectively. Also notice that they \emph{don't} have an optional argument inside \cmd{ch}!
+\achtung{The default behaviour of the phases commands has changed to be consistent with IUPAC recommendations. Both \cmd{sld} and \cmd{lqd} have lost their optional argument.}
\begin{beispiel}
\ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\\
To make it complete: NaCl\aq.
\end{beispiel}
-With the package option \texttt{german} (see section \ref{sec:optionen}) or by using the optional arguments you get the german versions:
+With the package option \key{german} (see section \ref{sec:optionen}) you get the german versions:
\begin{beispiel}
- {\chemsetup[option]{german=true}
- \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas} }\\
- \ce{C \sld[f] + 2 H2O \lqd[fl] -> CO2\gas{} + 2 H2\gas}
+ \chemsetup[option]{german=true}
+ \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}
\end{beispiel}
-If you looked closely, you have probably noticed that the german \cmd{lqd} isn't identical to \cmd{lqd}[fl] but to \cmd{lqd}[f\textbackslash /l]. This makes the subscript more readable.
+The IUPAC recommendation\footnote{Thanks to Paul King for pointing this out.} to indicate the state of aggregation is to put it in parentheses after the compound \cite{iupac:greenbook}. However, you might want to put it as a subscript which is also very common.
-Of course it doesn't matter which command with optional argument you use. Both of them just write a subscript with braces. \cmd{sld}[f] is identical to \cmd{lqd}[f].
+\begin{myquote}[{IUPAC Green Book \cite[][p.\,54]{iupac:greenbook}}]
+ The [\ldots] 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).
+\end{myquote}
-One can think of other uses, too:
+There are two options to customize the output:
+\begin{description}
+ \item \key[phases]{pos}{side/sub} Switch the position of the phase indicator. Default = \texttt{side}
+ \item \key[phases]{space}{<dim>} Change the default spacing between compound a phase indicator if \key{pos}{side}. A \TeX\ dimension. Default = \texttt{.1333em}
+\end{description}
\begin{beispiel}
- C\sld[graphite]
+ \chemsetup[phases]{pos=sub}
+ \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\\
+ To make it complete: NaCl\aq.
+\end{beispiel}
+
+\subsection{Define Own Phases}\secidx[own]{Phases}
+Depending on the subject of your document you might need to indicate other states of aggregation. You can easily define them.
+\begin{description}
+ \item \cmd{DeclareChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
+ \item \cmd{RenewChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
+ \item \cmd{phase}{<phase>} If you need a phase indicator just once or twice.
+\end{description}
+\cmd{DeclareChemPhase} only defines a phase if \texttt{<cmd>} is not already used by any other command. If it \emph{is} already used \chemmacros will either give a warning or an error, depending on the option \key{strict}. \cmd{RenewChemPhase} \emph{only} defines a phase if \texttt{<cmd>} \emph{is} already used and issues a warning/error otherwise.
+\begin{beispiel}
+ \DeclareChemPhase{\aqi}{aq,$\infty$}% aqueous solution at infinite dilution
+ \DeclareChemPhase{\cd}{cd}% condensed phase
+ \RenewChemPhase{\lqd}{lc}% liquid crystal
+ NaOH\aqi\ \ch{H2O\cd} U\phase{cr} A\lqd \\
+ \chemsetup[phases]{pos=sub}
+ NaOH\aqi\ \ch{H2O\cd} U\phase{cr} A\lqd
\end{beispiel}
\secidx*{Phases}
@@ -1039,7 +1088,7 @@ Depending on the type you have different keys to modify the orbitals:
Additionally there are two keys, with which the \TikZ behaviour can be changed.
\begin{description}
- \item \key[orbital]{overlay}{\uline{true}/false} the orbital “doesn't need space”; it is displayed with the \TikZ option \texttt{overlay}.
+ \item \key[orbital]{overlay}{\uline{true}/false} the orbital \enquote{doesn't need space}; it is displayed with the \TikZ option \texttt{overlay}.
\item \key[orbital]{opacity}{<num>} the orbital becomes transparent; \texttt{<value>} can have values between \texttt{1} (fully opaque) to \texttt{0} (invisible).
\end{description}
@@ -1153,6 +1202,9 @@ Some keys can be set without value. Then the \uline{underlined} value is used.
format & mhName & <commands> & & page \pageref{key:mhName_format} \\
fontsize & mhName & <fontsize> & \cmd{tiny} & page \pageref{key:mhName_fontsize} \\
width & mhName & <dim> & & page \pageref{key:mhName_width} \\
+ \multicolumn{5}{l}{phases:} \\
+ pos & phases & side/sub & side & page \pageref{key:phases_pos} \\
+ space & phases & <dim> & .1333em & page \pageref{key:phases_space} \\
\multicolumn{5}{l}{\cmd{newman}:} \\
angle & newman & <angle> & 0 & page \pageref{key:newman_angle} \\
scale & newman & <factor> & 1 & page \pageref{key:newman_scale} \\
@@ -1294,7 +1346,7 @@ The option \key{stoich-space} allows you to customize the space between stoichio
\secidx*{Stoichiometric Factors}
\section{Compounds}\label{ssec:compounds}\secidx{Compounds}
-\chemformula determines compounds as the type that “doesn't fit in anywhere else”. This point will become more clear when you know what the other types are.
+\chemformula determines compounds as the type that \enquote{doesn't fit in anywhere else}. This point will become more clear when you know what the other types are.
\begin{beispiel}
\ch{H2SO4} \\
\ch{[Cu(NH3)4]^2+}
@@ -1337,20 +1389,21 @@ Commands are allowed in a compound:
\begin{beispiel}
\ch{\textbf{A2}B3} \ch{A2\color{red}B3}
\end{beispiel}
-However, if the commands demand numbers as argument, \eg space commands or \paket{chemmacros}' \lstinline+\ox+ command the direct use will fail. This is because the numbers are treated as subscripts \emph{before} the command expands.
+However, if the commands demand numbers as argument, \eg space commands or \chemmacros' \lstinline+\ox+ command the direct use will fail. This is because the numbers are treated as subscripts \emph{before} the command expands.
\begin{beispiel}[code only]
\ch{A\hspace{2mm}B} will raise an error because \hspace sees something like this: \hspace{$_2$mm}.
\end{beispiel}
See section \ref{ssec:text} for a way around this.
\subsection{Charges and Other Superscripts}\secidx[charges]{Compounds}\secidx[superscripts]{Compounds}
+\paragraph{Basics}
If a compound \emph{ends} with a plus or minus sign it will be treated as charge sign and typeset as superscript. In other places a plus is treated as a triple bond and a dash will be used as a single bond, see section \ref{ssec:bonds}.
\begin{beispiel}
\ch{A+B} \ch{AB+} \\
\ch{A-B} \ch{AB-}
\end{beispiel}
-For longer charge groups or other superscripts you can use the math syntax. It recognizes groups and you can use math inside them. Inside these groups neither \texttt{+} nor \texttt{-} are treated as bonds. If a dot \texttt{.} is inside a superscript it is treated as indicator for a radical.
+For longer charge groups or other superscripts you can use the math syntax. It recognizes groups and you can use math inside them. Inside these groups neither \texttt{+} nor \texttt{-} are treated as bonds. If a dot \texttt{.} is inside a superscript it is treated as indicator for a radical. A \texttt{*} gives the excited state.
\begin{beispiel}
\ch{A^{x-}} \\
\ch{A^x-} \\
@@ -1359,7 +1412,8 @@ For longer charge groups or other superscripts you can use the math syntax. It r
\ch{RNO2^{-.}} \\
\ch{^31H} \\
\ch{^{14}6C} \\
- \ch{^{58}_{26}Fe}
+ \ch{^{58}_{26}Fe} \\
+ \ch{NO^*}
\end{beispiel}
Ions and ion composites with more than one charge can be typeset quite as easy:
@@ -1367,6 +1421,22 @@ Ions and ion composites with more than one charge can be typeset quite as easy:
\ch{SO4^2-} \ch{Ca^2+ SO4^2-}
\end{beispiel}
+\paragraph{Behaviour}\secidx[superscripts!behaviour]{Compounds}
+The supercripts behave differently depending on their position in a compound, if there are super- and subscripts following each other directly.
+\begin{beispiel}
+ \ch{^33B} \ch{{}^33B} \ch{3^3B} \\
+ \ch{^{23}_{123}B} \ch{{}^{23}_{123}B} \ch{_{123}^{23}B} \\
+ \ch{^{123}_{23}B} \ch{{}^{123}_{23}B} \ch{_{23}^{123}B}
+\end{beispiel}
+\begin{itemize}
+ \item If a compound \emph{starts} with a superscript both sub- and superscript are aligned to the \emph{right} else to the \emph{left}.
+ \item If a superscript \emph{follows} a subscript it is shifted additionally by a length determined from the option \key{charge-hshift}{<dim>}, also see page \pageref{key:charge-hshift}f.
+\end{itemize}
+The second point follows IUPAC's recommendations:
+\begin{myquote}[{IUPAC Green Book \cite[][p.\,51]{iupac:greenbook}}]
+ In writing the formula for a complex ion, spacing for charge number can be added (staggered arrangement), as well as parentheses: \ch[charge-hshift=1ex]{SO4^2-}, \ch{(SO4)^2-} The staggered arrangement is now recommended.
+\end{myquote}
+
\subsection{Bonds}\label{ssec:bonds}\secidx[bonds]{Compounds}
There are three kinds of bonds:
\begin{beispiel}
@@ -1380,20 +1450,17 @@ These options allow you to customize the ouptut of the compounds:
\begin{description}
\item \key{subscript-vshift}{<dim>} Extra vertical shift of the subscripts. Default = \texttt{0pt}
\item \key{subscript-style}{text/math} Style that is use to typeset the subscripts. Default = \texttt{text}
- \item \key{charge-hshift}{<dim>} Shift of superscripts when following a subscript. Default = \texttt{.3ex}
+ \item \key{charge-hshift}{<dim>} Shift of superscripts when following a subscript. Default = \texttt{1ex}\label{key:charge-hshift}
\item \key{charge-style}{text/math} Style that is use to typeset the superscripts. Default = \texttt{text}
\item \key{adduct-space}{<dim>} Space to the left and the right of the adduct point. Default = \lstinline+.1333em+
\item \key{bond-length}{<dim>} The length of the bonds. Default is the length of an endash as measured by \lstinline+\settowidth{<len>}{\textendash}+.
\end{description}
-Maybe you have noticed that charges of certain ions are a little bit shifted to the right:\secidx[charges!shift]{Compounds}
+Maybe you have noticed that charges of certain ions are shifted to the right.\secidx[charges!shift]{Compounds} They are shifted if they \emph{follow} a subscript which follows IUPAC recommendations \cite[][p.\,51]{iupac:greenbook}. The amount of the shift can be set with the option \key{charge-hshift}.
\begin{beispiel}
- \ch{SO4^2-} \ch{NH4+} \ch{Na+}
-\end{beispiel}
-They are shifted if they \emph{follow} a subscript. The amount of the shift can be set with the option \key{charge-hshift}.
-\begin{beispiel}
- \chemsetup[chemformula]{charge-hshift=0pt}
\ch{SO4^2-} \ch{NH4+} \ch{Na+} \\
- \chemsetup[chemformula]{charge-hshift=1ex}
+ \chemsetup[chemformula]{charge-hshift=.5ex}
+ \ch{SO4^2-} \ch{NH4+} \ch{Na+} \\
+ \chemsetup[chemformula]{charge-hshift=.5pt}
\ch{SO4^2-} \ch{NH4+} \ch{Na+}
\end{beispiel}
@@ -1437,7 +1504,7 @@ Changing the length of the bonds:\secidx[bonds!length]{Compounds}
\secidx*{Compounds}
\section{Special Input Types}\secidx{Special Types}
-There are some “special type” input groups. These are groups which consist of only one token, namely of the following ones:
+There are some \enquote{special type} input groups. These are groups which consist of only one token, namely of the following ones:
\begin{description}
\item \cmd{ch}{ + } \ch{+} creates the plus sign between compounds with space around it:\\
\cmd{ch}{2 Na + Cl2} \ch{2 Na + Cl2}
@@ -1500,7 +1567,8 @@ Arrows are input in the same intuitive way they are with \paket{mhchem}. There a
\begin{description}
\item \cmd{ch}{ -> } \ch{->} standard right arrow
\item \cmd{ch}{ <- } \ch{<-} standard left arrow
- \item \cmd{ch}{ <-> } \ch{<->} mesomeric arrow
+ \item \cmd{ch}{ <-> } \ch{<->} resonance arrow
+ \item \cmd{ch}{ <> } \ch{<>} reaction in both directions
\item \cmd{ch}{ <=> } \ch{<=>} equilibrium arrow
\item \cmd{ch}{ \lstinline+<=>>+ } \ch{<=>>} unbalanced equilibrium arrow to the right
\item \cmd{ch}{ \lstinline+<<=>+ } \ch{<<=>} unbalanced equilibrium arrow to the left
@@ -1511,6 +1579,7 @@ All these arrows are drawn with \TikZ.
\ch{H2O + CO3^2- <=> OH- + HCO3-} \\
\ch{A <- B} \\
\ch{\{[CH2=CH-CH2]- <-> [CH2-CH=CH2]- \}} \\
+ \ch{A <> B} \\
\ch{H+ + OH- <=>> H2O} \\
\ch{2 NO2 <<=> N2O4}
\end{beispiel}
@@ -1532,7 +1601,7 @@ The label text can be parsed seperately from the arrow. The recipe is easy: leav
\ch{A ->[ "\ox{2,Ca}" F2 ] B} \\
\ch{A ->[$\Delta$,~ [H+ ] ] B}
\end{beispiel}
-If you leave the blanks \chemformula treats the groups inside the square brackets as seperated input types. The arrow reads its arguments \emph{afterwards}. As you can see the arrows “grow” with the length of the labels. What stays constant is the part that protrudes the labels.
+If you leave the blanks \chemformula treats the groups inside the square brackets as seperated input types. The arrow reads its arguments \emph{afterwards}. As you can see the arrows \enquote{grow} with the length of the labels. What stays constant is the part that protrudes the labels.
\begin{beispiel}
\ch{A ->[a] B} \\
\ch{A ->[ab] B} \\
@@ -1975,6 +2044,8 @@ If you find any bugs, it would be best, if you'd send me a minimal example, with
Many thanks to all the people, who already provided me with feedback!
+\printbibliography
+
\printindex
% \listoftodos