summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/README42
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemformula_en.pdfbin0 -> 288581 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemformula_en.tex1377
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.pdfbin0 -> 87351 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.tex497
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.pdfbin848597 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.tex3544
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdfbin836231 -> 338120 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex3271
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.pdfbin841281 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.tex3465
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.pdfbin0 -> 365205 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.tex663
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemformula.sty1116
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemgreek.sty443
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty2015
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty233
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_english.def913
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_german.def4
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_italian.def4
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_langtemplate.def6
21 files changed, 6626 insertions, 10967 deletions
diff --git a/Master/texmf-dist/doc/latex/chemmacros/README b/Master/texmf-dist/doc/latex/chemmacros/README
index 8cf1cfdf0af..4e707a06fc2 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/README
+++ b/Master/texmf-dist/doc/latex/chemmacros/README
@@ -1,10 +1,12 @@
--------------------------------------------------------------------------
-the CHEMMACROS bundle v3.6b
--> 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)
-2013/03/19
+the CHEMMACROS bundle
+-> chemmacros package v4.0 -> macros and commands for chemists
+-> chemformula package v4.0 -> typeset chemical compounds and reactions
+-> ghsystem package v4.0 -> typeset H & P statements and pictograms
+ from the globally harmonised system (GHS)
+-> chemgreek package v0.1a -> handle mapping of upright greek letters to
+ the \chemalpha ... commands
+2013/07/06
--------------------------------------------------------------------------
This bundle succeeds the chemmacros package which is now part of the
bundle
@@ -35,21 +37,27 @@ and the regarding files in it (*.def or *.eps,*.jpg,*png, or *.pdf respectively)
in the _same_ directory as the style files.
(probably something like $TEXMF/texmf/tex/latex/chemmacros/)
--------------------------------------------------------------------------
-The chemmacros bundle consists of the files
+The chemmacros bundle consists of the following files
+package files:
- chemmacros.sty,
- chemformula.sty,
- ghsystem.sty,
- - chemmacros-version1.cfg,
+ - chemgreek.sty,
+ - chemmacros-version1.cfg
+image files:
+ - eps-, png-, pdf- and jpg-files for the GHS pictograms (4x31 pictures)
+language-definition files:
+ - ghsystem_german.def,
+ - ghsystem_english.def,
+ - ghsystem_italian.def
+ - ghsystem_langtemplate.def
+documentation and README:
- chemmacros_en.tex, chemmacros_en.pdf,
- - chemmacros_de.tex, chemmacros_de.pdf,
- - README,
- - eps-, png-, pdf- and jpg-files for the GHS pictograms (4x31 pictures),
- - language-definition files:
- ghsystem_german.def,
- ghsystem_english.def,
- ghsystem_italian.def
- ghsystem_langtemplate.def
+ - chemfurmula_en.tex, chemformula_en.pdf,
+ - ghsystem_en.tex, ghsystem_en.pdf,
+ - chemgreek_en.tex, chemgreek_en.pdf,
+ - README
--------------------------------------------------------------------------
If you have any ideas, questions, suggestions or bugs to report, please
feel free to contact me.
--------------------------------------------------------------------------- \ No newline at end of file
+--------------------------------------------------------------------------
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.pdf
new file mode 100644
index 00000000000..d998e09c4b7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.tex b/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.tex
new file mode 100644
index 00000000000..fe4a075664b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.tex
@@ -0,0 +1,1377 @@
+% arara: xelatex
+% !arara: biber
+% !arara: xelatex
+% !arara: xelatex
+\documentclass[DIV11,toc=index,toc=bib]{cnpkgdoc}
+\docsetup{
+ pkg = {[greek=newtx]chemmacros},
+ language = en,
+ title = the \Chemmacros\ bundle,
+ subtitle = {
+ packages \Chemmacros\ (v\csname chemmacros@version\endcsname),
+ \Chemformula\ (v\csname chemformula@version\endcsname),
+ \Ghsystem\ (v\csname ghsystem@version\endcsname) and
+ \Chemgreek\ (v\csname chemgreek@version\endcsname)\\[2ex]
+ {\Large documentation for the \Chemformula\ package}},
+ modules = true,
+ code-box = {skipabove=1ex,skipbelow=1ex},
+ label = {},
+ name = chemformula,
+ url = https://bitbucket.org/cgnieder/chemmacros/
+}
+
+\usepackage{chemfig,booktabs,cancel}
+\usepackage[version=3]{mhchem}
+\usepackage{fontspec}
+\usepackage[oldstyle,proportional]{libertine}
+\usepackage[libertine]{newtxmath}
+\usepackage{libertinehologopatch}
+\setmonofont[Scale=MatchLowercase]{Bitstream Vera Sans Mono}
+
+\cnpkgusecolorscheme{friendly}
+\renewcommand*\othersectionlevelsformat[3]{%
+ \textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{%
+ \textcolor{main}{\partname~\thepart\autodot}}
+
+\usepackage{fnpct}
+\usepackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\pagestyle{headings}
+
+\usepackage[accsupp]{acro}
+\acsetup{
+ long-format=\scshape,
+ short-format=\scshape
+}
+\DeclareAcronym{ghs}{
+ short = ghs ,
+ long = Globally Harmonized System of Classification and Labelling of
+ Chemicals ,
+ pdfstring = GHS ,
+ accsupp = GHS
+}
+\DeclareAcronym{eu}{
+ short = EU ,
+ long = European Union ,
+ pdfstring = EU ,
+ accsupp = EU
+}
+\DeclareAcronym{iupac}{
+ short = iupac ,
+ long = International Union of Pure and Applied Chemistry ,
+ pdfstring = IUPAC ,
+ accsupp = IUPAC
+}
+\DeclareAcronym{UN}{
+ short = un ,
+ long = United Nations ,
+ pdfstring = UN ,
+ accsupp = UN
+}
+\DeclareAcronym{dvi}{
+ short = dvi ,
+ long = device independent file format ,
+ pdfstring = DVI ,
+ accsupp = DVO
+}
+\DeclareAcronym{pdf}{
+ short = pdf ,
+ long = portable document file ,
+ pdfstring = PDF ,
+ accsupp = PDF
+}
+
+\chemsetup{
+ option/synchronize ,
+ chemformula/font-spec={[Numbers=Lining]Linux Libertine O}
+}
+\colorlet{chemformula}{darkgray}
+
+\sisetup{
+ detect-mode=false,
+ mode=text,
+ text-rm=\addfontfeatures{Numbers={Proportional,Lining}}
+}
+
+\usepackage{filecontents}
+
+\begin{filecontents*}{\jobname.ist}
+ preamble "\\begin{theindex}\n Section titles are indicated \\textbf{bold},
+ packages \\textsf{sans serif}, commands \\code{\\textbackslash\\textcolor{code}{brown}},
+ options \\textcolor{key}{\\code{yellow}} and modules (only \\chemmacros)
+ \\textcolor{module}{\\code{blue}}.\\newline\n\n"
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ 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ürgen Stohner and Herbert L. Strauss and
+ Michio Takami and Anders J Thor},
+ title = {“Quantities, Symbols and Units in Physical Chemistry”, \acs{iupac}
+ Green Book},
+ edition = {3rd Edition. 2nd Printing},
+ year = {2008},
+ publisher = {\acs{iupac} \&\ RSC Publishing, Cambridge}
+}
+@book{iupac:redbook,
+ author = {Neil G. Connelly and Ture Damhus and Richard M. Hartshorn and
+ Alan T. Hutton},
+ title = {“Nomenclature of Inorganic Chemistry”, \acs{iupac} Red Book},
+ year = {2005},
+ publisher = { \acs{iupac} \&\ RSC Publishing, Cambridge},
+ isbn = {0-85404-438-8}
+}
+@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}
+}
+@online{unece:ghsystem_implementation,
+ author = {United Nations Economic Commission for Europe},
+ title = {GHS Implementation},
+ url = {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html},
+ urldate = {2012-03-20},
+ date = {2012-03-20}
+}
+\end{filecontents*}
+
+\DeclareInstance{xfrac}{chemformula-text-frac}{text}
+ {
+ scale-factor = 1 ,
+ denominator-bot-sep = -.2ex ,
+ denominator-format = \scriptsize #1 ,
+ numerator-top-sep = -.2ex ,
+ numerator-format = \scriptsize #1 ,
+ slash-right-kern = .05em ,
+ slash-left-kern = .05em
+ }
+
+\usetikzlibrary{calc,positioning,decorations.pathmorphing,patterns}
+
+\pgfdeclaredecoration{penciline}{initial}{
+ \state{initial}[
+ width=+\pgfdecoratedinputsegmentremainingdistance,
+ auto corner on length=1mm
+ ]{
+ \pgfpathcurveto%
+ {% From
+ \pgfqpoint
+ {\pgfdecoratedinputsegmentremainingdistance}
+ {\pgfdecorationsegmentamplitude}
+ }
+ {% Control 1
+ \pgfmathrand
+ \pgfpointadd
+ {\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
+ {%
+ \pgfqpoint
+ {-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}%
+ {\pgfmathresult\pgfdecorationsegmentamplitude}
+ }
+ }
+ {%TO
+ \pgfpointadd
+ {\pgfpointdecoratedinputsegmentlast}
+ {\pgfpoint{1pt}{1pt}}
+ }
+ }
+ \state{final}{}
+}
+\tikzset{pencil/.style={decorate,decoration=penciline}}
+
+\TitlePicture{%
+ \ch[font-spec={Augie}]{
+ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2
+ ->
+ 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}-
+ }
+ \redox(o1,o2)[red,pencil,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
+ \redox(r1,r2)[blue,pencil,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
+
+\addcmds{
+ a, abinitio, AddRxnDesc, anti, aq, aqi,
+ b, ba, bond, bottomrule, bridge,
+ cancel, cd, cdot, ce, cee, celsius, centering, chemabove, Chemalpha,
+ Chembeta, Chemgamma, Chemdelta, ChemDelta, chemfig, chemname, Chemomega,
+ chemsetup, cip, cis, ch, clap, cnsetup, CNMR, color, cstack, cstsetup,
+ d, D, data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias,
+ DeclareChemIUPAC, DeclareChemLatin, DeclareChemNMR, DeclareChemParticle,
+ DeclareChemPhase, DeclareChemReaction, DeclareChemState, DeclareInstance,
+ DeclareSIUnit, definecolor, delm, delp, Delta, Dfi, draw,
+ E, el, electronvolt, ElPot, endo, Enthalpy, enthalpy, Entropy,
+ footnotesize, fmch, fpch, fscrm, fscrp,
+ g, gas, ghs, ghslistall, ghspic, Gibbs, glqq, gram, grqq,
+ H, hapto, HNMR, Helmholtz, hertz, hspace,
+ includegraphics, insitu, intertext, invacuo, iupac, IUPAC,
+ J, joule,
+ Ka, Kb, kilo, Kw,
+ L, latin, lewis, Lewis, Lfi, listofreactions, lqd, ltn,
+ mch, mega, meta, metre, mhName, midrule, milli, mmHg, mole,
+ N, nano, nicefrac, newman, NMR, Nu, Nuc, num, numrange,
+ O, ominus, orbital, ortho, oplus, ox, OX,
+ p, P, para, pch, per, percent, pgfarrowsdeclarealias, pgfarrowsrenewalias,
+ pH, phase, photon, pKa, pKb, pOH, pos, positron, Pot, prt,
+ R, Rad, redox, RenewChemArrow, RenewChemBond, RenewChemIUPAC,
+ RenewChemLatin, RenewChemNMR, RenewChemParticle, RenewChemPhase,
+ RenewChemState, renewtagform, rightarrow,
+ S, Sf, sample, scriptscriptstyle, scrm, scrp, second, setatomsep,
+ setbondoffset, setchemformula, sfrac, shorthandoff, ShowChemArrow,
+ ShowChemBond, si, SI, sisetup, sld, Sod, square, State, subsection,
+ textcolor, textendash, textsuperscript, tiny, toprule, trans,
+ upbeta, upeta, upgamma,
+ val, volt, vphantom, vspave,
+ w, xspace, Z
+}
+
+\usepackage{imakeidx}
+\indexsetup{othercode=\footnotesize}
+\makeindex[columns=3,intoc,options={-sl \jobname.ist}]
+
+\newcommand*\Chemmacros{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemmacros%
+ }%
+}
+\providecommand*\chemmacros{{\scshape\textcolor{main}{chemmacros}}\xspace}
+
+\newcommand*\Chemformula{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemformula%
+ }%
+}
+\providecommand*\chemformula{{\scshape\textcolor{main}{chemformula}}\xspace}
+
+\newcommand*\Ghsystem{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ ghsystem%
+ }%
+}
+\providecommand*\ghsystem{{\scshape\textcolor{main}{ghsystem}}\xspace}
+
+\newcommand*\Chemgreek{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemgreek%
+ }%
+}
+\providecommand*\chemgreek{{\scshape\textcolor{main}{chemgreek}}\xspace}
+
+\renewcommand*\AmS{\hologo{AmS}}
+
+\newcommand*\Default[1]{%
+ \hfill\llap{%
+ \ifblank{#1}
+ {(initially~empty)}
+ {Default:~\code{#1}}%
+ }\newline
+}
+
+\usepackage{marginnote,ragged2e}
+\makeatletter
+\providecommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\providecommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+
+\RenewDocumentCommand\CTANurl{O{macros/latex/contrib}m}
+ {%
+ on CTAN: %
+ \hyper@linkurl{#2}{http://mirrors.ctan.org/#1/#2/}%
+ }
+\ExplSyntaxOn
+\RenewDocumentCommand \paket { sO{macros/latex/contrib}m }
+ {
+ \paketfont { #3 }
+ \index { #3 @ \paketfont { #3 } }
+ \prop_if_in:NnF \g_cnpkgdoc_pakete_prop { #3 }
+ {
+ \prop_gput:Nnn \g_cnpkgdoc_pakete_prop { #3 } {}
+ \IfBooleanF { #1 }
+ { \footnote { \CTANurl[]{#3} } }
+ }
+ }
+\ExplSyntaxOff
+\makeatother
+
+\begin{document}
+
+\section{Introduction}
+Probably every chemist using \LaTeXe\ is aware of the great \paket{mhchem}
+package by Martin Hensel. 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\ after all.
+
+\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 \emph{many} possibilities to customize the output.
+
+\sinceversion{4.0}Since version 4.0, the \chemformula\ package can be used
+independently from \chemmacros. This means that if you say
+\begin{beispiel}[code only]
+ \usepackage{chemformula}
+\end{beispiel}
+then \chemmacros\ will not be loaded. The \chemmacros\ package, however,
+\emph{will} load \chemformula.
+
+\section{Licence and Requirements}
+Permission is granted to copy, distribute and/or modify this software under
+the terms of the \LaTeX\ project public license (lppl) version 1.3 or later
+(\url{http://www.latex-project.org/lppl.txt}). The package has the status
+``maintained.''
+
+The \chemformula\ package needs and thus loads the packages \paket*{expl3}
+(from the \paket*{l3kernel}\footnote{\CTANurl{l3kernel}}), \paket*{xparse},
+\paket*{l3keys2e} and \paket*{xfrac} (from the
+\paket*{l3packages}\footnote{\CTANurl{l3packages}}),
+\paket*{tikz}\footnote{\CTANurl[graphics]{pgf}}, \paket{amsmath},
+\paket*{nicefrac} and \paket*{scrlfile} (from the
+\KOMAScript\footnote{\CTANurl{koma-script}} bundle).
+
+\section{Setup}
+All of \chemformula's options belong to \chemmacros' module
+\textcolor{module}{\code{chemformula}}. This means they can be setup with
+\begin{beispiel}[code only]
+ \chemsetup[chemformula]{<options>} or
+ \chemsetup{chemformula/<option1>,chemformula/<option2>}
+\end{beispiel}
+However, if you're using \chemformula\ as a standalone package the command
+\cmd{chemsetup} is not available. This is why \chemformula\ also has its own
+setup command:
+\begin{beispiel}[code only]
+ \setchemformula{<options>}
+\end{beispiel}
+
+\section{The Basic Principle}
+\chemformula\ offers one main command.
+\begin{beschreibung}
+ \Befehl{ch}[<options>]{<input>}
+\end{beschreibung}
+The usage will seem very familiar to you if you're familiar with \paket{mhchem}:
+\begin{beispiel}
+ \ch{H2O} \\
+ \ch{Sb2O3} \\
+ \ch{H+} \\
+ \ch{CrO4^2-} \\
+ \ch{AgCl2-} \\
+ \ch{[AgCl2]-} \\
+ \ch{Y^{99}+} \\
+ \ch{Y^{99+}} \\
+ \ch{H2_{(aq)}} \\
+ \ch{NO3-} \\
+ \ch{(NH4)2S} \\
+ \ch{^{227}_{90}Th+} \\
+ $V_{\ch{H2O}}$ \\
+ \ch{Ce^{IV}} \\
+ \ch{KCr(SO4)2 * 12 H2O}
+\end{beispiel}
+
+However, there are differences. The most notable one: \chemformula\
+distinguishes between different types of input. These different parts
+\emph{have} to be separated with blanks:
+\begin{beschreibung}
+ \Befehl{ch}{part1 part2 part3 part4}
+\end{beschreibung}
+A blank in the input \emph{never} is a blank in the output. This role of the
+blank strictly holds and disregarding it can have unexpected results and even
+lead to errors.
+
+Another notable difference: \chemformula\ tries to avoid math mode whenever
+possible:
+\begin{beispiel}
+ \ch{A + B ->[a] C} \\
+ \ce{A + B ->[a] C}
+\end{beispiel}
+
+This means that \cmd{ch}{2H2O} is recognized as a \emph{single} part, which in
+this case is recognized as a compound.
+\begin{beispiel}
+ \ch{2H2O} \\
+ \ch{2 H2O}
+\end{beispiel}
+This also means, that a part cannot contain a blank since this will
+automatically divide it into two parts. If you need an extra blank in the
+output you need to use \lstinline+~+. However, since commands in most cases
+gobble a space after them a input like \cmd{ch}{\textbackslash command ABC}
+will be treated as a single part. If you want or need to divide them you need
+to add an empty group: \cmd{ch}{\textbackslash command\{\} ABC}. The
+different input types are described in the following sections.
+
+% TODO: Module überdenken, Beschreibung anpassen
+There are some options to customize the output of the \cmd{ch} command. They
+can either be applied locally using the optional argument or can be set
+globally using the setup command. All options of \chemformula\ belong to the
+module \textcolor{module}{\code{chemformula}} and can be set in different
+ways:
+\begin{beschreibung}
+ \Befehl{chemsetup}[chemformula]{<options>} (when loaded via \chemmacros)
+ \Befehl{chemsetup}{chemformula/<options>} (when loaded via \chemmacros)
+ \Befehl{setchemformula}{<options>} (independent from \chemmacros)
+\end{beschreibung}
+
+\section{Stoichiometric Factors}\secidx{Stoichiometric Factors}
+A stoichiometric factor may only contain of numbers and the signs
+\lstinline+.,_/()+
+\begin{beispiel}
+ \ch{2} \\
+ \ch{12}
+
+ % decimals:
+ \ch{.5} \\
+ \ch{5,75}
+
+ % fractions:
+ \ch{3/2} \\
+ \ch{1_1/2}
+
+ % ``iupac'':
+ \ch{(1/2)}
+\end{beispiel}
+
+As you can see if you input decimal numbers a missing leading zero is added.
+
+You have to be a little bit careful with the right syntax but I believe it is
+rather intuitive.
+\begin{beispiel}[code only]
+ this won't work but will result in an error: \ch{1/1_1}
+\end{beispiel}
+
+If stoichiometric factors are enclosed with parentheses the fractions are not
+recognized and missing leading zeros are not added. What's inside the
+parentheses is typeset as is.
+\begin{beispiel}
+ \ch{(1/2) H2O} \ch{1/2 H2O} \ch{0.5 H2O}
+\end{beispiel}
+You can find many examples like the following for stoichiometric factors in
+parentheses in the \acs{iupac} Green Book~\cite{iupac:greenbook}:
+\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*}
+
+There are a few possibilities to customize the output.
+\begin{beschreibung}
+ \Option{decimal-marker}{<marker>}\Default{.}
+ The symbol to indicate the decimal.
+ \Option{frac-style}{math|xfrac|nicefrac}\Default{math}
+ Determines how fractions are displayed.
+ \Option{stoich-space}{<skip>}\Default{.1667em plus .0333em minus .0117em}
+ The space that is placed after the stoichiometric factor. A rubber
+ length.
+ \Option{stoich-paren-parse}{\default{true}|false}\Default{false}
+ If set to true stoichiometric factors enclosed by parentheses also are
+ parsed.
+\end{beschreibung}
+\begin{beispiel}
+ \ch[decimal-marker={,}]{3.5} \ch[decimal-marker={$\cdot$}]{3,5}
+\end{beispiel}
+
+The option \key{frac-style}{xfrac} uses the \lstinline+\sfrac+ command of the
+\paket{xfrac} package. The output strongly depends on the font you
+use.\secidx[xfrac]{Stoichiometric Factors}
+\begin{beispiel}
+ \ch[frac-style=xfrac]{3/2} \ch[frac-style=xfrac]{1_1/2}
+\end{beispiel}
+\chemformula\ defines the instance \lstinline=formula-text-frac= which you can
+redefine to your needs. See the \paket{xfrac} documentation for further
+information. The default definition is this:
+\begin{beispiel}[code only]
+ \DeclareInstance{xfrac}{chemformula-text-frac}{text}
+ {
+ slash-left-kern = -.15em ,
+ slash-right-kern = -.15em
+ }
+\end{beispiel}
+This document uses the font Linux Libertine~O and the following definition:
+\begin{beispiel}[code only]
+ \DeclareInstance{xfrac}{chemformula-text-frac}{text}
+ {
+ scale-factor = 1 ,
+ denominator-bot-sep = -.2ex ,
+ denominator-format = \scriptsize #1 ,
+ numerator-top-sep = -.2ex ,
+ numerator-format = \scriptsize #1 ,
+ slash-right-kern = .05em ,
+ slash-left-kern = .05em
+ }
+\end{beispiel}
+
+The option \key{frac-style}{nicefrac} uses the \lstinline+\nicefrac+ command
+of the \paket{nicefrac} package.\secidx[nicefrac]{Stoichiometric Factors}
+\begin{beispiel}
+ \ch[frac-style=nicefrac]{3/2} \ch[frac-style=nicefrac]{1_1/2}
+\end{beispiel}
+
+The option \key{stoich-space} allows you to customize the space between
+stoichiometric factor and the group following after
+it.\secidx[space]{Stoichiometric Factors}
+\begin{beispiel}
+ \ch{2 H2O} \\
+ \ch[stoich-space=.3em]{2 H2O}
+\end{beispiel}
+\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.
+\begin{beispiel}
+ \ch{H2SO4} \\
+ \ch{[Cu(NH3)4]^2+}
+\end{beispiel}
+
+\subsection{Adducts}\secidx[adducts]{Compounds}
+\chemformula\ has two identifiers which will create adducts.
+\begin{beschreibung}
+ \Befehl{ch}{A.B}\newline \ch{A.B}
+ \Befehl{ch}{A*B}\newline \ch{A*B}
+\end{beschreibung}
+\begin{beispiel}
+ \ch{CaSO4.H2O} \\
+ \ch{CaSO4*H2O}
+\end{beispiel}
+Since numbers in a compound always are treated as subscripts (see
+section~\ref{ssec:subscripts}) you sometimes need to introduce stoichiometric
+factors for the right output:
+\begin{beispiel}
+ \ch{Na3PO4*12H2O} \\
+ \ch{Na3PO4* 12 H2O} \\
+ \ch{Na3PO4 * 12 H2O}
+\end{beispiel}
+
+\subsection{Subscripts}\label{ssec:subscripts}\secidx[subscripts]{Compounds}
+\emph{All} numbers in a compound are treated as subscripts.
+\begin{beispiel}
+ \ch{H2SO4}
+\end{beispiel}
+If you want a letter to be a subscript you can use the math syntax:
+\begin{beispiel}
+ \ch{A_nB_m}
+\end{beispiel}
+The subscript recognizes groups. You can also use math inside it.
+\begin{beispiel}
+ \ch{A_{$n$}B_{$m$}} \\
+ \ch{NaCl_{(aq)}}
+\end{beispiel}
+
+\subsection{Commands}\secidx[commands]{Compounds}
+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
+\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}. Actually not at all like it but equally bad\ldots
+\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 \code{+} nor \code{-} are treated as bonds. If a dot \code{.} is
+inside a superscript it is treated as indicator for a radical. A \code{*}
+gives the excited state.
+\begin{beispiel}
+ \ch{A^{x-}} \\
+ \ch{A^x-} \\
+ \ch{A^{x}-} \\
+ \ch{A^{$x-$}} \\
+ \ch{RNO2^{-.}} \\
+ \ch{^31H} \\
+ \ch{^{14}6C} \\
+ \ch{^{58}_{26}Fe} \\
+ \ch{NO^*}
+\end{beispiel}
+
+Ions and ion composites with more than one charge can be typeset quite as
+easy:
+\begin{beispiel}
+ \ch{SO4^2-} \ch{Ca^2+ SO4^2-}
+\end{beispiel}
+
+\paragraph{Charge Commands}\secidx[superscripts!charge commands]{Compounds}
+You don't need to use \cmd{mch} and related commands inside \cmd{ch}. Indeed,
+you \emph{shouldn't} use them as they might mess with the subscript and
+superscript alignment. The \chemmacros\ option \code{circled} is obeyed by
+\cmd{ch}.
+\begin{beispiel}
+ \chemsetup[option]{circled=all}
+ \ch{H+ + OH- <=> H2O}
+\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{B^3} \ch{B3^3} \\
+ \ch{^{23}_{123}B} \ch{{}^{23}_{123}B} \ch{_{123}^{23}B} \ch{B^{23}} \ch{B_{123}^{23}} \\
+ \ch{^{123}_{23}B} \ch{{}^{123}_{23}B} \ch{_{23}^{123}B} \ch{B^{123}} \ch{B23^{123}}
+\end{beispiel}
+\begin{itemize}
+\item If a compound \emph{starts} with a sub- or superscript both sub- and
+ superscript are aligned to the \emph{right} else to the \emph{left}.
+\item If a compound \emph{does not start} with a sub- or superscript and there
+ is both a sub- and a superscript, the superscript is shifted additionally by
+ a length determined from the option \key{charge-hshift}{<dim>}, also see
+ page~\pageref{desc:charge-hshift}f.
+\end{itemize}
+The second point follows \ac{iupac}'s recommendations:
+\begin{zitat}[{\acs{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=full]{SO4^2-}, \ch{(SO4)^2-} The staggered arrangement is
+ now recommended.
+\end{zitat}
+
+\subsection{Bonds}\label{ssec:bonds}\secidx[bonds]{Compounds}
+\subsubsection{Native Bonds}
+There are three kinds of what I will call ``native bonds'':
+\begin{beispiel}
+ single: \ch{CH3-CH3} \\
+ double: \ch{CH2=CH2} \\
+ triple: \ch{CH+CH}
+\end{beispiel}
+
+\subsubsection{Flexible Bonds}
+\paragraph{Predefined Bonds}
+In addition to the three native bonds there are a few more which can be called
+by
+\begin{beschreibung}
+ \Befehl{bond}{<bond name>}
+\end{beschreibung}
+The predefined bond types are shown in table~\ref{tab:bond_types}.
+
+\begin{table}
+ \centering
+ \caption{Bonds available with \protect\cmd{bond}.}
+ \label{tab:bond_types}
+ \begin{tabular}{lcl}
+ \toprule
+ \bfseries name & \bfseries appearance & \bfseries aliases \\
+ \midrule
+ \code{single} & \bond{single} & \code{normal}, \code{sb} \\
+ \code{double} & \bond{double} & \code{db} \\
+ \code{triple} & \bond{triple} & \code{tp} \\
+ \code{dotted} & \bond{dotted} & \code{semisingle} \\
+ \code{deloc} & \bond{deloc} & \code{semidouble} \\
+ \code{tdeloc} & \bond{tdeloc} & \code{semitriple} \\
+ \code{co>} & \bond{co>} & \code{coordright} \\
+ \code{<co} & \bond{<co} & \code{coordleft} \\
+ \bottomrule
+ \end{tabular}
+\end{table}
+
+\begin{beispiel}
+ \ch{C\bond{sb}C\bond{db}C\bond{tp}C\bond{deloc}C\bond{tdeloc}C\bond{co>}C\bond{<co}C}
+\end{beispiel}
+
+\paragraph{Own Bonds}
+\chemformula\ offers commands to define own bond types:
+\begin{beschreibung}
+ \Befehl{DeclareChemBond}{<name>}\ma{<code>}
+ \Befehl{RenewChemBond}{<name>}\ma{<code>}
+ \Befehl{DeclareChemBondAlias}{<new name>}\ma{<old name>}
+ \Befehl{ShowChemBond}{<name>}
+\end{beschreibung}
+The usage is best described with an example. So let's see how the
+\code{single} bond and the \code{co>} bond are defined:
+\begin{beispiel}[code only]
+ \DeclareChemBond{single}
+ { \draw[chembond] (chemformula-bond-start) -- (chemformula-bond-end) ; }
+ \DeclareChemBond{coordright}
+ { \draw[chembond,butt cap->] (chemformula-bond-start) -- (chemformula-bond-end) ; }
+ \DeclareChemBondAlias{co>}{coordright}
+\end{beispiel}
+Two points are important: the names of the starting and the ending
+coordinates, \code{chemformula-bond-start} and \code{chemformula-bond-end},
+and the \TikZ style of the bonds \code{chembond}.
+
+So, let's say you want to define a special kind of dashed bond. You could do
+this:
+\begin{beispiel}
+ \usetikzlibrary{decorations.pathreplacing}
+ \makeatletter
+ \DeclareChemBond{dashed}
+ {
+ \draw[
+ chembond,
+ decorate,
+ decoration={ticks,segment length=\chemformula@bondlength/10,amplitude=1.5pt}]
+ (chemformula-bond-start) -- (chemformula-bond-end) ;
+ }
+ \makeatother
+ \chemsetup[chemformula]{bond-length=2ex}
+ \ch{C\bond{dashed}C}
+\end{beispiel}
+
+The last example showed you another macro:
+\makeatletter\cmd{chemformula@bondlength}\makeatother. It only exists so you
+can use it to access the bond length as set with \key{bond-length}
+directly.
+
+\subsection{Customization}\secidx[customization]{Compounds}\label{ssec:compounds:customization}
+These options allow you to customize the ouptut of the compounds:
+\begin{beschreibung}
+ \Option{subscript-vshift}{<dim>}\Default{0pt}
+ Extra vertical shift of the subscripts.
+ \Option{subscript-style}{text|math}\Default{text}
+ Style that is used to typeset the subscripts.
+ \Option{charge-hshift}{<dim>}\Default{.25em}
+ Shift of superscripts when following a subscript.\label{desc:charge-hshift}
+ \Option{charge-vshift}{<dim>}\Default{0pt}
+ Extra vertical shift of the superscripts.
+ \Option{charge-style}{text|math}\Default{text}
+ Style that is used to typeset the superscripts.
+ \Option{adduct-space}{<dim>}\Default{.1333em}
+ Space to the left and the right of the adduct point.
+ \Option{bond-length}{<dim>}\Default{.5833em}
+ The length of the bonds.
+ \Option{bond-offset}{<dim>}\Default{.07em}
+ Space between bond and atoms.
+ \Option{bond-style}{<tikz>}\Default{}
+ \TikZ\ options for the bonds.
+ \Option{radical-style}{<tikz>}\Default{}
+ \TikZ\ options for the radical point.
+ \Option{radical-radius}{<dim>}\Default{.2ex}
+ The radius of the radical point.
+ \Option{radical-hshift}{<dim>}\Default{.15em}
+ Horizontal shift before the radical point is drawn.
+ \Option{radical-vshift}{<dim>}\Default{.5ex}
+ Vertical shift relative to the current baseline.
+ \Option{radical-space}{<dim>}\Default{.15em}
+ Horizontal shift after the radical point is drawn.
+\end{beschreibung}
+
+Maybe you have noticed that charges of certain ions are shifted to the
+right.\secidx[charges!shift]{Compounds}
+\begin{beispiel}
+ \ch{SO4^2-} \ch{NH4+} \ch{Na+}
+\end{beispiel}
+They are shifted if they \emph{follow} a subscript which follows \ac{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+} \\
+ \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}
+
+Despite \ac{iupac}'s recommendation \chemformula\ does not make fully staggered
+arrangements in the default setting as I find it hard to read in some cases
+and ugly in others. Since this is a subjective decision \chemformula\ not only
+let's you define the absolute amount of the shift but also provides a
+possibility for full staggered arrangements. For this you have to use
+\key{charge-hshift}{full}.
+\begin{beispiel}
+ \ch[charge-hshift=0pt]{C5H11+} \ch[charge-hshift=0pt]{SO4^2-} \\
+ \ch{C5H11+} \ch{SO4^2-} \\
+ \ch[charge-hshift=1ex]{C5H11+} \ch[charge-hshift=1ex]{SO4^2-} \\
+ \ch[charge-hshift=full]{C5H11+} \ch[charge-hshift=full]{SO4^2-}
+\end{beispiel}
+
+If you don't want the charges to be typeset in text mode you can switch to
+math mode:
+\begin{beispiel}
+ \ch{M^x+} \ch{SO4^2-} \\
+ \chemsetup[chemformula]{charge-style = math}
+ \ch{M^x+} \ch{SO4^2-}
+\end{beispiel}
+
+The option \key{subscript-vshift} can be used to adjust the vertical shift of
+the subscripts:\secidx[subscripts!shift]{Compounds}
+\begin{beispiel}
+ \ch{H2SO4} \ch{Na3PO4} \\
+ \chemsetup[chemformula]{subscript-vshift=.5ex}
+ \ch{H2SO4} \ch{Na3PO4} \\
+ \chemsetup[chemformula]{subscript-vshift=-.2ex}
+ \ch{H2SO4} \ch{Na3PO4}
+\end{beispiel}
+
+You can choose the mode subscripts are typeset in the same way as it is
+possible for the charges:
+\begin{beispiel}
+ \ch{A_nB_m} \ch{H2SO4} \\
+ \chemsetup[chemformula]{subscript-style = math}
+ \ch{A_nB_m} \ch{H2SO4}
+\end{beispiel}
+
+The option \key{adduct-space} sets the space left and right to the adduct
+symbol $\cdot$.
+\begin{beispiel}
+ \ch{Na3PO3*H2O} \\
+ \chemsetup[chemformula]{adduct-space=.2em}
+ \ch{Na3PO3*H2O}
+\end{beispiel}
+
+Changing the length of the bonds:\secidx[bonds!length]{Compounds}
+\begin{beispiel}
+ \chemsetup[chemformula]{bond-length=4mm}%
+ single: \ch{CH3-CH3} \\
+ double: \ch{CH2=CH2} \\
+ triple: \ch{CH+CH}
+\end{beispiel}
+
+You can change the distance between bond and atom, too:
+\begin{beispiel}
+ \ch{H-H + N+N + O=O} \\
+ \ch[bond-offset=1pt]{H-H + N+N + O=O}
+\end{beispiel}
+
+\subsection{Standalone Formulae}\secidx[standalone]{Compounds}
+\noindent\sinceversion{4.0}\chemformula\ offers a command that \emph{only
+ accepts} the \enquote{compound} input type:
+\begin{beschreibung}
+ \Befehl{chcpd}[<options>]{<compound>}
+\end{beschreibung}
+\secidx*{Compounds}
+
+\section{Special Input Types}\secidx{Special Types}
+There are some \enquote{special type} input groups.
+
+\subsection{Single Token Groups}\secidx[single token groups]{Special Types}
+The first kind are groups which consist of only one token, namely of the
+following ones:
+\begin{beschreibung}
+ \Befehl{ch}{ + } \ch{ + }\newline
+ Creates the plus sign between compounds with space around it:\\
+ \cmd{ch}{2 Na + Cl2} \ch{2 Na + Cl2}
+ \Befehl{ch}{ v } \ch{ v }\newline
+ Sign for precipitate: \cmd{ch}{BaSO4 v} \ch{BaSO4 v}
+ \Befehl{ch}{ \lstinline+^+ } \ch{ ^ }\newline
+ Sign for escaping gas\footnotemark: \cmd{ch}{\lstinline=H2 ^=}
+ \ch{H2 ^}
+\end{beschreibung}
+\footnotetext{Is this the correct English term? Please correct me if it isn't.}
+
+The space left and right of the plus sign can be set with this option:
+\begin{beschreibung}
+ \Option{plus-space}{<skip>}\Default{.3em plus .1em minus .1em}
+ A rubber length.
+\end{beschreibung}
+\begin{beispiel}
+ \ch{A + B}\\
+ \ch[plus-space=4pt]{A + B}
+\end{beispiel}
+
+\subsection{Option Input}\secidx[option input]{Special Types}
+Sometimes you might want to apply an option only to a part of a, say,
+reaction. Of course you have the possibility to use \cmd{ch} several times.
+\begin{beispiel}
+ \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
+ \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-}
+\end{beispiel}
+This, however, interrupts the input in your source and \emph{may} mess with
+the spacing. That's why there is an alternative:
+\begin{beschreibung}\makeatletter
+ \Befehl{ch}{ @\{<options>\} }\newline
+ The options specified this way will be valid \emph{only} until the next
+ compound is set.
+\end{beschreibung}
+\begin{beispiel}
+ \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
+ \ch{H2O + @{format=\color{red}} H2SO4 -> H3O+ + HSO4-} \\
+ or of course:\\
+ \ch{H2O + \textcolor{red}{H2SO4} -> H3O+ + HSO4-}\\[1em]
+ \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-} \\
+ \ch{H2O + @{subscript-vshift=2pt} H2SO4 -> H3O+ + HSO4-}
+\end{beispiel}
+\secidx*{Special Types}
+
+\section{Escaped Input}\secidx{Escaped Input}
+In some cases it may be desirable to prevent \chemformula\ from parsing the
+input. This can be done in two ways.
+
+\subsection{Text}\label{ssec:text}\secidx[text]{Escaped Input}
+If you put something between \lstinline+" "+ or \lstinline+' '+ then the input
+will be treated as normal text, except that spaces are not allowed and have to
+be input with \lstinline+~+.
+\begin{beschreibung}
+ \Befehl{ch}{ "<escaped text>" }
+ \Befehl{ch}{ '<escaped text>' }
+\end{beschreibung}
+\begin{beispiel}
+ \ch{"\ox{2,Ca}" O} \\
+ \ch{"\ldots\," Na + "\ldots\," Cl2 -> "\ldots\," NaCl} \\
+ \ch{'A~->~B'}
+\end{beispiel}
+In many cases you won't need to escape the input. But when you get into
+trouble when using a command inside \cmd{ch} try hiding it.
+
+\subsection{Math}\secidx[math]{Escaped Input}
+If you especially want to input math you just enclose it with \lstinline+$ $+.
+This output is different from the escaped text as it is followed by a space.
+The reasoning behind this is that I assume math will mostly be used to replace
+stoichiometric factors.
+\begin{beschreibung}
+ \Befehl{ch}{ \string$<escaped math>\string$ }
+ \Befehl{ch}{ \string\(<escaped math>\string\) }
+\end{beschreibung}
+\begin{beispiel}
+ escaped text: \ch{"$x$" H2O} \\
+ escaped math: \ch{$x$ H2O} \\
+ also escaped math: \ch{\(x\) H2O} \\
+ \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl}
+\end{beispiel}
+
+The space that is inserted after a math group can be edited:
+\begin{beschreibung}
+ \Option{math-space}{<skip>}\Default{.1667em plus .0333em minus .0117em}
+ A rubber length.
+\end{beschreibung}
+\begin{beispiel}
+ \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
+ \chemsetup[chemformula]{math-space=.25em}
+ \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
+ \ch{$A->B$}
+\end{beispiel}
+\secidx*{Escaped Input}
+
+\section{Arrows}\label{sec:arrows}\secidx{Arrows}
+\subsection{Arrow types}\secidx[types]{Arrows}
+Arrows are input in the same intuitive way they are with \paket{mhchem}.
+There are various different types:
+\begin{beschreibung}
+ \Befehl{ch}{ -> } \ch{->}\newline
+ standard right arrow
+ \Befehl{ch}{ <- } \ch{<-}\newline
+ standard left arrow
+ \Befehl{ch}{ -/> } \ch{-/>}\newline
+ does not react (right)
+ \Befehl{ch}{ </- } \ch{}</-\newline
+ does not react (left)
+ \Befehl{ch}{ <-> } \ch{<->}\newline
+ resonance arrow
+ \Befehl{ch}{ <> } \ch{<>}\newline
+ reaction in both directions
+ \Befehl{ch}{ == } \ch{==}\newline
+ stoichiometric equation
+ \Befehl{ch}{ <=> } \ch{<=>}\newline
+ equilibrium arrow
+ \Befehl{ch}{ \lstinline+<=>>+ } \ch{<=>>}\newline
+ unbalanced equilibrium arrow to the right
+ \Befehl{ch}{ \lstinline+<<=>+ } \ch{<<=>}\newline
+ unbalanced equilibrium arrow to the left
+ \Befehl{ch}{ <o> } \ch{<o>}\newline
+ isolobal arrow
+\end{beschreibung}
+All these arrows are drawn with \TikZ.
+\begin{beispiel}
+ \ch{H2 + Cl2 -> 2 HCl} \\
+ \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}
+
+% TODO: add description for \charrow
+
+\subsection{Labels}\secidx[labels]{Arrows}
+The arrows take two optional arguments to label them.
+\begin{beschreibung}
+ \Befehl{ch}{ ->[<above>][<below>] }
+\end{beschreibung}
+\begin{beispiel}
+ \ch{A ->[a] B} \\
+ \ch{A ->[a][b] B} \\
+ \ch{A ->[\SI{100}{\celsius}] B}
+\end{beispiel}
+The label text can be parsed seperately from the arrow. The recipe is easy:
+leave blanks.
+\begin{beispiel}
+ \ch{A ->[H2O] B} \\
+ \ch{A ->[ H2O ] B} \\
+ \ch{A ->[ "\ox{2,Ca}" F2 ] B} \\
+ \ch{A ->[$\Delta$,~ \[H+ \]] B}
+\end{beispiel}
+% TODO: correct info about []
+
+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. As
+you also can see in the last example square brackets inside the arrow
+arguments should be produced using \cmd{[} and \cmd{]}. They keep their usual
+meaning outside \cmd{ch}. These commands are necessary since the usual
+grouping (\ie hiding the brackets inside curly brackets) doesn't work due to
+the way \cmd{ch} reads its argument.
+\begin{beispiel}
+ \ch{A ->[a] B} \\
+ \ch{A ->[ab] B} \\
+ \ch{A ->[abc] B} \\
+ \ch{A ->[abc~abc] B} \\
+ % needs the `chemfig' package:
+ \setatomsep{15pt}
+ \ch{A ->[ "\chemfig{-[:30]-[:-30]OH}" ] B} \\
+ \ch{A ->[[]] B} vs. \ch{A ->[\[\]] B}
+\end{beispiel}
+
+\subsection{Customization}\secidx[customization]{Arrows}
+These are the options which enable you to customize the arrows:
+\begin{beschreibung}
+ \Option{arrow-offset}{<dim>}\Default{.75em}
+ This is the length that an arrow protrudes a label on both sides. This
+ means an empty arrow's length is two times \code{arrow-offset}.
+ \Option{arrow-min-length}{<dim>}\Default{0pt}
+ The minimal length an error must have unless two times \key{arrow-offset}
+ plus the width of the label is larger.
+ \Option{arrow-yshift}{<dim>}\Default{0pt}
+ Shifts an arrow up (positive value) or down (negative value).
+ \Option{arrow-ratio}{<factor>}\Default{.6}
+ The ratio of the arrow lengths of the unbalanced equilibrium. \code{.4}
+ would mean that the length of the shorter arrow is $0.4\times$ the length
+ of the longer arrow.
+ \Option{compound-sep}{<dim>}\Default{.5em}
+ The space between compounds and the arrows.
+ \Option{label-offset}{<dim>}\Default{2pt}
+ The space between the labels and the arrows.
+ \Option{label-style}{<font command>}\Default{\cmd*{footnotesize}}
+ The relative font size of the labels.
+\end{beschreibung}
+
+The following code shows the effect of the different options on the \lstinline+<=>>+
+arrow:
+\begin{beispiel}
+ standard: \ch{A <=>>[x][y] B} \\
+ longer: \ch[arrow-offset=12pt]{A <=>>[x][y] B} \\
+ higher: \ch[arrow-yshift=2pt]{A <=>>[x][y] B} \\
+ more balanced: \ch[arrow-ratio=.8]{A <=>>[x][y] B} \\
+ labels further away: \ch[label-offset=4pt]{A <=>>[x][y] B} \\
+ larger distance to compounds: \ch[compound-sep=2ex]{A <=>>[x][y] B} \\
+ smaller labels: \ch[label-style=\tiny]{A <=>[x][y] B}
+\end{beispiel}
+
+\subsection{Modify Arrow Types}\label{sec:arrows_modify}\secidx[types!modify]{Arrows}
+The arrows are defined with the command
+\begin{beschreibung}
+ \Befehl{DeclareChemArrow}{<tokens>}\ma{<tikz>}
+\end{beschreibung}
+\ma{<tokens>} is the sequence of tokens that is replaced with the actual arrow
+code. For example the basic arrow is defined via
+\begin{beispiel}[code only]
+ \DeclareChemArrow{->}{\draw[-cf] (cf_arrow_start) -- (cf_arrow_end) ;}
+\end{beispiel}
+In order to define arrows yourself you need to know the basics of
+\TikZ\footnote{Please see the \textsf{pgfmanual} for details.}. There are
+some predefined coordinates you can and should use:
+\begin{description}
+ \item[\code{(cf\_arrow\_start)}] The beginning of the arrow.
+ \item[\code{(cf\_arrow\_end)}] The end of the arrow.
+ \item[\code{(cf\_arrow\_mid)}] The mid of the arrow.
+ \item[\code{(cf\_arrow\_mid\_start)}] The beginning of the shorter arrow in
+ types like \lstinline+<=>>+.
+ \item[\code{(cf\_arrow\_mid\_end)}] The end of the shorter arrow in types like
+ \lstinline+<=>>+.
+ \item[\code{cf}, \code{left cf}, \code{right cf}] \chemformula's own arrow
+ heads.
+\end{description}
+\begin{beispiel}
+ \DeclareChemArrow{.>}{\draw[-cf,dotted,red] (cf_arrow_start) -- (cf_arrow_end);}
+ \DeclareChemArrow{n>}{\draw[-cf] (cf_arrow_start) .. controls ([yshift=3ex]cf_arrow_mid) .. (cf_arrow_end);}
+ \ch{A .> B} \ch{A .>[a][b] B} \ch{A n> B}
+\end{beispiel}
+If you want to redefine an existing arrow there are two commands you can use:
+\begin{beschreibung}
+ \Befehl{RenewChemArrow}{<tokens>}\ma{<tikz>}
+ \Befehl{ShowChemArrow}{<tokens>}
+\end{beschreibung}
+The second one gives the current definition, the first one redefines an existing
+arrow.
+\begin{beispiel}
+ \texttt{\ShowChemArrow{->}} \\
+ \RenewChemArrow{->}{\draw[->,red] (cf_arrow_start) -- (cf_arrow_end) ;}
+ \texttt{\ShowChemArrow{->}} \\
+ \ch{A -> B}
+\end{beispiel}
+
+\subsection{Standalone Arrows}\secidx[standalone]{Arrows}
+\noindent\sinceversion{4.0}\chemformula\ offers a command that \emph{only
+ accepts} the \enquote{arrow} input type:
+\begin{beschreibung}
+ \Befehl{charrow}{<arrow>}\oa{<above>}\oa{<below>}
+\end{beschreibung}
+\secidx*{Arrows}
+
+\section{Names}\secidx{Names}
+\subsection{Syntax}\secidx[syntax]{Names}
+\chemformula\ has a built-in syntax to write text under a compound. In a way
+it works very similar to the arrows.
+\begin{beschreibung}
+ \Befehl{ch}{ !(<name>)( <formula> ) }
+\end{beschreibung}
+If an exclamation mark is followed by a pair of parentheses \chemformula\ will
+parse it this way:
+\begin{beispiel}
+ \ch{!(ethanol)( CH2CH2OH )}
+\end{beispiel}
+The same what's true for the arrows arguments holds for these arguments: if
+you leave blanks the different parts will be treated according to their input
+type before the text is set below the formula.
+\begin{beispiel}
+ \ch{!(water)(H2O)} \quad
+ \ch{!( "\textcolor{blue}{water}" )( H2O )} \quad
+ \ch{!( $2n-1$ )( H2O )} \quad
+ \ch{!( H2O )( H2O )} \quad
+ \ch{!(oxonium)( H3O+ )}
+\end{beispiel}
+If for some reason you want to insert an exclamation mark \emph{without} it
+creating a name you only have to make sure it isn't followed by parentheses.
+\begin{beispiel}
+ \ch{H2O~(!)} \\
+ \ch{A!{}()}
+\end{beispiel}
+
+% TODO add description of \chname command
+
+\subsection{Customization}\secidx[customization]{Names}
+\chemformula\ provides two options to customize the output of the names:
+\begin{beschreibung}
+ \Option{name-format}{<commands>}\Default{\cmd*{scriptsize}\cmd*{centering}}
+ The format of the name. This can be arbitrary input.
+ \Option{name-width}{<dim>|auto}\Default{auto}
+ The width of the box where the label is put into. \code{auto} will detect
+ the width of the name and set the box to this width.
+\end{beschreibung}
+\begin{beispiel}
+ \ch{!(acid)( H2SO4 ) -> B} \\
+ \ch[name-format=\sffamily\small]{!(acid)( H2SO4 ) -> B} \\
+ \ch[name-format=\scriptsize N:~]{!(acid)( H2SO4 ) -> B} \\
+ \ch[name-width=3em,name-format=\scriptsize\raggedright]{!(acid)( H2SO4 ) -> B}
+\end{beispiel}
+
+\subsection{Standalone Names}\secidx[standalone]{Names}
+\noindent\sinceversion{4.0}\chemformula\ offers a command that allows the
+usage of the \enquote{name} syntax in normal text. This is the command that
+a bang is replaced with in \chemformula's formulas, actually. Both arguments
+are mandatory.
+\begin{beschreibung}
+ \Befehl{chname}\da{<under>}\da{<text>}
+\end{beschreibung}
+\secidx*{Names}
+
+\section{Format and Font}\secidx{Format and Font}\label{sec:format}
+In the standard setting \chemformula\ doesn't make any default changes to the
+font of the formula output. Let's take a look at a nonsense input which shows
+all features:
+\begin{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"}
+ }
+ \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"}
+}
+
+Now we're going to change different aspects of the font a look what happens:
+\begin{beispiel}[below]
+ \sffamily Hallo \sample \\
+ \ttfamily Hallo \sample \normalfont \\
+ \bfseries Hallo \sample \normalfont \\
+ \itshape Hallo \sample
+\end{beispiel}
+As you can see most features adapt to the surrounding font.
+
+If you want to change the default format you need to use this option:
+\begin{beschreibung}
+ \Option{format}{<anything>}\Default{}
+ Adds arbitrary code before the output of \cmd{ch}.
+\end{beschreibung}
+\begin{beispiel}
+ \definecolor{newblue}{rgb}{.1,.1,.5}
+ \chemsetup[chemformula]{format=\color{newblue}\sffamily}
+ \sffamily Hallo \sample \\
+ \ttfamily Hallo \sample \normalfont \\
+ \bfseries Hallo \sample \normalfont \\
+ \itshape Hallo \sample
+\end{beispiel}
+
+You can also specifically change the fontfamily, fontseries and fontshape of
+the output.
+\begin{beschreibung}
+ \Option{font-family}{<family>}\Default{}
+ Changes the fontfamily of the output with
+ \lstinline+\fontfamily{<family>}\selectfont+.
+ \Option{font-series}{<series>}\Default{}
+ Changes the fontseries of the output with
+ \lstinline+\fontseries{<series>}\selectfont+.
+ \Option{font-shape}{<shape>}\Default{}
+ Changes the fontshape of the output with
+ \lstinline+\fontshape{<shape>}\selectfont+.
+\end{beschreibung}
+\begin{beispiel}
+ \chemsetup[chemformula]{font-series=bx}
+ Hallo \sample \\
+ \sffamily Hallo \sample \normalfont \\
+ \chemsetup[chemformula]{font-family=lmr,font-series=m} Hallo \sample \normalfont \\
+ \itshape Hallo \sample
+\end{beispiel}
+
+If you're using \XeLaTeX\ or \LuaLaTeX\ and have loaded \paket{fontspec} you
+have the possibilty to set the font with it:
+\begin{beschreibung}
+ \Option{font-spec}{\{<font>\}}\Default{}
+ or with options
+ \Option{font-spec}{\{[<options>]<font>\}}
+\end{beschreibung}
+\begin{beispiel}
+ \chemsetup[chemformula]{font-spec={Linux Biolinum O}} \sample \\
+ \chemsetup[chemformula]{font-spec={Augie}} \sample \\
+ \chemsetup[chemformula]{font-spec={Latin Modern Sans}} \sample \\
+ \bfseries \sample \normalfont
+\end{beispiel}
+\secidx*{Format and Font}
+
+\section{Usage In Math Equations}\secidx{Math Environments}
+The \cmd{ch} command can be used inside math equations. It recognizes
+\lstinline+\\+ and \lstinline+&+ and passes them on. However, you can't use
+the optional arguments of \lstinline+\\+ inside \cmd{ch}.
+\begin{beispiel}
+ \begin{align}
+ \ch{
+ H2O & ->[a] H2SO4 \\
+ Cl2 & ->[x][y] CH4
+ }
+ \end{align}
+ \begin{align*}
+ \ch{
+ RNO2 &<=>[ + e- ] RNO2^{-.} \\
+ RNO2^{-.} &<=>[ + e- ] RNO2^2-
+ }
+ \end{align*}
+\end{beispiel}
+\secidx*{Math Environments}
+
+\section{Further Examples}
+This section presents some examples of a possible usage.
+
+\begin{beispiel}
+ \begin{reaction}[Synthese von Alkanen]
+ !(Synthesegas)( $n$ CO + $(2n+1)$ H2 )
+ ->[\SI{200}{\celsius}][\[CoNi\]]
+ C_{$n$}H_{$2n+2$} + $n$ H2O
+ \end{reaction}
+\end{beispiel}
+
+\begin{beispiel}
+ \begin{reactions*}
+ "a)" && CH4 + Cl2 &-> CH3Cl + HCl && "{\small Chlormethan/Methylchlorid}" \\
+ "b)" && CH3Cl + Cl2 &-> CH2Cl2 + HCl && "{\small Dichlormethan/Methylenchlorid}" \\
+ "c)" && CH2Cl2 + Cl2 &-> CHCl3 + HCl && "{\small Trichlormethan/Chloroform}" \\
+ "d)" && CHCl3 + Cl2 &-> CCl4 + HCl && "{\small Tetrachlormethan/Tetrachlorkohlenstoff}"
+ \end{reactions*}
+\end{beispiel}
+
+\begin{beispiel}
+ \chemsetup[ox]{parse=false}
+ \ch{"\ox{\delm,C}" -{} "\ox{\delp,M}" \qquad ( <-> "\ox{\delp,C}" -{} "\ox{\delm,Br}" )} \\
+ \ch[adduct-space=0pt]{X. + .Y <=> X-Y + Bindungsenergie} \\
+ \ch[name-format=\normalsize]{
+ !(\State{H}{f}\qquad)() !(\textcolor{red}{??})( CH4\gas{} ) +
+ !(\num{0})( 2 O2\gas{} )
+ ->
+ !(\num{-94.3})( CO2\gas{} ) +
+ !(\num{-57.9})( H2O\lqd{} ) +
+ !(\num{-192.1})( "\State{H}" )
+ }
+\end{beispiel}
+
+\begin{beispiel}
+ \newcommand\cstack[1]{%
+ \clap{%
+ \begin{tabular}{c}
+ #1
+ \end{tabular}
+ }%
+ }
+ \begin{reactions*}
+ CH3MgBr + "\ox*{1,Cu}" X &-> "\glqq" CH3 "\ox*{1,Cu}\grqq" + MgBrX "\qquad X~$=$~Br,I,CN" \\
+ 2 MeLi + CuI &-> !(\cstack{Dimethylcuprat\\(Gilmann-Cuprat)})( Me2CuLi ) + Li
+ \end{reactions*}
+\end{beispiel}
+
+\begin{beispiel}
+ % needs `chemfig'
+ \begin{reactions*}
+ H3C-CH3 + Cl2 &->[$\Delta$][$h\nu$] H3CCH2Cl + HCl & &"\Enthalpy{-27.1}" \\
+ H3C-CH3 + "\Lewis{0.,Cl}" &-> H3CCH2 "\Lewis{0.,\vphantom{H}}" + HCl & &"\Enthalpy{-5.0}" \\
+ H3C-CH2 "\Lewis{0.,\vphantom{H}}" + Cl2 &-> H3CCH2Cl + "\Lewis{0.,Cl}" & &"\Enthalpy{-23.0}"
+ \end{reactions*}
+\end{beispiel}
+
+The following example shows how the cancelling of compounds could be done%
+\footnote{Inspired by a question on TeX.SE: \url{http://tex.stackexchange.com/q/30118/5049}}.
+\begin{beispiel}
+ % needs `cancel'
+ \begin{align*}
+ \ch{\cancel{HCOOH\aq} + H2O\lqd{} &<=> H3O^+\aq{} + \cancel{HCOO^-\aq}} \\
+ \ch{\cancel{HCOO^-\aq} + H2O\lqd{} &<=> \cancel{HCOOH\aq} + OH^-\aq}\\[-1ex]
+ \cline{1-2}
+ \ch{H2O\lqd{} + H2O\lqd{} &<=> H3O^+\aq{} + OH^-\aq}
+ \end{align*}
+\end{beispiel}
+
+\printbibliography
+
+{\catcode`\^=11 \catcode`\#=11
+\printindex}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.pdf
new file mode 100644
index 00000000000..c049a7d9937
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.tex b/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.tex
new file mode 100644
index 00000000000..fd4470c097a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.tex
@@ -0,0 +1,497 @@
+% arara: xelatex
+% !arara: biber
+% !arara: xelatex
+% !arara: xelatex
+\documentclass[DIV11,toc=index,toc=bib]{cnpkgdoc}
+\docsetup{
+ pkg = {[greek=math]chemmacros},
+ language = en,
+ title = the \Chemmacros\ bundle,
+ subtitle = {
+ packages \Chemmacros\ (v\csname chemmacros@version\endcsname),
+ \Chemformula\ (v\csname chemformula@version\endcsname),
+ \Ghsystem\ (v\csname ghsystem@version\endcsname) and
+ \Chemgreek\ (v\csname chemgreek@version\endcsname)\\[2ex]
+ {\Large documentation for the \Chemgreek\ package}},
+ modules = true,
+ code-box = {skipabove=1ex,skipbelow=1ex},
+ label = {},
+ name = chemgreek,
+ url = https://bitbucket.org/cgnieder/chemmacros/
+}
+
+\usepackage{chemfig,booktabs,cancel}
+\setlength\heavyrulewidth{1pt}
+\setlength\lightrulewidth{.4pt}
+\usepackage[version=3]{mhchem}
+\usepackage{fontspec}
+\usepackage[oldstyle,proportional]{libertine}
+\usepackage[libertine]{newtxmath}
+\usepackage{libertinehologopatch}
+\setmonofont[Scale=MatchLowercase]{Bitstream Vera Sans Mono}
+
+\cnpkgusecolorscheme{friendly}
+\renewcommand*\othersectionlevelsformat[3]{%
+ \textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{%
+ \textcolor{main}{\partname~\thepart\autodot}}
+
+\usepackage{fnpct}
+\usepackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\pagestyle{headings}
+
+\usepackage[accsupp]{acro}
+\acsetup{
+ long-format=\scshape,
+ short-format=\scshape
+}
+\DeclareAcronym{ghs}{
+ short = ghs ,
+ long = Globally Harmonized System of Classification and Labelling of
+ Chemicals ,
+ pdfstring = GHS ,
+ accsupp = GHS
+}
+\DeclareAcronym{eu}{
+ short = eu ,
+ long = European Union ,
+ pdfstring = EU ,
+ accsupp = EU
+}
+\DeclareAcronym{iupac}{
+ short = iupac ,
+ long = International Union of Pure and Applied Chemistry ,
+ pdfstring = IUPAC ,
+ accsupp = IUPAC
+}
+\DeclareAcronym{UN}{
+ short = un ,
+ long = United Nations ,
+ pdfstring = UN ,
+ accsupp = UN
+}
+\DeclareAcronym{dvi}{
+ short = dvi ,
+ long = device independent file format ,
+ pdfstring = DVI ,
+ accsupp = DVO
+}
+\DeclareAcronym{pdf}{
+ short = pdf ,
+ long = portable document file ,
+ pdfstring = PDF ,
+ accsupp = PDF
+}
+
+\chemsetup{
+ option/synchronize ,
+ chemformula/font-spec={[Numbers=Lining]Linux Libertine O}
+}
+\colorlet{chemformula}{darkgray}
+
+\sisetup{
+ detect-mode=false,
+ mode=text,
+ text-rm=\addfontfeatures{Numbers={Proportional,Lining}}
+}
+
+\usepackage{filecontents}
+
+\begin{filecontents*}{\jobname.ist}
+ preamble "\\begin{theindex}\n Section titles are indicated \\textbf{bold},
+ packages \\textsf{sans serif}, commands \\code{\\textbackslash\\textcolor{code}{brown}},
+ options \\textcolor{key}{\\code{yellow}} and modules (only \\chemmacros)
+ \\textcolor{module}{\\code{blue}}.\\newline\n\n"
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ 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ürgen Stohner and Herbert L. Strauss and
+ Michio Takami and Anders J Thor},
+ title = {“Quantities, Symbols and Units in Physical Chemistry”, \acs{iupac}
+ Green Book},
+ edition = {3rd Edition. 2nd Printing},
+ year = {2008},
+ publisher = {\acs{iupac} \&\ RSC Publishing, Cambridge}
+}
+@book{iupac:redbook,
+ author = {Neil G. Connelly and Ture Damhus and Richard M. Hartshorn and
+ Alan T. Hutton},
+ title = {“Nomenclature of Inorganic Chemistry”, \acs{iupac} Red Book},
+ year = {2005},
+ publisher = { \acs{iupac} \&\ RSC Publishing, Cambridge},
+ isbn = {0-85404-438-8}
+}
+@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}
+}
+@online{unece:ghsystem_implementation,
+ author = {United Nations Economic Commission for Europe},
+ title = {GHS Implementation},
+ url = {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html},
+ urldate = {2012-03-20},
+ date = {2012-03-20}
+}
+\end{filecontents*}
+
+\DeclareInstance{xfrac}{chemformula-text-frac}{text}
+ {
+ scale-factor = 1 ,
+ denominator-bot-sep = -.2ex ,
+ denominator-format = \scriptsize #1 ,
+ numerator-top-sep = -.2ex ,
+ numerator-format = \scriptsize #1 ,
+ slash-right-kern = .05em ,
+ slash-left-kern = .05em
+ }
+
+\usetikzlibrary{calc,positioning,decorations.pathmorphing,patterns}
+
+\pgfdeclaredecoration{penciline}{initial}{
+ \state{initial}[
+ width=+\pgfdecoratedinputsegmentremainingdistance,
+ auto corner on length=1mm
+ ]{
+ \pgfpathcurveto%
+ {% From
+ \pgfqpoint
+ {\pgfdecoratedinputsegmentremainingdistance}
+ {\pgfdecorationsegmentamplitude}
+ }
+ {% Control 1
+ \pgfmathrand
+ \pgfpointadd
+ {\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
+ {%
+ \pgfqpoint
+ {-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}%
+ {\pgfmathresult\pgfdecorationsegmentamplitude}
+ }
+ }
+ {%TO
+ \pgfpointadd
+ {\pgfpointdecoratedinputsegmentlast}
+ {\pgfpoint{1pt}{1pt}}
+ }
+ }
+ \state{final}{}
+}
+\tikzset{pencil/.style={decorate,decoration=penciline}}
+
+\TitlePicture{%
+ \ch[font-spec={Augie}]{
+ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2
+ ->
+ 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}-
+ }
+ \redox(o1,o2)[red,pencil,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
+ \redox(r1,r2)[blue,pencil,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
+
+\addcmds{
+ a, abinitio, AddRxnDesc, anti, aq, aqi,
+ b, ba, bond, bottomrule, bridge,
+ cancel, cd, cdot, ce, cee, celsius, centering, changechemgreeksymbol,
+ chemabove, Chemalpha, Chembeta, Chemgamma, ChemGamma, Chemdelta,
+ ChemDelta, chemfig, chemname, Chemomega, Chemphi, ChemPhi, chemsetup, cip,
+ cis, ch, clap, cnsetup, CNMR, color, cstack,
+ cstsetup,
+ d, D, data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias,
+ DeclareChemIUPAC, DeclareChemLatin, DeclareChemNMR, DeclareChemParticle,
+ DeclareChemPhase, DeclareChemReaction, DeclareChemState, DeclareInstance,
+ DeclareSIUnit, definecolor, delm, delp, Delta, Dfi, draw,
+ E, el, electronvolt, ElPot, endo, Enthalpy, enthalpy, Entropy,
+ footnotesize, fmch, fpch, fscrm, fscrp,
+ g, gas, ghs, ghslistall, ghspic, Gibbs, glqq, gram, grqq,
+ H, hapto, HNMR, Helmholtz, hertz, hspace,
+ includegraphics, insitu, intertext, invacuo, iupac, IUPAC,
+ J, joule,
+ Ka, Kb, kilo, Kw,
+ L, latin, lewis, Lewis, Lfi, listofreactions, lqd, ltn,
+ mch, mega, meta, metre, mhName, midrule, milli, mmHg, mole,
+ N, nano, nicefrac, newchemgreekmapping, newman, NMR, Nu, Nuc, num, numrange,
+ O, ominus, orbital, ortho, oplus, ox, OX,
+ p, P, para, pch, per, percent, pgfarrowsdeclarealias, pgfarrowsrenewalias,
+ pH, phase, phi, Phi, photon, pKa, pKb, pOH, pos, positron, Pot, prt,
+ R, Rad, redox, RenewChemArrow, RenewChemBond, RenewChemIUPAC,
+ RenewChemLatin, RenewChemNMR, RenewChemParticle, RenewChemPhase,
+ RenewChemState, renewtagform, rightarrow,
+ S, Sf, sample, scriptscriptstyle, scrm, scrp, second,
+ selectchemgreekmapping, setatomsep, setbondoffset, setchemformula, sfrac,
+ shorthandoff, ShowChemArrow, ShowChemBond, si, SI, sisetup, sld, Sod,
+ square, State, subsection,
+ textcolor, textendash, textsuperscript, tiny, toprule, trans,
+ upbeta, upeta, upgamma, upphi, upPhi, Upphi,
+ val, volt, vphantom, vspave,
+ w, xspace, Z
+}
+
+\usepackage{imakeidx}
+\indexsetup{othercode=\footnotesize}
+\makeindex[columns=3,intoc,options={-sl \jobname.ist}]
+
+\newcommand*\Chemmacros{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemmacros%
+ }%
+}
+\providecommand*\chemmacros{{\scshape\textcolor{main}{chemmacros}}\xspace}
+
+\newcommand*\Chemformula{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemformula%
+ }%
+}
+\providecommand*\chemformula{{\scshape\textcolor{main}{chemformula}}\xspace}
+
+\newcommand*\Ghsystem{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ ghsystem%
+ }%
+}
+\providecommand*\ghsystem{{\scshape\textcolor{main}{ghsystem}}\xspace}
+
+\newcommand*\Chemgreek{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemgreek%
+ }%
+}
+\providecommand*\chemgreek{{\scshape\textcolor{main}{chemgreek}}\xspace}
+
+\renewcommand*\AmS{\hologo{AmS}}
+
+\newcommand*\Default[1]{%
+ \hfill\llap{%
+ \ifblank{#1}
+ {(initially~empty)}
+ {Default:~\code{#1}}%
+ }\newline
+}
+
+\usepackage{marginnote,ragged2e}
+\makeatletter
+\providecommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\providecommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+
+\RenewDocumentCommand\CTANurl{O{macros/latex/contrib}m}
+ {%
+ on CTAN: %
+ \hyper@linkurl{#2}{http://mirrors.ctan.org/#1/#2/}%
+ }
+\ExplSyntaxOn
+\RenewDocumentCommand \paket { sO{macros/latex/contrib}m }
+ {
+ \paketfont { #3 }
+ \index { #3 @ \paketfont { #3 } }
+ \prop_if_in:NnF \g_cnpkgdoc_pakete_prop { #3 }
+ {
+ \prop_gput:Nnn \g_cnpkgdoc_pakete_prop { #3 } {}
+ \IfBooleanF { #1 }
+ { \footnote { \CTANurl[]{#3} } }
+ }
+ }
+\ExplSyntaxOff
+\makeatother
+
+\newcommand*\tablehead[1]{\textrm{\bfseries#1}}
+
+\begin{document}
+
+\section{Introduction}
+The \chemgreek\ package is an auxiliary package for other chemistry packages
+such as \chemmacros. In chemistry there is often the need for upright greek
+letters. The \chemgreek\ package provides an interface to various other
+packages that provide upright greek letters. One could mention
+\paket{textgreek}, \paket{upgreek}, \paket[fonts]{newtx} or
+\paket[fonts]{kpfonts}. All of these packages provide upright greek letters,
+some a whole alphabet some only the upright variants of the standard italic
+symbols for which macros are defined in base \LaTeX.
+
+\chemgreek\ offers a possibility to map those different interfaces to a
+unified set of macros for usage in a chemistry package.
+
+\section{Licence and Requirements}
+Permission is granted to copy, distribute and/or modify this software under
+the terms of the \LaTeX\ project public license (lppl) version 1.3 or later
+(\url{http://www.latex-project.org/lppl.txt}). The package has the status
+``maintained.''
+
+\chemgreek\ loads the following packages:
+\paket*{expl3}\footnote{\CTANurl{l3kernel}} and
+\paket*{xparse}\footnote{\CTANurl{l3packages}}.
+
+\section{Define Mappings}
+
+\chemgreek's main commands are:
+\begin{beschreibung}
+ \Befehl{newchemgreekmapping}{<name>}\ma{<mapping list>}\newline
+ Add a new mapping to \chemgreek. Issue an error if it already exists.
+ \Befehl{renewchemgreekmapping}{<name>}\ma{<mapping list>}\newline
+ Renew a \chemgreek\ mapping. Issue an error if it doesn't exist yet.
+ \Befehl{newchemgreekmapping}{<name>}\ma{<mapping list>}\newline
+ Declare a new mapping to \chemgreek. If the mapping already exists it
+ will be overwritten.
+\end{beschreibung}
+
+The command \cmd{newchemgreekmapping} needs to get a comma separated list of
+24 pairs divided by a slash. The first entry is the lowercase version und the
+second the uppercase version for the corresponding greek letter at the current
+position. This will become clearer if you look at how the \code{default}
+mapping is defined:
+
+\begin{beispiel}[code only]
+\newchemgreekmapping{default}
+ {
+ \ensuremath{\alpha} / \ensuremath{\mathrm{A}} , % 1: alpha
+ \ensuremath{\beta} / \ensuremath{\mathrm{B}} , % 2: beta
+ \ensuremath{\gamma} / \ensuremath{\Gamma} , % 3: gamma
+ \ensuremath{\delta} / \ensuremath{\Delta} , % 4: delta
+ \ensuremath{\epsilon} / \ensuremath{\mathrm{E}} , % 5: epsilon
+ \ensuremath{\zeta} / \ensuremath{\mathrm{Z}} , % 6: zeta
+ \ensuremath{\eta} / \ensuremath{\mathrm{H}} , % 7: eta
+ \ensuremath{\theta} / \ensuremath{\Theta} , % 8: theta
+ \ensuremath{\iota} / \ensuremath{\mathrm{I}} , % 9: iota
+ \ensuremath{\kappa} / \ensuremath{\mathrm{K}} , % 10: kappa
+ \ensuremath{\lambda} / \ensuremath{\Lambda} , % 11: lambda
+ \ensuremath{\mu} / \ensuremath{\mathrm{M}} , % 12: mu
+ \ensuremath{\nu} / \ensuremath{\mathrm{N}} , % 13: nu
+ \ensuremath{\xi} / \ensuremath{\Xi} , % 14: xi
+ \ensuremath{o} / \ensuremath{\mathrm{O}} , % 15: omikron
+ \ensuremath{\pi} / \ensuremath{\Pi} , % 16: pi
+ \ensuremath{\rho} / \ensuremath{\mathrm{P}} , % 17: rho
+ \ensuremath{\sigma} / \ensuremath{\Sigma} , % 18: sigma
+ \ensuremath{\tau} / \ensuremath{\mathrm{T}} , % 19: tau
+ \ensuremath{\upsilon} / \ensuremath{\Upsilon} , % 20: upsilon
+ \ensuremath{\phi} / \ensuremath{\Phi} , % 21: phi
+ \ensuremath{\psi} / \ensuremath{\Psi} , % 22: psi
+ \ensuremath{\chi} / \ensuremath{\mathrm{X}} , % 23: chi
+ \ensuremath{\omega} / \ensuremath{\Omega} % 24: omega
+ }
+\end{beispiel}
+
+There \emph{must} be 24 pairs of entries, i.e., a complete mapping! Those
+entries are the ones that will be used by the interface macros. For each
+letter a pair \cmd{Chemalpha}/\cmd{ChemAlpha} is defined that uses the entries
+of the currently active mapping. That means there are 48 (robust) macros
+defined each beginning with \cmd*{Chem...} followed by the lowercase or
+uppercase name of the Greek letter.
+
+The default mapping is -- as you can probably see -- \emph{not an upright
+ one}. This is because \chemgreek\ will not make any choice for a specific
+package but let's the user (or another package) choose. The \chemmacros\
+package for example provides a package option that selects one of the
+available mappings.
+
+\begin{beispiel}
+ Default mapping: \Chemphi\ and \ChemPhi, $\phi$ and $\Phi$
+\end{beispiel}
+
+\section{Predefined Mappings and Selection of a Mapping}
+\chemgreek\ predefines some mappings. Some of the mappings require additional
+packages to be loaded. The mapping names and the required packages are listed
+in table~\ref{tab:mappings}.
+
+\begin{table}[hbp]
+ \centering
+ \begin{tabular}{>{\ttfamily}ll}
+ \toprule
+ \tablehead{mapping} & \tablehead{package} \\
+ \midrule
+ default & --- \\
+ var-default & --- \\
+ textgreek & \paket*{textgreek} \\
+ upgreek & \paket*{upgreek} \\
+ newtx & \paket*{newtxmath} \\
+ kpfonts & \paket*{kpfonts} \\
+ \bottomrule
+ \end{tabular}
+ \caption{Predefined mappings.}
+ \label{tab:mappings}
+\end{table}
+
+A mapping is selected and activated with one of the following commands:
+\begin{beschreibung}
+ \Befehl{activatechemgreekmapping}*[<options>]{<name>}\newline
+ This commands selects and activates the mapping \code{<name>}. If the
+ star variant is used also the package \code{<name>} is loaded with options
+ \code{<options>}. This obviously only makes sense if the package name is
+ the same as the mapping name. The command can only be used in the
+ document preamble.
+ \Befehl{selectchemgreekmapping}{<name>}
+ This commands selects and activates the mapping \code{<name>}. A required
+ package has to be loaded additionally the usual way via \cmd*{usepackage}
+ or \cmd*{RequirePackage}. The command can be used throughout the
+ document.
+\end{beschreibung}
+
+\begin{beispiel}
+ % requires the `newtxmath' package to be loaded:
+ \Chemphi\ and \ChemPhi, $\phi$ and $\Phi$\par
+ \selectchemgreekmapping{newtx}
+ \Chemphi\ and \ChemPhi, $\upphi$ and $\upPhi$
+\end{beispiel}
+
+\section{Changing a Specific Symbol in an Existing Mapping}
+If you should want to change a specifig entry of a specific mapping it would
+be rather tedious to redefine the whole mapping. That is why \chemgreek\
+provides a command for that purpose:
+\begin{beschreibung}
+ \Befehl{changechemgreeksymbol}{<mapping name>}\ma{upper|lower}\ma{<entry
+ name>}\ma{<entry>}\newline
+ Changes the \code{upper}- or \code{lower}case entry \code{<entry name>} in
+ the mapping \code{<mapping name>}.
+\end{beschreibung}
+
+In order to activate the change you need the (re-) activate the affected
+mapping afterwards:
+\begin{beispiel}
+ \changechemgreeksymbol{default}{lower}{alpha}{xxx}
+ \selectchemgreekmapping{default}
+ \Chemalpha
+\end{beispiel}
+
+\appendix
+
+\printindex
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.pdf
deleted file mode 100644
index d1f6d89a1db..00000000000
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.tex
deleted file mode 100644
index d9363e0dadb..00000000000
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.tex
+++ /dev/null
@@ -1,3544 +0,0 @@
-% arara: xelatex
-% arara: biber
-% arara: xelatex
-% arara: xelatex
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% -----------------------------------------------------------------------------
-% - the CHEMMACROS bundle
-% - chemmacros_de.tex
-% - macros and commands for chemists
-% -----------------------------------------------------------------------------
-% - Clemens Niederberger
-% -
-% -----------------------------------------------------------------------------
-% - https://bitbucket.org/cgnieder/chemmacros/
-% - contact@mychemistry.eu
-% -----------------------------------------------------------------------------
-% - If you have any ideas, questions, suggestions or bugs to report, please
-% - feel free to contact me.
-% -----------------------------------------------------------------------------
-% - Copyright 2011-2013 Clemens Niederberger
-% -
-% - This work may be distributed and/or modified under the
-% - conditions of the LaTeX Project Public License, either version 1.3
-% - of this license or (at your option) any later version.
-% - The latest version of this license is in
-% - http://www.latex-project.org/lppl.txt
-% - and version 1.3 or later is part of all distributions of LaTeX
-% - version 2005/12/01 or later.
-% -
-% - This work has the LPPL maintenance status `maintained'.
-% -
-% - The Current Maintainer of this work is Clemens Niederberger.
-% -----------------------------------------------------------------------------
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% if you want to compile this documentation
-% a) you'll need the document class `cnpkgdoc' which you can get here:
-% https://bitbucket.org/cgnieder/cnpkgdoc/
-% the class is licensed LPPL 1.3 or later
-% b) you need the following compilation order:
-% > xelatex chemmacros_de (2 or probably 3 times)
-% > biber chemmacros_de
-% > xelatex chemmacros_de (2 times)
-%
-%
-\documentclass[DIV11,toc=index,toc=bib]{cnpkgdoc}
-\docsetup{
- pkg = chemmacros,
- title = Das \Chemmacros-Bundle,
- language = de,
- subtitle = {Pakete \Chemmacros, \Chemformula\ und \Ghsystem},
- modules = true,
- code-box = {skipabove=1ex,skipbelow=1ex},
- label = {},
-}
-
-\usepackage{chemfig,upgreek,textgreek,booktabs,cancel}
-\usepackage[version=3]{mhchem}
-\usepackage{hologo}
-\newcommand*\pdfTeX{\hologo{pdfTeX}}
-\newcommand*\XeTeX{\hologo{XeTeX}}
-\newcommand*\LuaTeX{\hologo{LuaTeX}}
-\newcommand*\XeLaTeX{\hologo{XeLaTeX}}
-\newcommand*\LuaLaTeX{\hologo{LuaLaTeX}}
-
-\usepackage{fnpct}
-\usepackage[biblatex]{embrac}
-\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
-\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-
-\pagestyle{headings}
-
-\usepackage{acro}
-\acsetup{long-format=\scshape}
-\DeclareAcronym{ghs}{
- short = GHS ,
- long = Globally Harmonized System of Classification and Labelling of Chemicals
-}
-\DeclareAcronym{eu}{
- short = EU ,
- long = European Union
-}
-\DeclareAcronym{iupac}{
- short = IUPAC ,
- long = International Union of Pure and Applied Chemistry
-}
-\DeclareAcronym{UN}{
- short = UN ,
- long = United Nations
-}
-\DeclareAcronym{dvi}{
- short = dvi ,
- long = device independent file format ,
- format = \scshape
-}
-\DeclareAcronym{pdf}{
- short = pdf ,
- long = portable document file ,
- format = \scshape
-}
-
-\chemsetup[option]{synchronize,language=german}
-\colorlet{chemformula}{darkgray}
-
-\sisetup{
- detect-mode=false,
- mode=text,
- text-rm=\addfontfeatures{Numbers={Proportional,Lining}}
-}
-
-\usepackage{filecontents}
-
-\begin{filecontents*}{\jobname.ist}
- preamble "\\begin{theindex}\n Überschriften werden \\textbf{fett}, Pakete
- \\textsf{serifenlos}, Befehle \\code{\\textbackslash\\textcolor{code}{braun}},
- Optionen \\textcolor{key}{\\code{grün}} und Module (nur \\chemmacros)
- \\textcolor{module}{\\code{rot}} gesetzt.\\newline\n\n"
- heading_prefix "{\\bfseries "
- heading_suffix "\\hfil}\\nopagebreak\n"
- headings_flag 1
- delim_0 "\\dotfill\\hyperpage{"
- delim_1 "\\dotfill\\hyperpage{"
- delim_2 "\\dotfill\\hyperpage{"
- delim_r "}\\textendash\\hyperpage{"
- delim_t "}"
- suffix_2p "\\nohyperpage{\\,f.}"
- 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ürgen Stohner and Herbert L. Strauss and
- Michio Takami and Anders J Thor},
- title = {“Quantities, Symbols and Units in Physical Chemistry”, \ac{iupac} Green
- Book},
- edition = {3rd Edition. 2nd Printing},
- year = {2008},
- publisher = { \ac{iupac} \&\ RSC Publishing, Cambridge}
-}
-@book{iupac:redbook,
- author = {Neil G. Connelly and Ture Damhus and Richard M. Hartshorn and
- Alan T. Hutton},
- title = {“Nomenclature of Inorganic Chemistry”, \ac{iupac} Red Book},
- year = {2005},
- publisher = { \ac{iupac} \&\ RSC Publishing, Cambridge},
- isbn = {0-85404-438-8}
-}
-@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}
-}
-@online{unece:ghsystem_implementation,
- author = {United Nations Economic Commission for Europe},
- title = {GHS Implementation},
- url = {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html},
- urldate = {2012-03-20},
- date = {2012-03-20}
-}
-\end{filecontents*}
-
-\DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- scale-factor = 1 ,
- denominator-bot-sep = -.2ex ,
- denominator-format = \scriptsize #1 ,
- numerator-top-sep = -.2ex ,
- numerator-format = \scriptsize #1 ,
- slash-right-kern = .05em ,
- slash-left-kern = .05em
- }
-
-\newcommand*\chemformula{{\scshape\textcolor{cnpkgblue}{chemformula}}\xspace}
-\newcommand*\ghsystem{{\scshape\textcolor{cnpkgblue}{ghsystem}}\xspace}
-
-\newcommand*\Chemmacros{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}chemmacros}}
-\newcommand*\Chemformula{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}chemformula}}
-\newcommand*\Ghsystem{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}ghsystem}}
-
-\renewcommand*\AmS{\hologo{AmS}}
-
-\TitlePicture{%
- \ch[font-spec={[Color=chemformula]Augie}]{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}- }
- \redox(o1,o2)[red,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
- \redox(r1,r2)[blue,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
-
-\addcmds{
- a,abinitio,AddRxnDesc,anti,aq,aqi,
- b,ba,bond,bottomrule,bridge,
- cancel,cd,cdot,ce,cee,celsius,centering,chemabove,Chemalpha,Chembeta,Chemgamma,
- Chemdelta,ChemDelta,chemfig,chemname,Chemomega,chemsetup,cip,cis,ch,cnsetup,
- CNMR,color,cstsetup,
- d,D,data,DeclareChemArrow,DeclareChemBond,DeclareChemBondAlias,DeclareChemIUPAC,
- DeclareChemLatin,DeclareChemNMR,DeclareChemParticle,DeclareChemPhase,
- DeclareChemReaction,DeclareChemState,DeclareInstance,DeclareSIUnit,definecolor,
- delm,delp,Delta,Dfi,draw,
- E,el,electronvolt,ElPot,endo,Enthalpy,enthalpy,Entropy,
- footnotesize,fmch,fpch,fscrm,fscrp,
- g,gas,ghs,ghslistall,ghspic,Gibbs,glqq,gram,grqq,
- H,hapto,HNMR,Helmholtz,hertz,hspace,
- includegraphics,insitu,intertext,invacuo,iupac,IUPAC,J,joule,
- Ka,Kb,kilo,Kw,
- L,latin,lewis,Lewis,Lfi,listofreactions,lqd,ltn,
- mch,mega,meta,metre,mhName,midrule,milli,mmHg,mole,
- N,nano,nicefrac,newman,NMR,Nu,Nuc,num,numrange,
- O,ominus,orbital,ortho,oplus,ox,OX,
- p,P,para,pch,per,percent,pgfarrowsdeclarealias,pgfarrowsrenewalias,pH,phase,
- photon,pKa,pKb,pOH,pos,positron,Pot,prt,
- R,Rad,redox,RenewChemArrow,RenewChemBond,RenewChemIUPAC,RenewChemLatin,RenewChemNMR,
- RenewChemParticle,RenewChemPhase,RenewChemState,renewtagform,rightarrow,
- S,Sf,sample,scriptscriptstyle,scrm,scrp,second,setatomsep,setbondoffset,sfrac,
- shorthandoff,ShowChemArrow,ShowChemBond,si,SI,sisetup,sld,Sod,square,State,
- subsection,
- textcolor,textendash,textsuperscript,tiny,toprule,trans,
- upbeta,upeta,upgamma,
- val,volt,vphantom,vspave,
- w,xspace,Z}
-
-\usepackage{imakeidx}
-\indexsetup{othercode=\footnotesize}
-\makeindex[columns=3,intoc,options={-sl \jobname.ist}]
-
-\begin{document}
-\chemsetup[chemformula]{
- font-spec =
- {[Color=chemformula,Numbers={Proportional,Lining}]Latin Modern Sans}
-}
-\def\glqq{„}
-\def\grqq{“}
-
-\part{Bevor es los geht}\secidx{BEVOR ES LOS GEHT}
-\section{Lizenz, Voraussetzungen und README}
-Das \chemmacros-Bundle steht unter der \LaTeX\ Project Public License (LPPL) Version
-1.3 oder später (\url{http://www.latex-project.org/lppl.txt}) und hat den Status
-„maintained“.
-
-Das \chemmacros-Bundle benötigt aktuelle Versionen der \paket{l3kernel}- und
-\paket{l3packages}-Bundles. Außerdem werden die Pakete \paket{siunitx},
-\paket{mathtools}, \paket{bm}, \paket{nicefrac} und \paket{environ} sowie
-\paket*{tikz}\footnote{CTAN: \href{http://www.ctan.org/pkg/pgf/}{pgf}} und die
-\TikZ libraries \code{calc} und \code{arrows} benötigt.
-
-Die Paketoption \key{bpchem} (Abschnitt \ref{sec:optionen}) benötigt \paket{bpchem},
-die Paketoption \key{xspace} benötigt \paket{xspace} und die Paketoption
-\key{method}{mhchem} benötigt \paket{mhchem}.
-
-Mit v3.0 wurde das \chemmacros-Paket mit den neuen Paketen \chemformula und \ghsystem
-gebündelt. \chemformula ist eine Alternative zu \paket{mhchem}. Das führte zu
-einigen internen Änderungen bei \chemmacros. Gleichzeitig wurde die Dokumentation
-komplett überarbeitet.
-
-Vielleicht erinnern Sie Sich, dass \chemmacros' Optionen alle verschiedenen Modulen
-angehören, siehe Abschnitt \ref{sec:setup} für weitere Informationen. Sie werden
-in den linken Rand geschrieben, wenn die Option das erste Mal erwähnt wird. Abschnitt
-\ref{sec:overview} listet alle Optionen von \chemmacros und ihre Module auf. In
-diesem Dokument werden Optionen \textcolor{key}{\code{grün}} und Module
-\textcolor{module}{\code{rot}} dargestellt.
-
-Das Paket \ghsystem benötigt die Pakete \chemmacros, \paket{tabu}, \paket{longtable},
-\paket{ifpdf} und \paket{graphicx}.
-
-\achtung{Es gibt einige veraltete Befehle und Optionen, die in dieser Dokumentation
-nicht mehr beschrieben werden. Um Kompatibilität mit älteren Dokumenten zu
-gewährleisten, sind sie immer noch definiert. Diese Befehle geben eine Warnung aus.
-In Zukunft könnten sie nicht mehr definiert sein.}
-
-\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.
-
-Die Makros und ihre Funktionsweise haben sich im Laufe der Zeit leicht verändert.
-Es sind außerdem eine ganze Reihe hinzugekommen. Insgesamt hat sich mit der Zeit
-vieles vereinheitlicht und es sind viele Anpassungsmöglichkeiten hinzugekommen.
-
-Wohl fast jeder Chemiker, der \LaTeX\ für seine Dokumente verwendet, dürfte das
-großartige Paket \paket{mhchem} von Martin Hensel kennen. 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 doch noch 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. 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 \acl{UN} das \ac{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~\cite{unece:ghsystem_implementation}, 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-Verordnung 1272/2008 entnommen~\cite{eu:ghsystem_regulation}.
-
-Ich hoffe, folgende vier Punkte in diesem Bundle umgesetzt zu haben:
-\begin{itemize}
- \item intuitive Verwendung, vor allem im Hinblick auf die Syntax der Befehle
- \item die Befehle sollen nicht nur das Schreiben erleichtern sondern auch den
- Quelltext besser lesbar machen, indem er semantisch logischer wird
- (\lstinline=\ortho-dichlorobenzene= kann man leichter lesen und verstehen als
- \lstinline=\textsl{o}-dichlorobenzene=)
- \item so große Flexibilität und so viele Anpassungsmöglichkeiten wie möglich,
- damit jeder Anwender die Befehle nach eigenen Bedürfnissen anpassen kann.
- \item mit \ac{iupac} konforme Voreinstellungen
-\end{itemize}
-Vor allem der letzte Punkt benötigte zwar einige Schubser von Anwendern\footnote{%
-Vielen Dank an Dr.~Paul~King!}, um die richtigen Einstellungen an vielen Stellen
-zu bekommen. Wenn Ihnen etwas auf\-fällt, das nicht der \ac{iupac}-Empfehlung
-entspricht\footnote{Das gilt nicht für den \cmd{ox}-Befehl. Die \ac{iupac}-Fassung dazu
-ist \cmd[oxa]{ox*}.}, würde ich mich über eine E-Mail sehr freuen!
-
-Bei einem Paket dieser Größe mit alten und neuen Teilen (die man noch als in der
-Beta-Phase befindlich betrachten muss) ist es unvermeidbar, dass es Fehler und Bugs
-gibt. Ich bin sehr daran interessiert, dieses Paket zu korrigieren und verbessern,
-daher eine Bitte: wenn Ihnen etwas auf{}fällt, das Sie stört, egal wie geringfügig
-es erscheint, senden Sie mir bitte eine E-Mail und ich werde sehen, was ich tun
-kann. Besonders interessiert bin ich an Feedback zu \chemformula (siehe
-Teil~\ref{part:chemformula}) und \ghsystem (siehe Teil~\ref{part:ghsystem}), freue
-mich aber natürlich auch über Feedback zu jedem anderen Teil des Bundles.
-
-\section{Installation und Laden des Bundles}\secidx{Laden des Bundles}\secidx{Installation}
-Das Bundle enthält drei Style-Dateien\footnote{Die mit der Endung \code{sty}.},
-einem Ordner namens \code{language/}, der die Sprach-De\-fi\-ni\-tions-Dateien für
-\ac{ghs} enthält (Endung \code{def}) und einem Ordner \code{pictures/}, der \code{eps}-,
-\code{jpg}-, \code{pdf} und \code{png}-Dateien enthält (die \ac{ghs} Piktogramme).
-Wenn Sie das Bundle von Hand installieren, \emph{bitte achten Sie darauf, die Ordner
-\code{language/} und \code{pictures/} in den \emph{gleichen} Ordner wie die
-Style-Dateien zu kopieren}.
-
-Das Laden von \chemmacros via
-\begin{beispiel}[code only]
- \usepackage{chemmacros} % `chemmacros', `chemformula' and `ghsystem' are loaded
-\end{beispiel}
-wird ebenso \chemformula und \ghsystem laden. Sie können jedoch \chemmacros davon
-abhalten, \ghsystem zu laden:
-\begin{beispiel}[code only]
- \usepackage[ghsystem=false]{chemmacros} % `chemmacros' and `chemformula' are loaded
-\end{beispiel}
-Das Laden von \chemformula kann nicht verhindert werden, da \chemmacros und
-\chemformula miteinander interagieren.
-
-Das explizite Laden von \chemformula \bzw\ \ghsystem ist möglich und wird
-\chemmacros in jedem Fall laden, falls das noch nicht geschehen ist. Dadurch
-laden sie sich implizit gegenseitig.
-\begin{beispiel}[code only]
- \usepackage{chemformula}
- or
- \usepackage{ghsystem}
-\end{beispiel}
-
-Es wird jedoch empfohlen, lediglich \lstinline=\usepackage{chemmacros}= zu
-verwenden und die gewünschten Optionen mit \lstinline=\chemsetup= vorzunehmen
-(siehe auch Abschnitt \ref{sec:setup}).
-\secidx*{Installation}\secidx*{Laden des Bundles}
-
-\section{Paketoptionen}\label{sec:optionen}\secidx{Paketoptionen}
-\chemmacros hat einige Optionen. Sie alle folgen einen Schlüssel/Wert-Prinzip:
-\begin{beispiel}[code only]
- \usepackage[option1 = <value1>, option2 = <value2>]{chemmacros}
-\end{beispiel}
-Die meisten können auch ohne Wert verwendet werden
-(\lstinline+\usepackage[option]{chemmacros}+). Sie verwenden dann den
-\default{unter\-stri\-che\-nen} Wert.
-
-Sowohl \chemformula als auch \ghsystem haben keine eigenen Paketoptionen. Wenn Sie
-sie explizit laden, verpuffen alle als Paketoptionen gegebenen Optionen. Sie können
-dann nur mit dem Setup-Befehl gesetzt werden.
-\begin{beschreibung}
- % bpchem
- \option[option]{bpchem}{\default{true}|false} Diese Option lädt \paket{bpchem}
- und passt das Layout von \cmd{NMR} den \paket{bpchem}-Befehlen \lstinline+\HNMR+
- und \lstinline+\CNMR+ an. Default = \code{false}
- % circled
- \option[option]{circled}{\default{formal}|all|none} \chemmacros unterscheidet
- zwischen zwei Typen von Ladungen\footnote{Vielen Dank an Christoph Schäfer,
- der mich darauf aufmerksam machte, dass v1.1 die Ladungen zu nachlässig behandelte!}:
- reale ($+/-$) und formale (\fplus/\fminus) Ladungen. Die Option \code{formal}
- unterscheidet zwischen ihnen, \code{none} stellt alle ohne Umkreisung dar,
- \code{all} umkreist alle. Default = \code{formal}
- % circletype
- \option[option]{circletype}{\default{chem}|math} Diese Option schaltet zwischen
- zwei Darstellungsmöglichkeiten für formale Ladungen hin und her: \cmd{fplus}
- \fplus\ und \lstinline+$\oplus$+ $\oplus$. Default = \code{chem}
- % cmversion
- \option[option]{cmversion}{1|2|bundle} Diese Option stellt die Definition einiger
- Befehle wieder her, so dass Dokumente, die mit v1.* gesetzt wurden, Korrekt
- kompilieren. Default = \code{bundle}. Eigentlich sind \code{2} und \code{bundle}
- Aliase. Diese Option kann nur in der Präambel gesetzt werden.
- % ghsystem
- \option[option]{ghsystem}{\default{true}|false} Das Paket \ghsystem abschalten.
- Die Einstellung \key{ghs}{false} wird das Laden von \ghsystem unterbinden.
- Default = \code{true}
- % greek
- \option[option]{greek}{auto|math|textgreek|\default{upgreek}} Diese Option bestimmt,
- wie die Buchstaben \cmd{Chemalpha} und seine Verwandten dargestellt werden.
- Siehe Seite~\pageref{desc:upgreek} für weitere Informationen. Diese Option
- kann nur in der Präambel gesetzt werden. Bitte beachten Sie, dass diese
- Option weder \paket{upgreek} noch \paket{textgreek} lädt! Sie bestimmt
- lediglich welches verwendet wird, falls es geladen wurde. Wenn Sie beispielsweise
- \code{upgreek} wählen, müssen Sie auch das entsprechende Paket laden.
- Default = \code{auto}
- % iupac
- \option[option]{iupac}{auto|restricted|strict} Einstellen, wie die Nomenklatur-Befehle
- definiert werden. Siehe Seite~\pageref{desc:iupac}. Default = \code{auto}
- % language
- \option[option]{language}{american|british|english|french|german|italian|ngerman}
- Sprachspezifische Einstellungen laden. \code{english}, \code{american} und
- \code{british} sind Aliase, ebenso \code{german} und \code{ngerman}. Diese
- Option kann nur in der Präambel gesetzt werden. Default = \code{english}
- % method
- \option[option]{method}{\default{chemformula}|mhchem} Sie können wählen, ob
- \chemmacros \paket{mhchem} oder \chemformula für die Reaktionsumgebungen
- (siehe Abschnitt~\ref{sec:reactions}) und die Teilchen (siehe
- Abschnitt~\ref{sec:teilchen}) verwendet. Default = \code{chemformula}. Diese
- Option kann nur in der Präambel gesetzt werden.
- % Nu
- \option[option]{Nu}{\default{chemmacros}|mathspec} Das Paket \paket{mathspec}
- definiert ebenfalls ein Makro \cmd{Nu}. Diese Option entscheidet, welche
- Definition gilt, siehe Seite~\pageref{Nu}. Default = \code{chemmacros}. Diese
- Option kann nur in der Präambel gesetzt werden.
- % strict
- \option[option]{strict}{\default{true}|false} Die Einstellung \key{strict}{true}
- wird alle Warnungen in Fehlermeldungen ändern. Default = \code{false}
- % synchronize
- \option[option]{synchronize}{\default{true}|false} Mit der Einstellung \code{true}
- wird \chemmacros die Schrifteinstellungen von \chemformula übernehmen, falls
- \chemformula als Methode gewählt wurde. Default = \code{false}. Um diese Option
- zu demonstrieren, wurde dieses Dokument mit \key{synchronize}{true} und der
- \chemformula Einstellung
- \lstinline+\chemsetup[chemformula]{font-spec={[Color=darkgray]Latin Modern Sans}}+
- gesetzt.
- % xspace
- \option[option]{xspace}{\default{true}|false} Mit dieser Option werden die
- meisten Makros mit einem \lstinline+\xspace+ definiert. Default = \code{true}
-\end{beschreibung}
-\secidx*{Paketoptionen}
-
-\section{Setup}\label{sec:setup}\secidx{Setup}
-Zahlreiche der Befehle von \chemmacros, \chemformula und \ghsystem haben
-Schlüssel/Wert-Paare als Optionen, mit denen sie angepasst werden können. Meistens
-können sie als (optionales) Argument des entsprechenden Befehls verwendet werden.
-Meistens können Sie auch mit dem \cmd{chemsetup} Befehl verwendet werden.
-\begin{beschreibung}
- \Befehl{chemsetup}[<module>]{<key> = <value>} oder
- \Befehl{chemsetup}{<module>/<key> = <value>}
-\end{beschreibung}
-Die Optionen gehören alle zu einem Modul, das anzeigt, auf welchen Befehl sie
-sich auswirken. Wenn eine Option vorgestellt wird, wird das dazugehörige Modul
-in den linken Rand geschrieben. Sie können die Optionen mit \cmd{chemsetup} auf
-zwei Weisen verwenden, wie oben dargestellt.
-
-Die Paketoptionen können ebenfalls als Optionen betrachtet werden, die zum Modul
-\textcolor{module}{\ttfamily option} gehören. Das bedeutet, sie können auch mit
-\cmd{chemsetup} aufgerufen werden.
-\begin{beispiel}
- \chemsetup[option]{circled=none}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup[option]{circled=formal}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup[option]{circletype=math}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup{option/circletype=chem,option/circled=all}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup{option/circletype=math}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt
-\end{beispiel}
-Optionen, die \emph{keinem} Modul angehören, können \emph{nicht} mit
-\cmd{chemsetup} verwendet werden!
-
-Alle Optionen von \chemformula gehören dem Modul \textcolor{module}{\code{chemformula}}
-an und alle Optionen von \ghsystem gehören dem Modul \textcolor{module}{\code{ghs}}
-an.
-\secidx*{Setup}
-
-\section{Spracheinstellungen}\label{sec:languages}\secidx{Spracheinstellung}
-\subsection{Unterstützte Sprachen}
-Durch die Wahl der Option
-\begin{beispiel}[code only]
- \chemsetup[option]{language=<language>}
-\end{beispiel}
-kann eine der folgenden Sprachen gewählt werden: \code{american}, \code{british},
-\code{english}, \code{french}, \code{german}, \code{italian} und \code{ngerman}.
-Die Sprachen \code{american}, \code{british}, \code{english} sind Aliase, ebenso
-die Sprachen \code{german} und \code{ngerman}.
-
-Übersetzt werden
-\begin{itemize}
- \item Die Überschrift der Liste der Reaktionen.
- \item Die Einträge bei der Liste der Reaktionen.
- \item Die H- und P-Sätze.
-\end{itemize}
-
-\achtung{Bitte beachten Sie, dass die \ac{ghs}-Sätze nicht in allen Sprachen angeboten
-werden, siehe auch Abschnitt~\ref{sec:ghsystem_language}.}
-
-\subsection{Besonderheiten}
-\subsubsection{Deutsch}
-Bei der Sprachwahl \code{german/ngerman} werden zusätzlich die Phasen-Befehle
-\cmd{sld}, \cmd{lqd} und \cmd{pKa} übersetzt.
-
-\subsubsection{Italienisch}
-\DeclareChemIUPAC{\ter}{\textit{ter}}\DeclareChemIUPAC{\sin}{\textit{sin}}%
-Bei der Sprachwahl \code{italian} werden zusätzliche IUPAC-Befehle definiert:
-\begin{beschreibung}
- \befehl{ter} \iupac{\ter}
- \befehl{sin} \iupac{\sin}
-\end{beschreibung}
-\secidx*{Spracheinstellung}
-
-\section{Neues}\secidx{Neues}
-\subsection{Version 3.3}
-\begin{itemize}
- \item Ab Version 3.3 gibt es die Umgebung \env{experimental}{}, siehe
- Abschnitt~\ref{sec:spektroskopie}, die mit einigen neuen Befehlen und Optionen
- verwendet werden kann, um Messdaten konsistent darzustellen.
- \item Die Umgebung \env{reaction}{} und ihre Verwandten können nun mit
- \lstinline+\label+, \lstinline+\ref+ und \lstinline+\intertext+ umgehen, siehe
- Abschnitt~\ref{sec:reactions}.
- \item Die Paketoptionen \key{german} und \key{ngerman} entfallen, dafür gibt es
- die neue Option \key{language}, siehe Seite~\pageref{key:option_language} und
- Abschnitt~\ref{sec:languages} ab Seite~\pageref{sec:languages}.
- \item Die Paketoption \key{upgreek} wurde umbenannt in \key{greek}.
- \item Die \code{\textbackslash\textcolor{code}{Chem<greekletter>}}-Befehle wurden
- um einige Buchstaben erweitert, siehe Abschnitt \ref{sec:teilchen}.
-\end{itemize}
-
-\subsection{Version 3.3a}
-\begin{itemize}
- \item Die IUPAC-Befehle \cmd{hapto} und \cmd{bridge} sind neu.
- \item Die H- und P-Sätze sind jetzt auch auf italienisch verfügbar.
-\end{itemize}
-
-\subsection{Verison 3.3d}
-\begin{itemize}
- \item \code{pdf}-Versionen der \ac{ghs}-Piktogramme.
- \item Neue Voreinstellungen für Bindungslänge und Bindungs-Offset, siehe Seite
- \pageref{ssec:compounds:customization}.
- \item Neue Option \key{bond-style}, siehe Seite~\pageref{ssec:compounds:customization}.
- \item neue Option \key{cip-kern}, siehe Seite~\pageref{par:cip}
-\end{itemize}
-
-\subsection{Version 3.4}
-\begin{itemize}
- \item \chemmacros bekam ein italienisches Manual, vielen herzlichen Dank an Jonas
- Rivetti, der sich nicht nur freiwillig meldete, die H- \&\ P-Sätze zu übersetzen,
- sondern auch diese Dokumentation!
- \item der Befehl \cmd{bond}, der es ermöglicht, andere als Einfach-, Doppel- und
- Dreifachbindungen zu verwenden, siehe Abschnitt~\ref{ssec:bonds}. Dieses Feature
- wollte ich schon lange einbauen!
- \item ein paar Änderungen am Aussehen des Radikalpunktes und neue Optionen, um es
- anzupassen, siehe Abschnitt~\ref{ssec:compounds:customization}.
-\end{itemize}
-
-\subsection{Versionen 3.5 und 3.6}
-\begin{itemize}
- \item Zeilenumbrüche vor und nach Bindungen in Formeln sind nicht mehr möglich.
- \item Zeilenumbrüche nach Pfeilen in Formeln sind erlaubt.
- \item Einige der horizontalen Leerräume in Formeln haben jetzt dehnbare Anteile.
- \item In Formeln ist geschützte Methe-EIngabe jetzt auch mit \cmd*{(} und
- \cmd*{)} möglich.
- \item Neue Optionen: \key{radical-vshift}, \key{radical-hshift} und
- \key{radical-space} erlauben Feinkontrolle über den Radikalpunkt.
- \item In stöchiometrischen Faktoren wird eine führende Null hinzugefügt, wenn
- sie fehlt.
- \item Neue Option: \key{stoich-paren-parse}.
- \item Zahlreiche interne Änderungen am Code.
- \item Neue Option: \key{arrow-min-length}.
-\end{itemize}
-\secidx*{Neues}\secidx*{BEVOR ES LOS GEHT}
-
-\part{\texorpdfstring{\Chemmacros}{chemmacros}}\secidx{CHEMMACROS}
-\section{Teilchen, Ionen und Symbole}\label{sec:teilchen}\secidx{Teilchen, Ionen und Symbole}
-\subsection{Vordefiniert}\secidx[vordefiniert]{Teilchen, Ionen und Symbole}
-\chemmacros definiert einige einfache Makros, um häufig verwendete Teilchen und
-Symbole darzustellen. Bitte beachten Sie, dass sie unterschiedlich dargestellt
-werden, je nach dem, welche Paketoptionen Sie verwenden. Diese Befehle können
-auch im Mathematikmodus eingesetzt werden.
-\begin{beschreibung}
- \befehl{Hpl} \Hpl (Proton)
- \befehl{Hyd} \Hyd (Hydroxid)
- \befehl{HtO} \HtO (Oxoniumion) (\textbf{H} \textbf{t}hree \textbf{O})
- \befehl{water} \water
- \befehl{el} \el (Elektron)
- \befehl{prt} \prt (Proton)
- \befehl{ntr} \ntr (Neutron)
- \befehl{Nu} \Nu (Nukleophil). Das Paket \paket{mathspec} definiert ebenfalls
- ein Makro \cmd{Nu}. Wenn Sie die Paketoption \key[option]{Nu}{mathspec} wählen,
- definiert \chemmacros stattdessen \cmd{Nuc}\label{Nu}.
- \befehl{El} \El (Elektrophil)
- \befehl{ba} \ba (Base)
- \befehl{fplus} \fplus
- \befehl{fminus} \fminus
- \befehl{transitionstatesymbol} \transitionstatesymbol
- \befehl{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}.}.
- \befehl{Chemalpha} \Chemalpha
- \befehl{Chembeta} \Chembeta
- \befehl{Chemgamma} \Chemgamma
- \befehl{Chemdelta} \Chemdelta
- \befehl{Chemepsilon} \Chemepsilon
- \befehl{Chemeta} \Chemeta
- \befehl{Chemkappa} \Chemkappa
- \befehl{Chemmu} \Chemmu
- \befehl{Chemnu} \Chemnu
- \befehl{Chemrho} \Chemrho
- \befehl{Chempi} \Chempi
- \befehl{Chemsigma} \Chemsigma
- \befehl{Chemomega} \Chemomega
- \befehl{ChemDelta} \ChemDelta
-\end{beschreibung}
-
-\achtung{Der Befehl \cmd{Rad} wird nicht mehr bereitgestellt!}
-
-Die beiden Teilchen \cmd{Nu} und \cmd{ba} können angepasst werden. Dafür verwenden
-Sie die Option
-\begin{beschreibung}
- \Option[particle]{elpair}{false|\default{dots}|dash}
-\end{beschreibung}
-Sie hat nur dann Auswirkungen, wenn das Paket \paket{chemfig} geladen wurde, da
-sie dessen Befehl \lstinline+\Lewis+ verwendet.
-\begin{beispiel}
- % needs package `chemfig'
- \ba[elpair] \Nu[elpair=dash]
-
- \chemsetup[particle]{elpair}
- \ba \Nu
-\end{beispiel}
-
-\label{desc:upgreek}Die griechischen Buchstaben sind keine neu definierten Zeichen
-sondern werden abhängig von den Paketen, die sie geladen haben, definiert. Die
-Default-Version entspricht den entsprechenden kursiven „Mathematik“-Buchstaben.
-Wenn Sie das Paket \paket{textgreek} geladen haben, werden dessen Buchstaben verwendet.
-Wenn Sie das Paket \paket{upgreek} geladen haben, werden dessen Buchstaben verwendet.
-Diese Dokumentation verwendet \paket{upgreek}. Haben Sie sowohl \paket{textgreek}
-als auch \paket{upgreek} geladen haben, wird \paket{upgreek} verwendet.
-
-Wenn Sie nicht wollen, dass \chemmacros automatisch wählt, sondern selbst entscheiden
-wollen, verwenden Sie die Paketoption \key[option]{greek}. Tabelle~\ref{tab:upgreek_mode}
-zeigt die verschiedenen Varianten einiger Buchstaben.
-
-\begin{table}[h]
- \centering
- \begin{tabular}{lccc}\toprule
- & math & upgreek & textgreek \\\midrule
- \cmd{Chemalpha} & $\alpha$ & $\upalpha$ & \textalpha \\
- \cmd{Chembeta} & $\beta$ & $\upbeta$ & \textbeta \\
- \cmd{ChemDelta} & $\Delta$ & $\Updelta$ & \textDelta \\ \bottomrule
- \end{tabular}
- \caption{Die griechischen Buchstaben}\label{tab:upgreek_mode}
-\end{table}
-
-Der Grund dafür, dass \chemmacros diese Makros überhaupt definiert, ist \ac{iupac}-Konformität.
-\ac{iupac} empfiehlt, aufrechte griechische Buchstaben in der Nomenklatur verwenden.
-
-\begin{zitat}[{\ac{iupac} Green Book {\cite[][p.\,9]{iupac:greenbook}}}]
- Greek letters are used in systematic organic, inorganic, macromolecular and
- biochemical nomenclature. These should be roman (upright), since they are not
- symbols for physical quantities.
-\end{zitat}
-
-\chemmacros verwendet diese Befehle nun, um Nomenklatur-Befehle zu definieren, siehe
-Seite~\pageref{par:greek_letters}.
-
-\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 diesem Befehl
-kann das einfach erreicht werden:
-\begin{beschreibung}
- \Befehl{DeclareChemParticle}{<cmd>}\ma{<definition>}
- \Befehl{RenewChemParticle}{<cmd>}\ma{<definition>}
-\end{beschreibung}
-Abhängig von der \key{method}, die Sie als Option gewählt haben, wird die
-\code{<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}
- % uses the `upgreek' package
- \DeclareChemParticle{\positron}{$\upbeta$+}
- \DeclareChemParticle{\photon}{$\upgamma$}
- \RenewChemParticle{\el}{$\upbeta$-}
- \positron\ \photon\ \el
-\end{beispiel}
-\cmd{DeclareChemParticle} definiert das Teilchen nur dann, wenn \code{<cmd>} noch
-nicht existiert. Andernfalls wird \chemmacros entweder eine Warnung oder einen
-Fehler ausgeben, abhängig von der Option \key{strict}. \cmd{RenewChemParticle}
-definiert ein Teilchen \emph{nur}, wenn \code{<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}
-\subsection{IUPAC-Namen}\secidx{IUPAC-Namen}
-Ähnlich wie das Paket \paket{bpchem} stellt \chemmacros einen Befehl\footnote{Die
-Idee und die Umsetzung stammt aus dem Paket \paket*{bpchem} von Bjørn Pedersen.}
-bereit, um \ac{iupac}-Namen zu setzen. Wieso ist das nützlich? \ac{iupac}-Namen können
-sehr lang werden. So lang, dass sie auch mal über mehr als zwei Zeilen gehen können,
-vor allem in zweispaltigen Dokumenten. Das bedeutet, sie müssen sich mehr als
-einmal umbrechen dürfen. Dabei hilft folgender Befehl:
-\begin{beschreibung}
- \befehl{iupac}{<IUPAC name>} Innerhalb dieses Befehls werden {\catcode`\|=11\cmd{|}}
- und \cmd{-} verwendet, um Umbruchstellen oder einen umbrechenden Bindestrich
- anzugeben. {\catcode`\^=11\cmd{^}} kann als Abkürzung für\\
- \lstinline=\textsuperscript= eingesetzt werden.
-\end{beschreibung}
-\begin{beispiel}
- \begin{minipage}{.4\linewidth}
- \iupac{Tetra\|cyclo[2.2.2.1\^{1,4}]\-un\|decane-2\-dodecyl\-5\-(hepta\|decyl\|iso\|dodecyl\|thio\|ester)}
- \end{minipage}
-\end{beispiel}
-Der Befehl \cmd{iupac} ist dennoch mehr ein semantischer Befehl. Meistens kann man
-(beinahe) dasselbe erreichen, indem man \cmd{-} anstelle von {\catcode`\|=11\cmd{|}}
-verwendet, \code{-} anstelle von \cmd{-} und \lstinline=\textsuperscript= anstelle
-von {\catcode`\^=11\cmd{^}}.
-
-Es gibt subtile Unterschiede: \cmd{-} fügt einen kleinen Leerraum vor dem Bindestrich
-ein und entfernt etwas Raum danach. Der Befehl {\catcode`\|=11\cmd{|}} verhindert
-nicht nur Ligaturen, sondern fügt ebenfalls einen kleinen Leerraum ein.
-\begin{beispiel}
- \huge\iupac{2,4\-Di\|chlor\|pentan} \\
- 2,4-Dichlorpentan
-\end{beispiel}
-
-Die eingefügten Leerräume können angepasst werden:
-\begin{beschreibung}
- \option[iupac]{hyphen-pre-space}{<dim>} Default = \code{.01em}
- \option[iupac]{hyphen-post-space}{<dim>} Default = \code{-.03em}
- \option[iupac]{break-space}{<dim>} Default = \code{.01em}
-\end{beschreibung}
-
-Der Befehl \cmd{iupac} dient noch einem anderen Zweck. Unabhängig von der
-Paketoption \key[option]{iupac} sind alle Befehle, die in diesem Abschnitt
-vorgestellt werden, \emph{innerhalb} von \cmd{iupac} immer definiert. Eine ganze
-Reihe der Nomenklatur-Befehle haben sehr allgemeine Namen: \cmd{meta}, \cmd{D},
-\cmd{E}, \cmd{L}, \cmd{R}, \cmd{S}, \cmd{trans} und so weiter. Das bedeutet,
-dass sie entweder schon definiert sind (\cmd{L} \L) oder leicht von anderen
-Paketen oder Klassen definiert werden (das Paket \paket{cool} definiert zum
-Beispiel sowohl \cmd{D} als auch \cmd{E}). Um Ihnen Kontrolle darüber zu geben,
-welche Befehle wie definiert sind, gibt es die Paketoption
-\key[option]{iupac}\label{desc:iupac}. Sie hat drei Modi:
-\begin{itemize}
- \item \key{iupac}{auto}: wenn der Befehl \emph{nicht} von einem Paket oder einer
- Klasse, die sie verwenden, definiert wird, ist er generell verfügbar, sonst nur
- \emph{innerhalb} von \cmd{iupac}.
- \item \key{iupac}{restricted}: alle Nomenklatur-Befehle sind \emph{nur} innerhalb
- von \cmd{iupac} definiert. Wenn sie von einem anderen Paket definiert sind, sind
- sie natürlich außerhalb verfügbar. Ansonsten sind sie außerhalb nicht definiert.
- \item \key{iupac}{strict}: \chemmacros überschreibt jede bestehende Definition und
- macht die Befehle im ganzen Dokument verfügbar. Sie können natürlich (nur nach
- \lstinline=\begin{document}=) umdefiniert werden. Sie behalten dann die
- Nomenklatur-Bedeutung innerhalb von \cmd{iupac}.
-\end{itemize}
-Tabelle~\ref{tab:iupac_modes} demonstriert die verschiedenen Modi.
-
-\begin{table}[h]
- \centering
- \begin{tabular}{lccc}\toprule
- & auto & restricted & strict \\\midrule
- \lstinline=\L= & \L & \L & \iupac{\L} \\
- \lstinline=\iupac{\L}= & \iupac{\L} & \iupac{\L} & \iupac{\L} \\
- \lstinline=\D= & \D & -- & \D \\
- \lstinline=\iupac{\D}= & \iupac{\D} & \iupac{\D} & \iupac{\D} \\\bottomrule
- \end{tabular}
- \caption{Demonstration der verschiedenen \protect\key{iupac}-Modi.}\label{tab:iupac_modes}
-\end{table}
-
-\subsubsection{Vordefinierte Befehle}\secidx[vordefiniert]{IUPAC-Namen}\secidx{Stereodeskriptoren und Nomenklatur}
-\paragraph{Griechische Buchstaben}\label{par:greek_letters}\secidx[griechische Buchstaben]{IUPAC-Namen}
-Griechische Buchstaben in Verbindungsnamen werden aufrecht geschrieben. Dafür gibt
-es die Pakete \paket{upgreek} und \paket{textgreek}. Wenn Sie eines davon geladen
-haben, werden die folgenden Buchstaben aufrecht geschrieben:
-\begin{beschreibung}
- \befehl{a} \iupac{\a}
- \befehl{b} \iupac{\b}
- \befehl{g} \iupac{\g}
- \befehl{d} \iupac{\d}
- \befehl{k} \iupac{\k}
- \befehl{m} \iupac{\m}
- \befehl{n} \iupac{\n}
- \befehl{w} \iupac{\w}
-\end{beschreibung}
-\begin{beispiel}
- \iupac{5\a\-androstan\-3\b\-ol} \\
- \iupac{\a\-(tri\|chloro\|methyl)\-\w\-chloro\|poly(1,4\-phenylene\|methylene)}
-\end{beispiel}
-
-\paragraph{Heteroatome und addierter Wasserstoff}\secidx[Heteroatome]{IUPAC-Namen}
-Bindungen an Heteroatome und addierter Wasserstoff werden durch kursive Buchstaben
-dargestellt \cite{iupac:greenbook}. \chemmacros definiert ein paar Abkürzungen
-dafür:
-\begin{beschreibung}
- \befehl{H} \iupac{\H}
- \befehl{O} \iupac{\O}
- \befehl{N} \iupac{\N}
- \befehl{Sf} \iupac{\Sf}
- \befehl{P} \iupac{\P}
-\end{beschreibung}
-\begin{beispiel}
- \iupac{\N\-methyl\|benz\|amide} \\
- \iupac{3\H\-pyrrole} \\
- \iupac{\O\-ethyl hexanethioate}
-\end{beispiel}
-
-\paragraph{Cahn-Ingold-Prelog}\index{Cahn-Ingold-Prelog}\secidx[Cahn-Ingold-Prelog]{IUPAC-Namen}\label{par:cip}
-\begin{beschreibung}
- \befehl{cip}{<conf>} \zB: \cmd{cip}{R,S} \cip{R,S}
- \befehl{R} \iupac{\R}
- \befehl{S} \iupac{\S}
-\end{beschreibung}
-Da der Befehl \cmd{S} schon eine andere Bedeutung hat (\S), ist er in der
-Voreinstellung nur innerhalb \cmd{iupac} verfügbar.
-
-Sowohl diese Befehle als auch die entgegen/zusammen-Deskriptoren erhalten etwas
-Kerning nach der schließenden Klammer. Der betrag kann durch folgende Option geändert
-werden:
-\begin{beschreibung}
- \option[iupac]{cip-kern}{<dim>} Betrag des Kernings nach der schließenden Klammer.
- Default = \code{.075em}
-\end{beschreibung}
-
-\paragraph{Fischer}\index{Fischer}\secidx[Fischer]{IUPAC-Namen}
-\begin{beschreibung}
- \befehl{D} \iupac{\D}
- \befehl{L} \iupac{\L}
-\end{beschreibung}
-Da der Befehl \cmd{L} schon eine andere Bedeutung hat (\L), ist er in der Voreinstellung
-nur innerhalb \cmd{iupac} verfügbar.
-
-\paragraph{cis/trans, zusammen/entgegen, syn/anti \& tert}\index{tert}\secidx[tert]{IUPAC-Namen}\index{cis/trans}\secidx[cis/trans]{IUPAC-Namen}\index{zusammen/entgegen}\secidx[zusammen/entgegen]{IUPAC-Namen}\secidx[syn/anti]{IUPAC Namen}
-\begin{beschreibung}
- \befehl{cis} \cis
- \befehl{trans} \trans
- \befehl{Z} \Z
- \befehl{E} \E
- \befehl{syn} \syn
- \befehl{anti} \anti
- \befehl{tert} \tert
-\end{beschreibung}
-Das Paket \paket{cool} beispielsweise definiert die Befehle \cmd{E} und \cmd{D}
-ebenfalls. Wenn Sie es laden, ist die \chemmacros-Version in der Voreinstellung
-nur innerhalb von \cmd{iupac} verfügbar.
-
-\paragraph{ortho/meta/para}\index{ortho/meta/para}\secidx[ortho/meta/para]{IUPAC-Namen}
-\begin{beschreibung}
- \befehl{ortho} \ortho
- \befehl{meta} \meta
- \befehl{para} \para
-\end{beschreibung}
-
-\paragraph{Absolute Konfiguration}\index{Absolute Konfiguration} (verwendet
-\TikZ)
-\begin{beschreibung}
- \befehl{Rconf}[<letter>] \cmd{Rconf}: \Rconf \quad\cmd{Rconf}[]: \Rconf[]
- \befehl{Sconf}[<letter>] \cmd{Sconf}: \Sconf \quad\cmd{Sconf}[]: \Sconf[]
-\end{beschreibung}
-
-Beispiele:
-\begin{beispiel}
- \iupac{\D\-Wein\|s\"aure} =
- \iupac{\cip{2S,3S}\-Wein\|s\"aure} \\
- \iupac{\D\-($-$)\-Threose} =
- \iupac{\cip{2S,3R}\-($-$)\-2,3,4\-Tri\|hydroxy\|butanal} \\
- \iupac{\cis\-2\-Buten} =
- \iupac{\Z\-2\-Buten}, \\
- \iupac{\cip{2E,4Z}\-Hexa\|dien} \\
- \iupac{\meta\-Xylol} =
- \iupac{1,3\-Di\|methyl\|benzol}
-\end{beispiel}
-\secidx*{Stereodeskriptoren und Nomenklatur}
-
-\paragraph{Koordinations-Chemie}
-\chemmacros stellt zwei Befehle bereit, die in der Koordinationschemie nützlich
-sein können:
-\begin{beschreibung}
- \befehl{bridge}{<num>} \bridge{3}
- \befehl{hapto}{<num>} \hapto{5}
-\end{beschreibung}
-\begin{beispiel}
- Ferrocene = \iupac{bis(\hapto{5}cyclo\|penta\|dienyl)iron} \\
- \iupac{tetra\-\bridge{3}iodido\-tetrakis[tri\|methyl\|platinum(IV)]}
-\end{beispiel}
-
-Zwei Optionen stehen zur Anpassung zur Verfügung:
-\begin{beschreibung}
- \option[iupac]{bridge-number}{sub|super} hängt die Nummer als Tiefstellung oder
- als Hochstellung an. IUPAC empfielt die Tiefstellung~\cite{iupac:redbook}.
- Default = \code{sub}
- \option[iupac]{coord-use-hyphen}{\default{true}|false} hängt einen Bindestrich
- an \cmd{hapto} und \cmd{bridge} an wenn \code{true}. Default = \code{true}
-\end{beschreibung}
-
-\subsubsection{Eigene Nomenklatur-Befehle}\secidx[eigene]{IUPAC-Namen}
-Wenn Ihnen Befehle fehlen sollten, können Sie neue definieren.
-\begin{beschreibung}
- \Befehl{DeclareChemIUPAC}{<cmd>}\ma{<declaration>}
- \Befehl{RenewChemIUPAC}{<cmd>}\ma{<declaration>}
-\end{beschreibung}
-Ein Befehl, der in dieser Weise definiert wurde, gehorcht der Option \key[option]{iupac}.
-Das bedeutet, dass bestehende Befehle nur überschrieben werden, wenn Sie die
-Paketoption \key{iupac}{strict} verwenden. \cmd{DeclareChemIUPAC} wird jedoch die
-Definition eines bestehenden Nomenklatur-Befehls \emph{nicht} überschreiben,
-sondern eine Warnung/einen Fehler melden (abhängig von der Paketoption \key{strict}).
-\begin{beispiel}
- \DeclareChemIUPAC\endo{\textit{endo}}
- \RenewChemIUPAC\anti{\textit{anti}}
- \iupac{(2\-\endo,7\-\anti)\-2\-bromo\-7\-fluoro\|bicyclo[2.2.1]heptane}
-\end{beispiel}
-
-\cmd{RenewChemIUPAC} erlaubt Ihnen, die vordefinierten Befehle umzudefinieren.
-\begin{beispiel}
- \iupac{\meta\-Xylol} \\
- \RenewChemIUPAC\meta{\textit{m}}
- \iupac{\meta\-Xylol}
-\end{beispiel}
-\secidx*{IUPAC-Namen}
-
-\subsection{Lateinische Ausdrücke}\secidx{Lateinische Ausdrücke}[Lateinische Ausdruecke]
-Das Paket \paket{chemstyle} stellt den Befehl \cmd{latin} bereit, um gebräuchliche
-lateinische Ausdrücke konsistent darzustellen. \chemmacros definiert ein ähnliches
-\cmd{latin}, aber nur, wenn \paket{chemstyle} \emph{nicht} geladen wurde, und
-stellt zusätzlich diese Befehle bereit:
-\begin{beschreibung}
- \befehl{insitu} \insitu
- \befehl{abinitio} \abinitio
- \befehl{invacuo} \invacuo
-\end{beschreibung}
-
-Falls das Paket \paket{chemstyle} geladen wurde, wurden sie mit \paket{chemstyle}s
-Befehl \lstinline+\latin+ definiert. Das bedeutet, dass ihr Erscheinungsbild von
-der \paket{chemstyle} Option \code{abbremph} abhängen.
-
-Die Makros wurden mit folgendem Befehl definiert:
-\begin{beschreibung}
- \Befehl{DeclareChemLatin}{<cmd>}\ma{<phrase>}
- \Befehl{RenewChemLatin}{<cmd>}\ma{<phrase>}
-\end{beschreibung}
-\begin{beispiel}
- \DeclareChemLatin\ltn{latin text}
- \ltn
-\end{beispiel}
-Wenn Sie \paket{chemstyle} \emph{nicht} geladen haben, können Sie das
-Erscheinungsbild mit dieser Option anpassen:
-\begin{beschreibung}
- \option[latin]{format}{<definition>} Default = \lstinline+\itshape+
-\end{beschreibung}
-\secidx*{Lateinische Ausdrücke}[Lateinische Ausdruecke]
-
-\section{Einheiten für die Verwendung mit \textsf{siunitx}}\label{sec:einheiten}\secidx{Einheiten}
-In der Chemie sind einige nicht-SI-Einheiten sehr verbreitet. Das Paket
-\paket{siunitx} stellt den Befehl \lstinline+\DeclareSIUnit{<command>}{<unit>}+
-zur Verfügung, um beliebige Einheiten zu definieren. \chemmacros verwendet diesen
-Befehl, um die unten gelisteten Einheiten zu definieren. Wie alle
-\paket{siunitx}-Einheiten sind sie nur innerhalb von \lstinline+\SI{<num>}{<unit>}+
-und \lstinline+\si{<unit>}+ gültig.
-\begin{beschreibung}
- \befehl{atmosphere} \si{\atmosphere}
- \befehl{atm} \si{\atm}
- \befehl{calory} \si{\calory}
- \befehl{cal} \si{\cal}
- \befehl{cmc} \si{\cmc} Die Einheiten \cmd{cmc}, \cmd{molar} und \cmd{Molar} werden
- durch das Paket \paket{chemstyle} ebenfalls definiert. \chemmacros definiert
- sie nur, wenn \paket{chemstyle} nicht geladen wurde.
- \befehl{molar} \si{\molar}
- \befehl{moLar} \si{\moLar}
- \befehl{Molar} \si{\Molar}
- \befehl{MolMass} \si{\MolMass}
- \befehl{normal} \si{\normal}
- \befehl{torr} \si{\torr}
-\end{beschreibung}
-
-Übrigens: \lstinline+\mmHg+ \si{\mmHg} wird durch \paket{siunitx} und
-\paket{chemstyle} bereitgestellt.
-\secidx*{Einheiten}
-
-\section{Säure/Base}\label{sec:saeure_base}\secidx{Säure/Base}[Saeure/Base]
-Einfache Darstellung von \pH, \pKa \ldots\ (der Befehl \cmd{pKa} hängt von der
-Paketoption \key{language} ab).
-\begin{beschreibung}
- \befehl{pH} \pH
- \befehl{pOH} \pOH
- \befehl{Ka} \Ka
- \befehl{Kb} \Kb
- \befehl{Kw} \Kw
- \befehl{pKa}[<num>] \cmd{pKa}: \pKa, \cmd{pKa}[1]: \pKa[1]
- \befehl{pKb}[<num>] \cmd{pKb}: \pKb, \cmd{pKb}[1]: \pKb[1]
- \befehl{p}{<anything>} \zB: \cmd{p}{\cmd{Kw}} \p{\Kw}
-\end{beschreibung}
-
-\begin{beispiel}
- \Ka \Kb \pKa \pKa[1] \pKb \pKb[1]
-\end{beispiel}
-
-\achtung{Das voreingestellte Erscheinungsbild der \p{}-Befehle hat sich verändert,
-um der \ac{iupac}-Empfehlung zu folgen.}
-\begin{zitat}[{\ac{iupac} Green Book {\cite[][p.\,103]{iupac:greenbook}}}]
- The operator \p{} \textelp{} shall be printed in Roman type.
-\end{zitat}
-
-Es gibt eine Option, die den Stil, in dem das \p{} dargestellt wird, ändert:
-\begin{beschreibung}
- \option[acid-base]{p-style}{italics|slanted|upright} Default = \code{upright}
-\end{beschreibung}
-\begin{beispiel}
- \pH, \pKa
-
- \chemsetup[acid-base]{p-style=slanted} \pH, \pKa
-
- \chemsetup[acid-base]{p-style=italics} \pH, \pKa
-\end{beispiel}
-\secidx*{Säure/Base}[Saeure/Base]
-
-\section{Oxidationszahlen, reale und formale Ladungen}\label{sec:ladungen}
-\chemmacros unterscheidet zwischen realen ($+$/$-$) und formalen (\fplus/\fminus)
-Ladungssymbolen, siehe auch Abschnitt \ref{sec:optionen}. Alle Befehle, die
-formale Ladungen ausgeben, starten mit einem \code{f}.
-
-\subsection{Ionenladungen}\label{ssec:ionen}\secidx{Ionenladungen}
-Einfache Verwendung von (realen) Ladungen. Man sollte anmerken, dass diese
-Befehle aus der Zeit stammen, als \chemmacros sich stark bemühte, mit
-\paket{mhchem} kompatibel zu sein, und es \Chemformula noch nicht gab. Sie
-werden weiterhin zur Verfügung gestellt, aber meine Empfehlung wäre, \cmd{ch}
-(siehe~\ref{part:chemformula}) zu verwenden und diese Befehle zu vergessen:
-\begin{beschreibung}
- \befehl{pch}[<number>] positive Ladung (\textbf{p}lus + \textbf{ch}arge)
- \befehl{mch}[<number>] negative Ladung (\textbf{m}inus + \textbf{ch}arge)
-\end{beschreibung}
-
-\begin{beispiel}
- \pch, Na\pch, Ca\pch[2]\\
- \mch, F\mch, S\mch[2]
-\end{beispiel}
-
-Das gleiche für formale Ladungen:
-\begin{beschreibung}
- \befehl{fpch}[<number>] positive Ladung
- \befehl{fmch}[<number>] negative Ladung
-\end{beschreibung}
-
-\begin{beispiel}
- \fpch\ \fmch\ \fpch[3] \fmch[3]
-\end{beispiel}
-
-Es gibt eine Option, die das Verhalten der Ladungen beeinflusst:
-\begin{beschreibung}
- \option[charges]{append}{\default{true}|false} Wenn auf \code{true} gesetzt,
- wird die Ladung mit einer leeren Gruppe angehängt. Default = \code{false}
-\end{beschreibung}
-
-Das hat folgende Auswirkungen:
-\begin{beispiel}
- % uses package `mhchem'
- \chemsetup{charges/append=false,phases/pos=sub}
- \ce{H\pch\aq} \ce{H\aq\pch}
-
- \chemsetup[charges]{append=true}
- \ce{H\pch\aq} \ce{H\aq\pch}
-\end{beispiel}
-
-In den meisten Fällen wird das Verhalten unerwünscht sein, es kann jedoch
-Gelegenheiten geben, wo es nützlich sein kann:
-\begin{beispiel}
- \chemsetup{charges/append=false,phases/pos=sub}
- \ce{\ox{1,H}\pch\aq}
-
- \chemsetup[charges]{append=true}
- \ce{\ox{1,H}\pch\aq}
-\end{beispiel}
-\secidx*{Ionenladungen}
-
-\subsection{Oxidationszahlen}\label{ssec:oxidationszahlen}\secidx{Oxidationszahlen}
-Eingabe von Oxidationszahlen:
-\begin{beschreibung}
- \befehl{ox}[<options>]{<number>,<atom>} setzt \code{<number>} über \code{<atom>};
- \code{<number>} muss eine (rationale) Zahl sein!
-\end{beschreibung}
-
-\begin{beispiel}
- \ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ox{-1,F}
-\end{beispiel}
-
-Es gibt eine Reihe von Optionen, mit denen \cmd{ox} angepasst werden kann.
-\begin{beschreibung}
- \option[ox]{parse}{\default{true}|false} Wenn \code{false}, dann kann ein beliebiger
- Eintrag für \code{<number>} gemacht werden. Default = \code{true}
- \option[ox]{roman}{\default{true}|false} schaltet von römischen auf arabische
- Ziffern um. Default = \code{true}
- \option[ox]{pos}{top|super|side}; \code{top} setzt \code{<number>} über \code{<atom>},
- \code{super} rechts oben als Hochstellung und \code{side} rechts daneben in
- Klammern. Default = \code{top}
- \option[ox]{explicit-sign}{\default{true}|false} gibt $+$ für positive Zahlen
- und $\pm$ für die $0$ aus. Default = \code{false}
- \option[ox]{decimal-marker}{comma|point} Wahl des Dezimalzeichens für
- Oxidationszahlen wie \ox{1.2,X}. Default = \code{point}
- \option[ox]{align}{center|right} Die Oxidationszahl über dem Atom zentrieren oder
- es mit diesem rechts ausrichten. Default = \code{center}
-\end{beschreibung}
-
-\begin{beispiel}
- \ox[roman=false]{2,Ca} \ox{2,Ca} \\
- \ox[pos=super]{3,Fe}-Oxid \\
- \ox[pos=side]{3,Fe}-Oxid \\
- \ox[parse=false]{?,Mn} \\
- \ox[align=right]{2,Ca}
-\end{beispiel}
-
-Die \key[ox]{pos}{super}-Variante kann auch mit dem Shortcut \cmd[oxa]{ox*} erzeugt
-werden:
-\begin{beispiel}
- \ox{3,Fe} \ox*{3,Fe}
-\end{beispiel}
-
-Die Verwenden von \key[ox]{explicit-sign} wird immer das Vorzeichen der Oxidationszahl
-zeigen:
-\begin{beispiel}
- \chemsetup[ox]{explicit-sign = true}
- \ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ch{"\ox{0,F}" {}2}
-\end{beispiel}
-
-\begin{beispiel}
- Vergleichen Sie \ox{-1,\ch{O2^2-}} mit \ch{"\ox{-1,O}" {}2^2-}
-\end{beispiel}
-
-Manchmal muss man formale Oxidationszahlen wie \num{.5} oder $\frac{1}{3}$ verwenden:
-\begin{beispiel}
- \ox{.5,\ch{Br2}} \ch{"\ox{1/3,I}" {}3+}
-\end{beispiel}
-
-Der Bruch verwendet den \lstinline+\sfrac+-Befehl des \paket{xfrac}-Pakets. Zu
-diesem Zweck wurde die Instanz \lstinline+chemmacros-ox-frac+ definiert.
-\begin{beispiel}[code only]
-\DeclareInstance{xfrac}{chemmacros-ox-frac}{text}
- {
- scale-factor = 1.2 ,
- denominator-bot-sep = -.5ex ,
- numerator-top-sep = -.3ex ,
- slash-left-kern = -.2em ,
- slash-right-kern = -.2em ,
- slash-symbol-font = lmr
- }
-\end{beispiel}
-Natürlich können Sie sie nach Ihren Vorstellungen umdefinieren.
-\secidx*{Oxidationszahlen}
-
-\subsection{Partialladungen und Ähnliches}\label{ssec:partialladungen}\secidx{Partialladungen}
-Vielleicht selten genutzt, manchmal aber praktisch:
-\begin{beschreibung}
- \befehl{delp} \delp\ (\textbf{del}ta + \textbf{p}lus)
- \befehl{delm} \delm\ (\textbf{del}ta + \textbf{m}inus)
- \befehl{fdelp} \fdelp
- \befehl{fdelm} \fdelm
-\end{beschreibung}
-
-Ein Beispiel mit dem Befehl \cmd{ox} oder mit dem Paket \paket{chemfig}:
-\begin{beispiel}
- \chemsetup{
- option/circled = all,
- ox/parse = false
- }
- \ce{\ox{\delp,H}-\ox{\delm,Cl}} \hspace*{1cm}
- \chemfig{\chemabove[3pt]{\lewis{246,Br}}{\delm}-\chemabove[3pt]{H}{\delp}}
-\end{beispiel}
-
-Auch diese Makros lassen sich gut mit \paket{chemfig} einsetzen.
-\begin{beschreibung}
- \befehl{scrp} \scrp\ (\textbf{scr}iptstyle + \textbf{p}lus)
- \befehl{scrm} \scrm\ (\textbf{scr}iptstyle + \textbf{m}inus)
- \befehl{fscrp} \fscrp
- \befehl{fscrm} \fscrm
- \befehl{fsscrp} \fsscrp\ (verwendet \lstinline+\scriptscriptstyle+)
- \befehl{fsscrm} \fsscrm
-\end{beschreibung}
-
-\begin{beispiel}
- \setatomsep{1.8em}\chemfig{CH_3-\chemabove{C}{\scrp}(-[6]C|H_3)-\vphantom{H_3}CH_3}
-
- \chemfig{\fmch{}|O-\chemabove{N}{\fscrp}(-[1]O|\fmch)-[7]O|\fmch}
-\end{beispiel}
-\secidx*{Partialladungen}
-
-\section{Reaktionsmechanismen}\label{sec:mechanismen}\secidx{Reaktionsmechanismen}
-Mit dem Befehl
-\begin{beschreibung}
- \Befehl{mech}[<type>]
-\end{beschreibung}
-kann man die verbreitetsten Reaktionsmechanismen spezifizieren. \code{<type>} kann
-einen der folgenden Werte annehmen:
-\begin{beschreibung}
- \befehl{mech} (leer, kein opt.\@ Argument) nukleophile Substitution \mech
- \befehl{mech}[1] unimolekulare nukleophile Substitution \mech[1]
- \befehl{mech}[2] bimolekulare nukleophile Substitution \mech[2]
- \befehl{mech}[se] elektrophile Substitution \mech[se]
- \befehl{mech}[1e] unimolekulare elektrophile Substitution \mech[1e]
- \befehl{mech}[2e] bimolekulare elektrophile Substitution \mech[2e]
- \befehl{mech}[ar] elektrophile aromatische Substitution \mech[ar]
- \befehl{mech}[e] Eliminierung \mech[e]
- \befehl{mech}[e1] unimolekulare Eliminierung \mech[e1]
- \befehl{mech}[e2] bimolekulare Eliminierung \mech[e2]
- \befehl{mech}[cb] unimolekulare Eliminierung \enquote{conjugated base}, \dh via Carbanion \mech[cb]
-\end{beschreibung}
-\secidx*{Reaktionsmechanismen}
-
-\section{Redoxreaktionen}\label{sec:redoxreaktionen}\secidx{Redoxreaktionen}% TODO: watch pagebreaks!
-\chemmacros stellt zwei Befehle zur Verfügung, mit denen die Übertragung von
-Elektronen in Redoxreaktionen angezeigt werden kann\footnote{Dank an
-\href{http://www.mathannotated.com/}{Peter Cao}, der dieses Feature vorgeschlagen
-hat.}. Beide Befehle verwenden \TikZ.
-\begin{beschreibung}
- \Befehl{OX}{<name>,<atom>}
- \Befehl{redox}(<name1>,<name2>)[<tikz>]\oa{<num>}\ma{<text>} \cnpkgdocarrow\
- Lediglich das erste Argument\\\da{<name1>,<name2>} wird benötigt, die anderen
- sind optional.
-\end{beschreibung}
-
-\cmd{OX} setzt \code{<atom>} in einen Knoten (eine \enquote{Node}) mit dem Namen
-\code{<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 \code{remember
-picture,overlay} erstellt, muss das Dokument \emph{wenigstens zwei mal} kompiliert
-werden.
-\begin{beispiel}[dist]
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b){oxidation}
-\end{beispiel}
-Diese Linie kann mit \TikZ-Keys in \oa{<tikz>} angepasst werden:
-\begin{beispiel}[dist]
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
-\end{beispiel}
-
-Mit dem Argument \oa{<num>} kann die Länge der vertikalen Linien angepasst werden.
-Die Voreinstellung beträgt \code{.6em}. Diese Länge wird mit \code{<num>}
-multipliziert. Ein negativer Wert wird die Linie \emph{unter} den Text setzen.
-\begin{beispiel}[dist]
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch
- \redox(a,b)[->,red]{ox}
- \redox(a,b)[<-,blue][-1]{red}
- \vspace{7mm}
-\end{beispiel}
-
-Die Voreinstellung der vertikalen Linien kann mit
-\begin{beschreibung}
- \option[redox]{dist}{<dim>} Default = \code{.6em}
-\end{beschreibung}
-angepasst werden:
-
-\begin{beispiel}[dist]
- \chemsetup{redox/dist=1em}
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
-\end{beispiel}
-
-Zusätzlich erlaubt die Option
-\begin{beschreibung}
- \option[redox]{sep}{<dim>} Default = \code{.2em}
-\end{beschreibung}
-den Abstand zwischen Atom und Anfang der Linie zu verändern.
-\begin{beispiel}[dist]
- \chemsetup{redox/sep=.5em}
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
-\end{beispiel}
-
-Beispiele:% TODO: watch pagebreaks!
-\begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,Na}" + "\OX{r1,Cl}" {}2 -> 2 "\OX{o2,Na}" \pch{} + 2
-"\OX{r2,Cl}" \mch }
- \redox(o1,o2){\small OX: $- 2\el$}
- \redox(r1,r2)[][-1]{\small RED: $+ 2\el$}
- \vspace{7mm}
-\end{beispiel}
-
-\begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}"
-\pch{} + 2 "\OX{r2,\ox{-1,Cl}}" \mch }
- \redox(o1,o2){\small OX: $- 2\el$}
- \redox(r1,r2)[][-1]{\small RED: $+ 2\el$}
- \vspace{7mm}
-\end{beispiel}
-
-\bspmidlength{dist}{15mm}
-\begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}"
-\pch{} + 2 "\OX{r2,\ox{-1,Cl}}" \mch }
- \redox(o1,o2)[draw=red,->][3.33]{\small OX: $- 2\el$}
- \redox(r1,r2)[draw=blue,->]{\small RED: $+ 2\el$}
-\end{beispiel}
-\bspmidlength{dist}{7mm}
- \begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}"
-\pch{} + 2 "\OX{r2,\ox{-1,Cl}}" \mch }
- \redox(o1,o2)[green,-stealth]{\small OX}
- \redox(r1,r2)[purple,-stealth][-1]{\small RED}
- \vspace{7mm}
-\end{beispiel}
-\secidx*{Redoxreaktionen}
-
-\newpage % TODO: watch pagebreaks
-\section{(Standard) Zustand, Thermodynamik}\label{sec:standardstate}\secidx{Thermodynamik}
-\subsection{Thermodynamische Größen}\label{ssec:siunitx}
-Die folgenden Befehle verwenden \paket{siunitx}:
-\begin{beschreibung}
- \Befehl{Enthalpy}[<options>]\da{<subscript>}\ma{<value>}
- \Befehl{Entropy}[<options>]\da{<subscript>}\ma{<value>}
- \Befehl{Gibbs}[<options>]\da{<subscript>}\ma{<value>}
-\end{beschreibung}
-
-Ihre Verwendung ist ziemlich selbsterklärend:
-\begin{beispiel}
- \Enthalpy{123} \\
- \Entropy{123} \\
- \Gibbs{123}
-\end{beispiel}
-Das Argument \da{<subscript>} Fügt eine Tiefstellung zur Spezifizierung hinzu:
-\cmd{Enthalpy}(r){123} \Enthalpy(r){123}.
-
-Die Befehle können mit mehreren Optionen angepasst werden:
-\begin{beschreibung}
- \Option*{exponent}{<anything>}
- \Option*{delta}{<anything>|false}
- \Option*{subscript}{left|right}
- \Option*{unit}{<unit>}
-\end{beschreibung}
-
-Die Voreinstellung hängt vom jeweiligen Befehl ab:
-\begin{beispiel}
- \Enthalpy[unit=\kilo\joule]{-285} \\
- \Gibbs[delta=false]{0} \\
- \Entropy[delta=\Delta,exponent=]{56.7}
-\end{beispiel}
-
-Die Zahl und die Einheit werden entsprechend der Regeln für \paket{siunitx} gesetzt
-und hängen von dessen Einstellungen ab:
-\begin{beispiel}
- \Enthalpy{-1234.56e3} \\
- \sisetup{per-mode=symbol,exponent-product=\cdot,output-decimal-marker={,},group-four-digits=true}
- \Enthalpy{-1234.56e3}
-\end{beispiel}
-
-\subsubsection{Neue Größen definieren}
-Mit dem Befehl
-\begin{beschreibung}
- \Befehl{DeclareChemState}[<options>]{<name>}\ma{<symbol>}\ma{<unit>}
-\end{beschreibung}
-können neue Größen definiert werden.
-\begin{beispiel}
- \DeclareChemState{Helmholtz}{A}{\kilo\joule\per\mole}
- \DeclareChemState[subscript-left=false,exponent=]{ElPot}{E}{\volt}
- \Helmholtz{123.4} \\
- \ElPot{-1.1} \\
- \ElPot[exponent=0]($\ch{Sn}|\ch{Sn^2+}||\ch{Pb^2+}|\ch{Pb}$){0.01}
-\end{beispiel}
-
-Dieser Befehl hat fast die gleichen Optionen, wie die Größen selbst, mit denen die
-Voreinstellung für die neue Größe festgelegt werden können.
-\begin{beschreibung}
- \Option*{exponent}{<anything>}
- \Option*{delta}{<anything>|false}
- \Option*{subscript-left}{\default{true}|false}
- \Option*{subscript}{<anything>}
-\end{beschreibung}
-
-\subsubsection{Größen umdefinieren}
-Mit
-\begin{beschreibung}
- \Befehl{RenewChemState}[<options>]{<name>}\ma{<symbol>}\ma{<unit>}
-\end{beschreibung}
-kann man bestehende Größen umdefinieren:
-
-\begin{beispiel}
- \RenewChemState{Enthalpy}{h}{\joule}
- \Enthalpy(f){12.5}
-\end{beispiel}
-Der Befehl ist analog zu \cmd{DeclareChemState}, \dh er hat dieselben Optionen.
-
-Man könnte also \textendash\ um thermodynamischen Konventionen zu folgen \textendash\
-eine molare und eine absolute Größe definieren:
-\begin{beispiel}
- \DeclareChemState[exponent=]{enthalpy}{h}{\kilo\joule\per\mole}% molar
- \RenewChemState[exponent=]{Enthalpy}{H}{\kilo\joule}% absolute
- \enthalpy{-12.3} \Enthalpy{-12.3}
-\end{beispiel}
-
-\subsection{Zustandsgrößen}\label{ssec:state}
-Die Befehle, die in Abschnitt~\ref{ssec:siunitx} vorgestellt wurden, verwenden
-intern den Befehl\footnote{Beachten Sie, dass \ma{<subscript>} ein \emph{optionales}
-Argument ist.}
-\begin{beschreibung}
- \Befehl{State}[<options>]{<symbol>}\ma{<subscript>}
-\end{beschreibung}
-Er kann verwendet werden, um die Größen ohne Wert und Einheit zu schreiben.
-
-Beispiele:
-\begin{beispiel}
- \State{A}, \State{G}{f}, \State[subscript-left=false]{E}{\ch{Na}},
- \State[exponent=\SI{1000}{\celsius}]{H}
-\end{beispiel}
-
-Wieder hat er (fast) die gleichen Optionen:
-\begin{beschreibung}
- \Option[state]{exponent}{<anything>}
- \Option[state]{subscript-left}{true|false}
- \Option[state]{delta}{<anything>|false}
-\end{beschreibung}
-\secidx*{Thermodynamik}
-
-\section{Spektroskopie und Messdaten}\label{sec:spektroskopie}\secidx{Spektroskopie}
-\subsection{Der \code{\textbackslash\textcolor{code}{NMR}}-Befehl}
-Wenn Substanzen darauf untersucht werden, ob sie sind, was sie sein sollen, wird
-oft die NMR Spektroskopie eingesetzt. Die Messergebnisse werden dann etwa so
-aufgeschrieben:
-\begin{center}
- \NMR(400)[CDCl3] = \num{1.59}
-\end{center}
-\chemmacros stellt einen Befehl zur Verfügung, der das vereinfacht (verwendet
-\paket{siunitx}).
-
-\begin{beschreibung}
- \Befehl{NMR}{<num>,<elem>}\da{<num>,<unit>}\oa{<solvent>}
- \Befehl{NMR*}{<num>,<elem>}\da{<num>,<unit>}\oa{<solvent>}
-\end{beschreibung}
-
-\emph{Alle} Argumente sind optional! Ohne Argumente\footnote{Alle Argumente können
-beliebig kombiniert werden.Der Befehl kann auch im Mathematik-Modus eingesetzt
-werden.} erhalten wir:
-\begin{beispiel}
- \NMR \\
- \NMR*
-\end{beispiel}
-
-Das erste Argument spezifiziert die Art der NMR:
-\begin{beispiel}
- \NMR{13,C}
-\end{beispiel}
-
-Mit dem zweiten Argument kann die verwendete Frequenz (in \si{\mega\hertz})
-angegeben werden:
-\begin{beispiel}
- \NMR(400)
-\end{beispiel}
-Auch mit Einheit:
-\begin{beispiel}
- \NMR(4e8,\hertz)
-\end{beispiel}
-Bitte beachten Sie, dass das Setup von \paket{siunitx} sich auch auf diesen
-Befehl auswirkt:
-\begin{beispiel}
- \sisetup{exponent-product=\cdot}\NMR(4e8,\hertz)
-\end{beispiel}
-
-Mit dem dritten Befehl schließlich kann das Lösungsmittel angegeben werden:
-\begin{beispiel}
- \NMR[CDCl3]
-\end{beispiel}
-
-\subsection{Abkürzungen}
-Da man verschiedene Kerne in einem Dokument eventuell häufiger benötigt, bietet
-\chemmacros eine Möglichkeit, Abkürzungen zu definieren.
-\begin{beschreibung}
- \Befehl{DeclareChemNMR}{<csname>}\ma{<num>,<atom>}
- \Befehl{RenewChemNMR}{<csname>}\ma{<num>,<atom>}
-\end{beschreibung}
-Das definiert einen Befehl mit denselben Argumenten wie \cmd{NMR}, \emph{außer} \ma{<num>,<atom>}.
-\begin{beispiel}
- \DeclareChemNMR\HNMR{1,H}%
- \DeclareChemNMR\CNMR{13,C}%
- \CNMR*(100) \\
- \HNMR*(400)
-\end{beispiel}
-
-\subsection{Eine Umgebung, um Messergebnisse darzustellen}
-Um ein bequemes Eingeben von Messergebnissen zu ermöglichen, bietet \chemmacros
-eine Umgebung.
-\begin{beschreibung}\catcode`\#=11
- \umg{experimental}{Daten} Umgebung für die Ausgabe von Ex\-pe\-ri\-men\-tal-Daten.
- Innerhalb dieser Umgebung sind die folgenden Befehle definiert.
- \Befehl{data}{<Typ>}\oa{<Spezifikation>} \cnpkgdocarrow\ Typ der Daten, \zB\ IR,
- MS\ldots\ In das optionale Argument können weitere Spezifikationen eingegeben
- werden, die in runden Klammern ausgegeben werden.
- \Befehl{data*}{<Typ>}\oa{<Spezifikation>} \cnpkgdocarrow\ Wie \cmd{data}, gibt
- aber anstelle des \code{=} ein \code{:} mit aus, wenn \key{use-equal}{true}
- eingestellt ist.
- \Befehl{NMR}{<num>,<elem>\oa{<coupling core>}}\da{<num>,<unit>}\oa{<solvent>}
- \cnpkgdocarrow\ der Befehl bekommt ein weiteres Argument:
- \cmd{NMR}{13,C[\textasciicircum 1H]} \NMR{13,C[^1H]}
- \Befehl{J}\da{<bonds>;<nuclei>}\oa{<unit>}\ma{<list of nums>} \cnpkgdocarrow\
- Kopplungskonstante, Werte werden mit \code{;} getrennt eingegeben. Für NMR.
- Das Argument \da{<bonds>;<nuclei>} ist optional und ermöglicht die Angabe von
- genaueren Spezifikationen der Kopplung.
- \befehl{#}{<num>} Anzahl der Kerne. Für NMR.
- \befehl{pos}{<num>} Position/Nummer des Kerns. Für NMR.
- \befehl{val}{<num>} Zahlenwert, ein Alias für \paket*{siunitx}'
- \lstinline+\num{<num>}+
- \befehl{val}{<num1>-{}-<num2>} Ein Alias für \paket*{siunitx}'
- \lstinline+\numrange{<num1>}{<num2>}+
-\end{beschreibung}
-
-\begin{beispiel}
- \begin{experimental}
- \data{Typ1} Daten.
- \data{Typ2}[Spezifikationen] noch mehr Daten.
- \data*{Typ3} weitere Daten.
- \end{experimental}
-\end{beispiel}
-
-\subsection{Anpassung}
-Die Ausgabe der Umgebung und der NMR-Befehle kann mir einer Reihe Optionen angepasst
-werden. Aus historischen Gründen gehören sie dem Modul \textcolor{module}{\code{nmr}}
-an.
-\begin{beschreibung}
- \option[nmr]{unit}{<unit>} Default = \lstinline=\mega\hertz=
- \option[nmr]{nucleus}{\{<num>,<atom>\}} Default = \ma{1,H}
- \option[nmr]{format}{<commands>} zum Beispiel \lstinline=\bfseries=
- \option[nmr]{pos-number}{side|sub} Position der Zahl neben dem Atom. Default =
- \code{side}
- \option[nmr]{coupling-unit}{<unit>} Eine \paket{siunitx} Einheit. Default =
- \lstinline=\hertz=
- \option[nmr]{parse}{\default{true}|false} Das Lösungsmittel als \paket{mhchem}/\chemformula-Formel
- behandeln oder nicht. Default = \code{true}
- \option[nmr]{delta}{<tokens>} Die \code{<tokens>} werden nach $\delta$ eingefügt.
- \option[nmr]{list}{\default{true}|false} Die Umgebung \env{nmr}[<optionen>]{} wird als
- Liste formatiert. Default = \code{false}
- \option[nmr]{list-setup}{<setup>} Setup der Liste. Default = siehe unten.
- \option[nmr]{use-equal}{\default{true}|false} Istgleich-Zeichen nach \cmd{NMR}
- und \cmd{data} einsetzen. Default = \code{false}
-\end{beschreibung}
-
-Das Default-Setup der Liste:
-\begin{beispiel}[code only]
- \topsep\z@skip \partopsep\z@skip
- \itemsep\z@ \parsep\z@ \itemindent\z@
- \leftmargin\z@
-\end{beispiel}
-
-\begin{beispiel}
- \begin{experimental}[format=\bfseries]
- \data{Typ1} Daten.
- \data{Typ2}[Spezifikationen] noch mehr Daten.
- \data*{Typ3} weitere Daten.
- \end{experimental}
-\end{beispiel}
-
-Der Befehl \cmd{NMR} und alle mit \cmd{DeclareChemNMR} definierten Befehle können
-anstelle von \cmd{data} für NMR-Daten eingesetzt werden.
-
-\begin{beispiel}
- \begin{experimental}[format=\bfseries,use-equal]
- \data{Typ1} Daten.
- \data{Typ2}[Spezifikationen] noch mehr Daten.
- \NMR weitere Daten.
- \end{experimental}
-\end{beispiel}
-
-\subsection{Anwendungsbeispiel}
-Der folgende Code in verschiedenen Ausgaben abhängig von der Auswahl der \code{<optionen>}.
-Die Optionen können selbstverständlich auch mit \cmd{chemsetup} global gesetzt
-werden.
-
-\begin{beispiel}[code only]
-\sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
-\begin{experimental}[<optionen>]
- \data*{Ausbeute} \SI{17}{\milli\gram} gelbe Nadeln (\SI{0.04}{\milli\mole}, \SI{13}{\percent}).
- %
- \data{Smp.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100, \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
- %
- \data*{Quantenausbeute} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-\end{beispiel}
-
-\subsubsection{Beinahe Standard}
-Ausgabe für \lstinline+<optionen>: delta=(ppm),pos-number=sub,use-equal+:
-\bigskip
-
-\begin{experimental}[delta=(ppm),pos-number=sub,use-equal]
- \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
- \chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
- }
- %
- \data*{Ausbeute} \SI{17}{\milli\gram} gelbe Nadeln (\SI{0.04}{\milli\mole},
- \SI{13}{\percent}).
- %
- \data{Smp.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}),
- \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07}
- (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m,
- \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8},
- \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}),
- \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0}
- ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2},
- \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}),
- \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1),
- \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
- \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m),
- \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s),
- \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w),
- \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m),
- \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s),
- \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w),
- \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre}
- ($\varepsilon = \val{65378}$).
- %
- \data*{Quantenausbeute} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-
-\subsubsection{Formatierte Liste}
-Ausgabe für \lstinline+<optionen>: format=\bfseries,delta=(ppm),list=true,use-equal+:
-\bigskip
-
-\begin{experimental}[format=\bfseries,delta=(ppm),list=true,use-equal]
- \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
- \chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
- }
- %
- \data*{Ausbeute} \SI{17}{\milli\gram} gelbe Nadeln (\SI{0.04}{\milli\mole},
- \SI{13}{\percent}).
- %
- \data{Smp.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}),
- \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07}
- (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m,
- \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8},
- \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}),
- \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0}
- ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2},
- \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}),
- \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1),
- \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
- \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m),
- \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s),
- \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w),
- \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m),
- \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s),
- \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w),
- \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre}
- ($\varepsilon = \val{65378}$).
- %
- \data*{Quantenausbeute} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-
-\subsubsection{Verrückt}
-Ausgabe für \code{<optionen>}:
-\begin{lstlisting}
- format=\color{red}\itshape,
- list=true,
- delta=\textcolor{green}{\ch{M+ + H2O}},
- pos-number=side,
- coupling-unit=\mega\gram\per\square\second,
- list-setup=,
- use-equal
-\end{lstlisting}
-
-\begin{experimental}[
- format=\color{red}\itshape,
- list=true,
- delta=\textcolor{green}{\ch{M+ + H2O}},
- pos-number=side,
- coupling-unit=\mega\gram\per\square\second,
- list-setup=,use-equal]
- \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
- \chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
- }
- %
- \data*{Ausbeute} \SI{17}{\milli\gram} gelbe Nadeln (\SI{0.04}{\milli\mole},
- \SI{13}{\percent}).
- %
- \data{Smp.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}),
- \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07}
- (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m,
- \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8},
- \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}),
- \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0}
- ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2},
- \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}),
- \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1),
- \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
- \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m),
- \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s),
- \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w),
- \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m),
- \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s),
- \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w),
- \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre}
- ($\varepsilon = \val{65378}$).
- %
- \data*{Quantenausbeute} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-\secidx*{Spektroskopie}
-
-\section{Befehle für \textsf{mhchem}}\label{sec:mhchem}\secidx{Befehle für
-\textsf{mhchem}}[Befehle fur mhchem]
-\paket{mhchem} wird nicht mehr automatisch geladen, sondern nur noch, wenn Sie die
-Option \key[option]{method}{mhchem} in der Präambel verwenden. Als Voreinstellung
-verwendet \chemmacros stattdessen \chemformula.
-
-\chemmacros stellt nur einen Befehl speziell für \paket{mhchem}\footnote{\chemformula
-hat seine eigene Möglichkeit.} bereit. Er erlaubt es, Text unter eine Formel zu
-schreiben.
-\begin{beschreibung}
- \Befehl{mhName}[<options>]{<formula>}\ma{<text>}
-\end{beschreibung}
-
-Zum Beispiel:
-\begin{beispiel}
- \ce{4 C2H5Cl + Pb / Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
-\end{beispiel}
-
-Mit den folgenden Optionen kann \cmd{mhName} angepasst werden:
-\begin{beschreibung}
- \option[mhName]{align}{<alignment command>} Die Ausrichtung des Textes innerhalb
- der Box, in die er geschrieben wird.Default = \lstinline+\centering+
- \option[mhName]{format}{<anything>} Das Format des Textes.
- \option[mhName]{fontsize}{<font size command>} Die Schriftgröße des Textes.
- Default = \lstinline+\tiny+
- \option[mhName]{width}{<dim>|auto} Die Breite der Box, in die der Text geschrieben
- wird. Default = \code{auto}
-\end{beschreibung}
-\begin{beispiel}
- \ce{4 C2H5Cl + Pb / Na -> \mhName[fontsize=\footnotesize]{Pb(C2H5)4}{former antiknock additive} + NaCl}\\
- \chemsetup[mhName]{align=\raggedright,fontsize=\small,format=\bfseries\color{red},width=3cm}
- \ce{4 C2H5Cl + Pb / Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
-\end{beispiel}
-\secidx*{Befehle für \textsf{mhchem}}[Befehle fur mhchem]
-
-\section{Reaktionsumgebungen}\label{sec:reactions}\secidx{Reaktionsumgebungen}
-\subsection{Durch \chemmacros definiert}
-Es stehen folgende Umgebungen für nummerierte\ldots
-\begin{beschreibung}
- \Umg{reaction}{<formula or mhchem code>}
- \Umg{reactions}{<formula or mhchem code>}
-\end{beschreibung}
-
-\ldots und ihre gesternten Versionen für unnummerierte Reaktionen zur Verfügung.
-\begin{beschreibung}
- \Umg{reaction*}{<formula or mhchem code>}
- \Umg{reactions*}{<formula or mhchem code>}
-\end{beschreibung}
-Damit können Sie (un-) nummerierte Reaktionsgleichungen erstellen ähnlich den
-mathematischen Gleichungen.
-
-Die Umgebungen \code{reaction}/\code{reaction*} verwenden intern \code{equation}/\code{equation*}
-Umgebungen und die Umgebungen \code{reactions}/\code{reactions*} verwenden die
-\code{align}/\code{align*} Umgebungen, um die Reaktionen darzustellen.
-
-\begin{beispiel}
- Reaktion mit Z\"ahler:
- \begin{reaction}
- A -> B
- \end{reaction}
-\end{beispiel}
-
-\begin{beispiel}
- Reaktion ohne Z\"ahler:
- \begin{reaction*}
- C -> D
- \end{reaction*}
-\end{beispiel}
-
-\begin{beispiel}
- mehrere ausgerichtete Reaktionen mit Z\"ahler:
- \begin{reactions}
- A &-> B + C \\
- D + E &-> F
- \end{reactions}
-\end{beispiel}
-
-\begin{beispiel}
- mehrere ausgerichtete Reaktionen ohne Z\"ahler:
- \begin{reactions*}
- G &-> H + I \\
- J + K &-> L
- \end{reactions*}
-\end{beispiel}
-
-Wenn Sie das Layout der Zähler-Tags ändern wollen, verwenden Sie
-\begin{beschreibung}
- \Befehl{renewtagform}{<tagname>}\oa{<format>}\ma{<right delim>}\ma{<left delim>}%
- \footnote{Durch das \paket*{mathtools} Paket zur Verfügung gestellt.}.
-\end{beschreibung}
-
-\begin{beispiel}
- \renewtagform{reaction}[R \textbf]{[}{]}
- \begin{reaction}
- H2O + CO2 <<=> H2CO3
- \end{reaction}
-\end{beispiel}
-
-Seit Version 3.3 funktionieren Querverweise und \AmS maths \cmd{intertext} wie
-erwartet:
-\begin{beispiel}
- \begin{reactions}
- A + 2 B &-> 3 C + D \label{rxn:test}
- \intertext{Etwas Text zwischen ausgerichteten Reaktionen.}
- 3 E + F &<=> G + 1/2 H
- \end{reactions}
- Siehe Reaktion \ref{rxn:test}.
-\end{beispiel}
-
-\achtung{In der Standardeinstellung, \dh mit \key{method}{chemformula}, sollten
-Sie \cmd{mch} und die verwandten Befehle innerhalb der \code{reaction} Umgebungen
-nicht verwenden. Sie bringen in den meisten Fällen die korrekte Ausrichtung
-durcheinander. In der Standardeinstellung erkennen Ladungen in den Umgebungen
-die Einstellung der Option \key{circled} automatisch, so dass die Befehle auch
-nicht benötigt werden.}
-
-\subsection{Eigene Reaktionen}
-Sie können mit dem Befehl
-\begin{beschreibung}
- \Befehl{DeclareChemReaction}[<options>]{<name>}\ma{<math name>}
-\end{beschreibung}
-weitere Reaktionsumgebungen erstellen.
-
-\code{<name>} wird der Name der neuen Umgebung sein. \code{<math name>} ist die
-verwendete Mathematikumgebung.
-
-Der Befehl hat zwei Optionen.
-\begin{beschreibung}
- \Option*{star}{\default{true}|false}
- \Option*{arg}{\default{true}|false}
-\end{beschreibung}
-Zum einen \key*{star}, die auch die gesternte Variante definiert, vorausgesetzt,
-die entsprechende Mathematikumgebung existiert. Falls nicht, wird es einen Fehler
-geben.
-
-Dann gibt es \key*{arg}, die verwendet wird, um eine Umgebung mit einem obligatorischen
-Argument zu erstellen. Auch das funktioniert natürlich nur, wenn die entsprechende
-Mathematikumgebung ebenfalls ein obligatorisches Argument besitzt.
-
-Die vordefinierten Umgebungen wurden durch
-\begin{beschreibung}
- \Befehl{DeclareChemReaction}[star]{reaction}\ma{equation} und
- \Befehl{DeclareChemReaction}[star]{reactions}\ma{align}.
-\end{beschreibung}
-definiert.
-
-Nehmen wir an, Sie wollen eine Umgebung mit dem Verhalten der \code{alignat} Umgebung
-für \chemformula-/\paket{mhchem}-Reaktionen. Sie könnten folgendes tun:
-\begin{beispiel}[code only]
- \DeclareChemReaction[star,arg]{reactionsat}{alignat}
-\end{beispiel}
-
-Damit ist die \code{reactionsat}-Umgebung definiert.
-\begin{beispiel}
- \DeclareChemReaction[star,arg]{reactionsat}{alignat}
- \begin{reactionsat}{3}
- A &-> B &&-> C &&-> D \\
- aaaaa &-> bbbbb &&-> ccccc &&-> ddddd
- \end{reactionsat}
- \begin{reactionsat*}{2}
- A &-> B & C &-> D \\
- aaaaa &-> bbbbb &\quad{} ccccc &-> ddddd
- \end{reactionsat*}
-\end{beispiel}
-
-\subsection{Liste der Reaktionen}
-\chemmacros stellt ebenso einen Befehl zur Verfügung, mit dem man eine Liste der
-Reaktionen ausgeben kann, die mit den Reaktionsumgebungen eingegeben wurden.
-\begin{beschreibung}
- \Befehl{listofreactions}
-\end{beschreibung}
-\begin{beispiel}[below]
- \listofreactions
-\end{beispiel}
-
-Der Output kann mit den folgenden Optionen angepasst werden:
-\begin{beschreibung}
- \option[reaction]{list-name}{<name of the list>} Setzen der Listenüberschrift.
- Default = \code{Reaktionsverzeichnis}
- \option[reaction]{list-entry}{<prefix to each entry>} Präfix zu jedem Eintrag.
- Default = \code{Reaktion}
-\end{beschreibung}
-Beide Default-Werte reagieren auf die Option \key[option]{german}.
-
-Statt die Option \key{list-name} zu verwenden, könnten Sie auch \cmd{reactionlistname}
-umdefinieren.
-
-Im Verzeichnis werden alle Reaktionen mit Zählen gelistet und alle anderen nicht
-aufgenommen. Alle Reaktionsumgebungen ohne Stern haben ein optionales Argument,
-mit dem man eine Beschreibung für die Liste hinzufügen kann.
-\begin{beispiel}
- \begin{reaction}[Autoprotolyse]
- 2 H2O <<=> H3O+ + OH-
- \end{reaction}
-\end{beispiel}
-Wenn Sie die \code{reactions} Umgebung verwenden, wird das allerdings nicht
-funktionieren. In diesem Fall können Sie
-\begin{beschreibung}
- \Befehl{AddRxnDesc}{<description>}
-\end{beschreibung}
-verwenden.
-\begin{beispiel}
- \begin{reactions}
- Cl "\Lewis{0.,\vphantom{Cl}}" + CH4 &-> HCl + "\Lewis{4.,\vphantom{CH}}" CH3 \AddRxnDesc{first~step~of~chain} \\
- "\Lewis{4.,\vphantom{CH}}" CH3 + Cl2 &-> CH3Cl + Cl "\Lewis{0.,\vphantom{Cl}}" \AddRxnDesc{second~step~of~chain}
- \end{reactions}
-\end{beispiel}
-Nebenbei: Sie müssen die Phantom-Befehle nicht verwenden, wenn Sie das Format der
-Atome nicht geändert haben, siehe Abschnitt~\ref{sec:format} an Seite~\pageref{sec:format}.
-\secidx*{Reaktionsumgebungen}
-
-\section{Phasen}\label{sec:phasen}\secidx{Phasen}
-\subsection{Grundlagen}\secidx[Grundlagen]{Phasen}
-Diese Befehle sollen helfen, die Phase einer Substanz anzuzeigen.
-\begin{beschreibung}
- \befehl{sld} \sld
- \befehl{lqd} \lqd
- \befehl{gas} \gas
- \befehl{aq} \aq
-\end{beschreibung}
-
-\achtung{Das Default-Verhalten der Phasen-Befehle hat sich geändert, um der
-\ac{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{language}{english} (siehe Abschnitt~\ref{sec:optionen})
-erhalten Sie die englischen Versionen.
-
-Die \ac{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{zitat}[{\ac{iupac} Green Book {\cite[][p.\,54]{iupac:greenbook}}}]
- The \textelp{} 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{zitat}
-
-Es gibt zwei Optionen, um den Output anzupassen:
-\begin{beschreibung}
- \option[phases]{pos}{side|sub} Umschalten der Position des Phasen-Anzeigers.
- Default = \code{side}
- \option[phases]{space}{<dim>} Ändern des Zwischenraums zwischen Formel und dem
- Phasen-Anzeiger bei \key{pos}{side}. Eine \TeX-Dimension. Default = \code{.1333em}
-\end{beschreibung}
-\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}
-
-\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{beschreibung}
- \Befehl{DeclareChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
- \Befehl{RenewChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
- \befehl{phase}{<phase>} Wenn Sie die Phase nur ein- oder zweimal verwenden müssen.
-\end{beschreibung}
-\cmd{DeclareChemPhase} definiert die Phase nur dann, wenn \code{<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 \code{<cmd>} schon existiert und gibt andernfalls eine
-Warnung/einen Fehler.
-\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*{Phasen}
-
-\section{Newman-Projektionen}\label{sec:newman}\secidx{Newman-Projektionen}
-\chemmacros stellt den Befehl
-\begin{beschreibung}
- \Befehl{newman}[<options>]\da{<angle>}\ma{<1>,<2>,<3>,<4>,<5>,<6>}
-\end{beschreibung}
-zur Verfügung, der Ihnen erlaubt, Newman-Projektionen zu erstellen (verwendet \TikZ).
-Das Argument \da{<angle>} dreht die hinteren Atome gegen den Uhrzeigersinn bezüglich
-der vorderen Atome.
-\begin{beispiel}
- \newman{} \newman(170){}
- \newman{1,2,3,4,5,6} \newman{1,2,3} \newman{,,,4,5,6}
-\end{beispiel}
-
-Es gibt einige Optionen, um den Befehl anzupassen:
-\begin{beschreibung}
- \option[newman]{angle}{<angle>} Voreingestellter Winkel. Default = \code{0}
- \option[newman]{scale}{<factor>} Skaliert die ganze Projektion. Default = \code{1}
- \option[newman]{ring}{<tikz>} Aussehen des Rings mit \TikZ-Keys anpassen.
- \option[newman]{atoms}{<tikz>} Aussehen der Knoten, in die die Atome geschrieben
- werden, mit \TikZ-Keys anpassen.
- \option[newman]{back-atoms}{<tikz>} Nur die hinteren Atome anpassen.
-\end{beschreibung}
-
-\begin{beispiel}
- \chemsetup[newman]{angle=45} \newman{}
- \newman[scale=.75,ring={draw=blue,fill=blue!20}]{}
-\end{beispiel}
-\begin{beispiel}
- \chemsetup[newman]{atoms={draw=red,fill=red!20,inner sep=2pt,rounded corners}}
- \newman{1,2,3,4,5,6}
-\end{beispiel}
-\begin{beispiel}
- \chemsetup[newman]{
- atoms = {draw=red,fill=red!20,inner sep=2pt,rounded corners},
- back-atoms = {draw=blue,fill=blue!20,inner sep=2pt,rounded corners}
- }
- \newman{1,2,3,4,5,6} \newman(170){1,2,3,4,5,6}
-\end{beispiel}
-\secidx*{Newman-Projektionen}
-
-%TODO watch pagebreaks!
-\section{s, p und Hybrid-Orbitale}\label{sec:orbitale}\secidx{Orbitale}
-\chemmacros stellt einen Befehl bereit, mit dem Orbitale visualisiert werden können:
-\begin{beschreibung}
- \Befehl{orbital}[<options>]{<type}
-\end{beschreibung}
-
-Dabei stehen folgende Typen für \ma{<type>} zur Verfügung:
-\begin{description}
- \item \code{s}
- \item \code{p}
- \item \code{sp}
- \item \code{sp2}
- \item \code{sp3}
-\end{description}
-
-\begin{beispiel}
- \orbital{s} \orbital{p} \orbital{sp} \orbital{sp2} \orbital{sp3}
-\end{beispiel}
-
-Abhängig vom Typ stehen verschiedene Optionen zur Modifikation zur Auswahl:
-\begin{beschreibung}
- \option[orbital]{phase}{\default{+}|-} Ändern der Phase des Orbitals (alle Typen).
- \option[orbital]{scale}{<factor>} Ändern der Größe des Orbitals (alle Typen).
- \option[orbital]{color}{<color>} Ändern der Farbe des Orbitale (alle Typen).
- \option[orbital]{angle}{<angle>} Rotiert die Orbitale mit einem p-Anteil gegen
- den Uhrzeigersinn (alle Typen außer \code{s}).
- \option[orbital]{half}{\default{true}|false} stellt nur ein halbes Orbital dar
- (nur \code{p}).
-\end{beschreibung}
-
-\begin{beispiel}
- \orbital{s} \orbital[phase=-]{s}
- \orbital{p} \orbital[phase=-]{p}
- \orbital{sp3} \orbital[phase=-]{sp3}
-
- \orbital[angle=0]{p} \orbital[color=red!50]{p} \orbital[angle=135,scale=1.5]{p} \orbital[half]{p}
-\end{beispiel}
-
-Zusätzlich gibt es zwei Optionen, mit denen das \TikZ-Verhalten beeinflusst werden
-kann:
-\begin{beschreibung}
- \option[orbital]{overlay}{\default{true}|false} Das Orbital „braucht keinen Platz”;
- es wird mit dem \TikZ-Key \code{overlay} gezeichnet.
- \option[orbital]{opacity}{<num>} Das Orbital wird durchsichtig; \code{<value>}
- kann Werte zwischen \code{1} (undurchsichtig) bis \code{0} (unsichtbar) annehmen.
-\end{beschreibung}
-
-\begin{beispiel}[dist]
- \hspace{1cm}
- \chemsetup[orbital]{
- overlay,
- p/color = black!70
- }
- \setbondoffset{0pt}
- \chemfig{?\orbital{p}-[,1.3]{\orbital[phase=-]{p}}-[:30,1.1]\orbital{p}-[:150,.9]{\orbital[phase=-]{p}}-[4,1.3]\orbital{p}-[:-150,1.1]{\orbital[phase=-]{p}}?}
- \vspace{7mm}
-\end{beispiel}
-
-\bspmidlength{dist}{10mm}
-\begin{beispiel}[dist]
- \hspace{2cm}
- \setbondoffset{0pt}
- \chemsetup[orbital]{
- overlay ,
- opacity = .75 ,
- p/scale = 1.6 ,
- s/color = blue!50 ,
- s/scale = 1.6
- }
- \chemfig{\orbital{s}-[:-20]{\orbital[scale=2]{p}}{\orbital[half,angle=0]{p}}{\orbital[angle=170,half]{p}}{\orbital[angle=-150,half]{p}}(-[:-150]\orbital{s})-\orbital{s}}
- \vspace{1cm}
-\end{beispiel}
-\bspmidlength{dist}{7mm}
-\secidx*{Orbitale}\secidx*{CHEMMACROS}
-
-\newpage
-\part{\texorpdfstring{\Chemformula}{chemformula}}\label{part:chemformula}\secidx{CHEMFORMULA}
-\chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
-}
-\section{Setup}
-Alle Optionen von \chemformula gehören dem Modul \textcolor{module}{\code{chemformula}}
-an. Das bedeutet, sie können via
-\begin{beispiel}[code only]
- \chemsetup[chemformula]{<options>} oder
- \chemsetup{chemformula/<option1>,chemformula/<option2>}
-\end{beispiel}
-eingestellt werden.
-
-Sie können außerdem direkt als Option an den Befehl \cmd{ch} weitergegeben werden.
-
-\section{Das Grundprinzip}
-\chemformula hat einen Hauptbefehl.
-\begin{beschreibung}
- \Befehl{ch}[<options>]{<input>}
-\end{beschreibung}
-
-Die Verwendung wird Ihnen sehr vertraut vorkommen, wenn Ihnen \paket{mhchem}
-geläufig ist:
-\begin{beispiel}
- \ch{H2O} \\
- \ch{Sb2O3} \\
- \ch{H+} \\
- \ch{CrO4^2-} \\
- \ch{AgCl2-} \\
- \ch{[AgCl2]-} \\
- \ch{Y^{99}+} \\
- \ch{Y^{99+}} \\
- \ch{H2_{(aq)}} \\
- \ch{NO3-} \\
- \ch{(NH4)2S} \\
- \ch{^{227}_{90}Th+} \\
- $V_{\ch{H2O}}$ \\
- \ch{Ce^{IV}} \\
- \ch{KCr(SO4)2 * 12 H2O}
-\end{beispiel}
-
-Es gibt jedoch Unterschiede. Der wichtigste: \chemformula unterscheidet zwischen
-verschiedenen Input-Typen. Diese verschiedenen Typen \emph{müssen} durch Leerzeichen
-getrennt eingegeben werden:
-\begin{beschreibung}
- \Befehl{ch}{type1 type2 type3 type4}
-\end{beschreibung}
-
-Ein Leerzeichen im Input ist \emph{niemals} ein Leerzeichen im Output. Die Rolle
-des Leerzeichens gilt strikt und kann zu Fehlern oder fehlerhaften Output führen,
-wenn sie nicht beachtet wird.
-
-Ein weiterer wichtiger Unterschied: \chemformula versucht, den Mathematikmodus
-weitestgehend zu vermeiden:
-\begin{beispiel}
- \ch{A + B ->[a] C} \\
- \ce{A + B ->[a] C}
-\end{beispiel}
-
-Der erste Punkt bedeutet, dass \cmd{ch}{2H2O} als \emph{ein} Teil behandelt wird,
-in diesem Fall als Summenformel.
-\begin{beispiel}
- \ch{2H2O} \\
- \ch{2 H2O}
-\end{beispiel}
-Das bedeutet außerdem, dass ein Teil kein Leerzeichen enthalten kann, da ein
-Leerzeichen ihn automatisch in zwei Teile teilen würde. Wenn Sie ein Leerzeichen
-im Output benötigen, müssen sie ein \lstinline+~+ eingeben. Da die meisten Makros
-ein folgendes Leerzeichen schlucken, wird jedoch ein Input wie \cmd{ch}{\textbackslash
-command ABC} als einzelner Teil behandelt. Wenn Sie einen solchen Input teilen wollen,
-müssen Sie eine leere Gruppe eingeben: \cmd{ch}{\textbackslash command\{\} ABC}.
-Die verschiedenen Input-Typen werden in den folgenden Abschnitten einzeln behandelt.
-
-Der \cmd{ch}-Befehl hat einige Optionen, mit denen der Output verändert werden kann.
-Sie können entweder lokal als optionales Argument oder global mit dem Befehl
-\begin{beschreibung}
- \Befehl{chemsetup}[chemformula]{<options>}
-\end{beschreibung}
-gesetzt werden. Alle Optionen von \chemformula gehören dem Modul
-\textcolor{module}{\code{chemformula}} an.
-
-\section{Stöchiometrische Faktoren}\secidx{Stöchiometrische Faktoren}[Stoechiometrische Faktoren]
-Ein stöchiometrischer Faktor darf nur aus Ziffern und den Zeichen \lstinline+.,_/()+
-bestehen.
-\begin{beispiel}
- \ch{2} \\
- \ch{12}
-
- % decimals:
- \ch{.5} \\
- \ch{5,75}
-
- % fractions:
- \ch{3/2} \\
- \ch{1_1/2}
-
- % ``iupac'':
- \ch{(1/2)}
-\end{beispiel}
-
-Wie Sie sehen können, wird bei Dezimalbrüchen eine führende Null ergänzt, wenn
-sie in der Eingabe fehlt.
-
-Sie müssen bei dem Input ein wenig auf die richtige Syntax achten, aber ich denke,
-sie ist recht intuitiv.
-\begin{beispiel}[code only]
- das wird nicht funktionieren sondern einen Fehler geben: \ch{1/1_1}
-\end{beispiel}
-
-Wenn die stöchiometrischen Faktoren in Klammern geschrieben werden, werden die Brüche
-nicht umgewandelt und führende Nullen nicht ergänzt. Was in den Klammern steht,
-wird genauso geschrieben.
-\begin{beispiel}
- \ch{(1/2) H2O} \ch{1/2 H2O} \ch{0.5 H2O}
-\end{beispiel}
-Viele Beispiele wie das folgende für die Verwendung von Klammern um stöchiometrische
-Faktoren finden Sie \zB im „\ac{iupac} Green Book“ \cite{iupac:greenbook}:
-\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*}
-
-Der Output kann mit diesen Optionen angepasst werden:
-\begin{beschreibung}
- \option{decimal-marker}{<marker>} Das Symbol, das als Dezimalzeichen verwendet
- wird. Default = \code{.}
- \option{frac-style}{math|xfrac|nicefrac} Bestimmt, wie Brüche dargestellt werden.
- Default = \code{math}
- \option{stoich-space}{<skip>} Der Leerraum nach einem stöchiometrischen Faktor.
- Eine elastische Länge. Default = \code{.1667em plus .0333em minus .0117em}
- \option{stoich-paren-parse}{\default{true}|false} Wenn die Option auf
- \code{true} gesetzt ist, werden auch stöchiometrische Faktoren, die in Klammern
- stehen, verarbeitet, d.h. Brüche umgewandelt und führende Nullen ergänzt.
- Default = \code{false}
-\end{beschreibung}
-\begin{beispiel}
- \ch[decimal-marker={,}]{3.5} \ch[decimal-marker={$\cdot$}]{3,5}
-\end{beispiel}
-
-Die Option \key{frac-style}{xfrac} verwendet den Befehl \lstinline+\sfrac+ des
-\paket{xfrac}-Pakets. Der Output kann sehr von der gewählten Schrift abhängen.
-\secidx[xfrac]{Stöchiometrische Faktoren}[Stoechiometrische Faktoren]
-\begin{beispiel}
- \ch[frac-style=xfrac]{3/2} \ch[frac-style=xfrac]{1_1/2}
-\end{beispiel}
-
-\chemformula definiert die Instanz \lstinline=formula-text-frac=, die nach dem
-eigenen Bedarf umdefiniert werden kann. Default ist folgendes:
-\begin{beispiel}[code only]
- \DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- slash-left-kern = -.15em ,
- slash-right-kern = -.15em
- }
-\end{beispiel}
-Dieses Dokument verwendet den Font Linux Libertine~O und folgende Definition:
-\begin{beispiel}[code only]
- \DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- scale-factor = 1 ,
- denominator-bot-sep = -.2ex ,
- denominator-format = \scriptsize #1 ,
- numerator-top-sep = -.2ex ,
- numerator-format = \scriptsize #1 ,
- slash-right-kern = .05em ,
- slash-left-kern = .05em
- }
-\end{beispiel}
-
-Die Option \key{frac-style}{nicefrac} verwendet den Befehl \lstinline+\nicefrac+
-des \paket{nicefrac}-Pakets.\secidx[nicefrac]{Stöchiometrische Faktoren}[Stoechiometrische Faktoren]
-\begin{beispiel}
- \ch[frac-style=nicefrac]{3/2} \ch[frac-style=nicefrac]{1_1/2}
-\end{beispiel}
-
-Die Option \key{stoich-space} erlaubt Ihnen, den Leerraum zwischen stöchiometrischem
-Faktor und Summenformel einzustellen.\secidx[space]{Stöchiometrische Faktoren}[Stoechiometrische Faktoren]
-\begin{beispiel}
- \ch{2 H2O} \\
- \ch[stoich-space=.3em]{2 H2O}
-\end{beispiel}
-\secidx*{Stöchiometrische Faktoren}[Stoechiometrische Faktoren]
-
-\section{Summenformeln}\label{ssec:compounds}\secidx{Summenformeln}
-\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+}
-\end{beispiel}
-
-\subsection{Addukte}\secidx[Addukte]{Summenformeln}
-\chemformula hat zwei Identifier, die Addukte erzeugen.
-\begin{beschreibung}
- \befehl{ch}{A.B} \ch{A.B}
- \befehl{ch}{A*B} \ch{A*B}
-\end{beschreibung}
-\begin{beispiel}
- \ch{CaSO4.H2O} \\
- \ch{CaSO4*H2O}
-\end{beispiel}
-Da Ziffern in einer Summenformel immer als Tiefstellung betrachtet werden (siehe
-Abschnitt~\ref{ssec:subscripts}), müssen Sie manchmal einen Leerraum lassen, damit
-der stöchiometrische Faktor korrekt erkannt wird:
-\begin{beispiel}
- \ch{Na3PO4*12H2O} \\
- \ch{Na3PO4* 12 H2O} \\
- \ch{Na3PO4 * 12 H2O}
-\end{beispiel}
-
-\subsection{Tiefstellungen}\label{ssec:subscripts}\secidx[Tiefstellungen]{Summenformeln}
-\emph{Alle} Ziffern in einer Substanz werden als Tiefstellung behandelt.
-\begin{beispiel}
- \ch{H2SO4}
-\end{beispiel}
-Wenn Sie einen Buchstaben als Tiefstellung möchten, verwenden Sie die Mathematik-Syntax:
-\begin{beispiel}
- \ch{A_nB_m}
-\end{beispiel}
-
-Die Tiefstellung erkennt Gruppen. Sie können darin auch Mathematikmodus verwenden.
-\begin{beispiel}
- \ch{A_{$n$}B_{$m$}} \\
- \ch{NaCl_{(aq)}}
-\end{beispiel}
-
-\subsection{Befehle}\secidx[Befehle]{Summenformeln}
-Befehle sind in einer Summenformel erlaubt:
-\begin{beispiel}
- \ch{\textbf{A2}B3} \ch{A2\color{red}B3}
-\end{beispiel}
-Wenn jedoch ein Befehl eine Ziffer als Argument benötigt, wie \zB Leerraum-Befehle
-oder der \lstinline+\ox+-Befehl, wird die direkte Verwendung schiefgehen. Das liegt
-daran, dass die Ziffern als Tiefstellung behandelt werden, \emph{bevor} der Befehl
-expandiert.
-\begin{beispiel}[code only]
- \ch{A\hspace{2mm}B} wird einen Fehler geben, da \hspace in etwa so etwas sieht: \hspace{$_2$mm}.
-\end{beispiel}
-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 \code{+} noch \code{-} als Bindungen interpretiert. Wenn sich
-ein Punkt \code{.} in einer Hochstellung befindet, zeigt er kein Addukt an sondern
-ein Radikal. Ein \code{*} gibt den angeregten Zustand.
-\begin{beispiel}
- \ch{A^{x-}} \\
- \ch{A^x-} \\
- \ch{A^{x}-} \\
- \ch{A^{$x-$}} \\
- \ch{RNO2^{-.}} \\
- \ch{^31H} \\
- \ch{^{14}6C} \\
- \ch{^{58}_{26}Fe} \\
- \ch{NO^*}
-\end{beispiel}
-
-Ionen und Ionenverbindungen mit mehr als einer Ladung werden genauso eingegeben:
-\begin{beispiel}
- \ch{SO4^2-} \ch{Ca^2+ SO4^2-}
-\end{beispiel}
-
-\paragraph{Ladungsbefehle}\secidx[Hochstellungen!Ladungsbefehle]{Summenformeln}
-Man benötigt kein \cmd{mch} und ähnliche Befehle innerhalb von \cmd{ch}. Tatsächlich
-\emph{sollte man sie vermeiden}, da sie die Ausrichtung der Hoch- und Tiefstellungen
-durcheinander bringen können. Die \chemmacros-Option \code{circled} wird von \cmd{ch}
-beachtet.
-\begin{beispiel}
- \chemsetup[option]{circled=all}
- \ch{H+ + OH- <=> H2O}
-\end{beispiel}
-
-\paragraph{Verhalten}\secidx[Hochstellungen!Verhalten]{Summenformeln}
-Die Hochstellungen verhalten sich unterschiedlich abhängig von ihrer Position in
-einer Summenformel, falls Hoch- und Tiefstellung direkt aufeinander folgen.
-\begin{beispiel}
- \ch{^33B} \ch{{}^33B} \ch{3^3B} \ch{B^3} \ch{B3^3} \\
- \ch{^{23}_{123}B} \ch{{}^{23}_{123}B} \ch{_{123}^{23}B} \ch{B^{23}} \ch{B_{123}^{23}} \\
- \ch{^{123}_{23}B} \ch{{}^{123}_{23}B} \ch{_{23}^{123}B} \ch{B^{123}} \ch{B23^{123}}
-\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{desc:charge-hshift}f.
-\end{itemize}
-
-Der zweite Punkt folgt der \ac{iupac}-Empfehlung:
-\begin{zitat}[{\ac{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{zitat}
-
-\subsection{Bindungen}\label{ssec:bonds}\secidx[Bindungen]{Summenformeln}
-\subsubsection{Natürliche Bindungen}
-\chemformula kennt drei Sorten Bindungen, die ich \enquote{natürliche Bindungen}
-nennen werde:
-\begin{beispiel}
- einfach: \ch{CH3-CH3} \\
- doppel: \ch{CH2=CH2} \\
- dreifach: \ch{CH+CH}
-\end{beispiel}
-
-\subsubsection{Flexible Bindungen}
-\paragraph{Predefined Bindungen}
-Zusätzlich zu den drei natürlichen Bindungen gibt es ein paar weitere, die mit
-folgendem Befehl aufgerufen werden können:
-\begin{beschreibung}
- \Befehl{bond}{<bond name>}
-\end{beschreibung}
-Die vordefinierten Bindungstypen sind in Tabelle~\ref{tab:bond_types} aufgeführt.
-
-\begin{table}
- \centering
- \caption{Bindungen, die mit \protect\cmd{bond} aufgerufen werden können.}
- \label{tab:bond_types}
- \begin{tabular}{lcl}
- \toprule
- \bfseries Name & \bfseries Aussehen & \bfseries Aliase \\
- \midrule
- \code{single} & \bond{single} & \code{normal}, \code{sb} \\
- \code{double} & \bond{double} & \code{db} \\
- \code{triple} & \bond{triple} & \code{tp} \\
- \code{dotted} & \bond{dotted} & \code{semisingle} \\
- \code{deloc} & \bond{deloc} & \code{semidouble} \\
- \code{tdeloc} & \bond{tdeloc} & \code{semitriple} \\
- \code{co>} & \bond{co>} & \code{coordright} \\
- \code{<co} & \bond{<co} & \code{coordleft} \\
- \bottomrule
- \end{tabular}
-\end{table}
-
-\begin{beispiel}
- \ch{C\bond{sb}C\bond{db}C\bond{tp}C\bond{deloc}C\bond{tdeloc}C\bond{co>}C\bond{<co}C}
-\end{beispiel}
-
-\paragraph{Eigene Bindungen}
-\chemformula stellt Befehle bereit, mit denen eigene Bindungen definiert werden
-können:
-\begin{beschreibung}
- \Befehl{DeclareChemBond}{<name>}\ma{<code>}
- \Befehl{RenewChemBond}{<name>}\ma{<code>}
- \Befehl{DeclareChemBondAlias}{<new name>}\ma{<old name>}
- \Befehl{ShowChemBond}{<name>}
-\end{beschreibung}
-Die Verwendung wird am ehesten durch ein Beispiel beschrieben. Schauen Sie zunächst,
-wie die \code{single} und die \code{co>} Bindung definiert sind:
-\begin{beispiel}[code only]
- \DeclareChemBond{single}
- { \draw[chembond] (chemformula-bond-start) -- (chemformula-bond-end) ; }
- \DeclareChemBond{coordright}
- { \draw[chembond,butt cap->] (chemformula-bond-start) -- (chemformula-bond-end) ; }
- \DeclareChemBondAlias{co>}{coordright}
-\end{beispiel}
-Hier sind zwei Dinge wichtig: die Namen der Anfangs- und der Endkoordinaten,
-\code{chemformula-bond-start} und \code{chemformula-bond-end}, und der \TikZ-Stil
-der Bindungen \code{chembond}.
-
-Sagen wir, Sie wollen eine bestimmte Art von gestrichelter Bindung definieren.
-Sie könnten folgendes tun:
-\begin{beispiel}
- \usetikzlibrary{decorations.pathreplacing}
- \makeatletter
- \DeclareChemBond{dashed}
- {
- \draw[
- chembond,
- decorate,
- decoration={ticks,segment length=\chemformula@bondlength/10,amplitude=1.5pt}]
- (chemformula-bond-start) -- (chemformula-bond-end) ;
- }
- \makeatother
- \chemsetup[chemformula]{bond-length=2ex}
- \ch{C\bond{dashed}C}
-\end{beispiel}
-
-Dieses Beispiel zeigte Ihnen ein weiteres Makro: \makeatletter\cmd{chemformula@bondlength}\makeatother.
-Es existiert nur, damit Sie die Länge der Bindung, wie sie mit \key{bond-length}
-festgelegt wird, direkt verwenden können.% (siehe auch Seite~\pageref{key:bond-length}).
-
-\subsection{Anpassung}\secidx[Anpassung]{Summenformeln}\label{ssec:compounds:customization}
-Diese Optionen ermöglichen Ihnen, den Output anzupassen:
-\begin{beschreibung}
- \option{subscript-vshift}{<dim>} Extra vertikale Verschiebung der Tiefstellungen.
- Default = \code{0pt}
- \option{subscript-style}{text|math} Stil, der für die Tiefstellungen verwendet
- wird. Default = \code{text}
- \option{charge-hshift}{<dim>} Verschiebung von Hochstellungen, wenn sie einer
- Tiefstellung folgen. Default = \code{.25em}\label{desc:charge-hshift}
- \option{charge-style}{text|math} Stil, der für Hochstellungen verwendet wird.
- Default = \code{text}
- \option{adduct-space}{<dim>} Leerraum links und rechts des Addukt-Punktes.
- Default = \code{.1333em}
- \option{bond-length}{<dim>} Die Länge der Bindungen. Default = \code{.5833em}
- \option{bond-offset}{<dim>} Der Abstand zwischen Atom und Bindung. Default =
- \code{.07em}
- \option{bond-style}{<tikz>} \TikZ-Optionen für die Bindungen. Zunächst
- undefiniert.
- \option{radical-style}{<tikz>} \TikZ-Optionen für den Radikalpunkt. Zunächst
- undefiniert.
- \option{radical-radius}{<dim>} Der Radius des Radikalpunktes. Default =
- \code{.2ex}
- \option{radical-hshift}{<dim>} Horizontaler Leerraum vor dem Radikalpunkt.
- Default = \code{.15em}
- \option{radical-vshift}{<dim>} Vertikale Position des Radikalpunktes relativ zur
- aktuellen Grundlinie. Default = \code{.5ex}
- \option{radical-space}{<dim>} Horizontaler Leerraum nach dem Radikalpunkt.
- Default = \code{.15em}
-\end{beschreibung}
-
-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}, was der
-\ac{iupac}-Empfehlung entspricht \cite[][p.\,51]{iupac:greenbook}. Den Betrag der
-Verschiebung kann man mit der Option \key{charge-hshift} festlegen.
-\begin{beispiel}
- \ch{SO4^2-} \ch{NH4+} \ch{Na+} \\
- \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}
-
-Ungeachtet der \ac{iupac}-Empfehlung erstellt \chemformula keine voll gestaffelten
-Hochstellungen in der Voreinstellung, da ich die in manchen Fällen schwer zu lesen
-und in anderen Fällen hässlich finde. Da das aber eine subjektive Empfindung ist,
-gibt Ihnen \chemformula nicht nur die Möglichkeit, einen absoluten Wert für die
-Verschiebung festzulegen, sondern stellt auch eine Möglichkeit für voll gestaffelte
-Hochstellungen bereit. Dafür verwenden Sie \key{charge-hshift}{full}.
-\begin{beispiel}
- \ch[charge-hshift=0pt]{C5H11+} \ch[charge-hshift=0pt]{SO4^2-} \\
- \ch{C5H11+} \ch{SO4^2-} \\
- \ch[charge-hshift=1ex]{C5H11+} \ch[charge-hshift=1ex]{SO4^2-} \\
- \ch[charge-hshift=full]{C5H11+} \ch[charge-hshift=full]{SO4^2-}
-\end{beispiel}
-
-Wenn Sie nicht wollen, dass die Ladungen im Textmodus gesetzt werden, können Sie
-zum Mathematikmodus schalten:
-\begin{beispiel}
- \ch{M^x+} \ch{SO4^2-} \\
- \chemsetup[chemformula]{charge-style = math}
- \ch{M^x+} \ch{SO4^2-}
-\end{beispiel}
-
-Die Option \key{subscript-vshift} kann verwendet werden, um die vertikale Verschiebung
-der Tiefstellungen anzupassen.\secidx[Tiefstellungen!Verschiebung]{Summenformeln}
-\begin{beispiel}
- \ch{H2SO4} \ch{Na3PO4} \\
- \chemsetup[chemformula]{subscript-vshift=.5ex}
- \ch{H2SO4} \ch{Na3PO4} \\
- \chemsetup[chemformula]{subscript-vshift=-.2ex}
- \ch{H2SO4} \ch{Na3PO4}
-\end{beispiel}
-
-Sie können außerdem wählen, in welchem Modus die Tiefstellungen gesetzt werden:
-\begin{beispiel}
- \ch{A_nB_m} \ch{H2SO4} \\
- \chemsetup[chemformula]{subscript-style = math}
- \ch{A_nB_m} \ch{H2SO4}
-\end{beispiel}
-
-Mit der Option \key{adduct-space} kann der Leerraum links und rechts des
-Addukt-Zeichens festgesetzt werden.
-\begin{beispiel}
- \ch{Na3PO3*H2O} \\
- \chemsetup[chemformula]{adduct-space=.2em}
- \ch{Na3PO3*H2O}
-\end{beispiel}
-
-Die Länge der Bindungen ändern:\secidx[Bindungen!Laenge@Länge]{Summenformeln}
-\begin{beispiel}
- \chemsetup[chemformula]{bond-length=4mm}%
- single: \ch{CH3-CH3} \\
- double: \ch{CH2=CH2} \\
- triple: \ch{CH+CH}
-\end{beispiel}
-
-Sie können ebenfalls den Abstand zwischen Atom und Bindung einstellen:
-\begin{beispiel}
- \ch{H-H + N+N + O=O} \\
- \ch[bond-offset=1pt]{H-H + N+N + O=O}
-\end{beispiel}
-\secidx*{Summenformeln}
-
-\section{Spezielle Input-Typen}\secidx{Spezielle Input-Typen}
-Es gibt einige \enquote{spezielle Input-Typen}.
-
-\subsection{Single-Token Input}\secidx[Single-Token Input]{Spezielle Input-Typen}
-Die erste Sorte besteht nur aus einem Token, nämlich einem der folgenden:
-\begin{beschreibung}
- \befehl{ch}{ + } \ch{+} Erstellt ein Plus-Zeichen zwischen Formeln mit Leerraum
- links und rechts:\\
- \cmd{ch}{2 Na + Cl2} \ch{2 Na + Cl2}
- \befehl{ch}{ v } \ch{v} Zeichen für eine Fällung/Niederschlag: \cmd{ch}{BaSO4 v} \ch{BaSO4 v}
- \befehl{ch}{ \lstinline+^+ } \ch{^} Zeichen für entweichendes Gas: \cmd{ch}{\lstinline=H2 ^=} \ch{H2 ^}
-\end{beschreibung}
-
-Der Leerraum links und rechts des Plus kann mit einer Option angepasst werden:
-\begin{beschreibung}
- \option{plus-space}{<skip>} Eine elastische Länge. Default =
- \code{.3em plus .1em minus .1em}
-\end{beschreibung}
-\begin{beispiel}
- \ch{A + B}\\
- \ch[plus-space=4pt]{A + B}
-\end{beispiel}
-
-\subsection{Optionen Input}\secidx[Optionen Input]{Spezielle Input-Typen}
-Manchmal möchte man eine Option nur auf einen Teil einer, sagen wir, Reaktion
-anwenden. Natürlich können Sie \cmd{ch} mehrmals verwenden.
-\begin{beispiel}
- \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-}
-\end{beispiel}
-Das unterbricht allerdings die Eingabe im Quelltext und \emph{könnte} die Abstände
-beeinflussen. Deshalb gibt es eine Alternative:
-\begin{beschreibung}\makeatletter
- \befehl{ch}{ @\{<options>\} } Die angegebenen Optionen sind \emph{nur} aktiv bis
- nach der \emph{nächsten} Summenformel.
-\end{beschreibung}
-\begin{beispiel}
- \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O + @{format=\color{red}} H2SO4 -> H3O+ + HSO4-} \\
- oder nat\"urlich:\\
- \ch{H2O + \textcolor{red}{H2SO4} -> H3O+ + HSO4-}\\[1em]
- \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O + @{subscript-vshift=2pt} H2SO4 -> H3O+ + HSO4-}
-\end{beispiel}
-\achtung{Das ist ein experimentelles Feature und mag in zukünftigen Versionen
-fallen gelassen werden.}
-\secidx*{Spezielle Input-Typen}
-
-\section{Geschützter Input}\secidx{Geschützter Input}[Geschuetzter Input]
-In manchen Fällen kann es wünschenswert sein, \chemformula davon abzuhalten, den
-Input zu verarbeiten. Es gibt zwei Möglichkeiten, das zu tun.
-
-\subsection{Text}\label{ssec:text}\secidx[text]{Geschützter Input}[Geschuetzter Input]
-Wenn Sie etwas zwischen \lstinline+" "+ oder \lstinline+' '+ setzen, dann wird der
-Input als normaler Text behandelt, abgesehen davon, das Leerzeichen nicht erlaubt
-sind und mit \lstinline+~+ eingegeben werden müssen.
-\begin{beschreibung}
- \Befehl{ch}{ "<escaped text>" }
- \Befehl{ch}{ '<escaped text>' }
-\end{beschreibung}
-\begin{beispiel}
- \ch{"\ox{2,Ca}" O} \\
- \ch{"\ldots\," Na + "\ldots\," Cl2 -> "\ldots\," NaCl} \\
- \ch{'A~->~B'}
-\end{beispiel}
-In vielen Fällen wird das nicht nötig sein. Aber wenn Sie Schwierigkeiten haben,
-einen Befehl innerhalb von \cmd{ch} zu verwenden, versuchen Sie die geschützte
-Methode.
-
-\subsection{Mathematik}\secidx[math]{Geschützter Input}[Geschuetzter Input]
-Wenn Sie speziell Mathematik-Input haben, setzen Sie ihn einfach zwischen
-\lstinline+$ $+. Der Output unterscheidet sich vom geschützten Text (abgesehen
-von Mathe-Layout) darin, dass ihm ein Leerraum folgt. Der Grund dafür ist, dass
-ich davon ausgehe, das Mathe-Eingabe vor allem an Stelle von stöchiometrischen
-Faktoren eingesetzt wird.
-\begin{beschreibung}
- \Befehl{ch}{ \string$<escaped math>\string$ }
- \Befehl{ch}{ \string\(<escaped math>\string\) }
-\end{beschreibung}
-\begin{beispiel}
- escaped text: \ch{"$x$" H2O} \\
- escaped math: \ch{$x$ H2O} \\
- also escaped math: \ch{\(x\) H2O} \\
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl}
-\end{beispiel}
-
-Der Leerraum, der nach dem geschützen Mathe-Input ausgegeben wird, kann angepasst
-werden.
-\begin{beschreibung}
- \option{math-space}{<skip>} Eine elastische Länge. Default =
- \code{.1667em plus .0333em minus .0117em}
-\end{beschreibung}
-\begin{beispiel}
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
- \chemsetup[chemformula]{math-space=.25em}
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
- \ch{$A->B$}
-\end{beispiel}
-\secidx*{Geschützter Input}[Geschuetzter Input]
-
-\section{Pfeile}\label{sec:arrows}\secidx{Pfeile}
-\subsection{Pfeiltypen}\secidx[Typen]{Pfeile}
-Pfeile werden auf die gleiche intuitive Weise eingegeben wie bei \paket{mhchem}.
-Es gibt eine Reihe verschiedener Typen:
-\begin{beschreibung}
- \befehl{ch}{ -> } \ch{->} Standardpfeil nach rechts
- \befehl{ch}{ <- } \ch{<-} Standardpfeil nach links
- \befehl{ch}{ -/> } \ch{-/>} reagiert nicht (rechts)
- \befehl{ch}{ </- } \ch{</-} reagiert nicht (links)
- \befehl{ch}{ <-> } \ch{<->} Mesomerie-Pfeil
- \befehl{ch}{ <> } \ch{<>} Reaktion in beide Richtungen
- \befehl{ch}{ == } \ch{==} stöchiometrische Gleichung
- \befehl{ch}{ <=> } \ch{<=>} Gleichgewichts-Pfeil
- \befehl{ch}{ \lstinline+<=>>+ } \ch{<=>>} Gleichgewicht liegt rechts
- \befehl{ch}{ \lstinline+<<=>+ } \ch{<<=>} Gleichgewicht liegt links
- \befehl{ch}{ <o> } \ch{<o>} Isolobal-Pfeil
-\end{beschreibung}
-Diese Pfeile werden alle mit \TikZ gezeichnet.
-\begin{beispiel}
- \ch{H2 + Cl2 -> 2 HCl} \\
- \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}
-
-\subsection{Beschriftung}\secidx[Beschriftung]{Pfeile}
-Die Pfeile haben zwei optionale Argumente für Beschriftungen.
-\begin{beschreibung}
- \Befehl{ch}{ ->[<above>][<below>] }
-\end{beschreibung}
-\begin{beispiel}
- \ch{A ->[a] B} \\
- \ch{A ->[a][b] B} \\
- \ch{A ->[\SI{100}{\celsius}] B}
-\end{beispiel}
-Der Beschriftungstext kann unabhängig vom Pfeil verarbeitet werden. Das Rezept
-ist einfach: verwenden Sie Leerzeichen.
-\begin{beispiel}
- \ch{A ->[H2O] B} \\
- \ch{A ->[ H2O ] B} \\
- \ch{A ->[ "\ox{2,Ca}" F2 ] B} \\
- \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 \enquote{wachsen} die Pfeile mit der Länge der Beschriftungen.
-Konstant bleibt der überstehende Teil. Im letzten Beispiel können Sie außerdem
-sehen, dass eckige Klammern in den Pfeilargumenten durch \cmd{[} und \cmd{]}
-erstellt werden sollten. Außerhalb von \cmd{ch} behalten Sie natürlich ihre
-übliche Bedeutung. Diese Befehle sind nötig da die sonst übliche Methode (Verstecken
-der Klammern in geschweiften Klammern) aufgrund der Art, wie \cmd{ch} sein Argument
-liest, nicht funktioniert.
-\begin{beispiel}
- \ch{A ->[a] B} \\
- \ch{A ->[ab] B} \\
- \ch{A ->[abc] B} \\
- \ch{A ->[abc~abc] B} \\
- % needs the `chemfig' package:
- \setatomsep{15pt}
- \ch{A ->[ "\chemfig{-[:30]-[:-30]OH}" ] B} \\
- \ch{A ->[[]] B} vs. \ch{A ->[\[\]] B}
-\end{beispiel}
-
-\subsection{Anpassung}\secidx[Anpassung]{Pfeile}
-Mit folgenden Optionen können Sie das Erscheinungsbild der Pfeile anpassen:
-\begin{beschreibung}
- \option{arrow-offset}{<dim>} Die Länge, die ein Pfeil links und rechts über die
- Beschriftung hinausragt. Die Länge eines leeren Pfeils beträgt zwei mal
- \code{arrow-offset}. Eine \TeX-Länge. Default = \code{.75em}
- \option{arrow-min-length}{<dim>} Die minimale Länge, die ein Pfeil hat, wenn
- zwei mal \key{arrow-offset} plus die Breite der Beschriftung nicht größer ist.
- Default = \code{0pt}
- \option{arrow-yshift}{<dim>} Verschiebt einen Pfeil nach oben (positiver Wert)
- oder nach unten (negativer Wert). Eine \TeX-Länge. Default = \code{0pt}
- \option{arrow-ratio}{<factor>} Das Verhältnis der Pfeillängen der ver unbalancierten
- Gleichgewichtspfeile. \code{.4} würde bedeuten, dass der kürzere Pfeil $0.4$
- mal so lang ist, wie der längere Pfeil. Default = \code{.6}
- \option{compound-sep}{<dim>} Der Leerraum zwischen Formeln und Pfeilen. Eine
- \TeX-Länge. Default = \code{.5em}
- \option{label-offset}{<dim>} Der Leerraum zwischen Pfeilen und ihrer Beschriftung.
- Eine \TeX-Länge. Default = \code{2pt}
- \option{label-style}{<font command>} Die relative Schriftgröße der Beschriftung.
- Default = \lstinline+\footnotesize+
-\end{beschreibung}
-
-Der folgende Code zeigt die Effekte der verschiedenen Optionen auf den
-\lstinline+<=>>+ Pfeil:
-\begin{beispiel}
- Standard: \ch{A <=>>[x][y] B} \\
- l\"anger: \ch[arrow-offset=12pt]{A <=>>[x][y] B} \\
- h\"oher: \ch[arrow-yshift=2pt]{A <=>>[x][y] B} \\
- ausbalancierter: \ch[arrow-ratio=.8]{A <=>>[x][y] B} \\
- Bschriftung weiter weg: \ch[label-offset=4pt]{A <=>>[x][y] B} \\
- gr\"o\ss erer Abstand zu Formeln: \ch[compound-sep=2ex]{A <=>>[x][y] B} \\
- kleinere Beschriftungen: \ch[label-style=\tiny]{A <=>[x][y] B}
-\end{beispiel}
-
-\subsection{Pfeiltypen bearbeiten}\label{sec:arrows_modify}\secidx[Typen!bearbeiten]{Pfeile}
-Die Pfeile wurden mit dem Befehl
-\begin{beschreibung}
- \Befehl{DeclareChemArrow}{<tokens>}\ma{<tikz>}
-\end{beschreibung}
-definiert. \ma{<tokens>} sind die Zeichen, die ersetzt werden mit dem tatsächlichen
-Pfeilcode. Der Hauptpfeil wurde \zB via
-\begin{beispiel}[code only]
- \DeclareChemArrow{->}{\draw[-cf] (cf_arrow_start) -- (cf_arrow_end) ;}
-\end{beispiel}
-definiert. Wenn Sie selbst Pfeile definieren wollen, benötigen Sie grundlegende
-Kenntnisse von \TikZ\footnote{Bitte lesen Sie dazu das \textsf{pgfmanual}.}.
-
-Es gibt einige vordefinierte Koordinaten, die Sie verwenden können und sollten:
-\begin{description}
- \item[\code{(cf\_arrow\_start)}] Der Pfeilanfang.
- \item[\code{(cf\_arrow\_end)}] Das Pfeilende.
- \item[\code{(cf\_arrow\_mid)}] Die Pfeilmitte.
- \item[\code{(cf\_arrow\_mid\_start)}] Der Anfang des kürzeren Pfeils in Typen
- wie \lstinline+<=>>+.
- \item[\code{(cf\_arrow\_mid\_end)}] Das Ende des kürzeren Pfeils in Typen wie
- \lstinline+<=>>+.
- \item[\code{cf}, \code{left cf}, \code{right cf}] Für \chemformula definierte
- Pfeilspitzen.
-\end{description}
-\begin{beispiel}
- \DeclareChemArrow{.>}{\draw[-cf,dotted,red] (cf_arrow_start) -- (cf_arrow_end);}
- \DeclareChemArrow{n>}{\draw[-cf] (cf_arrow_start) .. controls ([yshift=3ex]cf_arrow_mid) .. (cf_arrow_end);}
- \ch{A .> B} \ch{A .>[a][b] B} \ch{A n> B}
-\end{beispiel}
-Wenn Sie einen existierenden Pfeil umdefinieren möchten, können Sie folgende zwei
-Befehle verwenden:
-\begin{beschreibung}
- \Befehl{RenewChemArrow}{<tokens>}\ma{<tikz>}
- \Befehl{ShowChemArrow}{<tokens>}
-\end{beschreibung}
-Der zweite zeigt Ihnen die bestehende Definition, der erste definiert den bestehenden
-Pfeil neu.
-\begin{beispiel}
- \texttt{\ShowChemArrow{->}} \\
- \RenewChemArrow{->}{\draw[->,red] (cf_arrow_start) -- (cf_arrow_end) ;}
- \texttt{\ShowChemArrow{->}} \\
- \ch{A -> B}
-\end{beispiel}
-\secidx*{Pfeile}
-
-\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.
-\begin{beschreibung}
- \Befehl{ch}{ !(<name>)( <formula> ) }
-\end{beschreibung}
-Wenn ein Ausrufezeichen von einem Paar von Klammern gefolgt wird, macht \chemformula folgendes:
-\begin{beispiel}
- \ch{!(ethanol)( CH2CH2OH )}
-\end{beispiel}
-
-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
- \ch{!( $2n-1$ )( H2O )} \quad
- \ch{!( H2O )( H2O )} \quad
- \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.
-\begin{beispiel}
- \ch{H2O~(!)} \\
- \ch{A!{}()}
-\end{beispiel}
-
-\subsection{Anpassung}\secidx[Anpassung]{Text unter Formeln}
-\chemformula stellt zwei Optionen bereit, um den Text anzupassen:
-\begin{beschreibung}
- \option{name-format}{<commands>} Das Ausgabeformat des Textes. Das kann beliebiger
- Input sein. Default = \lstinline+\scriptsize\centering+
- \option{name-width}{<dim>|auto} Die Breite der Box, in die der Text geschrieben wird.
- \code{auto} erkennt die Breite der Beschriftung und setzt die Box auf diese Breite.
- Default = \code{auto}
-\end{beschreibung}
-\begin{beispiel}
- \ch{!(S\"aure)( H2SO4 ) -> B} \\
- \ch[name-format=\sffamily\small]{!(S\"aure)( H2SO4 ) -> B} \\
- \ch[name-format=\scriptsize N:~]{!(S\"aure)( H2SO4 ) -> B} \\
- \ch[name-width=3em,name-format=\scriptsize\raggedright]{!(S\"aure)( H2SO4 ) -> B}
-\end{beispiel}
-\secidx*{Text unter Formeln}
-
-\section{Format und Schrift}\label{sec:format}\secidx{Format und Schrift}
-Als Standardeinstellung nimmt \chemformula keine Veränderungen am Output der Formeln
-vor. Lassen Sie uns einen Nonsens-Input nehmen, der alle \chemformula-Features zeigt:
-\begin{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"}}
- \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 Aspekte der Schrift und sehen, was passiert:
-\begin{beispiel}[below]
- \sffamily Hallo \sample \\
- \ttfamily Hallo \sample \normalfont \\
- \bfseries Hallo \sample \normalfont \\
- \itshape Hallo \sample
-\end{beispiel}
-Wie Sie sehen, adaptieren die meisten Features die Einstellungen des umliegenden Fonts.
-
-Wenn Sie dieses Default-Verhalten oder das Default-Format ändern wollen, können
-Sie diese Option verwenden:
-\begin{beschreibung}
- \option{format}{<anything>} Fügt zu Beginn des \cmd{ch}-Befehls beliebigen Code
- ein.
-\end{beschreibung}
-\begin{beispiel}
- % blau und serifenlos:
- \definecolor{newblue}{rgb}{.1,.1,.5}\chemsetup[chemformula]{format=\color{newblue}\sffamily}
- \sffamily Hallo \sample \\
- \ttfamily Hallo \sample \normalfont \\
- \bfseries Hallo \sample \normalfont \\
- \itshape Hallo \sample
-\end{beispiel}
-
-Sie können ebenfalls speziell die Schriftfamilie, Schriftserie und Schriftform des
-Output setzen:
-\begin{beschreibung}
- \option{font-family}{<family>} Ändert die Schriftfamilie des Output mit:
- \lstinline+\fontfamily{<family>}\selectfont+.
- \option{font-series}{<series>} Ändert die Schriftserie des Output mit:
- \lstinline+\fontseries{<series>}\selectfont+.
- \option{font-shape}{<shape>} Ändert die Schriftform des Output mit:
- \lstinline+\fontshape{<shape>}\selectfont+.
-\end{beschreibung}
-\begin{beispiel}
- % immer fett:
- \chemsetup[chemformula]{font-series=bx}
- Hallo \sample \\
- \sffamily Hallo \sample \normalfont \\
- \chemsetup[chemformula]{font-family=lmr,font-series=m} Hallo \sample \normalfont \\
- \itshape Hallo \sample
-\end{beispiel}
-
-Wenn Sie \XeLaTeX\ oder \LuaLaTeX\ verwenden und das Paket \paket{fontspec} geladen
-haben, können Sie die Schrift von \chemformula auch damit ändern:
-\begin{beschreibung}
- \Option{font-spec}{\{<font>\}} oder mit Optionen
- \Option{font-spec}{\{[<options>]<font>\}}
-\end{beschreibung}
-\begin{beispiel}
- \chemsetup[chemformula]{font-spec={Linux Biolinum O}} \sample \\
- \chemsetup[chemformula]{font-spec={[Color=darkgray]Augie}} \sample \\
- \chemsetup[chemformula]{font-spec={Tipbrush Script}} \sample \\
- \chemsetup[chemformula]{font-spec={Latin Modern Sans}} \sample \\
- \bfseries \sample \normalfont \\
- \chemsetup[chemformula]{font-spec={Feathergraphy Decoration}} \sample
-\end{beispiel}
-\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.
-\begin{beispiel}
- \begin{align}
- \ch{
- H2O & ->[a] H2SO4 \\
- Cl2 & ->[x][y] CH4
- }
- \end{align}
- \begin{align*}
- \ch{
- RNO2 &<=>[ + e- ] RNO2^{-.} \\
- RNO2^{-.} &<=>[ + e- ] RNO2^2-
- }
- \end{align*}
-\end{beispiel}
-\secidx*{Mathematik-Umgebungen}
-
-\section{Weitere Beispiele}
-Dieser Abschnitt zeigt weitere Beispiele für die Verwendung von \chemformula, auch
-im Zusammenspiel mit \chemmacros' \code{reaction}-Umgebungen.
-
-\begin{beispiel}
- \begin{reaction}[Synthese von Alkanen]
- !(Synthesegas)( $n$ CO + $(2n+1)$ H2 ) ->[\SI{200}{\celsius}][\[CoNi\]] C_{$n$}H_{$2n+2$} + $n$ H2O
- \end{reaction}
-\end{beispiel}
-
-\begin{beispiel}
- \begin{reactions*}
- "a)" && CH4 + Cl2 &-> CH3Cl + HCl && "{\small Chlormethan/Methylchlorid}" \\
- "b)" && CH3Cl + Cl2 &-> CH2Cl2 + HCl && "{\small Dichlormethan/Methylenchlorid}" \\
- "c)" && CH2Cl2 + Cl2 &-> CHCl3 + HCl && "{\small Trichlormethan/Chloroform}" \\
- "d)" && CHCl3 + Cl2 &-> CCl4 + HCl && "{\small Tetrachlormethan/Tetrachlorkohlenstoff}"
- \end{reactions*}
-\end{beispiel}
-
-\begin{beispiel}
- \chemsetup[ox]{parse=false}\ch{"\ox{\delm,C}" -{} "\ox{\delp,M}" \qquad ( <-> "\ox{\delp,C}" -{} "\ox{\delm,Br}" )} \\
- \ch[adduct-space=0pt]{X. + .Y <=> X-Y + Bindungsenergie} \\
- \ch[name-format=\normalsize]{!(\State{H}{f}\qquad)() !(\textcolor{red}{??})( CH4\gas{} ) + !(\num{0})( 2 O2\gas{} ) -> !(\num{-94.3})( CO2\gas{} ) + !(\num{-57.9})( H2O\lqd{} ) + !(\num{-192.1})( "\State{H}" )}
-\end{beispiel}
-
-\begin{beispiel}
- \begin{reactions*}
- CH3MgBr + "\ox*{1,Cu}" X &-> "\glqq" CH3 "\ox*{1,Cu}\grqq" + MgBrX "\qquad X~$=$~Br,I,CN" \\
- 2 MeLi + CuI &-> !(Dimethylcuprat~(Gilmann-Cuprat))( Me2CuLi ) + Li
- \end{reactions*}
-\end{beispiel}
-
-\begin{beispiel}
- % needs `chemfig'
- \begin{reactions*}
- H3C-CH3 + Cl2 &->[$\Delta$][$h\nu$] H3CCH2Cl + HCl & &"\Enthalpy{-27.1}" \\
- H3C-CH3 + "\Lewis{0.,Cl}" &-> H3CCH2 "\Lewis{0.,\vphantom{H}}" + HCl & &"\Enthalpy{-5.0}" \\
- H3C-CH2 "\Lewis{0.,\vphantom{H}}" + Cl2 &-> H3CCH2Cl + "\Lewis{0.,Cl}" & &"\Enthalpy{-23.0}"
- \end{reactions*}
-\end{beispiel}
-
-Das folgende Beispiel zeigt, wie das kürzen von Formeln erreicht werden
-kann\footnote{Inspiriert durch eine Frage auf TeX.SE: \url{http://tex.stackexchange.com/q/30118/5049}}.
-\begin{beispiel}
- % needs `cancel'
- \begin{align*}
- \centering
- \ch{\cancel{HCOOH\aq} + H2O\lqd{} &<=> H3O^+\aq{} + \cancel{HCOO^-\aq}} \\
- \ch{\cancel{HCOO^-\aq} + H2O\lqd{} &<=> \cancel{HCOOH\aq} + OH^-\aq}\\[-1ex]
- \cline{1-2}
- \ch{H2O\lqd{} + H2O\lqd{} &<=> H3O^+\aq{} + OH^-\aq}
- \end{align*}
-\end{beispiel}
-\secidx*{CHEMFORMULA}
-
-\part{\texorpdfstring{\Ghsystem}{ghsystem}}\label{part:ghsystem}\secidx{GHSYSTEM}
-\section{Setup}
-Alle Optionen von \ghsystem gehören dem Modul \textcolor{module}{\code{ghsystem}}
-an. Sie können also mit
-\begin{beschreibung}
- \Befehl{chemsetup}[ghsystem]{<options>} oder
- \Befehl{chemsetup}{ghsystem/<option1>,ghsystem/<option2>}
-\end{beschreibung}
-eingestellt werden. Sie können den entsprechenden Befehlen auch lokal als optionales
-Argument mitgegeben werden.
-
-\section{Die Gefahren- (H) und Sicherheitssätze (P) aufrufen}\secidx{Gefahren- und Sicherheitssätze}[Gefahren- und Sicherheitssaetze]
-\subsection{Einfacher Aufruf}\secidx[Aufruf]{GHSYSTEM}
-Der prinzipielle Aufruf ist einfach:
-\begin{beschreibung}
- \Befehl{ghs}[<options>]{<type>}\ma{<number>}
- \Befehl[ghsa]{ghs*}[<options>]{<type>}\ma{<number>}
-\end{beschreibung}
-Es gibt drei Typen von Sätzen: \code{h}, \code{euh} und \code{p}. Das \ma{<type>}
-Argument ignoriert Groß- und Kleinschreibung.
-\begin{beispiel}
- \ghs{h}{200} \\
- \ghs{H}{224} \\
- \ghs{euh}{001} \\
- \ghs{Euh}{202} \\
- \ghs{p}{201}
-\end{beispiel}
-
-Die gesternte Version versteckt die Nummer und liefert nur den Satz. Wenn Sie den
-Satz verstecken und nur die Nummer ausgeben wollen, können Sie dises Option
-verwenden:
-\begin{beschreibung}
- \Option{hide}{\default{true}|false}
-\end{beschreibung}
-
-Außerdem gibt es eine Option, mit der der Output angepasst werden kann.
-\begin{beschreibung}
- \option{space}{<space command>} Leerraum zwischen \code{<type>} und \code{<number>}.
-\end{beschreibung}
-\begin{beispiel}
- \ghs{h}{200} \\
- \ghs[space=\,]{h}{200} \\
- \ghs*{h}{200} \\
- \ghs[hide]{h}{200}
-\end{beispiel}
-
-\subsection{Sätze mit Platzhaltern}\secidx[Platzhalter]{GHSYSTEM}
-Einige Sätze verwenden Platzhalter. Es gibt vier Stück:
-\begin{itemize}
- \item \textit{\textless Expositionsweg angeben, sofern schlüssig belegt ist, dass
- diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater}
- \item \textit{\textless konkrete Wirkung angeben, sofern bekannt\textgreater}
- \item \textit{\textless oder alle betroffenen Organe nennen, sofern bekannt\textgreater}
- \item \textit{\textless Name des sensibilisierenden Stoffes\textgreater}
-\end{itemize}
-
-Außer dem letzten, der ersetzt werden muss, sind sie in der Voreinstellung versteckt.
-Durch die Option
-\begin{beschreibung}
- \option{fill-in}{\default{true}|false} Default = \code{false}
-\end{beschreibung}
-können sie sichtbar gemacht werden.
-\begin{beispiel}[below]
- \ghs{h}{340} \\
- \ghs[fill-in]{h}{340} \\
- \ghs{h}{360} \\
- \ghs[fill-in]{h}{360} \\
- \ghs{h}{370} \\
- \ghs[fill-in]{h}{370} \\
- \ghs{euh}{208} \\
- \ghs[fill-in]{euh}{208}
-\end{beispiel}
-
-Mit folgenden Optionen können die Platzhalter ersetzt werden:
-\begin{beschreibung}
- \option{exposure}{<text>} Expositions-Platzhalter
- \option{effect}{<text>} Effekt-Platzhalter
- \option{organs}{<text>} Organ-Platzhalter
- \option{substance}{<text>} Substanz-Platzhalter
-\end{beschreibung}
-\begin{beispiel}
- \ghs[exposure=So werden Sie der Gefahr ausgesetzt.]{h}{340} \\
- \ghs[effect=Das sind die Effekte]{h}{360} \\
- \ghs[organs=dieses Organ]{h}{370} \\
- \ghs[substance=Substanz]{euh}{208}
-\end{beispiel}
-
-\subsection{Sätze mit Lücken}\secidx[Saetze mit Luecken@Sätze mit Lücken]{GHSYSTEM}
-Manche Sätze haben Lücken:
-\begin{beispiel}
- \ghs{p}{301} \\
- \ghs{p}{401} \\
- \ghs{p}{411} \\
- \ghs{p}{413}
-\end{beispiel}
-
-Mit den folgenden Optionen können diese Lücken gefüllt werden:
-\begin{beschreibung}
- \option{text}{<text>} Füllt \enquote{unsichtbare Lücke}, die einem Doppelpunkt
- folgt.
- \option{dots}{<text>} Füllt Lücke, die durch \enquote{\ldots} angezeigt wird.
- \option{C-temperature}{<num>} Füllt Celsius-Temperatur.
- \option{F-temperature}{<num>} Füllt Fahrenheit-temperatur.
- \option{kg-mass}{<num>} Füllt Kilogramm-Masse.
- \option{lbs-mass}{<num>} Füllt Pfund-Masse.
-\end{beschreibung}
-\begin{beispiel}
- \ghs[text=Arzt kontaktieren!]{p}{301} \\
- \ghs[dots=hier]{p}{401} \\
- \ghs[C-temperature=50, F-temperature=122]{p}{411} \\
- \ghs[kg-mass=5.0, lbs-mass=11, C-temperature=50, F-temperature=122]{p}{413}
-\end{beispiel}
-
-\subsection{Kombinierte Sätze}\secidx[kombinierte Saetze@kombinierte Sätze]{GHSYSTEM}
-Es existieren einige Kombinationen von Sätzen. Sie werden mit einem \code{+}
-zwischen den Nummern eingegeben:
-\begin{beispiel}[below]
- \ghs{p}{235+410} \\
- \ghs{p}{301+330+331}
-\end{beispiel}
-
-Beachten Sie, dass sie nur offizielle Kombinationen eingeben können. \emph{Sie
-können die Sätze nicht frei kombinieren}.
-\secidx*{Gefahren- und Sicherheitssätze}[Gefahren- und Sicherheitssaetze]
-
-\section{Piktogramme}\secidx{Piktogramme}
-\subsection{Die Bilder}
-Das GHS beinhaltet einige Piktogramme:
-
-\ghspic{explos} \ghspic{flame} \ghspic{flame-O} \ghspic{bottle} \ghspic{acid}
-\ghspic{skull} \ghspic{exclam} \ghspic{health} \ghspic{aqpol}
-
-Der Befehl
-\begin{beschreibung}
- \Befehl{ghspic}[<options>]{<name>}
-\end{beschreibung}
-lädt sie. Tabelle~\ref{tab:ghs_pictograms} zeigt alle Piktogramme und ihre Dateinamen.
-Genauer: sie zeigt die Namen, die beim Befehl \cmd{ghspic} verwendet werden müssen.
-Tatsächlich heißen sie \lstinline=ghsystem_<name>.<filetype>=, wobei \code{<filetype>}
-entweder \code{eps}, \code{pdf}, \code{jpg} oder \code{png} ist, siehe auch
-Abschnitt~\ref{ssec:picture_type}.
-\begin{beispiel}
- \ghspic{skull}
-\end{beispiel}
-
-Wenn Ihnen die Defaultgröße nicht gefällt, können Sie die Option
-\begin{beschreibung}
- \option{scale}{<factor>} Skaliert das Piktogramm. Default = \code{1}
-\end{beschreibung}
-verwenden. Tatsächlich sind die Bilder recht groß. Die Voreinstellung (Faktor =
-$1$) skaliert die Bilder auf ein Zwanzigstel ihrer echten Größe.
-\begin{beispiel}
- \ghspic[scale=2]{skull}
-\end{beispiel}
-
-Wenn Sie spezielle \lstinline=\includegraphics=-Optionen verwenden wollen, \zB
-das Piktogramm rotieren, verwenden Sie diese Option:
-\begin{beschreibung}
- \Option{includegraphics}{\{<includegraphics keyvals>\}}
-\end{beschreibung}
-\begin{beispiel}
- \ghspic[includegraphics={angle=90}]{skull}
-\end{beispiel}
-
-\begin{longtable}{>{\ttfamily}ll>{\ttfamily}ll}
- \caption{Alle verfügbaren GHS Piktogramme.\label{tab:ghs_pictograms}} \\
- \toprule
- \normalfont\bfseries Name & \bfseries Piktogramm & \normalfont\bfseries Name & \bfseries Piktogramm \\
- \midrule\endfirsthead
- \toprule
- \normalfont\bfseries Name & \bfseries Piktogramm & \normalfont\bfseries Name & \bfseries Piktogramm \\
- \midrule\endhead
- \bottomrule\endfoot
- explos & \ghspic{explos} & explos-1 & \ghspic{explos-1} \\
- explos-2 & \ghspic{explos-2} & explos-3 & \ghspic{explos-3} \\
- explos-4 & \ghspic{explos-4} & explos-5 & \ghspic{explos-5} \\
- explos-6 & \ghspic{explos-6} & & \\
- flame & \ghspic{flame} & flame-2-white & \ghspic{flame-2-white} \\
- flame-2-black & \ghspic{flame-2-black} & flame-3-white & \ghspic{flame-3-white} \\
- flame-3-black & \ghspic{flame-3-black} & flame-4-1 & \ghspic{flame-4-1} \\
- flame-4-2 & \ghspic{flame-4-2} & flame-4-3-white & \ghspic{flame-4-3-white} \\
- flame-4-3-black & \ghspic{flame-4-3-black} & flame-5-2-white & \ghspic{flame-5-2-white} \\
- flame-5-2-black & \ghspic{flame-5-2-black} & & \\
- flame-O & \ghspic{flame-O} & flame-O-5-1 & \ghspic{flame-O-5-1} \\
- bottle & \ghspic{bottle} & bottle-2-black & \ghspic{bottle-2-white} \\
- bottle-2-white & \ghspic{bottle-2-black} & & \\
- acid & \ghspic{acid} & acid-8 & \ghspic{acid-8} \\
- skull & \ghspic{skull} & skull-2 & \ghspic{skull-2} \\
- skull-6 & \ghspic{skull-6} & & \\
- exclam & \ghspic{exclam} & & \\
- health & \ghspic{health} & & \\
- aqpol & \ghspic{aqpol} & & \\
-\end{longtable}
-
-\subsection{Der Bildtyp hängt von der Engine ab}\label{ssec:picture_type}
-Sie wissen vermutlich, dass Sie nicht jeden Bildtyp mit jeder Compiler-Engine
-verwenden können. \pdfTeX{} im \acs{dvi}-Modus verlangt \code{eps}-Dateien,
-während \pdfTeX{} im \acs{pdf}-Modus, \XeTeX{} und \LuaTeX{} \code{eps}-Dateien
-in \code{pdf}-Dateien konvertieren, vorausgesetzt, der Anwender hat Schreibrechte
-in dem Verzeichnis, in dem die Bilder gespeichert sind.
-
-Die letztgenannten können jedoch \code{jpg}- und \code{png}-Dateien ohne Schwierigkeiten
-einbinden, während \pdfTeX{} im \acs{dvi}-Modus das nicht kann.
-
-Um das Problem zu lösen, testet \ghsystem, welche Engine verwendet wird und falls
-es \pdfTeX{} ist, in welchem Modus es verwendet wird. Dann wird entwder das
-\code{eps}- oder das \code{png}-Bild für die Piktogramme verwendet. Sie können
-den Bildtyp über die Option
-\begin{beschreibung}
- \Option{pic-type}{eps|pdf|jpg|png}
-\end{beschreibung}
-jedoch frei wählen.
-\secidx*{Piktogramme}
-
-\section{Verfügbare Sprachen}\label{sec:ghsystem_language}
-Bis jetzt sind die H- und P-Sätze nur auf deutsch, englisch und italienisch verfügbar.
-Das Paket reagiert auf die \chemmacros Option \key[option]{german}, erkennt aber
-die Spracheinstellung von \paket{babel} oder \paket{polyglossia} (noch) nicht.
-
-Sie können die Sprache auch explizit wählen.
-\begin{beschreibung}
- \Option{language}{english|german|italian}
-\end{beschreibung}
-\begin{beispiel}
- \ghs{h}{201}
-
- \chemsetup[ghsystem]{language=english}
- \ghs{h}{201}
-\end{beispiel}
-
-Ich werde in irgendwann in der Zukunft weitere Sprachen implementieren. Das kann
-aber eine Weile dauern. Wenn Sie gerne zu \ghsystem beisteuern möchten und die
-Sätze in einer anderen Sprache tippen wollen, kontaktieren Sie mich\footnote{%
-\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}} gerne. Ich stelle
-Ihnen dann eine Template-Datei, ein \acs{pdf} mit den offiziellen Übersetzungen
-sowie jede weitere Hilfe, die sie benötigen.
-
-\section{Liste aller Sätze}\secidx{Liste aller Sätze}[Liste aller Saetze]
-Wenn Sie gerne alle Sätze auf\-listen wollen, können Sie
-\begin{beschreibung}
- \Befehl{ghslistall}[<options>]
-\end{beschreibung}
-verwenden.
-
-Dieser Befehl erstellt eine Tabelle aller Sätze mit der \lstinline=longtable=-Umgebung
-des \paket{longtable} Pakets. Ihr Erscheinungsbild kann mit den folgenden Optionen
-angepasst werden.
-\begin{beschreibung}
- \option{table-head-number}{<text>} Default = \code{Nummer}
- \option{table-head-text}{<text>} Default = \code{Satz}
- \option{table-next-page}{<text>} Default = \code{weiter auf der nächsten Seite}
- \option{table-caption}{<text>} \code{<text>} in \lstinline=\caption{<text>}=.
- Default = \code{All H, EUH, and P Statements.}
- \option{table-caption-short}{<text>} \code{<short>} in
- \lstinline=\caption[<short>]{<text>}=.
- \option{table-label}{<text>} Das Label, mit dem man auf die Tabelle \lstinline=\ref=
- und ähnlichen Befehlen verweisen kann. Default = \code{tab:ghs-hp-statements}
- \option{table-row-sep}{<dim>} Abstand zwischen den Zeilen. Eine \TeX-Länge.
- Default = \code{3pt}
- \option{table-rules}{\default{default}|booktabs|none} Der Stil der horizontalen
- Linien in der Tabelle. \code{default} verwendet \lstinline=\hline=, \code{booktabs}
- verwendet \lstinline=\toprule=, \lstinline=\midrule= und \lstinline=\bottomrule=.
- Dieser Wert benötigt das \paket{booktabs} Paket, dass Sie dann einbinden müssen.
- Default = \code{default}
- \option{table-top-head-rule}{\default{default}|booktabs|none} Explizites Ändern
- der Linie. Default = \code{default}
- \option{table-head-rule}{\default{default}|booktabs|none} Explizites Ändern der
- Linie. Default = \code{default}
- \option{table-foot-rule}{\default{default}|booktabs|none} Explizites Ändern der
- Linie. Default = \code{default}
- \option{table-last-foot-rule}{\default{default}|booktabs|none} Explizites Ändern
- der Linie. Default = \code{default}
-\end{beschreibung}
-
-Der folgende Code zeigt, wie Tabelle~\ref{tab:ghs-hp-statements} erzeugt wurde:
-\begin{beispiel}[code only]
- \ghslistall[fill-in,table-rules=booktabs]
-\end{beispiel}
-
-\ghslistall[fill-in,table-rules=booktabs]
-\secidx*{Liste aller Sätze}[Liste aller Saetze]\secidx*{GHSYSTEM}
-
-\appendix
-\part{Anhang}\index{ANHANG@\textbf{ANHANG}}
-\addsec{Übersicht über die Optionen und Anpassungsmöglichkeiten}\label{sec:overview}\secidx{Übersicht über die Optionen (chemmacros)}[Uebersicht ueber die Optionen]
-\minisec{Optionen}
-In der folgenden Tabelle werden alle Optionen aufgelistet, die \chemmacros bietet.
-Alle Optionen, die einem Modul angehören, können mit
-\begin{beschreibung}
- \Befehl{chemsetup}[<module>]{<options>} oder
- \Befehl{chemsetup}{<module>/<options>} gesetzt werden.
-\end{beschreibung}
-Manche Optionen können ohne Wert verwendet werden. Dann wird der \default{unterstrichene}
-Wert verwendet. Die Optionen der Module \code{\textcolor{module}{chemformula}} und
-\code{\textcolor{module}{ghssystem}} werden hier nicht extra aufgelistet.
-\small
-\begin{longtable}{>{\ttfamily\color{key}\hspace{5mm}}l>{\ttfamily\color{module}}l>{\ttfamily}l>{\ttfamily}ll}
- \toprule
- \normalfont\normalcolor\bfseries Option &
- \normalfont\normalcolor\bfseries Modul &
- \normalfont\bfseries Werte &
- \normalfont\bfseries Default & \\
- \midrule
- \endhead
- \bottomrule
- \endfoot
- \multicolumn{5}{l}{Paketoptionen:} \\
- bpchem & option & \default{true}|false & false & Seite~\pageref{key:option_bpchem} \\
- circled & option & formal|\default{all}|none & formal & Seite~\pageref{key:option_circled} \\
- circletype & option & chem|math & chem & Seite~\pageref{key:option_circletype} \\
- cmversion & option & 1|2|bundle & bundle & Seite~\pageref{key:option_cmversion} \\
- ghsystem & option & \default{true}|false & true & Seite~\pageref{key:option_ghsystem} \\
- iupac & option & auto|restricted|strict & auto & Seite~\pageref{key:option_iupac} \\
- language & option & <language> & english & Seite~\pageref{key:option_language} \\
- method & option & chemformula|mhchem & chemformula & Seite~\pageref{key:option_method} \\
- Nu & option & chemmacros|mathspec & chemmacros & Seite~\pageref{key:option_Nu} \\
- strict & option & \default{true}|false & false & Seite~\pageref{key:option_strict} \\
- synchronize & option & \default{true}|false & false & Seite~\pageref{key:option_synchronize} \\
- greek & option & math|textgreek|\default{upgreek} & upgreek & Seite~\pageref{key:option_greek} \\
- xspace & option & \default{true}|false & true & Seite~\pageref{key:option_xspace} \\
- \multicolumn{5}{l}{\cmd{ba}, \cmd{Nu}:} \\
- elpair & particle & \default{dots}|dash/false & false & Seite~\pageref{key:particle_elpair} \\
- \multicolumn{5}{l}{IUPAC-Befehle:} \\
- break-space & iupac & <dim> & .01em & Seite~\pageref{key:iupac_break-space} \\
- bridge-number & iupac & sub|super & sub & Seite~\pageref{key:iupac_bridge-number} \\
- cip-kern & iupac & <dim> & .075em & Seite~\pageref{key:iupac_cip-kern} \\
- coord-use-hyphen & iupac & \default{true}|false & true & Seite~\pageref{key:iupac_coord-use-hyphen} \\
- hyphen-pre-space & iupac & <dim> & .01em & Seite~\pageref{key:iupac_hyphen-pre-space} \\
- hyphen-post-space & iupac & <dim> & -.03em & Seite~\pageref{key:iupac_hyphen-post-space} \\
- \multicolumn{5}{l}{\cmd{DeclareChemLatin}:} \\
- format & latin & <anything> & \lstinline=\itshape= & Seite~\pageref{key:latin_format} \\
- \multicolumn{5}{l}{\cmd{pch}, \cmd{mch}, \cmd{fpch}, \cmd{fmch}:} \\
- append & charges & \default{true}|false & false & Seite~\pageref{key:charges_append} \\
- \multicolumn{5}{l}{acid/base:} \\
- p-style & acid-base & slanted|italics|upright & upright & Seite~\pageref{key:acid-base_p-style} \\
- \multicolumn{5}{l}{\cmd{ox}:} \\
- align & ox & center|right & center & Seite~\pageref{key:ox_align} \\
- parse & ox & \default{true}|false & true & Seite~\pageref{key:ox_parse} \\
- roman & ox & \default{true}|false & true & Seite~\pageref{key:ox_roman} \\
- pos & ox & top|super|side & top & Seite~\pageref{key:ox_pos} \\
- explicit-sign & ox & \default{true}|false & false & Seite~\pageref{key:ox_explicit-sign} \\
- decimal-marker & ox & comma|point & point & Seite~\pageref{key:ox_decimal-marker} \\
- \multicolumn{5}{l}{\cmd{OX}, \cmd{redox}:} \\
- dist & redox & <dim> & .6em & Seite~\pageref{key:redox_dist} \\
- sep & redox & <dim> & .2em & Seite~\pageref{key:redox_sep} \\
- \multicolumn{5}{l}{\cmd{Enthalpy}, \cmd{Entropy}, \cmd{Gibbs}:} \\
- exponent & & <anything> & \cmd{standardstate} & Seite~\pageref{key:none_exponent} \\
- delta & & <anything>/false & & Seite~\pageref{key:none_delta} \\
- subscript & & left|right & & Seite~\pageref{key:none_subscript} \\
- unit & & <unit> & & Seite~\pageref{key:none_unit} \\
- \multicolumn{5}{l}{\cmd{DeclareChemState}, \cmd{RenewChemState}:} \\
- exponent & & <anything> & \cmd{standardstate} & Seite~\pageref{key:none_exponent} \\
- delta & & <anything>|false & & Seite~\pageref{key:none_delta} \\
- subscript & & <anything> & & Seite~\pageref{key:none_subscript} \\
- subscript-left & & \default{true}|false & & Seite~\pageref{key:none_subscript-left} \\
- \multicolumn{5}{l}{\cmd{State}:} \\
- exponent & state & <anything> & \cmd{standardstate} & Seite~\pageref{key:state_exponent} \\
- delta & state & <anything>|false & & Seite~\pageref{key:state_delta} \\
- subscript-left & state & \default{true}|false & & Seite~\pageref{key:state_subscript-left} \\
- \multicolumn{5}{l}{\cmd{NMR}, \env{spectroscopy}{}:} \\
- unit & nmr & <unit> & \cmd{mega}\cmd{hertz} & Seite~\pageref{key:nmr_unit} \\
- nucleus & nmr & \{<num>,<atom symbol>\} & \{1,H\} & Seite~\pageref{key:nmr_nucleus} \\
- format & nmr & <anything> & & Seite~\pageref{key:nmr_format} \\
- pos-number & nmr & side/sub & side & Seite~\pageref{key:nmr_pos-number} \\
- coupling-unit & nmr & <unit> & \lstinline+\hertz+ & Seite~\pageref{key:nmr_coupling-unit} \\
- parse & nmr & \default{true}|false & true & Seite~\pageref{key:nmr_parse} \\
- delta & nmr & <anything> & & Seite~\pageref{key:nmr_delta} \\
- list & nmr & \default{true}|false & false & Seite~\pageref{key:nmr_list} \\
- list-setup & nmr & & siehe Text & Seite~\pageref{key:nmr_list-setup} \\
- use-equal & nmr & \default{true}|false & false & Seite~\pageref{key:nmr_use-equal} \\
- \multicolumn{5}{l}{\cmd{DeclareChemReaction}:} \\
- star & & \default{true}|false & false & Seite~\pageref{key:none_star} \\
- arg & & \default{true}|false & false & Seite~\pageref{key:none_arg} \\
- list-name & reaction & <anything> & List of reactions & Seite~\pageref{key:reaction_list-name} \\
- list-entry & reaction & <anything> & Reaction & Seite~\pageref{key:reaction_list-entry} \\
- \multicolumn{5}{l}{\cmd{mhName}:} \\
- align & mhName & <alignment> & \cmd{centering} & Seite~\pageref{key:mhName_align} \\
- 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}{phases:} \\
- 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} \\
- ring & newman & <tikz> & & Seite~\pageref{key:newman_ring} \\
- atoms & newman & <tikz> & & Seite~\pageref{key:newman_atoms} \\
- back-atoms & newman & <tikz> & & Seite~\pageref{key:newman_back-atoms} \\
- \multicolumn{5}{l}{\cmd{orbital} \ttfamily <type> = s|p|sp|sp2|sp3:} \\
- phase & orbital/<type> & +|- & + & Seite~\pageref{key:orbital_phase} \\
- scale & orbital/<type> & <factor> & 1 & Seite~\pageref{key:orbital_scale} \\
- color & orbital/<type> & <color> & black & Seite~\pageref{key:orbital_color} \\
- angle & orbital/<type> & <angle> & 90 & Seite~\pageref{key:orbital_angle} \\
- half & orbital/p & \default{true}|false & false & Seite~\pageref{key:orbital_half} \\
- overlay & orbital & \default{true}|false & false & Seite~\pageref{key:orbital_overlay} \\
- opacity & ornital & <num> & 1 & Seite~\pageref{key:orbital_opacity}
-\end{longtable}
-\normalsize
-
-\minisec{Anpassungsbefehle}
-Eine ganze Reihe von Befehlen wurde vorgestellt, mit denen die Möglichkeiten von
-\chemmacros erweitert werden können. Sie werden hier noch einmal aufgelistet.
-\begin{beschreibung}
- \befehl{DeclareChemArrow} Neuen Pfeil definieren, siehe
- Seite~\pageref{cmd:DeclareChemArrow}.
- \befehl{RenewChemArrow} Bestehende Pfeile verändern.
- \befehl{DeclareChemBond} Eine neue Bindung definieren, siehe
- Seite~\pageref{cmd:DeclareChemBond}.
- \befehl{RenewChemBond} Eine Bindung umdefinieren.
- \befehl{DeclareChemBondAlias} Ein Alias zu einer existierenden Bindung definieren.
- \befehl{DeclareChemIUPAC} Neuen IUPAC-Befehl definieren, siehe
- Seite~\pageref{cmd:DeclareChemIUPAC}.
- \befehl{RenewChemIUPAC} IUPAC-Befehl umdefinieren.
- \befehl{DeclareChemLatin} Neue lateinische Ausdrücke definieren, siehe
- Seite~\pageref{cmd:DeclareChemLatin}.
- \befehl{RenewChemLatin} Lateinische Ausdrücke umdefinieren.
- \befehl{DeclareChemNMR} Neuen NMR-Befehl definieren, siehe
- Seite~\pageref{cmd:DeclareChemNMR}.
- \befehl{RenewChemNMR} NMR-Befehl umdefinieren.
- \befehl{DeclareChemParticle} Neues Teilchen definieren, siehe
- Seite~\pageref{cmd:DeclareChemParticle}.
- \befehl{RenewChemParticle} Teilchen umdefinieren.
- \befehl{DeclareChemPhase} Neuen Phasenbefehl definieren, siehe
- Seite~\pageref{cmd:DeclareChemPhase}.
- \befehl{RenewChemPhase} Phasenbefehl umdefinieren.
- \befehl{DeclareChemReaction} Neue Reaktionsumgebung definieren, siehe
- Seite~\pageref{cmd:DeclareChemReaction}.
- \befehl{DeclareChemState} Neue Zustandsgröße definieren, siehe
- Seite~\pageref{cmd:DeclareChemState}.
- \befehl{RenewChemState} Zustandsgröße umdefinieren.
-\end{beschreibung}
-\secidx*{Übersicht über die Optionen (chemmacros)}[Uebersicht ueber die Optionen]
-
-\addsec{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 \enquote{Issue}
-auf \url{https://bitbucket.org/cgnieder/chemmacros/} melden.
-
-Vielen Dank an alle, die mir schon Feedback zukommen ließen, vor allem (in
-alphabetischer Reihenfolge):
-\begin{itemize}
- \item Peter Cao
- \item Christina Lüdigk
- \item Dr.\ Paul King
- \item Jonas Rivetti (Besonderen Dank für seine Übersetzung der H- und P-Sätze
- ins Italienische!)
- \item Christoph Schäfer
- \item Timo Stein
-\end{itemize}
-
-\printbibliography[title=Quellen]
-
-{\catcode`\^=11 \catcode`\#=11 \catcode`\|=11
-\printindex}
-
-\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf
index 9bef3059b5e..9d5ce9ef37d 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex
index 77c85e11dca..7f924875d57 100644
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex
@@ -1,7 +1,7 @@
% arara: xelatex
-% arara: biber
-% arara: xelatex
-% arara: xelatex
+% !arara: biber
+% !arara: xelatex
+% !arara: xelatex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% -----------------------------------------------------------------------------
% - the CHEMMACROS bundle
@@ -17,7 +17,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% -----------------------------------------------------------------------------
-% - Copyright 2011-2012 Clemens Niederberger
+% - Copyright 2011-2013 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
@@ -44,23 +44,33 @@
%
\documentclass[DIV11,toc=index,toc=bib]{cnpkgdoc}
\docsetup{
- pkg = chemmacros,
+ pkg = {[greek=newtx]chemmacros},
language = en,
title = the \Chemmacros\ bundle,
- subtitle = {packages \Chemmacros, \Chemformula\ and \Ghsystem},
+ subtitle = {
+ packages \Chemmacros\ (v\csname chemmacros@version\endcsname),
+ \Chemformula\ (v\csname chemformula@version\endcsname),
+ \Ghsystem\ (v\csname ghsystem@version\endcsname) and
+ \Chemgreek\ (v\csname chemgreek@version\endcsname)\\[2ex]
+ {\Large documentation for the \Chemmacros\ package}},
modules = true,
code-box = {skipabove=1ex,skipbelow=1ex},
label = {},
}
-\usepackage{chemfig,upgreek,textgreek,booktabs,cancel}
+\usepackage{chemfig,booktabs,cancel}
\usepackage[version=3]{mhchem}
-\usepackage{hologo}
-\newcommand*\pdfTeX{\hologo{pdfTeX}}
-\newcommand*\XeTeX{\hologo{XeTeX}}
-\newcommand*\LuaTeX{\hologo{LuaTeX}}
-\newcommand*\XeLaTeX{\hologo{XeLaTeX}}
-\newcommand*\LuaLaTeX{\hologo{LuaLaTeX}}
+\usepackage{fontspec}
+\usepackage[oldstyle,proportional]{libertine}
+\usepackage[libertine]{newtxmath}
+\usepackage{libertinehologopatch}
+\setmonofont[Scale=MatchLowercase]{Bitstream Vera Sans Mono}
+
+\cnpkgusecolorscheme{friendly}
+\renewcommand*\othersectionlevelsformat[3]{%
+ \textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{%
+ \textcolor{main}{\partname~\thepart\autodot}}
\usepackage{fnpct}
\usepackage[biblatex]{embrac}
@@ -69,36 +79,53 @@
\pagestyle{headings}
-\usepackage{acro}
-\acsetup{long-format=\scshape}
+\usepackage[accsupp]{acro}
+\acsetup{
+ long-format=\scshape,
+ short-format=\scshape
+}
\DeclareAcronym{ghs}{
- short = GHS ,
- long = Globally Harmonized System of Classification and Labelling of Chemicals
+ short = ghs ,
+ long = Globally Harmonized System of Classification and Labelling of
+ Chemicals ,
+ pdfstring = GHS ,
+ accsupp = GHS
}
\DeclareAcronym{eu}{
- short = EU ,
- long = European Union
+ short = EU ,
+ long = European Union ,
+ pdfstring = EU ,
+ accsupp = EU
}
\DeclareAcronym{iupac}{
- short = IUPAC ,
- long = International Union of Pure and Applied Chemistry
+ short = iupac ,
+ long = International Union of Pure and Applied Chemistry ,
+ pdfstring = IUPAC ,
+ accsupp = IUPAC
}
\DeclareAcronym{UN}{
- short = UN ,
- long = United Nations
+ short = un ,
+ long = United Nations ,
+ pdfstring = UN ,
+ accsupp = UN
}
\DeclareAcronym{dvi}{
- short = dvi ,
- long = device independent file format ,
- format = \scshape
+ short = dvi ,
+ long = device independent file format ,
+ pdfstring = DVI ,
+ accsupp = DVO
}
\DeclareAcronym{pdf}{
- short = pdf ,
- long = portable document file ,
- format = \scshape
+ short = pdf ,
+ long = portable document file ,
+ pdfstring = PDF ,
+ accsupp = PDF
}
-\chemsetup[option]{synchronize}
+\chemsetup{
+ option/synchronize ,
+ chemformula/font-spec={[Numbers=Lining]Linux Libertine O}
+}
\colorlet{chemformula}{darkgray}
\sisetup{
@@ -112,8 +139,8 @@
\begin{filecontents*}{\jobname.ist}
preamble "\\begin{theindex}\n Section titles are indicated \\textbf{bold},
packages \\textsf{sans serif}, commands \\code{\\textbackslash\\textcolor{code}{brown}},
- options \\textcolor{key}{\\code{green}} and modules (only \\chemmacros)
- \\textcolor{module}{\\code{red}}.\\newline\n\n"
+ options \\textcolor{key}{\\code{yellow}} and modules (only \\chemmacros)
+ \\textcolor{module}{\\code{blue}}.\\newline\n\n"
heading_prefix "{\\bfseries "
heading_suffix "\\hfil}\\nopagebreak\n"
headings_flag 1
@@ -177,285 +204,357 @@
slash-left-kern = .05em
}
-\newcommand*\chemformula{{\scshape\textcolor{cnpkgblue}{chemformula}}\xspace}
-\newcommand*\ghsystem{{\scshape\textcolor{cnpkgblue}{ghsystem}}\xspace}
-
-\newcommand*\Chemmacros{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}chemmacros}}
-\newcommand*\Chemformula{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}chemformula}}
-\newcommand*\Ghsystem{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}ghsystem}}
-
-\renewcommand*\AmS{\hologo{AmS}}
-% \newcommand*\pdfTeX{\hologo{pdfTeX}}
-% \renewcommand*\LuaTeX{\hologo{LuaTeX}}
+\usetikzlibrary{calc,positioning,decorations.pathmorphing,patterns}
+
+\pgfdeclaredecoration{penciline}{initial}{
+ \state{initial}[
+ width=+\pgfdecoratedinputsegmentremainingdistance,
+ auto corner on length=1mm
+ ]{
+ \pgfpathcurveto%
+ {% From
+ \pgfqpoint
+ {\pgfdecoratedinputsegmentremainingdistance}
+ {\pgfdecorationsegmentamplitude}
+ }
+ {% Control 1
+ \pgfmathrand
+ \pgfpointadd
+ {\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
+ {%
+ \pgfqpoint
+ {-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}%
+ {\pgfmathresult\pgfdecorationsegmentamplitude}
+ }
+ }
+ {%TO
+ \pgfpointadd
+ {\pgfpointdecoratedinputsegmentlast}
+ {\pgfpoint{1pt}{1pt}}
+ }
+ }
+ \state{final}{}
+}
+\tikzset{pencil/.style={decorate,decoration=penciline}}
\TitlePicture{%
- \ch[font-spec={[Color=chemformula]Augie}]{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}- }
- \redox(o1,o2)[red,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
- \redox(r1,r2)[blue,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
+ \ch[font-spec={Augie}]{
+ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2
+ ->
+ 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}-
+ }
+ \redox(o1,o2)[red,pencil,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
+ \redox(r1,r2)[blue,pencil,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
\addcmds{
- a,abinitio,AddRxnDesc,anti,aq,aqi,
- b,ba,bond,bottomrule,bridge,
- cancel,cd,cdot,ce,cee,celsius,centering,chemabove,Chemalpha,Chembeta,Chemgamma,
- Chemdelta,ChemDelta,chemfig,chemname,Chemomega,chemsetup,cip,cis,ch,cnsetup,
- CNMR,color,cstsetup,
- d,D,data,DeclareChemArrow,DeclareChemBond,DeclareChemBondAlias,DeclareChemIUPAC,
- DeclareChemLatin,DeclareChemNMR,DeclareChemParticle,DeclareChemPhase,
- DeclareChemReaction,DeclareChemState,DeclareInstance,DeclareSIUnit,definecolor,
- delm,delp,Delta,Dfi,draw,
- E,el,electronvolt,ElPot,endo,Enthalpy,enthalpy,Entropy,
- footnotesize,fmch,fpch,fscrm,fscrp,
- g,gas,ghs,ghslistall,ghspic,Gibbs,glqq,gram,grqq,
- H,hapto,HNMR,Helmholtz,hertz,hspace,
- includegraphics,insitu,intertext,invacuo,iupac,IUPAC,J,joule,
- Ka,Kb,kilo,Kw,
- L,latin,lewis,Lewis,Lfi,listofreactions,lqd,ltn,
- mch,mega,meta,metre,mhName,midrule,milli,mmHg,mole,
- N,nano,nicefrac,newman,NMR,Nu,Nuc,num,numrange,
- O,ominus,orbital,ortho,oplus,ox,OX,
- p,P,para,pch,per,percent,pgfarrowsdeclarealias,pgfarrowsrenewalias,pH,phase,
- photon,pKa,pKb,pOH,pos,positron,Pot,prt,
- R,Rad,redox,RenewChemArrow,RenewChemBond,RenewChemIUPAC,RenewChemLatin,RenewChemNMR,
- RenewChemParticle,RenewChemPhase,RenewChemState,renewtagform,rightarrow,
- S,Sf,sample,scriptscriptstyle,scrm,scrp,second,setatomsep,setbondoffset,sfrac,
- shorthandoff,ShowChemArrow,ShowChemBond,si,SI,sisetup,sld,Sod,square,State,
- subsection,
- textcolor,textendash,textsuperscript,tiny,toprule,trans,
- upbeta,upeta,upgamma,
- val,volt,vphantom,vspave,
- w,xspace,Z}
+ a, abinitio, AddRxnDesc, anti, aq, aqi,
+ b, ba, bond, bottomrule, bridge,
+ cancel, cd, cdot, ce, cee, celsius, centering, chemabove, Chemalpha,
+ Chembeta, Chemgamma, Chemdelta, ChemDelta, chemfig, chemname, Chemomega,
+ chemsetup, cip, cis, ch, clap, cnsetup, CNMR, color, cstack, cstsetup,
+ d, D, data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias,
+ DeclareChemIUPAC, DeclareChemLatin, DeclareChemNMR, DeclareChemParticle,
+ DeclareChemPhase, DeclareChemReaction, DeclareChemState, DeclareInstance,
+ DeclareSIUnit, DeclareTranslation, definecolor, delm, delp, Delta, Dfi,
+ draw,
+ E, el, electronvolt, ElPot, endo, Enthalpy, enthalpy, Entropy,
+ footnotesize, fmch, fpch, fscrm, fscrp,
+ g, gas, ghs, ghslistall, ghspic, Gibbs, glqq, gram, grqq,
+ H, hapto, HNMR, Helmholtz, hertz, hspace,
+ includegraphics, insitu, intertext, invacuo, iupac, IUPAC,
+ J, joule,
+ Ka, Kb, kilo, Kw,
+ L, latin, lewis, Lewis, Lfi, listofreactions, lqd, ltn,
+ mch, mega, meta, metre, mhName, midrule, milli, mmHg, mole,
+ N, nano, nicefrac, newman, NMR, Nu, Nuc, num, numrange,
+ O, ominus, orbital, ortho, oplus, ox, OX,
+ p, P, para, pch, per, percent, pgfarrowsdeclarealias, pgfarrowsrenewalias,
+ pH, phase, photon, pKa, pKb, pOH, pos, positron, Pot, prt,
+ R, Rad, redox, RenewChemArrow, RenewChemBond, RenewChemIUPAC,
+ RenewChemLatin, RenewChemNMR, RenewChemParticle, RenewChemPhase,
+ RenewChemState, renewtagform, rightarrow,
+ S, Sf, sample, scriptscriptstyle, scrm, scrp, second, setatomsep,
+ setbondoffset, setchemformula, sfrac, shorthandoff, ShowChemArrow,
+ ShowChemBond, si, SI, sisetup, sld, Sod, square, State, subsection,
+ textcolor, textendash, textsuperscript, tiny, toprule, trans,
+ upbeta, upeta, upgamma,
+ val, volt, vphantom, vspave,
+ w, xspace, Z
+}
\usepackage{imakeidx}
\indexsetup{othercode=\footnotesize}
\makeindex[columns=3,intoc,options={-sl \jobname.ist}]
-\begin{document}
-\chemsetup[chemformula]{
- font-spec =
- {[Color=chemformula,Numbers={Proportional,Lining}]Latin Modern Sans}
+\newcommand*\Chemmacros{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemmacros%
+ }%
+}
+\providecommand*\chemmacros{{\scshape\textcolor{main}{chemmacros}}\xspace}
+
+\newcommand*\Chemformula{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemformula%
+ }%
+}
+\providecommand*\chemformula{{\scshape\textcolor{main}{chemformula}}\xspace}
+
+\newcommand*\Ghsystem{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ ghsystem%
+ }%
+}
+\providecommand*\ghsystem{{\scshape\textcolor{main}{ghsystem}}\xspace}
+
+\newcommand*\Chemgreek{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemgreek%
+ }%
+}
+\providecommand*\chemgreek{{\scshape\textcolor{main}{chemgreek}}\xspace}
+
+\newcommand*\Default[1]{%
+ \hfill\llap{%
+ \ifblank{#1}
+ {(initially~empty)}
+ {Default:~\code{#1}}%
+ }\newline
}
-\def\glqq{„}
-\def\grqq{“}
-\part{Preliminaries}\secidx{PRELIMINARIES}
-\section{Licence, Requirements and README}
-Permission is granted to copy, distribute and/or modify this software under the
-terms of the \LaTeX\ project public license (lppl) version 1.3 or later
-(\url{http://www.latex-project.org/lppl.txt}). The package has the status
-``maintained.''
+\usepackage{marginnote,ragged2e}
+\makeatletter
+\providecommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\providecommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+
+\RenewDocumentCommand\CTANurl{O{macros/latex/contrib}m}
+ {%
+ on CTAN: %
+ \hyper@linkurl{#2}{http://mirrors.ctan.org/#1/#2/}%
+ }
+\ExplSyntaxOn
+\RenewDocumentCommand \paket { sO{macros/latex/contrib}m }
+ {
+ \paketfont { #3 }
+ \index { #3 @ \paketfont { #3 } }
+ \prop_if_in:NnF \g_cnpkgdoc_pakete_prop { #3 }
+ {
+ \prop_gput:Nnn \g_cnpkgdoc_pakete_prop { #3 } {}
+ \IfBooleanF { #1 }
+ { \footnote { \CTANurl[]{#3} } }
+ }
+ }
+\ExplSyntaxOff
+\makeatother
-The \chemmacros bundle needs the bundles \paket{l3kernel} and \paket{l3packages}.
-It also needs the packages \paket{siunitx}, \paket{mathtools}, \paket{bm},
-\paket{nicefrac} and \paket{environ} as well as \paket*{tikz}\footnote{CTAN:
-\href{http://www.ctan.org/pkg/pgf/}{pgf}} and the \TikZ libraries \code{calc}
-and \code{arrows}.
+\DeclareChemPhase{\aqi}{aq,$\infty$}% aqueous solution at infinite dilution
+\DeclareChemPhase{\cd}{cd}% condensed phase
+\RenewChemPhase{\lqd}{lc}% liquid crystal
-Package option \key{bpchem} (section~\ref{sec:optionen}) needs the package
-\paket{bpchem}, package option \key{xspace} needs the package \paket{xspace} and
-package option \key{method}{mhchem} needs the package \paket{mhchem}.
+\begin{document}
-With v3.0 the \chemmacros package has been bundled with the new packages
-\chemformula and \ghsystem. \chemformula provides an alternative to \paket{mhchem}.
-This leads to some internal changes in \chemmacros. On the same time the
-documentation has been redesigned.
+\part{Preliminaries}\secidx{PRELIMINARIES}
+\section{Licence, Requirements and \textsc{README}}
+Permission is granted to copy, distribute and/or modify this software under
+the terms of the \LaTeX\ project public license (lppl) version 1.3 or later
+(\url{http://www.latex-project.org/lppl.txt}). The package has the status
+``maintained.''
-You might remember that \chemmacros' options all belong to different modules, see
-section~\ref{sec:setup} for further information. These are typeset in the left
-margin when the option is first mentioned. In section~\ref{sec:overview} all options
-and the module they belong to are listed. Throughout the document options are
-typeset \textcolor{key}{\code{green}} and modules \textcolor{module}{\code{red}}.
+The \chemmacros\ bundle needs the bundles \paket{l3kernel} and
+\paket{l3packages}. It also needs the packages \paket{siunitx},
+\paket{mathtools}, \paket{bm}, \paket{nicefrac} and \paket{environ} as well as
+\paket*{tikz}\footnote{\CTANurl[graphics]{pgf}} and the \TikZ libraries
+\code{calc} and \code{arrows}. Language support is done with the help of the
+\paket*{translations} package from the \paket{exsheets} bundle. The
+\chemmacros\ package also loads the other packages of this bundle.
-The package \ghsystem needs 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.
+The package option \key{xspace} also loads the package \paket{xspace}.
-\achtung{There are some deprecated commands and options which are not explained
-in the manual any more but still exist to ensure backwards compatibility. These
-commands issue a warning. They may be dropped some time in the future.}
+The \chemmacros\ bundle bundles four packages: \chemmacros, \chemformula,
+\ghsystem\ and \chemgreek. The package dependencies of the other packages are
+described in the respective manuals.
\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.
+\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.
Both the macros and their functionality have changed over time and quite a lot
-have been added. Many things have been unified and what's probably most important:
-many possibilities to customize have been added, too.
-
-Probably every chemist using \LaTeXe\ is aware of the great \paket{mhchem} package
-by Martin Hensel. 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 after all.
-
-\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. The default however is \chemmacros own way: \chemformula.
-
-As a chemist you are probably aware of the fact that the \acl{UN} have developed
-the \ac{ghs} as a global replacement for the various different systems in different
-countries. While it has not been implemented by all countries
-yet~\cite{unece:ghsystem_implementation}, it is 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 statements are taken from \acs{eu}
-regulation 1272/2008~\cite{eu:ghsystem_regulation}.
+have been added. Many things have been unified and what's probably most
+important: many possibilities to customize have been added, too.
+
+Probably every chemist using \LaTeXe\ is aware of the great \paket{mhchem}
+package by Martin Hensel. 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\ after all.
+
+\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. Although \chemformula\ is meant as an \emph{alternative} to
+\paket{mhchem} \chemmacros\ only loads \chemformula\ and uses it at various
+places internally, too.
+
+As a chemist you are probably aware of the fact that the \acl{UN} have
+developed the \ac{ghs} as a global replacement for the various different
+systems in different countries. While it has not been implemented by all
+countries yet~\cite{unece:ghsystem_implementation}, it is only a matter of
+time.
+
+The package \ghsystem\ enables you to typeset all the hazard and precautionary
+statements and pictograms in a very easy way. The statements are taken from
+\acs{eu} regulation 1272/2008~\cite{eu:ghsystem_regulation}.
There are four points I hope I have achieved with this bundle:
\begin{itemize}
\item intuitive usage as far as the syntax of the commands is concerned
- \item the commands shall not only make typesetting easier and faster but also the
- document source more readable with respect to semantics
+ \item the commands shall not only make typesetting easier and faster but also
+ the document source more readable with respect to semantics
(\code{\cmd{ortho}-dichlorobenzene} is easier to read and understand than
\code{\cmd*{textsl}{o}-dichlorobenzene})
\item as much customizability as I could think of so every user can adapt the
commands to his or her own wishes
\item default settings compliant with the recommendations of the \acf{iupac}.
\end{itemize}
-Especially the last point needed some pushing from users to get things right in
-many places. If you find anything not compliant with \ac{iupac} recommendations%
-\footnote{This does not concern the \cmd{ox} command. The \ac{iupac} version is
-\cmd{ox}*.} I would welcome an email very much!
-
-In a package this large with older parts and rather new parts (which have to be
-considered being in beta state) it is unavoidable that there are flaws and bugs.
-I am very keen on correcting and improving this package, so please: if you find
-anything that bothers you and may it be just so small please send me a short email
-and I'll see what I can do. I would especially like feedback on \chemformula (see
-part~\ref{part:chemformula}) and \ghsystem (see part~\ref{part:ghsystem}) but also
-welcome feedback on every other part of this bundle.
-
-\section{Installation, Loading the Bundle}\secidx{Loading the Bundle}\secidx{Installation}
-The bundle comes with three style files\footnote{Those ending \code{sty}.}, a
-directory called \code{language/} containing the language-definition files for
-\ac{ghs} (ending \code{def}), and a directory \code{pictures/} containing \code{eps},
-\code{pdf}, \code{jpg} and \code{png} files (the \ac{ghs} pictograms). If you install
-the bundle manually \emph{please make sure to place the directories \code{language/}
-and \code{pictures/} in the \emph{same} directory as the style files}.
-
-Loading \chemmacros with
-\begin{beispiel}[code only]
- \usepackage{chemmacros} % `chemmacros', `chemformula' and `ghsystem' are loaded
-\end{beispiel}
-will also load \chemformula and \ghsystem. However, you can prevent \chemmacros
-from loading \ghsystem:
-\begin{beispiel}[code only]
- \usepackage[ghsystem=false]{chemmacros} % `chemmacros' and `chemformula' are loaded
-\end{beispiel}
+Especially the last point needed some pushing from users to get things right
+in many places. If you find anything not compliant with \ac{iupac}
+recommendations\footnote{This does not concern the \cmd{ox} command. The
+ \ac{iupac} version is \cmd{ox}*.} I would welcome an email very much!
-Loading \chemformula or \ghsystem explicitly is possible and will also load
-\chemmacros if it hasn't been loaded yet, and will therefore implicitly load the
-other package, too.
-\begin{beispiel}[code only]
- \usepackage{chemformula}
- or
- \usepackage{ghsystem}
-\end{beispiel}
-
-However, it is recommended to simply use \lstinline=\usepackage{chemmacros}= and
-setup the required options with \lstinline=\chemsetup= (also see section~\ref{sec:setup}).
-\secidx*{Installation}\secidx*{Loading the Bundle}
+\section{News}\secidx{News}
+With version~4.0 some changes have been made:
+\begin{itemize}
+ \item first of all the packages \chemformula\ and \ghsystem\ do not load
+ \chemmacros\ any more which means they can be used independently.
+ \item the option \key{bpchem} has been dropped.
+ \item the commands \cmd{mch} and \cmd{pch} now match \chemformula's
+ charges.
+ \item the option \key{method} has been dropped.
+ \item the option \key[charges]{append} has deprecated.
+ \item the option \key{greek} has been extended to support other uppercase
+ greek letters, for example those provided by \paket{kpfonts}. This is
+ handled internally by the new package in the family: \chemgreek. This
+ package is not really a package for usage at a user-level but could in
+ principle be used to extend the \key{greek} option.
+ \item language support is now done with the help of the
+ \paket*{translations} package from the \paket{exsheets} bundle. This
+ means that with version~4.0 the document language is recognized
+ automatically.
+ \item the status of the commands \cmd{Lfi} and \cmd{Dfi} has been changed
+ from \emph{deprecated} to \emph{dropped}.
+ \item various other changes like bug fixes and improvements on the
+ typographical appearance of \chemformula's inline formulae with \cmd{ch}.
+\end{itemize}
+\secidx*{News}
\section{Package Options}\label{sec:optionen}\secidx{Package Options}
\chemmacros has several package options. They all are used as key/value pairs like
\begin{beispiel}[code only]
\usepackage[option1 = <value1>, option2 = <value2>]{chemmacros}
\end{beispiel}
-Some also can be used without value (\lstinline+\usepackage[option1]{chemmacros}+),
-which means that the \default{underlined} value is used.
+Some also can be used without value
+(\lstinline+\usepackage[option1]{chemmacros}+), which means that the
+\default{underlined} value is used.
-Both \chemformula and \ghsystem don't have package options of their own. If you
-load them explicitly any given option will silently fail. Options can then only
-be set using the setup command.
+Both \chemformula and \ghsystem don't have package options of their own. If
+you load them explicitly any given option will silently fail. Options can
+then only be set using the setup command.
\begin{beschreibung}
- % bpchem
- \option[option]{bpchem}{\default{true}|false} This option loads the package
- \paket{bpchem} and adjusts the layout of the \cmd{NMR} command to the \paket{bpchem}
- commands \lstinline+\HNMR+ and \lstinline+\CNMR+. (default = \code{false})
% circled
- \option[option]{circled}{\default{formal}|all|none} \chemmacros uses two different
- kinds of charges which indicate the usage of real ($+/-$) and formal (\fplus/\fminus)
- charges. The option \code{formal} distinguishes between them, option \code{none}
- displays them all without circle, option \code{all} circles all (default = \code{formal})
+ \Option[option]{circled}{\default{formal}|all|none}\Default{formal}
+ \chemmacros\ uses two different kinds of charges which indicate the usage
+ of real ($+/-$) and formal (\fplus/\fminus) charges. The option
+ \code{formal} distinguishes between them, option \code{none} displays them
+ all without circle, option \code{all} circles all.
% circletype
- \option[option]{circletype}{\default{chem}|math} This option switches between
- two kinds of circled charge symbols: \cmd{fplus} \fplus\ and \lstinline+$\oplus$+
- $\oplus$. (default = \code{chem})
+ \Option[option]{circletype}{\default{chem}|math}\default{chem}
+ This option switches between two kinds of circled charge symbols:
+ \cmd{fplus} \fplus\ and \lstinline+$\oplus$+ $\oplus$.
% cmversion
- \option[option]{cmversion}{1|2|bundle} This option restores the old definitions
- of some commands, so documents set with v1.* will still compile correctly.
- (default = \code{bundle}). Actually \code{2} and \code{bundle} are only aliases.
- \emph{This option can only be chosen in the preamble}.
+ \Option[option]{cmversion}{1|2|3|4|newest}\Default{newest}
+ This option restores the old definitions of some commands and tries to
+ ensure backwards compatibility as much as possible (default = \code{4}).
+ Actually \code{2} and \code{3} are aliases, as are -- for now -- \code{4}
+ and \code{newest}. \emph{This option can only be chosen in the preamble}.
% ghsystem
- \option[option]{ghsystem}{\default{true}|false} Disable the use of the \ghsystem
- package. Setting \key{ghsystem}{false} will prevent \chemmacros from loading
- \ghsystem. (default = \code{true})
+ \Option[option]{ghsystem}{\default{true}|false}\Default{true}
+ Disable the automatic loading of the \ghsystem\ package.
% greek
- \option[option]{greek}{\default{auto}|math|textgreek|upgreek} This Option determines
- how the letters \cmd{Chemalpha} and friends are typeset. See page~\pageref{desc:upgreek}
- for more information. \emph{This option can only be chosen in the preamble}.
- Please note that this options \emph{does not load either \paket{upgreek} nor
- \paket{textgreek}!} It only determines which one to choose if available. The
- option will detect if either \paket{upgreek} or \paket{textgreek} have been
- loaded and use them if available. If you explicitly choose \code{upgreek} or
- \code{textgreek} you also have to load the corresponding package.
- (default = \code{auto})
+ \Option[option]{greek}{\default{auto}|kpfonts|math|newtx|textgreek|upgreek}\Default{auto}
+ This option determines how the letters \cmd{Chemalpha} and friends are
+ typeset. See page~\pageref{desc:upgreek} for more information. Please
+ note that this option \emph{does not load either \paket{upgreek},
+ \paket{kpfonts}, \paket{newtxmath} nor \paket{textgreek}!} It only
+ determines which one to choose if available. The option \code{auto} will
+ detect if either (in order of priority) \paket{upgreek}, \paket{textgreek},
+ \paket{kpfonts} or \paket{newtxmath} have been loaded and use them if
+ available. If you explicitly choose \code{upgreek}, \code{textgreek},
+ \paket{kpfonts} or \paket{newtxmath} you also have to load the
+ corresponding package. \emph{This option can only be chosen in the
+ preamble}.
% iupac
- \option[option]{iupac}{auto|restricted|strict} Take care of how \ac{iupac} naming
- commands are defined, see page~\pageref{desc:iupac} (default = \code{auto})
+ \Option[option]{iupac}{auto|restricted|strict}\Default{auto} Take care of
+ how \ac{iupac} naming commands are defined, see page~\pageref{desc:iupac}.
% language
- \option[option]{language}{american|british|english|french|german|italian|ngerman}
- Load language specific options. \code{english}, \code{american} and \code{british}
- are aliases, as are \code{german} and \code{ngerman}. \emph{This option can only
- be chosen in the preamble}. (default = \code{english}).
- % method
- \option[option]{method}{\default{chemformula}|mhchem} You can choose the method
- which \chemmacros will use for the reaction environments (see section~\ref{sec:reactions})
- and the typesetting of the particles (see section~\ref{sec:teilchen}). (default
- = \code{chemformula}). \emph{This option can only be chosen in the preamble}.
+ \Option[option]{language}{american|british|english|french|german|italian|ngerman}\Default{}
+ Load the language used by \chemmacros. \emph{This option can only be
+ chosen in the preamble}.
% Nu
- \option[option]{Nu}{\default{chemmacros}|mathspec} The package \paket{mathspec}
- also defines a macro \cmd{Nu}. This option chooses which definition holds, see
- page~\pageref{Nu}. (default = \code{chemmacros}). \emph{This option can only
- be chosen in the preamble}.
+ \Option[option]{Nu}{\default{chemmacros}|mathspec}\Default{chemmacros}
+ The package \paket{mathspec} also defines a macro \cmd{Nu}. This option
+ chooses which definition holds, see page~\pageref{Nu}. \emph{This option
+ can only be chosen in the preamble}.
% strict
- \option[option]{strict}{\default{true}|false} Setting \key{strict}{true} will
- turn all warning messages into erros messages. (default = \code{false})
+ \Option[option]{strict}{\default{true}|false}\Default{false}
+ Setting \key{strict}{true} will turn all warning messages into erros messages.
% synchronize
- \option[option]{synchronize}{\default{true}|false} The setting \code{true} will
- tell \chemmacros the adapt the font settings of \chemformula if that method has
- been chosen (default = \code{false}). In order to demonstrate this feature the
- first part of this document is set with \key{synchronize}{true} and the
- \chemformula setting
- \lstinline+\chemsetup[chemformula]{font-spec={[Color=darkgray]Latin Modern Sans}}+.
+ \Option[option]{synchronize}{\default{true}|false}\Default{false}
+ The setting \code{true} will tell \chemmacros\ to adapt the font settings
+ of \chemformula.
% xspace
- \option[option]{xspace}{\default{true}|false} With this option most commands are
- defined with a \lstinline+\xspace+. (default = \code{true})
+ \Option[option]{xspace}{\default{true}|false}\Default{true}
+ With this option most commands are defined with a \cmd*{xspace}.
\end{beschreibung}
\secidx*{Package Options}
\section{Setup}\label{sec:setup}\secidx{Setup}
-Various of \chemmacros', \chemformula's and \ghsystem's commands have key/value
-pairs with which they can be customized. Most times they can be used as (optional)
-argument of the commands themselves. They also can most times be used with the
-\cmd{chemsetup} command.
+Various of \chemmacros', \chemformula's and \ghsystem's commands have
+key/value pairs with which they can be customized. Most times they can be
+used as (optional) argument of the commands themselves. They also can most
+times be used with the \cmd{chemsetup} command.
\begin{beschreibung}
\Befehl{chemsetup}[<module>]{<key> = <value>} or
\Befehl{chemsetup}{<module>/<key> = <value>}
\end{beschreibung}
The keys each belong to a module, which defines for which commands they are
-intended for. If a key is presented, you'll see the module to which it belongs
-in the left margin. You have two ways to use keys with the \cmd{chemsetup}, as
-you can see above.
+intended for. If a key is presented, you'll see the module to which it
+belongs in the left margin. You have two ways to use keys with the
+\cmd{chemsetup}, as you can see above.
The package options can also be seen as keys belonging to the module
-\textcolor{module}{\code{option}}. This means they can also be used with the
+\textcolor{module}{\code{option}}. This means they can also be used with the
\cmd{chemsetup} command (except for the option \key[option]{version}{1/2/3}).
\begin{beispiel}
\chemsetup[option]{circled=none}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
@@ -464,10 +563,12 @@ The package options can also be seen as keys belonging to the module
\chemsetup{option/circletype=chem,option/circled=all}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
\chemsetup{option/circletype=math}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt
\end{beispiel}
-Keys \emph{not} belonging to a module \emph{cannot} be used with \cmd{chemsetup}!
+Keys \emph{not} belonging to a module \emph{cannot} be used with
+\cmd{chemsetup}!
-All options of \chemformula belong to the module \textcolor{module}{\code{chemformula}}
-and all of \ghsystem's options belong to the module \textcolor{module}{\code{ghsystem}}.
+All options of \chemformula\ belong to the module
+\textcolor{module}{\code{chemformula}} and all of \ghsystem's options belong
+to the module \textcolor{module}{\code{ghsystem}}.
\secidx*{Setup}
\section{Language Settings}\label{sec:languages}\secidx{Language Settings}
@@ -476,20 +577,37 @@ By choosing the option
\begin{beispiel}[code only]
\chemsetup[option]{language=<language>}
\end{beispiel}
-you can set one of these languages: \code{american}, \code{british},\ code{english},
-\code{french}, \code{german}, \code{italian} and \code{ngerman}. The languages
-\code{american}, \code{british} and \code{english} are aliases, as are \code{german}
-and \code{ngerman}.
+you can set the language that is used by \chemmacros\ if you want that to be a
+different language than your main document language.
-These translate
+These translate (if the translations are available)
\begin{itemize}
- \item The header of the list of reactions.
- \item The beginning of the entries in the list of reactions.
- \item The H- and P-statements of the \ac{ghs}.
+ \item The header of the list of reactions.
+ \item The beginning of the entries in the list of reactions.
+ \item The H- and P-statements of the \ac{ghs}.
\end{itemize}
-\achtung{Please note, that the \ac{ghs} statements are not provided in all languages,
-see also section~\ref{sec:ghsystem_language}.}
+Currently the following translations are provided:
+\begin{beispiel}[code only]
+ % subscript used in \Ka:
+ \DeclareTranslation{German}{K-acid}{S}
+ % the phases \sld and \lqd:
+ \DeclareTranslation{German}{phase-sld}{f}
+ \DeclareTranslation{German}{phase-lqd}{f{}l}
+ % heading of the list of reactions:
+ \DeclareTranslation{English}{list-of-reactions}{List of reactions}
+ \DeclareTranslation{German} {list-of-reactions}{Reaktionsverzeichnis}
+ \DeclareTranslation{Italian}{list-of-reactions}{Elenco delle reazioni}
+ \DeclareTranslation{French} {list-of-reactions}{Table des r\'eactions}
+ % name at the beginning of each entry in the list of reactions:
+ \DeclareTranslation{English}{lor-reaction}{Reaction }
+ \DeclareTranslation{German} {lor-reaction}{Reaktion }
+ \DeclareTranslation{Italian}{lor-reaction}{Reazione }
+ \DeclareTranslation{French} {lor-reaction}{R\'eaction }
+\end{beispiel}
+All other languages will fall back to English. However, you can always add
+the translation you want. If you send me an email with translations you'd
+like to have added to \chemmacros\ I'll gladly add them.
\subsection{Specialties}
\subsubsection{German}
@@ -500,121 +618,59 @@ and the command \cmd{pKa} are translated.
\DeclareChemIUPAC{\ter}{\textit{ter}}\DeclareChemIUPAC{\sin}{\textit{sin}}%
Choosing the language \code{italian} defines two additional \ac{iupac} commands:
\begin{beschreibung}
- \befehl{ter} \iupac{\ter}
- \befehl{sin} \iupac{\sin}
+ \Befehl{ter} \iupac{\ter}
+ \Befehl{sin} \iupac{\sin}
\end{beschreibung}
\secidx*{Language Settings}
-
-\section{News}\secidx{News}
-\subsection{Version 3.3}
-\begin{itemize}
- \item With v3.3 there is the environment \env{experimental}{}, see
- section~\ref{sec:spektroskopie}. It can be used together with some new options
- and commands for the consistent typesetting of experimental data.
- \item The environment \env{reaction}{} and its kin can now cope with \lstinline+\label+,
- \lstinline+\ref+ and \lstinline+\intertext+, see section~\ref{sec:reactions}.
- \item The package options \key{german} and \key{ngerman} are deprecated, the
- replacement is \key{language}, see page~\pageref{key:option_language} and
- section~\ref{sec:languages} from page~\pageref{sec:languages}.
- \item The package option \key{upgreek} got renamed into \key{greek}.
- \item Some additional \code{\textbackslash\textcolor{code}{Chem<greekletter>}}-commands
- are provided, see section~\ref{sec:teilchen}.
-\end{itemize}
-
-\subsection{Version 3.3a}
-\begin{itemize}
- \item The \ac{iupac} commands \cmd{hapto} and \cmd{bridge} are new.
- \item The H and P statements now are available in Italian.
-\end{itemize}
-
-\subsection{Version 3.3d}
-\begin{itemize}
- \item \code{pdf} versions of the \ac{ghs} pictograms.
- \item New default values for bond length and bond offset, see
- page~\pageref{ssec:compounds:customization}.
- \item New option \key{bond-style}, see page~\pageref{ssec:compounds:customization}.
- \item new option \key{cip-kern}, see page~\pageref{par:cip}.
-\end{itemize}
-
-\subsection{Version 3.4}
-\begin{itemize}
- \item \chemmacros got an Italian manual, many thanks to Jonas Rivetti who
- volunteered to not only translate the H \&\ P statements but also this
- documentation!
- \item The command \cmd{bond} which allows to use other bonds than single, double
- and triple, see section~\ref{ssec:bonds}. I wanted to add this for a long time!
- \item A few changes to the looks of the radical point and new options to customize
- it, see section~\ref{ssec:compounds:customization}.
-\end{itemize}
-
-\subsection{Versions 3.5 and 3.6}
-\begin{itemize}
- \item Line breaks at bonds in formulas are no longer possible.
- \item Line breaks after arrows in formulas are possible.
- \item Some of the horizontal spaces in formulas are now stretch- and shrinkable.
- \item In formulas math escaping is also via \cmd*{(} and \cmd*{)} possible.
- \item New options: \key{radical-vshift}, \key{radical-hshift} and
- \key{radical-space} allow finer control over the radical dot.
- \item In stoichiometric factors a leading 0 is added if missing.
- \item New option: \key{stoich-paren-parse}.
- \item Various internal changes to the code.
- \item New option: \key{arrow-min-length}.
-\end{itemize}
-\secidx*{News}\secidx*{PRELIMINARIES}
+\secidx*{PRELIMINARIES}
\part{\texorpdfstring{\Chemmacros}{chemmacros}}\secidx{CHEMMACROS}\label{part:chemmacros}
\section{Particles, Ions and Symbols}\label{sec:teilchen}\secidx{Particles, Ions and Symbols}
\subsection{Predefined}\secidx[predefined]{Particles, Ions and Symbols}
-\chemmacros defines some simple macros for displaying often needed particles and
-symbols. Please note, that they're displayed differently depending on the package
-options used, see section~\ref{sec:optionen}. These commands can be used in text
-as well as in math mode. Note that they are not meant to be used in \Chemformula's
-\cmd{ch}.
-
-\begin{beschreibung}
- \befehl{Hpl} \Hpl (proton)
- \befehl{Hyd} \Hyd (hydroxide)
- \befehl{HtO} \HtO (oxonium ion) (\textbf{H} \textbf{t}hree \textbf{O})
- \befehl{water} \water
- \befehl{el} \el (electron)
- \befehl{prt} \prt (proton)
- \befehl{ntr} \ntr (neutron)
- \befehl{Nu} \Nu (nucleophile). The package \paket{mathspec} also defines a macro
- \cmd{Nu}. If you chose package option \key[option]{Nu}{mathspec} \chemmacros
- defines \cmd{Nuc} instead\label{Nu}.
- \befehl{El} \El (electrophile)
- \befehl{ba} \ba (base)
- \befehl{fplus} \fplus
- \befehl{fminus} \fminus
- \befehl{transitionstatesymbol} \transitionstatesymbol
- \befehl{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}.}.
- \befehl{Chemalpha} \Chemalpha
- \befehl{Chembeta} \Chembeta
- \befehl{Chemgamma} \Chemgamma
- \befehl{Chemdelta} \Chemdelta
- \befehl{Chemepsilon} \Chemepsilon
- \befehl{Chemeta} \Chemeta
- \befehl{Chemkappa} \Chemkappa
- \befehl{Chemmu} \Chemmu
- \befehl{Chemnu} \Chemnu
- \befehl{Chemrho} \Chemrho
- \befehl{Chempi} \Chempi
- \befehl{Chemsigma} \Chemsigma
- \befehl{Chemomega} \Chemomega
- \befehl{ChemDelta} \ChemDelta
-\end{beschreibung}
-
-\achtung{The command \cmd{Rad} has been dropped!}
-
-The two particles \cmd{Nu} and \cmd{ba} can be modified. To do that you use the
-option
-\begin{beschreibung}
- \Option[particle]{elpair}{false|\default{dots}|dash}.
+
+\chemmacros defines some simple macros for displaying often needed particles
+and symbols. Please note, that they're displayed differently depending on the
+package options used, see section~\ref{sec:optionen}. These commands can be
+used in text as well as in math mode. Note that they are not meant to be used
+in \chemformula's \cmd{ch}.
+
+\begin{beschreibung}
+ \Befehl{Hpl} \Hpl (proton)
+ \Befehl{Hyd} \Hyd (hydroxide)
+ \Befehl{HtO} \HtO (oxonium ion) (\textbf{H} \textbf{t}hree \textbf{O})
+ \Befehl{water} \water
+ \Befehl{el} \el (electron)
+ \Befehl{prt} \prt (proton)
+ \Befehl{ntr} \ntr (neutron)
+ \Befehl{Nu} \Nu (nucleophile).\newline
+ The package \paket{mathspec} also defines a macro \cmd{Nu}. If you chose
+ package option \key[option]{Nu}{mathspec} \chemmacros\ defines \cmd{Nuc}
+ instead\label{Nu}.
+ \Befehl{El} \El (electrophile)
+ \Befehl{ba} \ba (base)
+ \Befehl{fplus} \fplus
+ \Befehl{fminus} \fminus
+ \Befehl{transitionstatesymbol} \transitionstatesymbol
+ \Befehl{standardstate} \standardstate.\newline
+ 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}.}.
+ \Befehl{Chemalpha} \Chemalpha, \cmd{ChemAlpha} \ChemAlpha\newline
+ For each of the 24 greek letters a lowercase and uppercase \cmd*{Chem...}
+ command is defined that maps to the upright greek letter as set with the
+ option \key{greek}. More details on this can be found in the manual of the
+ \chemgreek\ package.
+\end{beschreibung}
+
+The two particles \cmd{Nu} and \cmd{ba} can be modified. To do that you use
+the option
+\begin{beschreibung}
+ \Option[particle]{elpair}{false|\default{dots}|dash}\Default{false}
+ Set how the electron pair of the particles \cmd{Nu} and \cmd{ba} are set.
\end{beschreibung}
It only has any effect, if the package \paket{chemfig} is loaded, since it uses
-it's command \lstinline+\Lewis+.
+it's command \cmd*{Lewis}.
\begin{beispiel}
% needs package `chemfig'
\ba[elpair] \Nu[elpair=dash]
@@ -624,81 +680,69 @@ it's command \lstinline+\Lewis+.
\end{beispiel}
\label{desc:upgreek}The greek letters aren't newly defined symbols but are
-defined differently depending on the packages you've loaded. The default definition
-is the corresponding math letter. If you have loaded the \paket{textgreek} package
-the letters are taken from there, and if you have loaded the package \paket{upgreek}
-the macros of that package are used. This documentation uses \paket{upgreek} for
-instance. If you load both \paket{upgreek} and \paket{textgreek} the letters from
-\paket{upgreek} are used.
-
-If you don't want \chemmacros to use a package automatically but want to decide
-for yourself, there is the option \key[option]{greek}. Table~\ref{tab:upgreek_mode}
-shows the different styles for some of the letters.
-
-\begin{table}[h]
- \centering
- \begin{tabular}{lccc}\toprule
- & math & upgreek & textgreek \\\midrule
- \cmd{Chemalpha} & $\alpha$ & $\upalpha$ & \textalpha \\
- \cmd{Chembeta} & $\beta$ & $\upbeta$ & \textbeta \\
- \cmd{ChemDelta} & $\Delta$ & $\Updelta$ & \textDelta \\ \bottomrule
- \end{tabular}
- \caption{The greek letters}\label{tab:upgreek_mode}
-\end{table}
-
-The reason why \chemmacros defines these macros in the first place is \ac{iupac}
-compliance. \ac{iupac} recommends to use upright greek letters in nomenclature.
+defined differently depending on the packages you've loaded. The default
+definition is the corresponding math letter. If you have loaded the
+\paket{textgreek} package the letters are taken from there, and if you have
+loaded the package \paket{upgreek} the macros of that package are used. This
+is also described in the description of the package option \key{greek}, other
+details can be found in the documentation of the \chemgreek\ package. This
+documentation uses \paket{newtxmath} and the setting \key{greek}{newtx} for
+instance.
+
+The reason why \chemmacros\ uses these macros in the first place is \ac{iupac}
+compliance. \ac{iupac} recommends to use upright greek letters in
+nomenclature.
\begin{zitat}[{\ac{iupac} Green Book {\cite[][p.\,9]{iupac:greenbook}}}]
- Greek letters are used in systematic organic, inorganic, macromolecular and
- biochemical nomenclature. These should be roman (upright), since they are not
- symbols for physical quantities.
+ Greek letters are used in systematic organic, inorganic, macromolecular and
+ biochemical nomenclature. These should be roman (upright), since they are
+ not symbols for physical quantities.
\end{zitat}
-\chemmacros uses these commands now to define nomenclature commands, see
+\chemmacros\ uses these commands now to define nomenclature commands, see
page~\pageref{par:greek_letters}.
\subsection{Own Particles}\secidx[own]{Particles, Ions and Symbols}
+
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:
+\cmd*{positron} or \cmd*{photon}. This can easily be done with this command:
\begin{beschreibung}
\Befehl{DeclareChemParticle}{<cmd>}\ma{<definition>}
\Befehl{RenewChemParticle}{<cmd>}\ma{<definition>}
\end{beschreibung}
-Depending on the \key{method} you chose as option the \code{<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.
+The particle defined this way behaves uses \chemformula' \cmd{ch} to typeset
+the particle which means that the \code{<definition>} should be a vaild
+\chemformula\ compound. Please have a look at the \chemformula\ manual for
+details. The particle will obey the \key{circled} option.
\begin{beispiel}
- % uses the `upgreek' package
- \DeclareChemParticle{\positron}{$\upbeta$+}
- \DeclareChemParticle{\photon}{$\upgamma$}
- \RenewChemParticle{\el}{$\upbeta$-}
+ \DeclareChemParticle{\positron}{\Chembeta+}
+ \DeclareChemParticle{\photon}{\Chemgamma}
+ \RenewChemParticle{\el}{\Chembeta-}
\positron\ \photon\ \el
\end{beispiel}
-\cmd{DeclareChemParticle} only defines a particle if \code{<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 \code{<cmd>} \emph{is}
-already used and issues a warning/error otherwise.
+\cmd{DeclareChemParticle} only defines a particle if \code{<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 \code{<cmd>}
+\emph{is} already used and issues a warning/error otherwise.
\secidx*{Particles, Ions and Symbols}
\section{Nomenclature, Stereo Descriptors, Latin Phrases}\label{sec:stereo}
\subsection{\acs{iupac} Names}\secidx{IUPAC Names}
-Similar to the \paket{bpchem} package \chemmacros provides a command\footnote{The
-idea and the implementation is shamelessly borrowed from \paket*{bpchem} by Bjørn
-Pedersen.} to typeset \ac{iupac} names. Why is that useful? \ac{iupac} names can get very
-long. So long indeed that they span over more than two lines, especially in
-two-column documents. This means they must be allowed to be broken more than one
-time. This is what the following command does.
+
+Similar to the \paket{bpchem} package \chemmacros\ provides a
+command\footnote{The idea and the implementation is shamelessly borrowed from
+ \paket*{bpchem} by Bjørn Pedersen.} to typeset \ac{iupac} names. Why is
+that useful? \ac{iupac} names can get very long. So long indeed that they
+span over more than two lines, especially in two-column documents. This means
+they must be allowed to be broken more than one time. This is what the
+following command does.
\begin{beschreibung}
- \Befehl{iupac}{<IUPAC name>} Inside this command use \cmd{|} and \cmd{-} to
- indicate a breaking point or a breaking dash. Use {\catcode`\^=11\relax\cmd{^}}
- as a shortcut for \lstinline=\textsuperscript=.
+ \Befehl{iupac}{<IUPAC name>}\newline
+ Inside this command use \cmd{|} and \cmd{-} to indicate a breaking point or
+ a breaking dash. Use {\catcode`\^=11\relax\cmd{^}} as a shortcut for
+ \cmd*{textsuperscript}. (These commands are similar to the shorthands
+ provided by \paket{babel} for certain languages.)
\end{beschreibung}
\begin{beispiel}
@@ -706,13 +750,14 @@ time. This is what the following command does.
\iupac{Tetra\|cyclo[2.2.2.1\^{1,4}]\-un\|decane-2\-dodecyl\-5\-(hepta\|decyl\|iso\|dodecyl\|thio\|ester)}
\end{minipage}
\end{beispiel}
-The \cmd{iupac} command is more of a semantic command. Most times you can achieve
-(nearly) the same thing by using \cmd{-} instead of \cmd{|}, \code{-} instead of
-\cmd{-} and \lstinline=\textsuperscript= instead of {\catcode`\^=11\relax\cmd{^}}.
+The \cmd{iupac} command is more of a semantic command. Most times you can
+achieve (nearly) the same thing by using \cmd{-} instead of \cmd{|}, \code{-}
+instead of \cmd{-} and \cmd*{textsuperscript} instead of
+{\catcode`\^=11\relax\cmd{^}}.
There are some subtleties: \cmd{-} inserts a small space before the hyphen and
-removes a small space after it. The command \cmd{|} not only prevents ligatures
-but also inserts a small space.
+removes a small space after it. The command \cmd{|} not only prevents
+ligatures but also inserts a small space.
\begin{beispiel}
\huge\iupac{2,4\-Di\|chlor\|pentan} \\
2,4-Dichlorpentan
@@ -720,35 +765,39 @@ but also inserts a small space.
The spaces inserted by these commands can be customized.
\begin{beschreibung}
- \option[iupac]{hyphen-pre-space}{<dim>} Default = \code{.01em}
- \option[iupac]{hyphen-post-space}{<dim>} Default = \code{-.03em}
- \option[iupac]{break-space}{<dim>} Default = \code{.01em}
-\end{beschreibung}
-
-The command \cmd{iupac} serves another purpose, too, however. Regardless of the
-setting of the \key[option]{iupac} option all the commands presented in this
-section are always defined \emph{inside} \cmd{iupac}. Quite a number of the naming
-commands have very general names: \cmd{meta}, \cmd{D}, \cmd{E}, \cmd{L}, \cmd{R},
-\cmd{S}, \cmd{trans} and so forth. This means they either are predefined already
-(\cmd{L} \L) or are easily defined by another package or class (the \paket{cool}
-package defines both \cmd{D} and \cmd{E}, for example). In order to give you
-control which commands are defined in which way, there is the package option
-\key[option]{iupac}\label{desc:iupac}. It has three modes:
+ \Option[iupac]{hyphen-pre-space}{<dim>}\Default{.01em}
+ Set the space that is inserted before the hyphen set with \cmd{-}.
+ \Option[iupac]{hyphen-post-space}{<dim>}\Default{-.03em}
+ Set the space that is inserted after the hyphen set with \cmd{-}.
+ \Option[iupac]{break-space}{<dim>}\Default{.01em}
+ Set the space inserted by \cmd{|}.
+\end{beschreibung}
+
+The command \cmd{iupac} serves another purpose, too, however. Regardless of
+the setting of the \key[option]{iupac} option all the commands presented in
+this section are always defined \emph{inside} \cmd{iupac}. Quite a number of
+the naming commands have very general names: \cmd{meta}, \cmd{D}, \cmd{E},
+\cmd{L}, \cmd{R}, \cmd{S}, \cmd{trans} and so forth. This means they either
+are predefined already (\cmd{L} \L) or are easily defined by another package
+or class (the \paket{cool} package defines both \cmd{D} and \cmd{E}, for
+example). In order to give you control which commands are defined in which
+way, there is the package option \key[option]{iupac}\label{desc:iupac}. It
+has three modes:
\begin{itemize}
- \item \key{iupac}{auto}: if the commands are \emph{not} defined by any package
- or class you're using they are available generally, otherwise only \emph{inside}
- \cmd{iupac}.
- \item \key{iupac}{restricted}: all naming commands are \emph{only} defined inside
- \cmd{iupac}. If the commands are defined by another package they of course
- have that meaning outside. They're not defined outside otherwise.
- \item \key{iupac}{strict}: \chemmacros overwrites any other definition and makes
- the commands available throughout the document. Of course the commands can be
- redefined (but only in the document body). They will still be available inside
- \cmd{iupac} then.
+\item \key{iupac}{auto}: if the commands are \emph{not} defined by any package
+ or class you're using they are available generally, otherwise only
+ \emph{inside} \cmd{iupac}.
+\item \key{iupac}{restricted}: all naming commands are \emph{only} defined
+ inside \cmd{iupac}. If the commands are defined by another package they of
+ course have that meaning outside. They're not defined outside otherwise.
+\item \key{iupac}{strict}: \chemmacros\ overwrites any other definition and
+ makes the commands available throughout the document. Of course the
+ commands can be redefined (but only in the document body). They will still
+ be available inside \cmd{iupac} then.
\end{itemize}
Table~\ref{tab:iupac_modes} demonstrates the different modes.
-\begin{table}[h]
+\begin{table}[ht]
\centering
\begin{tabular}{lccc}\toprule
& auto & restricted & strict \\\midrule
@@ -761,22 +810,26 @@ Table~\ref{tab:iupac_modes} demonstrates the different modes.
\end{table}
\subsubsection{Predefined Commands}\secidx[predefined]{IUPAC Names}\secidx{Stereo Descriptors and Nomenclature}
-The macros in this section are intended to make the writing of \ac{iupac} names more
-convenient.
+
+The macros in this section are intended to make the writing of \ac{iupac}
+names more convenient.
\paragraph{Greek Letters}\label{par:greek_letters}\secidx[greek letters]{IUPAC Names}
-Greek letters in compound names are typeset upright. For this there are the packages
-\paket{upgreek} and \paket{textgreek}. If you have loaded one of them \chemmacros
-typesets the following commands upright:
-\begin{beschreibung}
- \befehl{a} \iupac{\a}
- \befehl{b} \iupac{\b}
- \befehl{g} \iupac{\g}
- \befehl{d} \iupac{\d}
- \befehl{k} \iupac{\k}
- \befehl{m} \iupac{\m}
- \befehl{n} \iupac{\n}
- \befehl{w} \iupac{\w}
+
+Greek letters in compound names are typeset upright. For this there are for
+example the packages \paket{upgreek} and \paket{textgreek}. If you have
+loaded one of them\footnote{There are other options, see the description of
+ the \key{greek} option.} \chemmacros\ typesets the following commands
+upright:
+\begin{beschreibung}
+ \Befehl{a} \iupac{\a}
+ \Befehl{b} \iupac{\b}
+ \Befehl{g} \iupac{\g}
+ \Befehl{d} \iupac{\d}
+ \Befehl{k} \iupac{\k}
+ \Befehl{m} \iupac{\m}
+ \Befehl{n} \iupac{\n}
+ \Befehl{w} \iupac{\w}
\end{beschreibung}
\begin{beispiel}
\iupac{5\a\-androstan\-3\b\-ol} \\
@@ -784,15 +837,16 @@ typesets the following commands upright:
\end{beispiel}
\paragraph{Hetero Atoms and added Hydrogen}\secidx[hetero atoms]{IUPAC Names}
+
Attachments to hetero atoms and added hydrogen atoms are indicated by italic
-letters~\cite{iupac:greenbook}. \chemmacros defines a few shortcuts for the most
-common ones.
+letters~\cite{iupac:greenbook}. \chemmacros\ defines a few shortcuts for the
+most common ones.
\begin{beschreibung}
- \befehl{H} \iupac{\H}
- \befehl{O} \iupac{\O}
- \befehl{N} \iupac{\N}
- \befehl{Sf} \iupac{\Sf}
- \befehl{P} \iupac{\P}
+ \Befehl{H} \iupac{\H}
+ \Befehl{O} \iupac{\O}
+ \Befehl{N} \iupac{\N}
+ \Befehl{Sf} \iupac{\Sf}
+ \Befehl{P} \iupac{\P}
\end{beschreibung}
\begin{beispiel}
\iupac{\N\-methyl\|benz\|amide} \\
@@ -802,54 +856,59 @@ common ones.
\paragraph{Cahn-Ingold-Prelog}\index{Cahn-Ingold-Prelog}\secidx[Cahn-Ingold-Prelog]{IUPAC Names}\label{par:cip}
\begin{beschreibung}
- \befehl{cip}{<conf>} \eg: \cmd{cip}{R,S} \cip{R,S}
- \befehl{R} \iupac{\R}
- \befehl{S} \iupac{\S}
+ \Befehl{cip}{<conf>} \eg: \cmd{cip}{R,S} \cip{R,S}
+ \Befehl{R} \iupac{\R}
+ \Befehl{S} \iupac{\S}
\end{beschreibung}
-Since the command \cmd{S} has another meaning already (\S) it is only available
-inside \cmd{iupac} in the default setting.
+Since the command \cmd{S} has another meaning already (\S) it is only
+available inside \cmd{iupac} in the default setting.
-Both these commands and the entgegen/zusammen descriptors get a small additional
-amount of kerning after the closing parenthesis. This amount can be changed through
-the following option:
+Both these commands and the entgegen/zusammen descriptors get a small
+additional amount of kerning after the closing parenthesis. This amount can
+be changed through the following option:
\begin{beschreibung}
- \option[iupac]{cip-kern}{<dim>} amount of kerning after the closing parenthesis.
- Default = \code{.075em}
+ \Option[iupac]{cip-kern}{<dim>}\Default{.075em}
+ Set the amount of kerning after the closing parenthesis.
\end{beschreibung}
\paragraph{Fischer}\index{Fischer}\secidx[Fischer]{IUPAC Names}
\begin{beschreibung}
- \befehl{D} \iupac{\D}
- \befehl{L} \iupac{\L}
+ \Befehl{D} \iupac{\D}
+ \Befehl{L} \iupac{\L}
\end{beschreibung}
-Since the command \cmd{L} has another meaning already (\L) it is only available
-inside \cmd{iupac} in the default setting.
+Since the command \cmd{L} has another meaning already (\L) it is only
+available inside \cmd{iupac} in the default setting.
+
+\paragraph{cis/trans, zusammen/entgegen, syn/anti \& tert}
+\index{tert}\secidx[tert]{IUPAC Names}
+\index{cis/trans}\secidx[cis/trans]{IUPAC Names}
+\index{zusammen/entgegen}\secidx[zusammen/entgegen]{IUPAC Names}
+\secidx[syn/anti]{IUPAC Names}
-\paragraph{cis/trans, zusammen/entgegen, syn/anti \& tert}\index{tert}\secidx[tert]{IUPAC Names}\index{cis/trans}\secidx[cis/trans]{IUPAC Names}\index{zusammen/entgegen}\secidx[zusammen/entgegen]{IUPAC Names}\secidx[syn/anti]{IUPAC Names}
\begin{beschreibung}
- \befehl{cis} \cis
- \befehl{trans} \trans
- \befehl{Z} \Z
- \befehl{E} \E
- \befehl{syn} \syn
- \befehl{anti} \anti
- \befehl{tert} \tert
+ \Befehl{cis} \cis
+ \Befehl{trans} \trans
+ \Befehl{Z} \Z
+ \Befehl{E} \E
+ \Befehl{syn} \syn
+ \Befehl{anti} \anti
+ \Befehl{tert} \tert
\end{beschreibung}
-The package \paket{cool} defines the commands \cmd{E} and \cmd{D}, too. If you
-load it, the \chemmacros version will only be available inside \cmd{iupac} in
-the default setting.
+The package \paket{cool} defines the commands \cmd{E} and \cmd{D}, too. If
+you load it, the \chemmacros version will only be available inside \cmd{iupac}
+in the default setting.
\paragraph{ortho/meta/para}\index{ortho/meta/para}\secidx[ortho/meta/para]{IUPAC Names}
\begin{beschreibung}
- \befehl{ortho} \ortho
- \befehl{meta} \meta
- \befehl{para} \para
+ \Befehl{ortho} \ortho
+ \Befehl{meta} \meta
+ \Befehl{para} \para
\end{beschreibung}
\paragraph{Absolute Configuration}\index{absolute configuration} (uses \TikZ)
\begin{beschreibung}
- \befehl{Rconf}[<letter>] \cmd{Rconf}: \Rconf \quad\cmd{Rconf}[]: \Rconf[]
- \befehl{Sconf}[<letter>] \cmd{Sconf}: \Sconf \quad\cmd{Sconf}[]: \Sconf[]
+ \Befehl{Rconf}[<letter>] \cmd{Rconf}: \Rconf \quad\cmd{Rconf}[]: \Rconf[]
+ \Befehl{Sconf}[<letter>] \cmd{Sconf}: \Sconf \quad\cmd{Sconf}[]: \Sconf[]
\end{beschreibung}
Examples:
@@ -867,10 +926,11 @@ Examples:
\secidx*{Stereo Descriptors and Nomenclature}
\paragraph{Coordination Chemistry}
-\chemmacros provides two commands useful with coordination chemistry:
+
+\chemmacros\ provides two commands useful with coordination chemistry:
\begin{beschreibung}
- \befehl{bridge}{<num>} \bridge{3}
- \befehl{hapto}{<num>} \hapto{5}
+ \Befehl{bridge}{<num>} \bridge{3}
+ \Befehl{hapto}{<num>} \hapto{5}
\end{beschreibung}
\begin{beispiel}
Ferrocene = \iupac{bis(\hapto{5}cyclo\|penta\|dienyl)iron} \\
@@ -879,31 +939,34 @@ Examples:
Two options allow customization:
\begin{beschreibung}
- \option[iupac]{bridge-number}{sub|super} appends the number as a subscript or
- superscript. \ac{iupac} recommendation is the subscript \cite{iupac:redbook}.
- Default = \code{sub}
- \option[iupac]{coord-use-hyphen}{\default{true}|false} append a hyphen to
- \cmd{hapto} and \cmd{bridge} or don't. Default = \code{true}
+ \Option[iupac]{bridge-number}{sub|super}\Default{sub}
+ Appends the number as a subscript or superscript. \ac{iupac}
+ recommendation is the subscript \cite{iupac:redbook}.
+ \Option[iupac]{coord-use-hyphen}{\default{true}|false}\Default{true}
+ Append a hyphen to \cmd{hapto} and \cmd{bridge} or don't.
\end{beschreibung}
\subsubsection{Own Naming Commands}\secidx[own]{IUPAC Names}
+
If you find any commands missing you can define them using
\begin{beschreibung}
\Befehl{DeclareChemIUPAC}{<cmd>}\ma{<declaration>}
\Befehl{RenewChemIUPAC}{<cmd>}\ma{<declaration>}
\end{beschreibung}
-A command defined in this way will obey the setting of the option \key[option]{iupac}.
-This means any existing command is only overwritten with \key{iupac}{strict}. However,
-\cmd{DeclareChemIUPAC} will \emph{not} change the definition of an existing \ac{iupac}
-naming command but issue a warning/an error (depending on the package option
-\key{strict}) if the \ac{iupac} naming command already exists.
+A command defined in this way will obey the setting of the option
+\key[option]{iupac}. This means any existing command is only overwritten with
+\key{iupac}{strict}. However, \cmd{DeclareChemIUPAC} will \emph{not} change
+the definition of an existing \ac{iupac} naming command but issue a warning/an
+error (depending on the package option \key{strict}) if the \ac{iupac} naming
+command already exists.
\begin{beispiel}
\DeclareChemIUPAC\endo{\textit{endo}}
\RenewChemIUPAC\anti{\textit{anti}}
\iupac{(2\-\endo,7\-\anti)\-2\-bromo\-7\-fluoro\|bicyclo[2.2.1]heptane}
\end{beispiel}
-\cmd{RenewChemIUPAC} allows you to redefine the existing \ac{iupac} naming commands.
+\cmd{RenewChemIUPAC} allows you to redefine the existing \ac{iupac} naming
+commands.
\begin{beispiel}
\iupac{\meta\-Xylol} \\
\RenewChemIUPAC\meta{\textit{m}}
@@ -913,18 +976,19 @@ naming command but issue a warning/an error (depending on the package option
\secidx*{IUPAC Names}
\subsection{Latin Phrases}\secidx{Latin Phrases}
-The package \paket{chemstyle} provides the command \cmd{latin} to typeset common
-latin phrases in a consistent way. \chemmacros defines a similar \cmd{latin} only
-if \paket{chemstyle} has \emph{not} been loaded and additionally provides these
-commands:
+
+The package \paket{chemstyle} provides the command \cmd{latin} to typeset
+common latin phrases in a consistent way. \chemmacros\ defines a similar
+\cmd{latin} only if \paket{chemstyle} has \emph{not} been loaded and
+additionally provides these commands:
\begin{beschreibung}
- \befehl{insitu} \insitu
- \befehl{abinitio} \abinitio
- \befehl{invacuo} \invacuo
+ \Befehl{insitu} \insitu
+ \Befehl{abinitio} \abinitio
+ \Befehl{invacuo} \invacuo
\end{beschreibung}
If the package \paket{chemstyle} has been loaded they are defined using
-\paket{chemstyle}'s \cmd{latin} command. This means that then the appearance
+\paket{chemstyle}'s \cmd{latin} command. This means that then the appearance
depends on \paket{chemstyle}'s option \code{abbremph}.
The commands are defined through
@@ -936,65 +1000,71 @@ The commands are defined through
\DeclareChemLatin\ltn{latin text}
\ltn
\end{beispiel}
-If you have \emph{not} loaded \paket{chemstyle} you can change the appearance with
-this option:
+If you have \emph{not} loaded \paket{chemstyle} you can change the appearance
+with this option:
\begin{beschreibung}
- \option[latin]{format}{<definition>} Default = \lstinline+\itshape+
+ \Option[latin]{format}{<definition>}\Default{\cmd*{itshape}}
+ Set the format of the latin phrases.
\end{beschreibung}
\secidx*{Latin Phrases}
\section{Units for the Usage With \textsf{siunitx}}\label{sec:einheiten}\secidx{Units}
-In chemistry some non-SI units are very common. \paket{siunitx} provides the
-command \lstinline+\DeclareSIUnit{<command>}{<unit>}+ to add arbitrary units.
-\chemmacros uses that command to provide some units. Like all \paket{siunitx}
-units they're only valid inside \lstinline+\SI{<num>}{<unit>}+ and \lstinline+\si{<unit>}+.
-\begin{beschreibung}
- \befehl{atmosphere} \si{\atmosphere}
- \befehl{atm} \si{\atm}
- \befehl{calory} \si{\calory}
- \befehl{cal} \si{\cal}
- \befehl{cmc} \si{\cmc} The units \cmd{cmc}, \cmd{molar}, and \cmd{Molar} are
- defined by the package \paket{chemstyle} as well. \chemmacros only defines them,
- if \paket{chemstyle} is not loaded.
- \befehl{molar} \si{\molar}
- \befehl{moLar} \si{\moLar}
- \befehl{Molar} \si{\Molar}
- \befehl{MolMass} \si{\MolMass}
- \befehl{normal} \si{\normal}
- \befehl{torr} \si{\torr}
-\end{beschreibung}
-
-By the way: \lstinline+\mmHg+ \si{\mmHg} already is defined by \paket{siunitx}
-and \paket{chemstyle}
+
+In chemistry some non-SI units are very common. \paket{siunitx} provides the
+command \cmd*{DeclareSIUnit}{<command>}\ma{<unit>} to add arbitrary units.
+\chemmacros\ uses that command to provide some units. Like all
+\paket{siunitx} units they're only valid inside \cmd*{SI}{<num>}\ma{<unit>}
+and \cmd*{si}{<unit>}.
+\begin{beschreibung}
+ \Befehl{atmosphere} \si{\atmosphere}
+ \Befehl{atm} \si{\atm}
+ \Befehl{calory} \si{\calory}
+ \Befehl{cal} \si{\cal}
+ \Befehl{cmc} \si{\cmc}\newline
+ The units \cmd{cmc}, \cmd{molar}, and \cmd{Molar} are defined by the
+ package \paket{chemstyle} as well. \chemmacros\ only defines them, if
+ \paket{chemstyle} is not loaded.
+ \Befehl{molar} \si{\molar}
+ \Befehl{moLar} \si{\moLar}
+ \Befehl{Molar} \si{\Molar}
+ \Befehl{MolMass} \si{\MolMass}
+ \Befehl{normal} \si{\normal}
+ \Befehl{torr} \si{\torr}
+\end{beschreibung}
+
+By the way: \cmd*{mmHg} \si{\mmHg} already is defined by \paket{siunitx} and
+\paket{chemstyle}.
\secidx*{Units}
\section{Acid/Base}\label{sec:saeure_base}\secidx{Acid/Base}
+
Easy representation of \pH, \pKa \ldots\ (the command \cmd{pKa} depends on the
package option \key[option]{language}).
\begin{beschreibung}
- \befehl{pH} \pH
- \befehl{pOH} \pOH
- \befehl{Ka} \Ka
- \befehl{Kb} \Kb
- \befehl{Kw} \Kw
- \befehl{pKa}[<num>] \cmd{pKa}: \pKa, \cmd{pKa}[1]: \pKa[1]
- \befehl{pKb}[<num>] \cmd{pKb}: \pKb, \cmd{pKb}[1]: \pKb[1]
- \befehl{p}{<anything>} \eg \cmd{p}{\cmd{Kw}} \p{\Kw}
+ \Befehl{pH} \pH
+ \Befehl{pOH} \pOH
+ \Befehl{Ka} \Ka
+ \Befehl{Kb} \Kb
+ \Befehl{Kw} \Kw
+ \Befehl{pKa}[<num>] \cmd{pKa}: \pKa, \cmd{pKa}[1]: \pKa[1]
+ \Befehl{pKb}[<num>] \cmd{pKb}: \pKb, \cmd{pKb}[1]: \pKb[1]
+ \Befehl{p}{<anything>} \eg \cmd{p}{\cmd{Kw}} \p{\Kw}
\end{beschreibung}
\begin{beispiel}
\Ka \Kb \pKa \pKa[1] \pKb \pKb[1]
\end{beispiel}
-\achtung{The default appearance of the \p{}-commands has changed to follow \ac{iupac}
-recommendations.}
+\achtung{The default appearance of the \p{}-commands has changed to follow
+ \ac{iupac} recommendations.}
\begin{zitat}[{\acs{iupac} Green Book {\cite[][p.\,103]{iupac:greenbook}}}]
The operator \p{} \textelp{} shall be printed in Roman type.
\end{zitat}
There is one option which changes the style the \p{} is typeset:
\begin{beschreibung}
- \option[acid-base]{p-style}{italics|slanted|upright} Default = \code{upright}
+ \Option[acid-base]{p-style}{italics|slanted|upright}\Default{upright}
+ Set the style of the \p{} operator.
\end{beschreibung}
\begin{beispiel}
\pH, \pKa
@@ -1006,19 +1076,22 @@ There is one option which changes the style the \p{} is typeset:
\secidx*{Acid/Base}
\section{Oxidation Numbers, Real and Formal Charges}\label{sec:ladungen}
-\chemmacros distinguishes between real ($+$/$-$) and formal (\fplus/\fminus)
-charge symbols, also see section~\ref{sec:optionen}. All commands using formal
-charge symbols start with a \code{f}.
+
+\chemmacros\ distinguishes between real ($+$/$-$) and formal (\fplus/\fminus)
+charge symbols, also see section~\ref{sec:optionen}. All commands using
+formal charge symbols start with a \code{f}.
\subsection{Ion Charges}\label{ssec:ionen}\secidx{Ion Charges}
-Simple displaying of (real) charges. It is worth noting that these commands
-really are relicts from a time when \chemmacros tried hard to be compliant
-with \paket{mhchem} and \Chemformula didn't exist, yet. They are still provided
-for backwards compatibility but my recommendation is to use \cmd{ch}
-(see~\ref{part:chemformula}) and forget about these commands:
+
+Simple displaying of (real) charges. It is worth noting that these commands
+really are relicts from a time when \chemmacros\ tried hard to be compliant
+with \paket{mhchem} and \chemformula didn't exist, yet. They are still
+provided for backwards compatibility but \emph{my recommendation is to use}
+\cmd{ch} (see the documentation of the \chemformula\ package) \emph{and forget
+ about these commands:}
\begin{beschreibung}
- \befehl{pch}[<number>] positive charge (\textbf{p}lus + \textbf{ch}arge)
- \befehl{mch}[<number>] negative charge (\textbf{m}inus + \textbf{ch}arge)
+ \Befehl{pch}[<number>] positive charge (\textbf{p}lus + \textbf{ch}arge)
+ \Befehl{mch}[<number>] negative charge (\textbf{m}inus + \textbf{ch}arge)
\end{beschreibung}
\begin{beispiel}
@@ -1028,44 +1101,22 @@ for backwards compatibility but my recommendation is to use \cmd{ch}
The same for formal charges:
\begin{beschreibung}
- \befehl{fpch}[<number>] positive charge
- \befehl{fmch}[<number>] negative charge
+ \Befehl{fpch}[<number>] positive charge
+ \Befehl{fmch}[<number>] negative charge
\end{beschreibung}
\begin{beispiel}
\fpch\ \fmch\ \fpch[3] \fmch[3]
\end{beispiel}
-
-There is a key which influences the behaviour of the charges.
-\begin{beschreibung}
- \option[charges]{append}{\default{true}|false} if set \code{true}, the charge
- is appended together with an empty group.
-\end{beschreibung}
-This is how the key influences the behaviour:
-\begin{beispiel}
- % uses package `mhchem'
- \chemsetup{charges/append=false,phases/pos=sub}
- \ce{H\pch\aq} \ce{H\aq\pch}
-
- \chemsetup[charges]{append=true}
- \ce{H\pch\aq} \ce{H\aq\pch}
-\end{beispiel}
-In most cases this behaviour will be unwanted. However, in some cases it might be
-useful, for example together with the \cmd{ox} command (see next section):
-\begin{beispiel}
- \chemsetup{charges/append=false,phases/pos=sub}
- \ce{\ox{1,H}\pch\aq}
-
- \chemsetup[charges]{append=true}
- \ce{\ox{1,H}\pch\aq}
-\end{beispiel}
\secidx*{Ion Charges}
\subsection{Oxidation Numbers}\label{ssec:oxidationszahlen}\secidx{Oxidation Numbers}
+
Typesetting oxidation numbers:
\begin{beschreibung}
- \befehl{ox}[<keyval>]{<number>,<atom>} places \code{<number>} above \code{<atom>};
- \code{<number>} has to be a (rational) number!
+ \Befehl{ox}[<keyval>]{<number>,<atom>}\newline
+ Places \code{<number>} above \code{<atom>}; \code{<number>} has to be a
+ (rational) number!
\end{beschreibung}
\begin{beispiel}
@@ -1074,19 +1125,20 @@ Typesetting oxidation numbers:
There are a number of keys, that can be used to modify the \cmd{ox} command.
\begin{beschreibung}
- \option[ox]{parse}{\default{true}|false} when \code{false} an arbitrary entry
- can be used for \code{<number>}. Default = \code{true}
- \option[ox]{roman}{\default{true}|false} switches from roman to arabic numbers.
- Default = \code{true}
- \option[ox]{pos}{top|super|side}; \code{top} places \code{<number>} above
- \code{<atom>}, \code{super} to the upper right as superscript and \code{side}
- to the right and inside brackets. Default = \code{top}
- \option[ox]{explicit-sign}{\default{true}|false} shows the $+$ for positiv
- numbers and the $\pm$ for $0$. Default = \code{false}
- \option[ox]{decimal-marker}{comma|point} choice for the decimal marker for
- formal oxidation numbers like \ox{1.2,X}. Default = \code{point}
- \option[ox]{align}{center|right} center the oxidation number relative to the atom
- or right-align it. Default = \code{center}
+ \Option[ox]{parse}{\default{true}|false}\Default{true}
+ When \code{false} an arbitrary entry can be used for \code{<number>}.
+ \Option[ox]{roman}{\default{true}|false}\Default{false}
+ Switches from roman to arabic numbers.
+ \Option[ox]{pos}{top|super|side}\Default{top}
+ \code{top} places \code{<number>} above \code{<atom>}, \code{super} to the
+ upper right as superscript and \code{side} to the right and inside
+ brackets.
+ \Option[ox]{explicit-sign}{\default{true}|false}\Default{false}
+ Shows the $+$ for positiv numbers and the $\pm$ for $0$.
+ \Option[ox]{decimal-marker}{comma|point}\Default{point}
+ Choice for the decimal marker for formal oxidation numbers like \ox{1.2,X}.
+ \Option[ox]{align}{center|right}\Default{center}
+ Center the oxidation number relative to the atom or right-align it.
\end{beschreibung}
\begin{beispiel}
@@ -1102,8 +1154,8 @@ The \key[ox]{pos}{super} variant also can be set with the shortcut \cmd{ox}*:
\ox{3,Fe} \ox*{3,Fe}
\end{beispiel}
-Using the \key[ox]{explicit-sign} key will always show the sign of the oxidation
-number:
+Using the \key[ox]{explicit-sign} key will always show the sign of the
+oxidation number:
\begin{beispiel}
\chemsetup[ox]{explicit-sign = true}
\ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ch{"\ox{0,F}" {}2}
@@ -1113,13 +1165,14 @@ number:
Compare \ox{-1,\ch{O2^2-}} to \ch{"\ox{-1,O}" {}2^2-}
\end{beispiel}
-Sometimes one might want to use formal oxidation numbers like \num{.5} or $\frac{1}{3}$:
+Sometimes one might want to use formal oxidation numbers like \num{.5} or
+$\frac{1}{3}$:
\begin{beispiel}
\ox{.5,\ch{Br2}} \ch{"\ox{1/3,I}" {}3+}
\end{beispiel}
-The fraction uses the \lstinline+\sfrac+ command of the \paket{xfrac} package.
-For this purpose the instance \lstinline+chemmacros-ox-frac+ is defined.
+The fraction uses the \cmd*{sfrac} command of the \paket{xfrac} package. For
+this purpose the instance \code{chemmacros-ox-frac} is defined.
\begin{beispiel}[code only]
\DeclareInstance{xfrac}{chemmacros-ox-frac}{text}
{
@@ -1136,12 +1189,13 @@ strongly depends on the used font.
\secidx*{Oxidation Numbers}
\subsection{Partial Charges and Similar Stuff}\label{ssec:partialladungen}\secidx{Partial Charges}
+
The next ones probably are seldomly needed but nevertheless useful:
\begin{beschreibung}
- \befehl{delp} \delp\ (\textbf{del}ta + \textbf{p}lus)
- \befehl{delm} \delm\ (\textbf{del}ta + \textbf{m}inus)
- \befehl{fdelp} \fdelp
- \befehl{fdelm} \fdelm
+ \Befehl{delp} \delp\ (\textbf{del}ta + \textbf{p}lus)
+ \Befehl{delm} \delm\ (\textbf{del}ta + \textbf{m}inus)
+ \Befehl{fdelp} \fdelp
+ \Befehl{fdelm} \fdelm
\end{beschreibung}
These macros for example can be used with the \cmd{ox} command or with the
@@ -1157,12 +1211,12 @@ These macros for example can be used with the \cmd{ox} command or with the
The following macros are useful together with \paket{chemfig}, too.
\begin{beschreibung}
- \befehl{scrp} \scrp\ (\textbf{scr}iptstyle + \textbf{p}lus)
- \befehl{scrm} \scrm\ (\textbf{scr}iptstyle + \textbf{m}inus)
- \befehl{fscrp} \fscrp
- \befehl{fscrm} \fscrm
- \befehl{fsscrp} \fsscrp\ (using \lstinline+\scriptscriptstyle+)
- \befehl{fsscrm} \fsscrm
+ \Befehl{scrp} \scrp\ (\textbf{scr}iptstyle + \textbf{p}lus)
+ \Befehl{scrm} \scrm\ (\textbf{scr}iptstyle + \textbf{m}inus)
+ \Befehl{fscrp} \fscrp
+ \Befehl{fscrm} \fscrm
+ \Befehl{fsscrp} \fsscrp\ (using \lstinline+\scriptscriptstyle+)
+ \Befehl{fsscrm} \fsscrm
\end{beschreibung}
\begin{beispiel}
@@ -1173,42 +1227,57 @@ The following macros are useful together with \paket{chemfig}, too.
\secidx*{Partial Charges}
\section{Reaction Mechanisms}\label{sec:mechanismen}\secidx{Reaction Mechanisms}
+
With the command
\begin{beschreibung}
\Befehl{mech}[<type>]
\end{beschreibung}
-one can specify the most common reaction mechanisms. \code{<type>} can have one
-of the following values:
-\begin{beschreibung}
- \befehl{mech} (empty, no opt. argument) nucleophilic substitution \mech
- \befehl{mech}[1] unimolecular nucleophilic substitution \mech[1]
- \befehl{mech}[2] bimolecular nucleophilic substitution \mech[2]
- \befehl{mech}[se] electrophilic substitution \mech[se]
- \befehl{mech}[1e] unimolecular electrophilic substitution \mech[1e]
- \befehl{mech}[2e] bimolecular electrophilic substitution \mech[2e]
- \befehl{mech}[ar] electrophilic aromatic substitution \mech[ar]
- \befehl{mech}[e] elimination \mech[e]
- \befehl{mech}[e1] unimolecular elimination \mech[e1]
- \befehl{mech}[e2] bimolecular elimination \mech[e2]
- \befehl{mech}[cb] unimolecular elimination \enquote{conjugated base}, \ie via
- carbanion \mech[cb]
+one can specify the most common reaction mechanisms. \code{<type>} can have
+one of the following values:
+\begin{beschreibung}
+ \Befehl{mech}\newline
+ (empty, no opt. argument) nucleophilic substitution \mech
+ \Befehl{mech}[1]\newline
+ unimolecular nucleophilic substitution \mech[1]
+ \Befehl{mech}[2]\newline
+ bimolecular nucleophilic substitution \mech[2]
+ \Befehl{mech}[se]\newline
+ electrophilic substitution \mech[se]
+ \Befehl{mech}[1e]\newline
+ unimolecular electrophilic substitution \mech[1e]
+ \Befehl{mech}[2e]\newline
+ bimolecular electrophilic substitution \mech[2e]
+ \Befehl{mech}[ar]\newline
+ electrophilic aromatic substitution \mech[ar]
+ \Befehl{mech}[e]\newline
+ elimination \mech[e]
+ \Befehl{mech}[e1]\newline
+ unimolecular elimination \mech[e1]
+ \Befehl{mech}[e2]\newline
+ bimolecular elimination \mech[e2]
+ \Befehl{mech}[cb]\newline
+ unimolecular elimination \enquote{conjugated base}, \ie via carbanion
+ \mech[cb]
\end{beschreibung}
\secidx*{Reaction Mechanisms}
\section{Redox Reactions}\label{sec:redoxreaktionen}\secidx{Redox Reactions}% TODO: watch pagebreaks!
-\chemmacros provides two commands to visualize the transfer of electrons in redox
-reactions. Both commands are using \TikZ.
+
+\chemmacros provides two commands to visualize the transfer of electrons in
+redox reactions. Both commands are using \TikZ.
\begin{beschreibung}
\Befehl{OX}{<name>,<atom>}
- \Befehl{redox}(<name1>,<name2>)[<tikz>]\oa{<num>}{<text>} \cnpkgdocarrow\ Only
- the first argument \da{<name1>,<name2>} is required, the others are all optional.
+ \Befehl{redox}(<name1>,<name2>)[<tikz>]\oa{<num>}{<text>}\newline
+ Only the first argument \da{<name1>,<name2>} is required, the others are
+ all optional.
\end{beschreibung}
-\cmd{OX} places \code{<atom>} into a node, which is named with \code{<name>}. If
-you have set two \cmd{OX}, they can be connected with a line using \cmd{redox}.
-To do so the names of the two nodes that are to be connected are written in the
-round braces. Since \cmd{redox} draws a tikzpicture with options \code{remember
-picture,overlay}, the document needs to be \emph{compiled at least two times}.
+\cmd{OX} places \code{<atom>} into a node, which is named with \code{<name>}.
+If you have set two \cmd{OX}, they can be connected with a line using
+\cmd{redox}. To do so the names of the two nodes that are to be connected are
+written in the round braces. Since \cmd{redox} draws a tikzpicture with
+options \code{remember picture,overlay}, the document needs to be
+\emph{compiled at least two times}.
\begin{beispiel}[dist]
\OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b){oxidation}
\end{beispiel}
@@ -1217,10 +1286,10 @@ This line can be customized using \TikZ keys in \oa{<tikz>}:
\OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
\end{beispiel}
-With the argument \oa{<num>} the length of the vertical parts of the line can be
-adjusted. The default length is \code{.6em}. This length is multiplied with
-\code{<num>}. If you use a negative value the line is placed \emph{below} the
-text.
+With the argument \oa{<num>} the length of the vertical parts of the line can
+be adjusted. The default length is \code{.6em}. This length is multiplied
+with \code{<num>}. If you use a negative value the line is placed
+\emph{below} the text.
\begin{beispiel}[dist]
\OX{a,Na} $\rightarrow$ \OX{b,Na}\pch
\redox(a,b)[->,red]{ox}
@@ -1229,23 +1298,26 @@ text.
\end{beispiel}
The default length of the vertical lines can be customized with the option
\begin{beschreibung}
- \option[redox]{dist}{<dim>} A \TeX\ dimension. Default = \code{.6em}
+ \Option[redox]{dist}{<dim>}\Default{.6em}
+ A \TeX\ dimension.
\end{beschreibung}
\begin{beispiel}[dist]
\chemsetup{redox/dist=1em}
\OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
\end{beispiel}
-Additionally the option
\begin{beschreibung}
- \option[redox]{sep}{<dim>} Default = \code{.2em}
+ \Option[redox]{sep}{<dim>}\Default{.2em}
+ The option can be used to change the distance between the atom and the
+ beginning of the line.
\end{beschreibung}
-can be used to change the distance between the atom and the beginning of the line.
+
\begin{beispiel}[dist]
\chemsetup{redox/sep=.5em}
\OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
\end{beispiel}
+\newpage
Examples:% TODO: watch pagebreaks!
\begin{beispiel}[dist]
\ch{ 2 "\OX{o1,Na}" + "\OX{r1,Cl}" {}2 -> 2 "\OX{o2,Na}" \pch{} + 2
@@ -1280,9 +1352,9 @@ Examples:% TODO: watch pagebreaks!
\end{beispiel}
\secidx*{Redox Reactions}
-\newpage
\section{(Standard) State, Thermodynamics}\label{sec:standardstate}\secidx{Thermodynamics}
\subsection{Thermodynamic Variables}\label{ssec:siunitx}
+
The following commands use \paket{siunitx}:
\begin{beschreibung}
\Befehl{Enthalpy}[<keyval>]\da{<subscript>}\ma{<value>}
@@ -1313,8 +1385,8 @@ The default values depend on the command.
\Gibbs[delta=false]{0} \\
\Entropy[delta=\Delta,exponent=]{56.7}
\end{beispiel}
-The unit is set corresponding to the rules of \paket{siunitx} and depends on its
-settings:
+The unit is set corresponding to the rules of \paket{siunitx} and depends on
+its settings:
\begin{beispiel}
\Enthalpy{-1234.56e3} \\
\sisetup{per-mode=symbol,exponent-product=\cdot,output-decimal-marker={,},group-four-digits=true}
@@ -1322,6 +1394,7 @@ settings:
\end{beispiel}
\subsubsection{Create New Variables}
+
You can use the command
\begin{beschreibung}
\Befehl{DeclareChemState}[<keyval>]{<name>}\ma{<symbol>}\ma{<unit>}
@@ -1367,8 +1440,10 @@ define a molar and an absolute variable:
\end{beispiel}
\subsection{State}\label{ssec:state}
+
The commands presented in section~\ref{ssec:siunitx} internally all use the
-command\footnote{Please note that \ma{<subscript>} is an \emph{optional} argument.}
+command\footnote{Please note that \ma{<subscript>} is an \emph{optional}
+ argument.}
\begin{beschreibung}
\Befehl{State}[<keyval>]{<symbol>}\ma{<subscript>}
\end{beschreibung}
@@ -1389,13 +1464,15 @@ Again there are some keys to customize the command:
\secidx*{Thermodynamics}
\section{Spectroscopy and Experimental Data}\label{sec:spektroskopie}\secidx{Spectroscopy}
-\subsection{The \code{\textbackslash\textcolor{code}{NMR}} Command}
-When you're trying to find out if a compound is the one you think it is often NMR
-spectroscopy is used. The experimental data are typeset similar to this:
+\subsection{The \cmd*{NMR} Command}
+
+When you're trying to find out if a compound is the one you think it is often
+NMR spectroscopy is used. The experimental data are typeset similar to this:
\begin{center}
\NMR(400)[CDCl3] = \num{1.59}
\end{center}
-\chemmacros provides a command which simplifies the input (uses \paket{siunitx}).
+\chemmacros\ provides a command which simplifies the input (uses
+\paket{siunitx}).
\begin{beschreibung}
\Befehl{NMR}*{<num>,<elem>}\da{<num>,<unit>}\oa{<solvent>}
@@ -1431,6 +1508,7 @@ The third argument specifies the solvent:
\end{beispiel}
\subsection{Short Cuts}
+
It is possible to define short cut commands for specific nuclei.
\begin{beschreibung}
\Befehl{DeclareChemNMR}{<csname>}\ma{<num>,<atom>}
@@ -1446,26 +1524,33 @@ This defines a command with the same arguments as \cmd{NMR} \emph{except} for
\end{beispiel}
\subsection{An Environment to Typeset Experimental Data}
-\chemmacros provides an environment to ease the input of experimental data.
+
+\chemmacros\ provides an environment to ease the input of experimental data.
\begin{beschreibung}\catcode`\#=11
- \umg{experimental}{data} Environment for the output of experimental data. Inside
- the environment the following commands are defined.
- \Befehl{data}{<type>}\oa{<specification>} \cnpkgdocarrow\ Type of data, \eg\ IR,
- MS\ldots\ The optional argument takes further specifications which are output
- in parentheses.
- \Befehl{data}*{<type>}\oa{<specification>} \cnpkgdocarrow\ Like \cmd{data} but
- changes the \code{=} into a \code{:}, given that \key{use-equal}{true} is used.
- \Befehl{NMR}{<num>,<elem>\oa{<coupling core>}}\da{<num>,<unit>}\oa{<solvent>}
- \cnpkgdocarrow\ this command gets an additional argument:
- \cmd{NMR}{13,C[\textasciicircum 1H]} \NMR{13,C[^1H]}
- \Befehl{J}\da{<bonds>;<nuclei>}\oa{<unit>}\ma{<list of nums>} \cnpkgdocarrow\
- Coupling constant, values are input separated by \code{;} (NMR). The argument
- \da{<bonds>;<nuclei>} is optional and enables further specifications of the
- coupling.
- \befehl{#}{<num>} Number of nuclei (NMR).
- \befehl{pos}{<num>} Position of nuclues (NMR).
- \befehl{val}{<num>} A number, an alias of \paket*{siunitx}' \lstinline+\num{<num>}+
- \befehl{val}{<num1>-{}-<num2>} An alias of \paket*{siunitx}' \lstinline+\numrange{<num1>}{<num2>}+
+ \Umg{experimental}{data}\newline
+ Environment for the output of experimental data. Inside the environment
+ the following commands are defined.
+ \Befehl{data}{<type>}\oa{<specification>}\newline
+ Type of data, \eg\ IR, MS\ldots\ The optional argument takes further
+ specifications which are output in parentheses.
+ \Befehl{data}*{<type>}\oa{<specification>}\newline
+ Like \cmd{data} but changes the \code{=} into a \code{:}, given that
+ \key{use-equal}{true} is used.
+ \Befehl{NMR}{<num>,<elem>\oa{<coupling core>}}\da{<num>,<unit>}\oa{<solvent>}\newline
+ This command gets an additional argument: \cmd{NMR}{13,C[\textasciicircum
+ 1H]} \NMR{13,C[^1H]}
+ \Befehl{J}\da{<bonds>;<nuclei>}\oa{<unit>}\ma{<list of nums>}\newline
+ Coupling constant, values are input separated by \code{;} (NMR). The
+ argument \da{<bonds>;<nuclei>} is optional and enables further
+ specifications of the coupling.
+ \Befehl{#}{<num>}\newline
+ Number of nuclei (NMR).
+ \Befehl{pos}{<num>}\newline
+ Position of nuclues (NMR).
+ \Befehl{val}{<num>}\newline
+ A number, an alias of \paket*{siunitx}' \cmd*{num}{<num>}.
+ \Befehl{val}{<num1>-{}-<num2>}\newline
+ An alias of \paket*{siunitx}' \cmd*{numrange}{<num1>}\ma{<num2>}.
\end{beschreibung}
\begin{beispiel}
@@ -1477,25 +1562,31 @@ This defines a command with the same arguments as \cmd{NMR} \emph{except} for
\end{beispiel}
\subsection{Customization}
-The output of the environment and of the NMR commands can be customized be a number
-of options. For historical reasons they all belong to the module
+
+The output of the environment and of the NMR commands can be customized be a
+number of options. For historical reasons they all belong to the module
\textcolor{module}{\code{nmr}}.
\begin{beschreibung}
- \option[nmr]{unit}{<unit>} Default = \lstinline=\mega\hertz=
- \option[nmr]{nucleus}{\{<num>,<atom>\}} Default = \ma{1,H}
- \option[nmr]{format}{<commands>} for example \lstinline=\bfseries=
- \option[nmr]{pos-number}{side|sub} Position of the number next to the atom.
- Default = \code{side}
- \option[nmr]{coupling-unit}{<unit>} A \paket{siunitx} unit. Default =
- \lstinline=\hertz=
- \option[nmr]{parse}{\default{true}|false} Treat the solvent as \paket{mhchem}/\chemformula
- formula or not. Default = \code{true}
- \option[nmr]{delta}{<tokens>} The \code{<tokens>} are added after $\delta$.
- \option[nmr]{list}{\default{true}|false} The environment \env{nmr}[<optionen>]{} is
- formatted as a list. Default = \code{false}
- \option[nmr]{list-setup}{<setup>} Setup of the list. Default = see below.
- \option[nmr]{use-equal}{\default{true}|false} Add egual sign after \cmd{NMR}
- and \cmd{data}. Default = \code{false}
+ \Option[nmr]{unit}{<unit>}\Default{\cmd*{mega}\cmd*{hertz}}
+ The used default unit.
+ \Option[nmr]{nucleus}{\{<num>,<atom>\}}\Default{\ma{1,H}}
+ The used default nucleus.
+ \Option[nmr]{format}{<commands>}\Default{}
+ For example \cmd*{bfseries}.
+ \Option[nmr]{pos-number}{side|sub}\Default{side}
+ Position of the number next to the atom.
+ \Option[nmr]{coupling-unit}{<unit>}\Default{\cmd*{hertz}}
+ A \paket{siunitx} unit.
+ \Option[nmr]{parse}{\default{true}|false}\Default{true}
+ Treat the solvent as \chemformula\ formula or not.
+ \Option[nmr]{delta}{<tokens>}\Default{}
+ The \code{<tokens>} are added after $\delta$.
+ \Option[nmr]{list}{\default{true}|false}\Default{false}
+ The environment \env{nmr}[<optionen>]{} is formatted as a list
+ \Option[nmr]{list-setup}{<setup>}\newline
+ Setup of the list. See below for the default settings.
+ \Option[nmr]{use-equal}{\default{true}|false}\Default{false}
+ Add egual sign after \cmd{NMR} and \cmd{data}.
\end{beschreibung}
The default setup of the list:
@@ -1513,8 +1604,8 @@ The default setup of the list:
\end{experimental}
\end{beispiel}
-The command \cmd{NMR} and all commands defined through \cmd{DeclareChemNMR} can
-be used like \cmd{data} for the NMR data.
+The command \cmd{NMR} and all commands defined through \cmd{DeclareChemNMR}
+can be used like \cmd{data} for the NMR data.
\begin{beispiel}
\begin{experimental}[format=\bfseries,use-equal]
@@ -1525,8 +1616,9 @@ be used like \cmd{data} for the NMR data.
\end{beispiel}
\subsection{An Example}
-The code below is shown with different specifications for \code{<optionen>}. Of
-course options can also be chosen with \cmd{chemsetup}.
+
+The code below is shown with different specifications for \code{<optionen>}.
+Of course options can also be chosen with \cmd{chemsetup}.
\begin{beispiel}[code only]
\sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
@@ -1535,24 +1627,45 @@ course options can also be chosen with \cmd{chemsetup}.
%
\data{mp.} \SI{277}{\celsius} (DSC).
%
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
+ \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},
+ \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8},
+ \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4},
+ \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
%
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
+ \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$,
+ \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8},
+ \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2},
+ \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4},
+ \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}),
+ \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
%
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
+ \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582}
+ (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
%
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100, \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
+ \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
+ \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
%
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515} (w).
+ \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918}
+ (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s),
+ \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402}
+ (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s),
+ \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979}
+ (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744}
+ (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515}
+ (w).
%
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
+ \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$),
+ \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
%
\data*{quantum yield} $\Phi = \val{0.74+-0.1}$\,.
\end{experimental}
\end{beispiel}
\subsubsection{Nearly Standard}
-Output with these options: \lstinline+<optionen>: delta=(ppm),pos-number=sub,use-equal+
+
+Output with these options:
+\lstinline+<optionen>: delta=(ppm),pos-number=sub,use-equal+
+
\bigskip
\begin{experimental}[delta=(ppm),pos-number=sub,use-equal]
@@ -1567,31 +1680,32 @@ Output with these options: \lstinline+<optionen>: delta=(ppm),pos-number=sub,use
%
\data{mp.} \SI{277}{\celsius} (DSC).
%
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}),
- \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07}
- (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m,
- \#{4}, \pos{8}).
+ \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},
+ \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8},
+ \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4},
+ \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
%
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8},
- \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}),
- \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0}
- ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2},
- \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}),
- \val{145.6} (q, \#{2}, \pos{7}).
+ \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$,
+ \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8},
+ \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2},
+ \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4},
+ \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}),
+ \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
%
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1),
- \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
+ \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582}
+ (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
%
\data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
\ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
%
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m),
- \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s),
- \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w),
- \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m),
- \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s),
- \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w),
- \val{586} (w), \val{562} (w), \val{515} (w).
+ \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918}
+ (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s),
+ \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402}
+ (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s),
+ \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979}
+ (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744}
+ (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515}
+ (w).
%
\data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$),
\SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
@@ -1600,7 +1714,9 @@ Output with these options: \lstinline+<optionen>: delta=(ppm),pos-number=sub,use
\end{experimental}
\subsubsection{Formatted List}
-Output with these options: \lstinline+<optionen>: format=\bfseries,delta=(ppm),list=true,use-equal+
+Output with these options:
+\lstinline+<optionen>: format=\bfseries,delta=(ppm),list=true,use-equal+
+
\bigskip
\begin{experimental}[format=\bfseries,delta=(ppm),list=true,use-equal]
@@ -1615,31 +1731,32 @@ Output with these options: \lstinline+<optionen>: format=\bfseries,delta=(ppm),l
%
\data{mp.} \SI{277}{\celsius} (DSC).
%
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}),
- \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07}
- (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m,
- \#{4}, \pos{8}).
+ \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},
+ \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8},
+ \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4},
+ \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
%
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8},
- \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}),
- \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0}
- ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2},
- \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}),
- \val{145.6} (q, \#{2}, \pos{7}).
+ \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$,
+ \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8},
+ \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2},
+ \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4},
+ \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}),
+ \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
%
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1),
- \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
+ \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582}
+ (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
%
\data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
\ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
%
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m),
- \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s),
- \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w),
- \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m),
- \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s),
- \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w),
- \val{586} (w), \val{562} (w), \val{515} (w).
+ \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918}
+ (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s),
+ \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402}
+ (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s),
+ \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979}
+ (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744}
+ (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515}
+ (w).
%
\data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$),
\SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
@@ -1648,6 +1765,7 @@ Output with these options: \lstinline+<optionen>: format=\bfseries,delta=(ppm),l
\end{experimental}
\subsubsection{Crazy}
+
Output for these options: \code{<optionen>}:
\begin{lstlisting}
format=\color{red}\itshape,
@@ -1677,31 +1795,32 @@ Output for these options: \code{<optionen>}:
%
\data{mp.} \SI{277}{\celsius} (DSC).
%
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}),
- \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07}
- (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m,
- \#{4}, \pos{8}).
+ \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},
+ \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8},
+ \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4},
+ \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
%
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8},
- \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}),
- \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0}
- ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2},
- \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}),
- \val{145.6} (q, \#{2}, \pos{7}).
+ \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$,
+ \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8},
+ \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2},
+ \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4},
+ \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}),
+ \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
%
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1),
- \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
+ \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582}
+ (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
%
\data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100,
\ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
%
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m),
- \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s),
- \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w),
- \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m),
- \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s),
- \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w),
- \val{586} (w), \val{562} (w), \val{515} (w).
+ \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918}
+ (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s),
+ \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402}
+ (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s),
+ \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979}
+ (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744}
+ (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515}
+ (w).
%
\data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$),
\SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
@@ -1711,34 +1830,35 @@ Output for these options: \code{<optionen>}:
\secidx*{Spectroscopy}
\section{Commands for \textsf{mhchem}}\label{sec:mhchem}\secidx{Commands for mhchem}
-\paket{mhchem} isn't loaded automatically any more but only if you've specified
-\key[option]{method}{mhchem} in the preamble. In the default settings \chemmacros
-uses \chemformula instead.
-\chemmacros provides only one command specifically for \paket*{mhchem}%
-\footnote{\chemformula provides its own possibility.}. It is meant to place text
-below of compounds.
+\paket{mhchem} is not officially supported by \chemmacros\ as it used
+\chemformula\ instead. However, for historical reasons the following command
+is still provided.
+
\begin{beschreibung}
\Befehl{mhName}[<keyval>]{<formula>}\ma{<text>}
\end{beschreibung}
For example:
\begin{beispiel}
- \ce{4 C2H5Cl + Pb / Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
+ \ce{4 C2H5Cl + Pb{/}Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
\end{beispiel}
There are several keys to customize \cmd{mhName}.
\begin{beschreibung}
- \option[mhName]{align}{<alignment command>} the alignment of the text in the box
- it is placed in, default = \lstinline+\centering+
- \option[mhName]{format}{<anything>} the format of the text
- \option[mhName]{fontsize}{<font size command>} the fontsize of the text, default
- = \lstinline+\tiny+
- \option[mhName]{width}{<dim>|auto} the width of the box the text is placed in,
- default = \code{auto}
+ \Option[mhName]{align}{<alignment command>}\Default{\cmd*{centering}}
+ The alignment of the text in the box it is placed in.
+ \Option[mhName]{format}{<anything>}\Default{}
+ The format of the text.
+ \Option[mhName]{fontsize}{<font size command>}\Default{\cmd*{tiny}}
+ The fontsize of the text.
+ \Option[mhName]{width}{<dim>|auto}\Default{auto}
+ The width of the box the text is placed in.
\end{beschreibung}
+Since version~3.13 of \paket{mhchem} you need to hide the command in braces if
+you want to use the optional argument,
\begin{beispiel}
- \ce{4 C2H5Cl + Pb / Na -> \mhName[fontsize=\footnotesize]{Pb(C2H5)4}{former antiknock additive} + NaCl}\\
+ \ce{4 C2H5Cl + Pb / Na -> {\mhName[fontsize=\footnotesize]{Pb(C2H5)4}{former antiknock additive}} + NaCl}\\
\chemsetup[mhName]{align=\raggedright,fontsize=\small,format=\bfseries\color{red},width=3cm}
\ce{4 C2H5Cl + Pb / Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
\end{beispiel}
@@ -1746,6 +1866,7 @@ There are several keys to customize \cmd{mhName}.
\section{Reaction Environments}\label{sec:reactions}\secidx{Reaction Environments}
\subsection{Defined by \chemmacros}
+
You can use these environments for numbered\ldots
\begin{beschreibung}
\Umg{reaction}{<formula or mhchem code>}
@@ -1758,11 +1879,12 @@ You can use these environments for numbered\ldots
\Umg{reactions*}{<formula or mhchem code>}
\end{beschreibung}
-With them you can create (un)numbered reaction equations similar to mathematical
-equations.
+With them you can create (un)numbered reaction equations similar to
+mathematical equations.
-Theses environments use the \code{equation}/\code{equation*} environments or the
-\code{align}/\code{align*} environments, respectively, to display the reactions.
+Theses environments use the \code{equation}/\code{equation*} environments or
+the \code{align}/\code{align*} environments, respectively, to display the
+reactions.
\begin{beispiel}
Reaction with counter:
@@ -1806,7 +1928,7 @@ If you want to change the layout of the counter tags, you can use
\end{reaction}
\end{beispiel}
-With version 3.3 referencing and the use of \AmS math's \cmd{intertext} also
+With version~3.3 referencing and the use of \AmS math's \cmd{intertext} also
function properly:
\begin{beispiel}
\begin{reactions}
@@ -1817,33 +1939,29 @@ function properly:
See reaction~\ref{rxn:test}.
\end{beispiel}
-\achtung{In the standard setting, \ie using \key{method}{chemformula} you should
-not use \cmd{mch} and its relatives inside the \code{reaction} environments. They
-will very likely mess with spacing. In the standard setting charges inside the
-environments automatically recognize the setting of the option \key{circled} so
-there's also no need for the charge commands.}
+\achtung{You should not use \cmd{mch} and its relatives inside the
+ \code{reaction} environments.}
\subsection{Own Reactions}
You can create new types of reactions with the command:
\begin{beschreibung}
- \Befehl{DeclareChemReaction}[<keyval>]{<name>}\ma{<math name>}
+ \Befehl{DeclareChemReaction}[<keyval>]{<name>}\ma{<math name>}\newline
+ \code{<name>} will be the name of the new environment. \code{<math name>}
+ is the used math environment.
\end{beschreibung}
-\code{<name>} will be the name of the new environment. \code{<math name>} is the
-used math environment.
-
The command has two options.
\begin{beschreibung}
\Option*{star}{\default{true}|false}
\Option*{arg}{\default{true}|false}
\end{beschreibung}
There is \key*{star}, which will also define a starred version of the new
-environment, if the starred math environment exists. If it doesn't exist, this
-will cause an error.
+environment, if the starred math environment exists. If it doesn't exist,
+this will cause an error.
-Then there is \key*{arg}, which is used to define an environment with a mandatory
-argument. Of course this only works, if the used math environment has a mandatory
-argument.
+Then there is \key*{arg}, which is used to define an environment with a
+mandatory argument. Of course this only works, if the used math environment
+has a mandatory argument.
The predefined environments are defined via
\begin{beschreibung}
@@ -1851,8 +1969,9 @@ The predefined environments are defined via
\Befehl{DeclareChemReaction}[star]{reactions}\ma{align}.
\end{beschreibung}
-Let's suppose, you'd like to have the alignment behaviour of the \code{alignat}
-environment for \chemformula/\paket{mhchem} reactions. You could do the following:
+Let's suppose, you'd like to have the alignment behaviour of the
+\code{alignat} environment for \chemformula/\paket{mhchem} reactions. You
+could do the following:
\cmd{DeclareChemReaction}[star,arg]{reactionsat}\ma{alignat}
@@ -1870,8 +1989,9 @@ With this the \code{reactionsat} environment is defined.
\end{beispiel}
\subsection{List of Reactions}
-\chemmacros also provides a command to display a list of the reactions created
-with the \lstinline+reaction+ environment.
+
+\chemmacros\ also provides a command to display a list of the reactions
+created with the \code{reaction} environment.
\begin{beschreibung}
\Befehl{listofreactions}
\end{beschreibung}
@@ -1881,76 +2001,80 @@ with the \lstinline+reaction+ environment.
The Output of this list can be modified by two options:
\begin{beschreibung}
- \option[reaction]{list-name}{<name of the list>} Let's you set the name of the
- list manually. Default = \code{List of reactions}
- \option[reaction]{list-entry}{<prefix to each entry>} Let's you set a prefix to
- each list entry. Default = \code{Reaction}
+ \Option[reaction]{list-name}{<name of the list>}\Default{List of reactions}
+ Let's you set the name of the list manually. The default name is language
+ dependent, see section~\ref{sec:languages}.
+ \Option[reaction]{list-entry}{<prefix to each entry>}\Default{Reaction}
+ Let's you set a prefix to each list entry. The default name is language
+ dependent, see section~\ref{sec:languages}.
\end{beschreibung}
-Both default option values recognize the package option \key[option]{german}.
+Instead of using the option \key{list-name} you also could redefine
+\cmd{reactionlistname}.
-Instead of using the option \key{list-name} you also could redefine \cmd{reactionlistname}.
-
-The list lists all reactions with a number and disregards reactions without number.
-All reaction environments without star have an optional argument which let's you
-add a description (or caption) for the entry in the list.
+The list lists all reactions with a number and disregards reactions without
+number. All reaction environments without star have an optional argument
+which let's you add a description (or caption) for the entry in the list.
\begin{beispiel}
\begin{reaction}[Autoprotolyse]
2 H2O <<=> H3O+ + OH-
\end{reaction}
\end{beispiel}
-If you use the \code{reactions} environment this will not work, though. In this
-case you can use
+If you use the \code{reactions} environment this will not work, though. In
+this case you can use
\begin{beschreibung}
\Befehl{AddRxnDesc}{<description>}
\end{beschreibung}
\begin{beispiel}
\begin{reactions}
- Cl "\Lewis{0.,\vphantom{Cl}}" + CH4 &-> HCl + "\Lewis{4.,\vphantom{CH}}" CH3 \AddRxnDesc{first~step~of~chain} \\
- "\Lewis{4.,\vphantom{CH}}" CH3 + Cl2 &-> CH3Cl + Cl "\Lewis{0.,\vphantom{Cl}}" \AddRxnDesc{second~step~of~chain}
+ Cl "\Lewis{0.,\vphantom{Cl}}" + CH4 &
+ -> HCl + "\Lewis{4.,\vphantom{CH}}" CH3 \AddRxnDesc{first~step~of~chain} \\
+ "\Lewis{4.,\vphantom{CH}}" CH3 + Cl2 &
+ -> CH3Cl + Cl "\Lewis{0.,\vphantom{Cl}}" \AddRxnDesc{second~step~of~chain}
\end{reactions}
\end{beispiel}
-Note: you don't have to use the phantom commands if you haven't changed the format
-of the atoms, see section~\ref{sec:format} on page~\pageref{sec:format}.
+Note: you don't have to use the phantom commands if you haven't changed the
+format of the atoms (see the documentation of the \chemformula\ package for
+information on how to do this).
+
\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{beschreibung}
- \befehl{sld} \sld
- \befehl{lqd} \lqd
- \befehl{gas} \gas
- \befehl{aq} \aq
+ \Befehl{sld} \sld
+ \Befehl{lqd} \lqd
+ \Befehl{gas} \gas
+ \Befehl{aq} \aq
\end{beschreibung}
-\achtung{The default behaviour of the phases commands has changed to be consistent
-with \ac{iupac} recommendations. Both \cmd{sld} and \cmd{lqd} have lost their optional
-argument.}
+\achtung{The default behaviour of the phases commands has changed to be
+ consistent with \ac{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 \key{language}{german} (see section~\ref{sec:optionen})
-you get the german versions.
-
-The \ac{iupac} recommendation 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.
+The \ac{iupac} recommendation 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.
\begin{zitat}[{\acs{iupac} Green Book {\cite[][p.\,54]{iupac:greenbook}}}]
- The \textelp{} 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).
+ The \textelp{} 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{zitat}
There are two options to customize the output:
\begin{beschreibung}
- \option[phases]{pos}{side|sub} Switch the position of the phase indicator.
- Default = \code{side}
- \option[phases]{space}{<dim>} Change the default spacing between compound a phase
- indicator if \key{pos}{side}. A \TeX\ dimension. Default = \code{.1333em}
+ \Option[phases]{pos}{side|sub}\Default{side}
+ Switch the position of the phase indicator.
+ \Option[phases]{space}{<dim>}\Default{.1333em}
+ Change the default spacing between compound a phase indicator if
+ \key{pos}{side}. A \TeX\ dimension.
\end{beschreibung}
\begin{beispiel}
\chemsetup[phases]{pos=sub}
@@ -1959,22 +2083,27 @@ There are two options to customize the output:
\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.
+Depending on the subject of your document you might need to indicate other
+states of aggregation. You can easily define them.
\begin{beschreibung}
\Befehl{DeclareChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
\Befehl{RenewChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
- \befehl{phase}{<phase>} If you need a phase indicator just once or twice.
-\end{beschreibung}
-\cmd{DeclareChemPhase} only defines a phase if \code{<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 \code{<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
+ \Befehl{phase}{<phase>}\newline
+ If you need a phase indicator just once or twice.
+\end{beschreibung}
+\cmd{DeclareChemPhase} only defines a phase if \code{<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 \code{<cmd>} \emph{is}
+already used and issues a warning/error otherwise. Unlike the other
+declaration commands of \chemmacros\ \cmd{DeclareChemPhase} and
+\cmd{RenewChemPhase} \emph{can only be used in the preamble.}
+
+\begin{beispiel}
+ % preamble:
+ % \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
@@ -1986,8 +2115,9 @@ warning/error otherwise.
\begin{beschreibung}
\Befehl{newman}[<keyval>]\da{<angle>}\ma{<1>,<2>,<3>,<4>,<5>,<6>}
\end{beschreibung}
-which allows you to create newman projections (uses \TikZ). With \code{<angle>}
-the back atoms are rotated counter clockwise with respect to the front atoms.
+which allows you to create newman projections (uses \TikZ). With
+\code{<angle>} the back atoms are rotated counter clockwise with respect to
+the front atoms.
\begin{beispiel}
\newman{} \newman(170){}
\newman{1,2,3,4,5,6} \newman{1,2,3} \newman{,,,4,5,6}
@@ -1995,11 +2125,16 @@ the back atoms are rotated counter clockwise with respect to the front atoms.
Several options allow customization:
\begin{beschreibung}
- \option[newman]{angle}{<angle>} default angle
- \option[newman]{scale}{<factor>} scale the whole projection
- \option[newman]{ring}{<tikz>} customize the ring with \TikZ keys
- \option[newman]{atoms}{<tikz>} customize the nodes within which the atoms are set
- \option[newman]{back-atoms}{<tikz>} explicitly customize the back atoms
+ \Option[newman]{angle}{<angle>}\Default{0}
+ Default angle.
+ \Option[newman]{scale}{<factor>}\Default{1}
+ Scale the whole projection.
+ \Option[newman]{ring}{<tikz>}\Default{}
+ Customize the ring with \TikZ keys.
+ \Option[newman]{atoms}{<tikz>}\Default{}
+ Customize the nodes within which the atoms are set.
+ \Option[newman]{back-atoms}{<tikz>}\Default{}
+ Explicitly customize the back atoms.
\end{beschreibung}
\begin{beispiel}
@@ -2020,6 +2155,7 @@ Several options allow customization:
\secidx*{Newman Projections}
\section{s, p, and Hybrid Orbitals}\label{sec:orbitale}\secidx{Orbitals}
+
\chemmacros provides the following command to create orbitals:
\begin{beschreibung}
\Befehl{orbital}[<keyval>]{<type}
@@ -2040,13 +2176,17 @@ There are the following types available for \code{<type>}:
Depending on the type you have different options to modify the orbitals:
\begin{beschreibung}
- \option[orbital]{phase}{\default{+}|-} changes the phase of the orbital (all types)
- \option[orbital]{scale}{<factor>} changes the size of the orbital (all types)
- \option[orbital]{color}{<color>} changes the color of the orbital (all types)
- \option[orbital]{angle}{<angle>} rotates the orbitals with a p contribution counter
- clockwise (all types except \code{s})
- \option[orbital]{half}{\default{true}|false} displays only half an orbital (only
- \code{p})
+ \Option[orbital]{phase}{\default{+}|-}\newline
+ changes the phase of the orbital (all types)
+ \Option[orbital]{scale}{<factor>}\newline
+ changes the size of the orbital (all types)
+ \Option[orbital]{color}{<color>}\newline
+ changes the color of the orbital (all types)
+ \Option[orbital]{angle}{<angle>}\newline
+ rotates the orbitals with a p contribution counter clockwise (all types
+ except \code{s})
+ \Option[orbital]{half}{\default{true}|false}\newline
+ displays only half an orbital (only \code{p})
\end{beschreibung}
\begin{beispiel}
@@ -2054,15 +2194,19 @@ Depending on the type you have different options to modify the orbitals:
\orbital{p} \orbital[phase=-]{p}
\orbital{sp3} \orbital[phase=-]{sp3}
- \orbital[angle=0]{p} \orbital[color=red!50]{p} \orbital[angle=135,scale=1.5]{p} \orbital[half]{p}
+ \orbital[angle=0]{p} \orbital[color=red!50]{p}
+ \orbital[angle=135,scale=1.5]{p} \orbital[half]{p}
\end{beispiel}
-Additionally there are two options, with which the \TikZ behaviour can be changed.
+Additionally there are two options, with which the \TikZ behaviour can be
+changed.
\begin{beschreibung}
- \option[orbital]{overlay}{\default{true}|false} the orbital \enquote{doesn't need
- space}; it is displayed with the \TikZ option \code{overlay}.
- \option[orbital]{opacity}{<num>} the orbital becomes transparent; \code{<value>}
- can have values between \code{1} (fully opaque) to \code{0} (invisible).
+ \Option[orbital]{overlay}{\default{true}|false}\newline
+ The orbital \enquote{doesn't need space}; it is displayed with the \TikZ
+ option \code{overlay}.
+ \Option[orbital]{opacity}{<num>}\newline
+ The orbital becomes transparent; \code{<value>} can have values between
+ \code{1} (fully opaque) to \code{0} (invisible).
\end{beschreibung}
\begin{beispiel}[dist]
\hspace{1cm}
@@ -2071,7 +2215,14 @@ Additionally there are two options, with which the \TikZ behaviour can be change
p/color = black!70
}
\setbondoffset{0pt}
- \chemfig{?\orbital{p}-[,1.3]{\orbital[phase=-]{p}}-[:30,1.1]\orbital{p}-[:150,.9]{\orbital[phase=-]{p}}-[4,1.3]\orbital{p}-[:-150,1.1]{\orbital[phase=-]{p}}?}
+ \chemfig{
+ ?\orbital{p}
+ -[,1.3]{\orbital[phase=-]{p}}
+ -[:30,1.1]\orbital{p}
+ -[:150,.9]{\orbital[phase=-]{p}}
+ -[4,1.3]\orbital{p}
+ -[:-150,1.1]{\orbital[phase=-]{p}}?
+ }
\vspace{7mm}
\end{beispiel}
@@ -2086,1349 +2237,52 @@ Additionally there are two options, with which the \TikZ behaviour can be change
s/color = blue!50 ,
s/scale = 1.6
}
- \chemfig{\orbital{s}-[:-20]{\orbital[scale=2]{p}}{\orbital[half,angle=0]{p}}{\orbital[angle=170,half]{p}}{\orbital[angle=-150,half]{p}}(-[:-150]\orbital{s})-\orbital{s}}
+ \chemfig{
+ \orbital{s}
+ -[:-20]{\orbital[scale=2]{p}}{\orbital[half,angle=0]{p}}{\orbital[angle=170,half]{p}}{\orbital[angle=-150,half]{p}}
+ (-[:-150]\orbital{s})-\orbital{s}
+ }
\vspace{1cm}
\end{beispiel}
\bspmidlength{dist}{7mm}
\secidx*{Orbitals}\secidx*{CHEMMACROS}
-\newpage
-\part{\texorpdfstring{\Chemformula}{chemformula}}\secidx{CHEMFORMULA}\label{part:chemformula}
-\chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
-}
-\section{Setup}
-All of \chemformula's options belong to the module \textcolor{module}{\code{chemformula}}.
-This means they can be setup with
-\begin{beispiel}[code only]
- \chemsetup[chemformula]{<options>} or
- \chemsetup{chemformula/<option1>,chemformula/<option2>}
-\end{beispiel}
-
-\section{The Basic Principle}
-\chemformula offers one main command.
-\begin{beschreibung}
- \Befehl{ch}[<options>]{<input>}
-\end{beschreibung}
-The usage will seem very familiar to you if you're familiar with \paket{mhchem}:
-\begin{beispiel}
- \ch{H2O} \\
- \ch{Sb2O3} \\
- \ch{H+} \\
- \ch{CrO4^2-} \\
- \ch{AgCl2-} \\
- \ch{[AgCl2]-} \\
- \ch{Y^{99}+} \\
- \ch{Y^{99+}} \\
- \ch{H2_{(aq)}} \\
- \ch{NO3-} \\
- \ch{(NH4)2S} \\
- \ch{^{227}_{90}Th+} \\
- $V_{\ch{H2O}}$ \\
- \ch{Ce^{IV}} \\
- \ch{KCr(SO4)2 * 12 H2O}
-\end{beispiel}
-
-However, there are differences. The most notable one: \chemformula distinguishes
-between different types of input. These different parts \emph{have} to be separated
-with blanks:
-\begin{beschreibung}
- \Befehl{ch}{part1 part2 part3 part4}
-\end{beschreibung}
-A blank in the input \emph{never} is a blank in the output. This role of the blank
-strictly holds and disregarding it can have unexpected results and even lead to errors.
-
-Another notable difference: \chemformula tries to avoid math mode whenever possible:
-\begin{beispiel}
- \ch{A + B ->[a] C} \\
- \ce{A + B ->[a] C}
-\end{beispiel}
-
-This means that \cmd{ch}{2H2O} is recognized as a \emph{single} part, which in
-this case is recognized as a compound.
-\begin{beispiel}
- \ch{2H2O} \\
- \ch{2 H2O}
-\end{beispiel}
-This also means, that a part cannot contain a blank since this will automatically
-divide it into two parts. If you need an extra blank in the output you need to use
-\lstinline+~+. However, since commands in most cases gobble a space after them a
-input like \cmd{ch}{\textbackslash command ABC} will be treated as a single part.
-If you want or need to divide them you need to add an empty group:
-\cmd{ch}{\textbackslash command\{\} ABC}. The different input types are described
-in the following sections.
-
-There are some options to customize the output of the \cmd{ch} command. They can
-either be applied locally using the optional argument or can be set globally using
-the setup command. All options of \chemformula belong to the module
-\textcolor{module}{\code{chemformula}}.
-\begin{beschreibung}
- \Befehl{chemsetup}[chemformula]{<options>}
-\end{beschreibung}
-
-\section{Stoichiometric Factors}\secidx{Stoichiometric Factors}
-A stoichiometric factor may only contain of numbers and the signs \lstinline+.,_/()+
-\begin{beispiel}
- \ch{2} \\
- \ch{12}
-
- % decimals:
- \ch{.5} \\
- \ch{5,75}
-
- % fractions:
- \ch{3/2} \\
- \ch{1_1/2}
-
- % ``iupac'':
- \ch{(1/2)}
-\end{beispiel}
-
-As you can see if you input decimal numbers a missing leading zero is added.
+\part{Other Packages of the Bundle}
-You have to be a little bit careful with the right syntax but I believe it is
-rather intuitive.
-\begin{beispiel}[code only]
- this won't work but will result in an error: \ch{1/1_1}
-\end{beispiel}
-
-If stoichiometric factors are enclosed with parentheses the fractions are not
-recognized and missing leading zeros are not added. What's inside the parentheses
-is typeset as is.
-\begin{beispiel}
- \ch{(1/2) H2O} \ch{1/2 H2O} \ch{0.5 H2O}
-\end{beispiel}
-You can find many examples like the following for stoichiometric factors in
-parentheses in the \acs{iupac} Green Book~\cite{iupac:greenbook}:
-\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*}
-
-There are a few possibilities to customize the output.
-\begin{beschreibung}
- \option{decimal-marker}{<marker>} the symbol to indicate the decimal. Default =
- \code{.}
- \option{frac-style}{math|xfrac|nicefrac} determines how fractions are displayed.
- Default = \code{math}
- \option{stoich-space}{<skip>} The space that is placed after the stoichiometric
- factor. A rubber length. Default = \code{.1667em plus .0333em minus .0117em}
- \option{stoich-paren-parse}{\default{true}|false} If set to true stoichiometric
- factors enclosed by parentheses also are parsed. Default = \code{false}
-\end{beschreibung}
-\begin{beispiel}
- \ch[decimal-marker={,}]{3.5} \ch[decimal-marker={$\cdot$}]{3,5}
-\end{beispiel}
-
-The option \key{frac-style}{xfrac} uses the \lstinline+\sfrac+ command of the
-\paket{xfrac} package. The output strongly depends on the font you use.\secidx[xfrac]{Stoichiometric Factors}
-\begin{beispiel}
- \ch[frac-style=xfrac]{3/2} \ch[frac-style=xfrac]{1_1/2}
-\end{beispiel}
-\chemformula defines the instance \lstinline=formula-text-frac= which you can
-redefine to your needs. See the \paket{xfrac} documentation for further information.
-The default definition is this:
-\begin{beispiel}[code only]
- \DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- slash-left-kern = -.15em ,
- slash-right-kern = -.15em
- }
-\end{beispiel}
-This document uses the font Linux Libertine~O and the following definition:
-\begin{beispiel}[code only]
- \DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- scale-factor = 1 ,
- denominator-bot-sep = -.2ex ,
- denominator-format = \scriptsize #1 ,
- numerator-top-sep = -.2ex ,
- numerator-format = \scriptsize #1 ,
- slash-right-kern = .05em ,
- slash-left-kern = .05em
- }
-\end{beispiel}
-
-The option \key{frac-style}{nicefrac} uses the \lstinline+\nicefrac+ command of
-the \paket{nicefrac} package.\secidx[nicefrac]{Stoichiometric Factors}
-\begin{beispiel}
- \ch[frac-style=nicefrac]{3/2} \ch[frac-style=nicefrac]{1_1/2}
-\end{beispiel}
-
-The option \key{stoich-space} allows you to customize the space between
-stoichiometric factor and the group following after it.\secidx[space]{Stoichiometric Factors}
-\begin{beispiel}
- \ch{2 H2O} \\
- \ch[stoich-space=.3em]{2 H2O}
-\end{beispiel}
-\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.
-\begin{beispiel}
- \ch{H2SO4} \\
- \ch{[Cu(NH3)4]^2+}
-\end{beispiel}
-
-\subsection{Adducts}\secidx[adducts]{Compounds}
-\chemformula has two identifiers which will create adducts.
-\begin{beschreibung}
- \befehl{ch}{A.B}
- \befehl{ch}{A*B}
-\end{beschreibung}
-\begin{beispiel}
- \ch{CaSO4.H2O} \\
- \ch{CaSO4*H2O}
-\end{beispiel}
-Since numbers in a compound always are treated as subscripts (see
-section~\ref{ssec:subscripts}) you sometimes need to introduce stoichiometric
-factors for the right output:
-\begin{beispiel}
- \ch{Na3PO4*12H2O} \\
- \ch{Na3PO4* 12 H2O} \\
- \ch{Na3PO4 * 12 H2O}
-\end{beispiel}
-
-\subsection{Subscripts}\label{ssec:subscripts}\secidx[subscripts]{Compounds}
-\emph{All} numbers in a compound are treated as subscripts.
-\begin{beispiel}
- \ch{H2SO4}
-\end{beispiel}
-If you want a letter to be a subscript you can use the math syntax:
-\begin{beispiel}
- \ch{A_nB_m}
-\end{beispiel}
-The subscript recognizes groups. You can also use math inside it.
-\begin{beispiel}
- \ch{A_{$n$}B_{$m$}} \\
- \ch{NaCl_{(aq)}}
-\end{beispiel}
-
-\subsection{Commands}\secidx[commands]{Compounds}
-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
-\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}. Actually not at all like it but equally bad\ldots
-\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
-\code{+} nor \code{-} are treated as bonds. If a dot \code{.} is inside a
-superscript it is treated as indicator for a radical. A \code{*} gives the
-excited state.
-\begin{beispiel}
- \ch{A^{x-}} \\
- \ch{A^x-} \\
- \ch{A^{x}-} \\
- \ch{A^{$x-$}} \\
- \ch{RNO2^{-.}} \\
- \ch{^31H} \\
- \ch{^{14}6C} \\
- \ch{^{58}_{26}Fe} \\
- \ch{NO^*}
-\end{beispiel}
-
-Ions and ion composites with more than one charge can be typeset quite as easy:
-\begin{beispiel}
- \ch{SO4^2-} \ch{Ca^2+ SO4^2-}
-\end{beispiel}
-
-\paragraph{Charge Commands}\secidx[superscripts!charge commands]{Compounds}
-You don't need to use \cmd{mch} and related commands inside \cmd{ch}. Indeed,
-you \emph{shouldn't} use them as they might mess with the subscript and superscript
-alignment. The \chemmacros option \code{circled} is obeyed by \cmd{ch}.
-\begin{beispiel}
- \chemsetup[option]{circled=all}
- \ch{H+ + OH- <=> H2O}
-\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{B^3} \ch{B3^3} \\
- \ch{^{23}_{123}B} \ch{{}^{23}_{123}B} \ch{_{123}^{23}B} \ch{B^{23}} \ch{B_{123}^{23}} \\
- \ch{^{123}_{23}B} \ch{{}^{123}_{23}B} \ch{_{23}^{123}B} \ch{B^{123}} \ch{B23^{123}}
-\end{beispiel}
+The other three package, \chemformula, \ghsystem\ and \chemgreek, all have
+their own documentation:
\begin{itemize}
- \item If a compound \emph{starts} with a sub- or superscript both sub- and
- superscript are aligned to the \emph{right} else to the \emph{left}.
- \item If a compound \emph{does not start} with a sub- or superscript and there
- is both a sub- and a superscript, the superscript is shifted additionally by a
- length determined from the option \key{charge-hshift}{<dim>}, also see
- page~\pageref{desc:charge-hshift}f.
+ \item \url{chemformula_en.pdf}
+ \item \url{ghsystem_en.pdf}
+ \item \url{chemgreek_en.pdf}
\end{itemize}
-The second point follows \ac{iupac}'s recommendations:
-\begin{zitat}[{\acs{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=full]{SO4^2-},
- \ch{(SO4)^2-} The staggered arrangement is now recommended.
-\end{zitat}
-\subsection{Bonds}\label{ssec:bonds}\secidx[bonds]{Compounds}
-\subsubsection{Native Bonds}
-There are three kinds of what I will call ``native bonds'':
-\begin{beispiel}
- single: \ch{CH3-CH3} \\
- double: \ch{CH2=CH2} \\
- triple: \ch{CH+CH}
-\end{beispiel}
-
-\subsubsection{Flexible Bonds}
-\paragraph{Predefined Bonds}
-In addition to the three native bonds there are a few more which can be called by
-\begin{beschreibung}
- \Befehl{bond}{<bond name>}
-\end{beschreibung}
-The predefined bond types are shown in table~\ref{tab:bond_types}.
-
-\begin{table}
- \centering
- \caption{Bonds available with \protect\cmd{bond}.}
- \label{tab:bond_types}
- \begin{tabular}{lcl}
- \toprule
- \bfseries name & \bfseries appearance & \bfseries aliases \\
- \midrule
- \code{single} & \bond{single} & \code{normal}, \code{sb} \\
- \code{double} & \bond{double} & \code{db} \\
- \code{triple} & \bond{triple} & \code{tp} \\
- \code{dotted} & \bond{dotted} & \code{semisingle} \\
- \code{deloc} & \bond{deloc} & \code{semidouble} \\
- \code{tdeloc} & \bond{tdeloc} & \code{semitriple} \\
- \code{co>} & \bond{co>} & \code{coordright} \\
- \code{<co} & \bond{<co} & \code{coordleft} \\
- \bottomrule
- \end{tabular}
-\end{table}
-
-\begin{beispiel}
- \ch{C\bond{sb}C\bond{db}C\bond{tp}C\bond{deloc}C\bond{tdeloc}C\bond{co>}C\bond{<co}C}
-\end{beispiel}
-
-\paragraph{Own Bonds}
-\chemformula offers commands to define own bond types:
-\begin{beschreibung}
- \Befehl{DeclareChemBond}{<name>}\ma{<code>}
- \Befehl{RenewChemBond}{<name>}\ma{<code>}
- \Befehl{DeclareChemBondAlias}{<new name>}\ma{<old name>}
- \Befehl{ShowChemBond}{<name>}
-\end{beschreibung}
-The usage is best described with an example. So let's see how the \code{single}
-bond and the \code{co>} bond are defined:
-\begin{beispiel}[code only]
- \DeclareChemBond{single}
- { \draw[chembond] (chemformula-bond-start) -- (chemformula-bond-end) ; }
- \DeclareChemBond{coordright}
- { \draw[chembond,butt cap->] (chemformula-bond-start) -- (chemformula-bond-end) ; }
- \DeclareChemBondAlias{co>}{coordright}
-\end{beispiel}
-Two points are important: the names of the starting and the ending coordinates,
-\code{chemformula-bond-start} and \code{chemformula-bond-end}, and the \TikZ
-style of the bonds \code{chembond}.
-
-So, let's say you want to define a special kind of dashed bond. You could do this:
-\begin{beispiel}
- \usetikzlibrary{decorations.pathreplacing}
- \makeatletter
- \DeclareChemBond{dashed}
- {
- \draw[
- chembond,
- decorate,
- decoration={ticks,segment length=\chemformula@bondlength/10,amplitude=1.5pt}]
- (chemformula-bond-start) -- (chemformula-bond-end) ;
- }
- \makeatother
- \chemsetup[chemformula]{bond-length=2ex}
- \ch{C\bond{dashed}C}
-\end{beispiel}
-
-The last example showed you another macro: \makeatletter\cmd{chemformula@bondlength}\makeatother.
-It only exists so you can use it to access the bond length as set with \key{bond-length}
-directly.% (see also page~\pageref{key:bond-length}).
-
-\subsection{Customization}\secidx[customization]{Compounds}\label{ssec:compounds:customization}
-These options allow you to customize the ouptut of the compounds:
-\begin{beschreibung}
- \option{subscript-vshift}{<dim>} Extra vertical shift of the subscripts. Default
- = \code{0pt}
- \option{subscript-style}{text|math} Style that is used to typeset the subscripts.
- Default = \code{text}
- \option{charge-hshift}{<dim>} Shift of superscripts when following a subscript.
- Default = \code{.25em}\label{desc:charge-hshift}
- \option{charge-vshift}{<dim>} Extra vertical shift of the superscripts.
- Default = \code{0pt}
- \option{charge-style}{text|math} Style that is used to typeset the superscripts.
- Default = \code{text}
- \option{adduct-space}{<dim>} Space to the left and the right of the adduct point.
- Default = \code{.1333em}
- \option{bond-length}{<dim>} The length of the bonds. Default = \code{.5833em}
- \option{bond-offset}{<dim>} Space between bond and atoms. Default = \code{.07em}
- \option{bond-style}{<tikz>} \TikZ\ options for the bonds. Initially empty.
- \option{radical-style}{<tikz>} \TikZ\ options for the radical point. Initially
- empty.
- \option{radical-radius}{<dim>} The radius of the radical point. Default =
- \code{.2ex}
- \option{radical-hshift}{<dim>} Horizontal shift before the radical point is
- drawn. Default = \code{.15em}
- \option{radical-vshift}{<dim>} Vertical shift relative to the current baseline.
- Default = \code{.5ex}
- \option{radical-space}{<dim>} Horizontal shift after the radical point is
- drawn. Default = \code{.15em}
-\end{beschreibung}
-
-Maybe you have noticed that charges of certain ions are shifted to the right.\secidx[charges!shift]{Compounds}
-\begin{beispiel}
- \ch{SO4^2-} \ch{NH4+} \ch{Na+}
-\end{beispiel}
-They are shifted if they \emph{follow} a subscript which follows \ac{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+} \\
- \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}
-
-Despite \ac{iupac}'s recommendation \chemformula does not make fully staggered
-arrangements in the default setting as I find it hard to read in some cases and
-ugly in others. Since this is a subjective decision \chemformula not only let's
-you define the absolute amount of the shift but also provides a possibility for
-full staggered arrangements. For this you have to use \key{charge-hshift}{full}.
-\begin{beispiel}
- \ch[charge-hshift=0pt]{C5H11+} \ch[charge-hshift=0pt]{SO4^2-} \\
- \ch{C5H11+} \ch{SO4^2-} \\
- \ch[charge-hshift=1ex]{C5H11+} \ch[charge-hshift=1ex]{SO4^2-} \\
- \ch[charge-hshift=full]{C5H11+} \ch[charge-hshift=full]{SO4^2-}
-\end{beispiel}
-
-If you don't want the charges to be typeset in text mode you can switch to math
-mode:
-\begin{beispiel}
- \ch{M^x+} \ch{SO4^2-} \\
- \chemsetup[chemformula]{charge-style = math}
- \ch{M^x+} \ch{SO4^2-}
-\end{beispiel}
-
-The option \key{subscript-vshift} can be used to adjust the vertical shift of
-the subscripts:\secidx[subscripts!shift]{Compounds}
-\begin{beispiel}
- \ch{H2SO4} \ch{Na3PO4} \\
- \chemsetup[chemformula]{subscript-vshift=.5ex}
- \ch{H2SO4} \ch{Na3PO4} \\
- \chemsetup[chemformula]{subscript-vshift=-.2ex}
- \ch{H2SO4} \ch{Na3PO4}
-\end{beispiel}
-
-You can choose the mode subscripts are typeset in the same way as it is possible
-for the charges:
-\begin{beispiel}
- \ch{A_nB_m} \ch{H2SO4} \\
- \chemsetup[chemformula]{subscript-style = math}
- \ch{A_nB_m} \ch{H2SO4}
-\end{beispiel}
-
-The option \key{adduct-space} sets the space left and right to the adduct symbol
-$\cdot$.
-\begin{beispiel}
- \ch{Na3PO3*H2O} \\
- \chemsetup[chemformula]{adduct-space=.2em}
- \ch{Na3PO3*H2O}
-\end{beispiel}
-
-Changing the length of the bonds:\secidx[bonds!length]{Compounds}
-\begin{beispiel}
- \chemsetup[chemformula]{bond-length=4mm}%
- single: \ch{CH3-CH3} \\
- double: \ch{CH2=CH2} \\
- triple: \ch{CH+CH}
-\end{beispiel}
-
-You can change the distance between bond and atom, too:
-\begin{beispiel}
- \ch{H-H + N+N + O=O} \\
- \ch[bond-offset=1pt]{H-H + N+N + O=O}
-\end{beispiel}
-\secidx*{Compounds}
-
-\section{Special Input Types}\secidx{Special Types}
-There are some \enquote{special type} input groups.
-
-\subsection{Single Token Groups}\secidx[single token groups]{Special Types}
-The first kind are groups which consist of only one token, namely of the
-following ones:
-\begin{beschreibung}
- \befehl{ch}{ + } \ch{+} creates the plus sign between compounds with space
- around it:\\
- \cmd{ch}{2 Na + Cl2} \ch{2 Na + Cl2}
- \befehl{ch}{ v } \ch{v} sign for precipitate: \cmd{ch}{BaSO4 v} \ch{BaSO4 v}
- \befehl{ch}{ \lstinline+^+ } \ch{^} sign for escaping gas\footnotemark:
- \cmd{ch}{\lstinline=H2 ^=} \ch{H2 ^}
-\end{beschreibung}
-\footnotetext{Is this the correct English term? Please correct me if it isn't.}
-
-The space left and right of the plus sign can be set with this option:
-\begin{beschreibung}
- \option{plus-space}{<skip>} A rubber length. Default = \code{.3em plus .1em minus .1em}
-\end{beschreibung}
-\begin{beispiel}
- \ch{A + B}\\
- \ch[plus-space=4pt]{A + B}
-\end{beispiel}
-
-\subsection{Option Input}\secidx[option input]{Special Types}
-\achtung{This is an experimental feature and may well be dropped in future versions.}
-Sometimes you might want to apply an option only to a part of a, say, reaction.
-Of course you have the possibility to use \cmd{ch} several times.
-\begin{beispiel}
- \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-}
-\end{beispiel}
-This, however, interrupts the input in your source and \emph{may} mess with the
-spacing. That's why there is an alternative:
-\begin{beschreibung}\makeatletter
- \befehl{ch}{ @\{<options>\} } The options specified this way will be valid
- \emph{only} until the next compound is set.
-\end{beschreibung}
-\begin{beispiel}
- \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O + @{format=\color{red}} H2SO4 -> H3O+ + HSO4-} \\
- or of course:\\
- \ch{H2O + \textcolor{red}{H2SO4} -> H3O+ + HSO4-}\\[1em]
- \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O + @{subscript-vshift=2pt} H2SO4 -> H3O+ + HSO4-}
-\end{beispiel}
-\secidx*{Special Types}
-
-\section{Escaped Input}\secidx{Escaped Input}
-In some cases it may be desirable to prevent \chemformula from parsing the input.
-This can be done in two ways.
-\subsection{Text}\label{ssec:text}\secidx[text]{Escaped Input}
-If you put something between \lstinline+" "+ or \lstinline+' '+ then the input
-will be treated as normal text, except that spaces are not allowed and have to be
-input with \lstinline+~+.
-\begin{beschreibung}
- \Befehl{ch}{ "<escaped text>" }
- \Befehl{ch}{ '<escaped text>' }
-\end{beschreibung}
-\begin{beispiel}
- \ch{"\ox{2,Ca}" O} \\
- \ch{"\ldots\," Na + "\ldots\," Cl2 -> "\ldots\," NaCl} \\
- \ch{'A~->~B'}
-\end{beispiel}
-In many cases you won't need to escape the input. But when you get into trouble
-when using a command inside \cmd{ch} try hiding it.
-
-\subsection{Math}\secidx[math]{Escaped Input}
-If you especially want to input math you just enclose it with \lstinline+$ $+.
-This output is different from the escaped text as it is followed by a space. The
-reasoning behind this is that I assume math will mostly be used to replace
-stoichiometric factors.
-\begin{beschreibung}
- \Befehl{ch}{ \string$<escaped math>\string$ }
- \Befehl{ch}{ \string\(<escaped math>\string\) }
-\end{beschreibung}
-\begin{beispiel}
- escaped text: \ch{"$x$" H2O} \\
- escaped math: \ch{$x$ H2O} \\
- also escaped math: \ch{\(x\) H2O} \\
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl}
-\end{beispiel}
-
-The space that is inserted after a math group can be edited:
-\begin{beschreibung}
- \option{math-space}{<skip>} A rubber length. Default =
- \code{.1667em plus .0333em minus .0117em}
-\end{beschreibung}
-\begin{beispiel}
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
- \chemsetup[chemformula]{math-space=.25em}
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
- \ch{$A->B$}
-\end{beispiel}
-\secidx*{Escaped Input}
-
-\section{Arrows}\label{sec:arrows}\secidx{Arrows}
-\subsection{Arrow types}\secidx[types]{Arrows}
-Arrows are input in the same intuitive way they are with \paket{mhchem}. There
-are various different types:
-\begin{beschreibung}
- \befehl{ch}{ -> } \ch{->} standard right arrow
- \befehl{ch}{ <- } \ch{<-} standard left arrow
- \befehl{ch}{ -/> } \ch{-/>} does not react (right)
- \befehl{ch}{ </- } \ch{</-} does not react (left)
- \befehl{ch}{ <-> } \ch{<->} resonance arrow
- \befehl{ch}{ <> } \ch{<>} reaction in both directions
- \befehl{ch}{ == } \ch{==} stoichiometric equation
- \befehl{ch}{ <=> } \ch{<=>} equilibrium arrow
- \befehl{ch}{ \lstinline+<=>>+ } \ch{<=>>} unbalanced equilibrium arrow to the right
- \befehl{ch}{ \lstinline+<<=>+ } \ch{<<=>} unbalanced equilibrium arrow to the left
- \befehl{ch}{ <o> } \ch{<o>} isolobal arrow
-\end{beschreibung}
-All these arrows are drawn with \TikZ.
-\begin{beispiel}
- \ch{H2 + Cl2 -> 2 HCl} \\
- \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}
-
-\subsection{Labels}\secidx[labels]{Arrows}
-The arrows take two optional arguments to label them.
-\begin{beschreibung}
- \Befehl{ch}{ ->[<above>][<below>] }
-\end{beschreibung}
-\begin{beispiel}
- \ch{A ->[a] B} \\
- \ch{A ->[a][b] B} \\
- \ch{A ->[\SI{100}{\celsius}] B}
-\end{beispiel}
-The label text can be parsed seperately from the arrow. The recipe is easy: leave
-blanks.
-\begin{beispiel}
- \ch{A ->[H2O] B} \\
- \ch{A ->[ H2O ] B} \\
- \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 \enquote{grow} with the length of the labels. What stays
-constant is the part that protrudes the labels. As you also can see in the last
-example square brackets inside the arrow arguments should be produced using \cmd{[}
-and \cmd{]}. They keep their usual meaning outside \cmd{ch}. These commands are
-necessary since the usual grouping (\ie hiding the brackets inside curly brackets)
-doesn't work due to the way \cmd{ch} reads its argument.
-\begin{beispiel}
- \ch{A ->[a] B} \\
- \ch{A ->[ab] B} \\
- \ch{A ->[abc] B} \\
- \ch{A ->[abc~abc] B} \\
- % needs the `chemfig' package:
- \setatomsep{15pt}
- \ch{A ->[ "\chemfig{-[:30]-[:-30]OH}" ] B} \\
- \ch{A ->[[]] B} vs. \ch{A ->[\[\]] B}
-\end{beispiel}
-
-\subsection{Customization}\secidx[customization]{Arrows}
-These are the options which enable you to customize the arrows:
-\begin{beschreibung}
- \option{arrow-offset}{<dim>} This is the length that an arrow protrudes a label
- on both sides. This means an empty arrow's length is two times \code{arrow-offset}.
- Default = \code{.75em}
- \option{arrow-min-length}{<dim>} The minimal length an error must have unless
- two times \key{arrow-offset} plus the width of the label is larger.
- Default = \code{0pt}
- \option{arrow-yshift}{<dim>} Shifts an arrow up (positive value) or down (negative
- value). Default = \code{0pt}
- \option{arrow-ratio}{<factor>} The ratio of the arrow lengths of the unbalanced
- equilibrium. \code{.4} would mean that the length of the shorter arrow is
- $0.4\times$ the length of the longer arrow. Default = \code{.6}
- \option{compound-sep}{<dim>} The space between compounds and the arrows.
- Default = \code{.5em}
- \option{label-offset}{<dim>} The space between the labels and the arrows.
- Default = \code{2pt}
- \option{label-style}{<font command>} The relative font size of the labels.
- Default = \lstinline+\footnotesize+
-\end{beschreibung}
-
-The following code shows the effect of the different options on the \lstinline+<=>>+
-arrow:
-\begin{beispiel}
- standard: \ch{A <=>>[x][y] B} \\
- longer: \ch[arrow-offset=12pt]{A <=>>[x][y] B} \\
- higher: \ch[arrow-yshift=2pt]{A <=>>[x][y] B} \\
- more balanced: \ch[arrow-ratio=.8]{A <=>>[x][y] B} \\
- labels further away: \ch[label-offset=4pt]{A <=>>[x][y] B} \\
- larger distance to compounds: \ch[compound-sep=2ex]{A <=>>[x][y] B} \\
- smaller labels: \ch[label-style=\tiny]{A <=>[x][y] B}
-\end{beispiel}
-
-\subsection{Modify Arrow Types}\label{sec:arrows_modify}\secidx[types!modify]{Arrows}
-The arrows are defined with the command
-\begin{beschreibung}
- \Befehl{DeclareChemArrow}{<tokens>}\ma{<tikz>}
-\end{beschreibung}
-\ma{<tokens>} is the sequence of tokens that is replaced with the actual arrow code.
-For example the basic arrow is defined via
-\begin{beispiel}[code only]
- \DeclareChemArrow{->}{\draw[-cf] (cf_arrow_start) -- (cf_arrow_end) ;}
-\end{beispiel}
-In order to define arrows yourself you need to know the basics of \TikZ\footnote{Please
-see the \textsf{pgfmanual} for details.}. There are some predefined coordinates
-you can and should use:
-\begin{description}
- \item[\code{(cf\_arrow\_start)}] The beginning of the arrow.
- \item[\code{(cf\_arrow\_end)}] The end of the arrow.
- \item[\code{(cf\_arrow\_mid)}] The mid of the arrow.
- \item[\code{(cf\_arrow\_mid\_start)}] The beginning of the shorter arrow in
- types like \lstinline+<=>>+.
- \item[\code{(cf\_arrow\_mid\_end)}] The end of the shorter arrow in types like
- \lstinline+<=>>+.
- \item[\code{cf}, \code{left cf}, \code{right cf}] \chemformula's own arrow heads.
-\end{description}
-\begin{beispiel}
- \DeclareChemArrow{.>}{\draw[-cf,dotted,red] (cf_arrow_start) -- (cf_arrow_end);}
- \DeclareChemArrow{n>}{\draw[-cf] (cf_arrow_start) .. controls ([yshift=3ex]cf_arrow_mid) .. (cf_arrow_end);}
- \ch{A .> B} \ch{A .>[a][b] B} \ch{A n> B}
-\end{beispiel}
-If you want to redefine an existing arrow there are two commands you can use:
-\begin{beschreibung}
- \Befehl{RenewChemArrow}{<tokens>}\ma{<tikz>}
- \Befehl{ShowChemArrow}{<tokens>}
-\end{beschreibung}
-The second one gives the current definition, the first one redefines an existing
-arrow.
-\begin{beispiel}
- \texttt{\ShowChemArrow{->}} \\
- \RenewChemArrow{->}{\draw[->,red] (cf_arrow_start) -- (cf_arrow_end) ;}
- \texttt{\ShowChemArrow{->}} \\
- \ch{A -> B}
-\end{beispiel}
-\secidx*{Arrows}
-
-\section{Names}\secidx{Names}
-\subsection{Syntax}\secidx[syntax]{Names}
-\chemformula has a built-in syntax to write text under a compound. In a way it
-works very similar to the arrows.
-\begin{beschreibung}
- \Befehl{ch}{ !(<name>)( <formula> ) }
-\end{beschreibung}
-If an exclamation mark is followed by a pair of parentheses \chemformula will
-parse it this way:
-\begin{beispiel}
- \ch{!(ethanol)( CH2CH2OH )}
-\end{beispiel}
-The same what's true for the arrows arguments holds for these arguments: if you
-leave blanks the different parts will be treated according to their input type
-before the text is set below the formula.
-\begin{beispiel}
- \ch{!(water)(H2O)} \quad
- \ch{!( "\textcolor{blue}{water}" )( H2O )} \quad
- \ch{!( $2n-1$ )( H2O )} \quad
- \ch{!( H2O )( H2O )} \quad
- \ch{!(oxonium)( H3O+ )}
-\end{beispiel}
-If for some reason you want to insert an exclamation mark \emph{without} it
-creating a name you only have to make sure it isn't followed by parentheses.
-\begin{beispiel}
- \ch{H2O~(!)} \\
- \ch{A!{}()}
-\end{beispiel}
-
-\subsection{Customization}\secidx[customization]{Names}
-\chemformula provides two options to customize the output of the names:
-\begin{beschreibung}
- \option{name-format}{<commands>} The format of the name. This can be arbitrary
- input. Default = \lstinline+\scriptsize\centering+
- \option{name-width}{<dim>|auto} The width of the box where the label is put into.
- \code{auto} will detect the width of the name and set the box to this width.
- Default = \code{auto}
-\end{beschreibung}
-\begin{beispiel}
- \ch{!(acid)( H2SO4 ) -> B} \\
- \ch[name-format=\sffamily\small]{!(acid)( H2SO4 ) -> B} \\
- \ch[name-format=\scriptsize N:~]{!(acid)( H2SO4 ) -> B} \\
- \ch[name-width=3em,name-format=\scriptsize\raggedright]{!(acid)( H2SO4 ) -> B}
-\end{beispiel}
-\secidx*{Names}
-
-\section{Format and Font}\secidx{Format and Font}\label{sec:format}
-In the standard setting \chemformula doesn't make any default changes to the font
-of the formula output. Let's take a look at a nonsense input which shows all features:
-\begin{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"}}
- \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"}}
-Now we're going to change different aspects of the font a look what happens:
-\begin{beispiel}[below]
- \sffamily Hallo \sample \\
- \ttfamily Hallo \sample \normalfont \\
- \bfseries Hallo \sample \normalfont \\
- \itshape Hallo \sample
-\end{beispiel}
-As you can see most features adapt to the surrounding font.
-
-If you want to change the default format you need to use this option:
-\begin{beschreibung}
- \option{format}{<anything>} Adds arbitrary code before the output of \cmd{ch}.
-\end{beschreibung}
-\begin{beispiel}
- \definecolor{newblue}{rgb}{.1,.1,.5}\chemsetup[chemformula]{format=\color{newblue}\sffamily}
- \sffamily Hallo \sample \\
- \ttfamily Hallo \sample \normalfont \\
- \bfseries Hallo \sample \normalfont \\
- \itshape Hallo \sample
-\end{beispiel}
-
-You can also specifically change the fontfamily, fontseries and fontshape of the output.
-\begin{beschreibung}
- \option{font-family}{<family>} Changes the fontfamily of the output with
- \lstinline+\fontfamily{<family>}\selectfont+.
- \option{font-series}{<series>} Changes the fontseries of the output with
- \lstinline+\fontseries{<series>}\selectfont+.
- \option{font-shape}{<shape>} Changes the fontshape of the output with
- \lstinline+\fontshape{<shape>}\selectfont+.
-\end{beschreibung}
-\begin{beispiel}
- \chemsetup[chemformula]{font-series=bx}
- Hallo \sample \\
- \sffamily Hallo \sample \normalfont \\
- \chemsetup[chemformula]{font-family=lmr,font-series=m} Hallo \sample \normalfont \\
- \itshape Hallo \sample
-\end{beispiel}
-
-If you're using \hologo{XeLaTeX} or \hologo{LuaLaTeX} and have loaded \paket{fontspec}
-you have the possibilty to set the font with it:
-\begin{beschreibung}
- \Option{font-spec}{\{<font>\}} or with options
- \Option{font-spec}{\{[<options>]<font>\}}
-\end{beschreibung}
-\begin{beispiel}
- \chemsetup[chemformula]{font-spec={Linux Biolinum O}} \sample \\
- \chemsetup[chemformula]{font-spec={[Color=darkgray]Augie}} \sample \\
- \chemsetup[chemformula]{font-spec={Tipbrush Script}} \sample \\
- \chemsetup[chemformula]{font-spec={Latin Modern Sans}} \sample \\
- \bfseries \sample \normalfont \\
- \chemsetup[chemformula]{font-spec={Feathergraphy Decoration}} \sample
-\end{beispiel}
-\secidx*{Format and Font}
-
-\section{Usage In Math Equations}\secidx{Math Environments}
-The \cmd{ch} command can be used inside math equations. It recognizes
-\lstinline+\\+ and \lstinline+&+ and passes them on. However, you can't use the
-optional arguments of \lstinline+\\+ inside \cmd{ch}.
-\begin{beispiel}
- \begin{align}
- \ch{
- H2O & ->[a] H2SO4 \\
- Cl2 & ->[x][y] CH4
- }
- \end{align}
- \begin{align*}
- \ch{
- RNO2 &<=>[ + e- ] RNO2^{-.} \\
- RNO2^{-.} &<=>[ + e- ] RNO2^2-
- }
- \end{align*}
-\end{beispiel}
-\secidx*{Math Environments}
-
-\section{Further Examples}
-This section presents some examples of a possible usage.
-
-\begin{beispiel}
- \begin{reaction}[Synthese von Alkanen]
- !(Synthesegas)( $n$ CO + $(2n+1)$ H2 ) ->[\SI{200}{\celsius}][\[CoNi\]] C_{$n$}H_{$2n+2$} + $n$ H2O
- \end{reaction}
-\end{beispiel}
-
-\begin{beispiel}
- \begin{reactions*}
- "a)" && CH4 + Cl2 &-> CH3Cl + HCl && "{\small Chlormethan/Methylchlorid}" \\
- "b)" && CH3Cl + Cl2 &-> CH2Cl2 + HCl && "{\small Dichlormethan/Methylenchlorid}" \\
- "c)" && CH2Cl2 + Cl2 &-> CHCl3 + HCl && "{\small Trichlormethan/Chloroform}" \\
- "d)" && CHCl3 + Cl2 &-> CCl4 + HCl && "{\small Tetrachlormethan/Tetrachlorkohlenstoff}"
- \end{reactions*}
-\end{beispiel}
-
-\begin{beispiel}
- \chemsetup[ox]{parse=false}\ch{"\ox{\delm,C}" -{} "\ox{\delp,M}" \qquad ( <-> "\ox{\delp,C}" -{} "\ox{\delm,Br}" )} \\
- \ch[adduct-space=0pt]{X. + .Y <=> X-Y + Bindungsenergie} \\
- \ch[name-format=\normalsize]{!(\State{H}{f}\qquad)() !(\textcolor{red}{??})( CH4\gas{} ) + !(\num{0})( 2 O2\gas{} ) -> !(\num{-94.3})( CO2\gas{} ) + !(\num{-57.9})( H2O\lqd{} ) + !(\num{-192.1})( "\State{H}" )}
-\end{beispiel}
-
-\begin{beispiel}
- \begin{reactions*}
- CH3MgBr + "\ox*{1,Cu}" X &-> "\glqq" CH3 "\ox*{1,Cu}\grqq" + MgBrX "\qquad X~$=$~Br,I,CN" \\
- 2 MeLi + CuI &-> !(Dimethylcuprat~(Gilmann-Cuprat))( Me2CuLi ) + Li
- \end{reactions*}
-\end{beispiel}
-
-\begin{beispiel}
- % needs `chemfig'
- \begin{reactions*}
- H3C-CH3 + Cl2 &->[$\Delta$][$h\nu$] H3CCH2Cl + HCl & &"\Enthalpy{-27.1}" \\
- H3C-CH3 + "\Lewis{0.,Cl}" &-> H3CCH2 "\Lewis{0.,\vphantom{H}}" + HCl & &"\Enthalpy{-5.0}" \\
- H3C-CH2 "\Lewis{0.,\vphantom{H}}" + Cl2 &-> H3CCH2Cl + "\Lewis{0.,Cl}" & &"\Enthalpy{-23.0}"
- \end{reactions*}
-\end{beispiel}
-
-The following example shows how the cancelling of compounds could be done%
-\footnote{Inspired by a question on TeX.SE: \url{http://tex.stackexchange.com/q/30118/5049}}.
-\begin{beispiel}
- % needs `cancel'
- \begin{align*}
- \ch{\cancel{HCOOH\aq} + H2O\lqd{} &<=> H3O^+\aq{} + \cancel{HCOO^-\aq}} \\
- \ch{\cancel{HCOO^-\aq} + H2O\lqd{} &<=> \cancel{HCOOH\aq} + OH^-\aq}\\[-1ex]
- \cline{1-2}
- \ch{H2O\lqd{} + H2O\lqd{} &<=> H3O^+\aq{} + OH^-\aq}
- \end{align*}
-\end{beispiel}
-\secidx*{CHEMFORMULA}
-
-\part{\texorpdfstring{\Ghsystem}{ghsystem}}\secidx{GHSYSTEM}\label{part:ghsystem}
-\section{Setup}
-All of \ghsystem's options belong to the module \textcolor{module}{\code{ghsystem}}.
-This means they can be setup with
-\begin{beispiel}[code only]
- \chemsetup[ghsystem]{<options>} or
- \chemsetup{ghsystem/<option1>,ghsystem/<option2>}
-\end{beispiel}
-
-\section{Get Hazard and Precautionary Statements}\secidx{Hazard and Precautionary Statements}
-\subsection{Simple Statements}\secidx[get statements]{GHSYSTEM}
-The general usage is simple: you use the command
-\begin{beschreibung}
- \Befehl{ghs}*[<options>]{<type>}\ma{<number>}
-\end{beschreibung}
-There are three types available: \code{h}, \code{euh} and \code{p}. The \ma{<type>}
-argument is case insensitive, so just type them in as you like.
-\begin{beispiel}
- \ghs{h}{200} \\
- \ghs{H}{224} \\
- \ghs{euh}{001} \\
- \ghs{Euh}{202} \\
- \ghs{p}{201}
-\end{beispiel}
-
-The starred version hides the identifier and only gives the statement. If you want
-to hide the statement itself instead you can use the option:
-\begin{beschreibung}
- \Option{hide}{\default{true}|false}
-\end{beschreibung}
-
-There is an option to customize the output, too.
-\begin{beschreibung}
- \option{space}{<space command>} Space between \code{<type>} and \code{<number>}.
-\end{beschreibung}
-\begin{beispiel}
- \ghs{h}{200} \\
- \ghs[space=\,]{h}{200} \\
- \ghs*{h}{200} \\
- \ghs[hide]{h}{200}
-\end{beispiel}
-
-\subsection{Statements with Placeholders}\secidx[statements with placeholders]{GHSYSTEM}
-Some of the statements contain placeholders. They can be one of the following:
-\begin{itemize}
- \item \textit{\textless state route of exposure if it is conclusively proven that
- no other routes of exposure cause the hazard\textgreater}
- \item \textit{\textless state specific effect if known\textgreater}
- \item \textit{\textless or state all organs affected, if known\textgreater}
- \item \textit{\textless name of sensitising substance\textgreater}
-\end{itemize}
-
-Except the last one which needs to be filled in, they are hidden per default. They
-can be made visible with the option
-\begin{beschreibung}
- \option{fill-in}{\default{true}|false} Show placeholders. Default = \code{false}
-\end{beschreibung}
-\begin{beispiel}[below]
- \ghs{h}{340} \\
- \ghs[fill-in]{h}{340} \\
- \ghs{h}{360} \\
- \ghs[fill-in]{h}{360} \\
- \ghs{h}{370} \\
- \ghs[fill-in]{h}{370} \\
- \ghs{euh}{208} \\
- \ghs[fill-in]{euh}{208}
-\end{beispiel}
-
-These placeholders can be replaced with one of these options:
-\begin{beschreibung}
- \option{exposure}{<text>} exposure placeholder
- \option{effect}{<text>} effect placeholder
- \option{organs}{<text>} organ placeholder
- \option{substance}{<text>} substance placeholder
-\end{beschreibung}
-\begin{beispiel}
- \ghs[exposure=This is how you get exposed.]{h}{340} \\
- \ghs[effect=These are the effects.]{h}{360} \\
- \ghs[organs=to this organ]{h}{370} \\
- \ghs[substance=substance]{euh}{208}
-\end{beispiel}
-
-\subsection{Statements with Gaps}\secidx[statements with gaps]{GHSYSTEM}
-Some of the statements have gaps that can be filled.
-\begin{beispiel}
- \ghs{p}{301} \\
- \ghs{p}{401} \\
- \ghs{p}{411} \\
- \ghs{p}{413}
-\end{beispiel}
-
-These gaps can be filled using these options:
-\begin{beschreibung}
- \Option{text}{<text>}
- \Option{dots}{<text>}
- \Option{C-temperature}{<num>}
- \Option{F-temperature}{<num>}
- \Option{kg-mass}{<num>}
- \Option{lbs-mass}{<num>}
-\end{beschreibung}
-\begin{beispiel}
- \ghs[text=contact physician!]{p}{301} \\
- \ghs[dots=here]{p}{401} \\
- \ghs[C-temperature=50, F-temperature=122]{p}{411} \\
- \ghs[kg-mass=5.0, lbs-mass=11, C-temperature=50, F-temperature=122]{p}{413}
-\end{beispiel}
-
-\subsection{Combined Statements}\secidx[combined statements]{GHSYSTEM}
-There are some combinations of statements. They are input with a \code{+} between
-the numbers:
-\begin{beispiel}[below]
- \ghs{p}{235+410} \\
- \ghs{p}{301+330+331}
-\end{beispiel}
-
-Note that you can only get combinations that officially exist. \emph{You can't
-combine freely}.
-\secidx*{Hazard and Precautionary Statements}
-
-\section{Pictograms}\secidx{Pictograms}
-\subsection{The Pictures}
-The \ac{ghs} defines a number of pictograms:
-
-\ghspic{explos} \ghspic{flame} \ghspic{flame-O} \ghspic{bottle} \ghspic{acid}
-\ghspic{skull} \ghspic{exclam} \ghspic{health} \ghspic{aqpol}
-
-The command
-\begin{beschreibung}
- \Befehl{ghspic}[<options>]{<name>}
-\end{beschreibung}
-loads them. Table~\ref{tab:ghs_pictograms} shows all available pictograms and their
-names. To be more precise: it shows the names to use with the \cmd{ghspic} command.
-The file names are \lstinline=ghsystem_<name>.<filetype>= where \code{<filetype>}
-is \code{eps}, \code{pdf}, \code{jpg} or \code{png}, see also section~\ref{ssec:picture_type}.
-\begin{beispiel}
- \ghspic{skull}
-\end{beispiel}
-
-If you don't like the default size you can change it using this option:
-\begin{beschreibung}
- \option{scale}{<factor>} Scales the pictogram. Default = \code{1}
-\end{beschreibung}
-The pictures are actually quite large. The default setting scales them by a factor
-of $\frac{1}{20}$.
-\begin{beispiel}
- \ghspic[scale=2]{skull}
-\end{beispiel}
-
-If you want to use some specific \lstinline=\includegraphics= options, \eg if you
-want to rotate the pictogram for some reason, use this option:
-\begin{beschreibung}
- \Option{includegraphics}{\{<includegraphics keyvals>\}}
-\end{beschreibung}
-\begin{beispiel}
- \ghspic[includegraphics={angle=90}]{skull}
-\end{beispiel}
-
-\begin{longtable}{>{\ttfamily}ll>{\ttfamily}ll}
- \caption{All available \ac{ghs} pictograms.\label{tab:ghs_pictograms}} \\
- \toprule
- \normalfont\bfseries name & \bfseries pictogram & \normalfont\bfseries name & \bfseries pictogram \\
- \midrule\endfirsthead
- \toprule
- \normalfont\bfseries name & \bfseries pictogram & \normalfont\bfseries name & \bfseries pictogram \\
- \midrule\endhead
- \bottomrule\endfoot
- explos & \ghspic{explos} & explos-1 & \ghspic{explos-1} \\
- explos-2 & \ghspic{explos-2} & explos-3 & \ghspic{explos-3} \\
- explos-4 & \ghspic{explos-4} & explos-5 & \ghspic{explos-5} \\
- explos-6 & \ghspic{explos-6} & & \\
- flame & \ghspic{flame} & flame-2-white & \ghspic{flame-2-white} \\
- flame-2-black & \ghspic{flame-2-black} & flame-3-white & \ghspic{flame-3-white} \\
- flame-3-black & \ghspic{flame-3-black} & flame-4-1 & \ghspic{flame-4-1} \\
- flame-4-2 & \ghspic{flame-4-2} & flame-4-3-white & \ghspic{flame-4-3-white} \\
- flame-4-3-black & \ghspic{flame-4-3-black} & flame-5-2-white & \ghspic{flame-5-2-white} \\
- flame-5-2-black & \ghspic{flame-5-2-black} & & \\
- flame-O & \ghspic{flame-O} & flame-O-5-1 & \ghspic{flame-O-5-1} \\
- bottle & \ghspic{bottle} & bottle-2-black & \ghspic{bottle-2-white} \\
- bottle-2-white & \ghspic{bottle-2-black} & & \\
- acid & \ghspic{acid} & acid-8 & \ghspic{acid-8} \\
- skull & \ghspic{skull} & skull-2 & \ghspic{skull-2} \\
- skull-6 & \ghspic{skull-6} & & \\
- exclam & \ghspic{exclam} & & \\
- health & \ghspic{health} & & \\
- aqpol & \ghspic{aqpol} & & \\
-\end{longtable}
-
-\subsection{Picture Type Depending on Engine}\label{ssec:picture_type}
-As you probably know you can't use every picture type with every compiler engine.
-\pdfTeX{} in \acs{dvi} mode \emph{needs} \code{eps} pictures while
-\pdfTeX{} in \acs{pdf} mode, \XeTeX{} and \LuaTeX{} convert
-\code{eps} pictures into \code{pdf} files, given they have the rights to write in
-the directory the pictures are saved in.
-
-However, the latter can include \code{jpg} and \code{png} without any problems,
-while \pdfTeX{} in \acs{dvi} mode can't.
-
-To resolve this \ghsystem tests which engine is used and if \pdfTeX{} which
-mode is used and then chooses either \code{eps} or \code{pdf} for the pictograms.
-You are free to choose the picture type yourself with the option
-\begin{beschreibung}
- \Option{pic-type}{eps|pdf|jpg|png}
-\end{beschreibung}
-\secidx*{Pictograms}
-
-\section{Available Languages}\label{sec:ghsystem_language}
-Right now the H and P statements are only available in English, German or Italian.
-The package adapts the package option \key[option]{german} but does not (yet)
-recognize language settings by \paket{babel} or \paket{polyglossia}.
-
-You can also choose the language explicitly.
-\begin{beschreibung}
- \Option{language}{english|german|italian}
-\end{beschreibung}
-\begin{beispiel}
- \ghs{h}{201}
-
- \chemsetup[ghsystem]{language=german}
- \ghs{h}{201}
-\end{beispiel}
-
-I will add other languages some time in future. This may take a while, though.
-If you would be willing to contribute and write the statements of another language
-please feel free to contact me\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}}.
-I would provide you with a template file, a \acs{pdf} containing the official
-translations, and help to all your questions.
-
-\section{List of All Statements}\secidx{List of All Statements}
-If for some reason you want to list all sentences you can use
-\begin{beschreibung}
- \Befehl{ghslistall}[<options>]
-\end{beschreibung}
-
-This command has a number of options to customize the table, which is created with
-the \lstinline=longtable= environment of the \paket{longtable} package.
-\begin{beschreibung}
- \option{table-head-number}{<text>} Default = \code{Identifier}
- \option{table-head-text}{<text>} Default = \code{Statement}
- \option{table-next-page}{<text>} Default = \code{continues on next page}
- \option{table-caption}{<text>} As \code{<text>} in \lstinline=\caption{<text>}=.
- Default = \code{All H, EUH, and P Statements.}
- \option{table-caption-short}{<text>} As \code{<short>} in \lstinline=\caption[<short>]{<text>}=.
- \option{table-label}{<text>} The label to refer to the table with \lstinline=\ref=
- and similar commands. Default = \code{tab:ghs-hp-statements}
- \option{table-row-sep}{<dim>} The separation of the table rows. A \TeX\ dimension.
- Default = \code{3pt}
- \option{table-rules}{\default{default}|booktabs|none} The style of the horizontal
- rules in the table. \code{default} uses \lstinline=\hline=, \code{booktabs} uses
- \lstinline=\toprule=, \lstinline=\midrule= or \lstinline=\bottomrule=, resp.
- This option needs the \paket{booktabs} package which you have to load yourself
- then. Default = \code{default}
- \option{table-top-head-rule}{\default{default}|booktabs|none} Change top rule
- explicitly. Default = \code{default}
- \option{table-head-rule}{\default{default}|booktabs|none} Change rule below head
- explicitly. Default = \code{default}
- \option{table-foot-rule}{\default{default}|booktabs|none} Change foot rule
- explicitly. Default = \code{default}
- \option{table-last-foot-rule}{\default{default}|booktabs|none} Change last foot
- rule explicitly. Default = \code{default}
-\end{beschreibung}
-
-The code below shows how table~\ref{tab:ghs-hp-statements} was created:
-\begin{beispiel}[code only]
- \ghslistall[fill-in,table-rules=booktabs]
-\end{beispiel}
-
-\ghslistall[fill-in,table-rules=booktabs]
-\secidx*{List of All Statements}\secidx*{GHSYSTEM}
+This change has been made \sinceversion{4.0}with version~4.0 since with this
+version every of those packages can be used independently from the
+\chemmacros\ package. It made sense to give each of them an own documentation
+file. You should be able to find them in the same folder as this document as
+well as via the \code{texdoc} program. You can also try and click on the
+names in the list above. They are links and \emph{should} open the respective
+file.
\appendix
\part{Appendix}\index{APPENDIX@\textbf{APPENDIX}}
-\addsec{Overview: Options and Customization}\label{sec:overview}\secidx{Option Overview (chemmacros)}
-\minisec{Options}
-In the table below all options provided by \chemmacros for customization are listed.
-All options that belong to a module can be set with
-\begin{beschreibung}
- \Befehl{chemsetup}[<module>]{<keyval>} or
- \Befehl{chemsetup}{<module>/<keyval>}.
-\end{beschreibung}
-Some options can be set without value. Then the \default{underlined} value is used.
-The options belonging to the modules \code{\textcolor{module}{chemformula}} and
-\code{\textcolor{module}{ghsystem}} are not listed here.
-\small
-\begin{longtable}{>{\ttfamily\color{key}\hspace{5mm}}l>{\ttfamily\color{module}}l>{\ttfamily}l>{\ttfamily}ll}
- \toprule
- \normalfont\normalcolor\bfseries option &
- \normalfont\normalcolor\bfseries module &
- \normalfont\bfseries values &
- \normalfont\bfseries default & \\
- \midrule
- \endhead
- \bottomrule
- \endfoot
- \multicolumn{5}{l}{package options:} \\
- bpchem & option & \default{true}|false & false & page~\pageref{key:option_bpchem} \\
- circled & option & formal|\default{all}|none & formal & page~\pageref{key:option_circled} \\
- circletype & option & chem|math & chem & page~\pageref{key:option_circletype} \\
- cmversion & option & 1|2|bundle & bundle & page~\pageref{key:option_cmversion} \\
- ghsystem & option & \default{true}|false & true & page~\pageref{key:option_ghsystem} \\
- iupac & option & auto|restricted|strict & auto & page~\pageref{key:option_iupac} \\
- language & option & <language> & english & page~\pageref{key:option_language} \\
- method & option & chemformula|mhchem & chemformula & page~\pageref{key:option_method} \\
- Nu & option & chemmacros|mathspec & chemmacros & page~\pageref{key:option_Nu} \\
- strict & option & \default{true}|false & false & page~\pageref{key:option_strict} \\
- synchronize & option & \default{true}|false & false & page~\pageref{key:option_synchronize} \\
- greek & option & math|textgreek|\default{upgreek} & upgreek & page~\pageref{key:option_greek} \\
- xspace & option & \default{true}|false & true & page~\pageref{key:option_xspace} \\
- \multicolumn{5}{l}{\cmd{ba}, \cmd{Nu}:} \\
- elpair & particle & \default{dots}|dash|false & false & page~\pageref{key:particle_elpair} \\
- \multicolumn{5}{l}{\ac{iupac} commands:} \\
- break-space & iupac & <dim> & .01em & page~\pageref{key:iupac_break-space} \\
- bridge-number & iupac & sub|super & sub & page~\pageref{key:iupac_bridge-number} \\
- cip-kern & iupac & <dim> & .075em & page~\pageref{key:iupac_cip-kern} \\
- coord-use-hyphen & iupac & \default{true}|false & true & page~\pageref{key:iupac_coord-use-hyphen} \\
- hyphen-pre-space & iupac & <dim> & .01em & page~\pageref{key:iupac_hyphen-pre-space} \\
- hyphen-post-space & iupac & <dim> & -.03em & page~\pageref{key:iupac_hyphen-post-space} \\
- \multicolumn{5}{l}{\cmd{DeclareChemLatin}:} \\
- format & latin & <anything> & \lstinline=\itshape= & page~\pageref{key:latin_format} \\
- \multicolumn{5}{l}{\cmd{pch}, \cmd{mch}, \cmd{fpch}, \cmd{fmch}:} \\
- append & charges & \default{true}|false & false & page~\pageref{key:charges_append} \\
- \multicolumn{5}{l}{acid/base:} \\
- p-style & acid-base & slanted|italics|upright & upright & page~\pageref{key:acid-base_p-style} \\
- \multicolumn{5}{l}{\cmd{ox}:} \\
- align & ox & center|right & center & page~\pageref{key:ox_align} \\
- parse & ox & \default{true}|false & true & page~\pageref{key:ox_parse} \\
- roman & ox & \default{true}|false & true & page~\pageref{key:ox_roman} \\
- pos & ox & top|super|side & top & page~\pageref{key:ox_pos} \\
- explicit-sign & ox & \default{true}|false & false & page~\pageref{key:ox_explicit-sign} \\
- decimal-marker & ox & comma|point & point & page~\pageref{key:ox_decimal-marker} \\
- \multicolumn{5}{l}{\cmd{OX}, \cmd{redox}:} \\
- dist & redox & <dim> & .6em & page~\pageref{key:redox_dist} \\
- sep & redox & <dim> & .2em & page~\pageref{key:redox_sep} \\
- \multicolumn{5}{l}{\cmd{Enthalpy}, \cmd{Entropy}, \cmd{Gibbs}:} \\
- exponent & & <anything> & \cmd{standardstate} & page~\pageref{key:none_exponent} \\
- delta & & <anything>|false & & page~\pageref{key:none_delta} \\
- subscript & & left|right & & page~\pageref{key:none_subscript} \\
- unit & & <unit> & & page~\pageref{key:none_unit} \\
- \multicolumn{5}{l}{\cmd{DeclareChemState}, \cmd{RenewChemState}:} \\
- exponent & & <anything> & \cmd{standardstate} & page~\pageref{key:none_exponent} \\
- delta & & <anything>|false & & page~\pageref{key:none_delta} \\
- subscript & & <anything> & & page~\pageref{key:none_subscript} \\
- subscript-left & & \default{true}|false & & page~\pageref{key:none_subscript-left} \\
- \multicolumn{5}{l}{\cmd{State}:} \\
- exponent & state & <anything> & \cmd{standardstate} & page~\pageref{key:state_exponent} \\
- delta & state & <anything>|false & & page~\pageref{key:state_delta} \\
- subscript-left & state & \default{true}|false & & page~\pageref{key:state_subscript-left} \\
- \multicolumn{5}{l}{\cmd{NMR}:} \\
- unit & nmr & <unit> & \cmd{mega}\cmd{hertz} & page~\pageref{key:nmr_unit} \\
- nucleus & nmr & \{<num>,<atom symbol>\} & \{1,H\} & page~\pageref{key:nmr_nucleus} \\
- format & nmr & <anything> & & page~\pageref{key:nmr_format} \\
- pos-number & nmr & side|sub & side & page~\pageref{key:nmr_pos-number} \\
- coupling-unit & nmr & <unit> & \lstinline+\hertz+ & page~\pageref{key:nmr_coupling-unit} \\
- parse & nmr & \default{true}|false & true & page~\pageref{key:nmr_parse} \\
- delta & nmr & <anything> & & page~\pageref{key:nmr_delta} \\
- list & nmr & \default{true}|false & false & page~\pageref{key:nmr_list} \\
- list-setup & nmr & & see text & page~\pageref{key:nmr_list-setup} \\
- use-equal & nmr & \default{true}|false & true & page~\pageref{key:nmr_use-equal} \\
- \multicolumn{5}{l}{\cmd{DeclareChemReaction}:} \\
- star & & \default{true}|false & false & page~\pageref{key:none_star} \\
- arg & & \default{true}|false & false & page~\pageref{key:none_arg} \\
- list-name & reaction & <anything> & List of reactions & page~\pageref{key:reaction_list-name} \\
- list-entry & reaction & <anything> & Reaction & page~\pageref{key:reaction_list-entry} \\
- \multicolumn{5}{l}{\cmd{mhName}:} \\
- align & mhName & <alignment> & \cmd{centering} & page~\pageref{key:mhName_align} \\
- 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} \\
- ring & newman & <tikz> & & page~\pageref{key:newman_ring} \\
- atoms & newman & <tikz> & & page~\pageref{key:newman_atoms} \\
- back-atoms & newman & <tikz> & & page~\pageref{key:newman_back-atoms} \\
- \multicolumn{5}{l}{\cmd{orbital} \ttfamily <type> = s|p|sp|sp2|sp3:} \\
- phase & orbital/<type> & +|- & + & page~\pageref{key:orbital_phase} \\
- scale & orbital/<type> & <factor> & 1 & page~\pageref{key:orbital_scale} \\
- color & orbital/<type> & <color> & black & page~\pageref{key:orbital_color} \\
- angle & orbital/<type> & <angle> & 90 & page~\pageref{key:orbital_angle} \\
- half & orbital/p & \default{true}|false & false & page~\pageref{key:orbital_half} \\
- overlay & orbital & \default{true}|false & false & page~\pageref{key:orbital_overlay} \\
- opacity & ornital & <num> & 1 & page~\pageref{key:orbital_opacity}
-\end{longtable}
-\normalsize
-
-\minisec{Commands}
-Quite a number of commands has been presented with which the possibilities of
-\chemmacros can be expanded. They are listed below for a quick overview.
-\begin{beschreibung}
- \befehl{DeclareChemArrow} Define new arrow, see
- page~\pageref{cmd:DeclareChemArrow}.
- \befehl{RenewChemArrow} Redefine existing arrow.
- \befehl{DeclareChemBond} Define a bond, see
- page~\pageref{cmd:DeclareChemBond}.
- \befehl{RenewChemBond} Redefine a bond.
- \befehl{DeclareChemBondAlias} Declare an alias to an existing bond.
- \befehl{DeclareChemIUPAC} Define new \ac{iupac} command, see
- page~\pageref{cmd:DeclareChemIUPAC}.
- \befehl{RenewChemIUPAC} Redefine \ac{iupac} command.
- \befehl{DeclareChemLatin} Define new latin phrases, see
- page~\pageref{cmd:DeclareChemLatin}.
- \befehl{RenewChemLatin} Redefine latin phrases.
- \befehl{DeclareChemNMR} Define new NMR command, see
- page~\pageref{cmd:DeclareChemNMR}.
- \befehl{RenewChemNMR} Redefine NMR command.
- \befehl{DeclareChemParticle} Define new particle, see
- page~\pageref{cmd:DeclareChemParticle}.
- \befehl{RenewChemParticle} Redefine particle.
- \befehl{DeclareChemPhase} Define new phases command, see
- page~\pageref{cmd:DeclareChemPhase}.
- \befehl{RenewChemPhase} Redefine phases command.
- \befehl{DeclareChemReaction} Define new reaction environment, see
- page~\pageref{cmd:DeclareChemReaction}.
- \befehl{DeclareChemState} Define new state command, see
- page~\pageref{cmd:DeclareChemState}.
- \befehl{RenewChemState} Redefine state command.
-\end{beschreibung}
-\secidx*{Option Overview (chemmacros)}
-
\addsec{Suggestions and Bug Reports}
+
Feedback on \chemmacros, \chemformula and \ghsystem is highly appreciated and
-welcome! Especially \chemformula and \ghsystem are still in beta testing phase
-so even if I repeat myself: feedback is highly welcome.
+welcome!
-If you have suggestions for macros, missing features \etc, please don't hesitate
-to contact me. If you recognize any errors, be it chemical ones, wrong documentation
-and the like, I'd be grateful about a short email%
-\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}}.
+If you have suggestions for macros, missing features \etc, please don't
+hesitate to contact me. If you recognize any errors, be it chemical ones,
+wrong documentation and the like, I'd be grateful about a short
+email\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}}.
-If you find any bugs, it would be best, if you'd send me a minimal example, with
-which I can reproduce the bug. You can also submit an issue on
+If you find any bugs, it would be best, if you'd send me a minimal example,
+with which I can reproduce the bug. You can also submit an issue on
\url{https://bitbucket.org/cgnieder/chemmacros/} instead.
-Many thanks to all the people who already provided me with feedback, especially
-(in alphabetical order):
+Many thanks to all the people who already provided me with feedback,
+especially (in alphabetical order):
\begin{itemize}
\item Peter Cao
\item Christina Lüdigk
@@ -3444,5 +2298,4 @@ Many thanks to all the people who already provided me with feedback, especially
{\catcode`\^=11 \catcode`\#=11
\printindex}
-% \listoftodos
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.pdf
deleted file mode 100644
index 58bb3daf1c9..00000000000
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.tex
deleted file mode 100644
index 5b88b4c684d..00000000000
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.tex
+++ /dev/null
@@ -1,3465 +0,0 @@
-% arara: xelatex
-% arara: biber
-% arara: xelatex
-% arara: xelatex
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% -----------------------------------------------------------------------------
-% - the CHEMMACROS bundle
-% - chemmacros_it.tex
-% - macros and commands for chemists
-% -----------------------------------------------------------------------------
-% - Clemens Niederberger
-% -----------------------------------------------------------------------------
-% - https://bitbucket.org/cgnieder/chemmacros/
-% - contact@mychemistry.eu
-% -----------------------------------------------------------------------------
-% - If you have any ideas, questions, suggestions or bugs to report, please
-% - feel free to contact me.
-% -----------------------------------------------------------------------------
-% - Copyright 2011-2012 Clemens Niederberger
-% -
-% - This work may be distributed and/or modified under the
-% - conditions of the LaTeX Project Public License, either version 1.3
-% - of this license or (at your option) any later version.
-% - The latest version of this license is in
-% - http://www.latex-project.org/lppl.txt
-% - and version 1.3 or later is part of all distributions of LaTeX
-% - version 2005/12/01 or later.
-% -
-% - This work has the LPPL maintenance status `maintained'.
-% -
-% - The Current Maintainer of this work is Clemens Niederberger.
-% -----------------------------------------------------------------------------
-% - the Italian translation was kindly provided by Jonas Rivetti. Many thanks!
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% if you want to compile this documentation
-% a) you'll need the document class `cnpkgdoc' which you can get here:
-% https://bitbucket.org/cgnieder/cnpkgdoc/
-% the class is licensed LPPL 1.3 or later
-% b) you need the following compilation order:
-% > xelatex chemmacros_it (2 or probably 3 times)
-% > biber chemmacros_it
-% > xelatex chemmacros_it (2 times)
-%
-\documentclass[DIV11,toc=index,toc=bib]{cnpkgdoc}
-\docsetup{
- pkg = chemmacros,
- title = Il bundle \Chemmacros,
- language = it,
- subtitle = {I pacchetti \Chemmacros, \Chemformula\ e \Ghsystem},
- modules = true,
- code-box = {skipabove=1ex,skipbelow=1ex},
- label = {},
-}
-
-\usepackage{chemfig,upgreek,textgreek,booktabs,cancel}
-\usepackage[version=3]{mhchem}
-\usepackage{hologo}
-\newcommand*\pdfTeX{\hologo{pdfTeX}}
-\newcommand*\XeTeX{\hologo{XeTeX}}
-\newcommand*\LuaTeX{\hologo{LuaTeX}}
-\newcommand*\XeLaTeX{\hologo{XeLaTeX}}
-\newcommand*\LuaLaTeX{\hologo{LuaLaTeX}}
-
-\usepackage{fnpct}
-\usepackage[biblatex]{embrac}
-\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
-\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-
-\pagestyle{headings}
-
-\usepackage{acro}
-\acsetup{long-format=\scshape}
-\DeclareAcronym{ghs}{
- short = GHS ,
- long = Globally Harmonized System of Classification and Labelling of Chemicals
-}
-\DeclareAcronym{eu}{
- short = EU ,
- long = European Union
-}
-\DeclareAcronym{iupac}{
- short = IUPAC ,
- long = International Union of Pure and Applied Chemistry
-}
-\DeclareAcronym{UN}{
- short = UN ,
- long = Nazioni Unite
-}
-\DeclareAcronym{dvi}{
- short = dvi ,
- long = device independent file format ,
- format = \scshape
-}
-\DeclareAcronym{pdf}{
- short = pdf ,
- long = portable document file ,
- format = \scshape
-}
-
-\chemsetup[option]{synchronize,language=italian}
-\colorlet{chemformula}{darkgray}
-
-\sisetup{
- detect-mode=false,
- mode=text,
- text-rm=\addfontfeatures{Numbers={Proportional,Lining}}
-}
-
-\usepackage{filecontents}
-
-\begin{filecontents*}{\jobname.ist}
- preamble "\\begin{theindex}\n I titoli sono posti in \\textbf{grassetto}, i
- pacchetti \\textsf{senza grazie}, i comandi in
- \\code{\\textbackslash\\textcolor{code}{marrone}}, le opzioni in
- \\textcolor{key}{\\code{verde}} e i moduli (solo per \\chemmacros) in
- \\textcolor{module}{\\code{rosso}}.\\newline\n\n"
- heading_prefix "{\\bfseries "
- heading_suffix "\\hfil}\\nopagebreak\n"
- headings_flag 1
- delim_0 "\\dotfill\\hyperpage{"
- delim_1 "\\dotfill\\hyperpage{"
- delim_2 "\\dotfill\\hyperpage{"
- delim_r "}\\textendash\\hyperpage{"
- delim_t "}"
- suffix_2p "\\nohyperpage{\\,f.}"
- 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ürgen Stohner and Herbert L. Strauss and
- Michio Takami and Anders J Thor},
- title = {“Quantities, Symbols and Units in Physical Chemistry”, \acs{iupac}
- Green Book},
- edition = {3rd Edition. 2nd Printing},
- year = {2008},
- publisher = {\acs{iupac} \&\ RSC Publishing, Cambridge}
-}
-@book{iupac:redbook,
- author = {Neil G. Connelly and Ture Damhus and Richard M. Hartshorn and
- Alan T. Hutton},
- title = {“Nomenclature of Inorganic Chemistry”, \acs{iupac} Red Book},
- year = {2005},
- publisher = { \acs{iupac} \&\ RSC Publishing, Cambridge},
- isbn = {0-85404-438-8}
-}
-@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}
-}
-@online{unece:ghsystem_implementation,
- author = {United Nations Economic Commission for Europe},
- title = {GHS Implementation},
- url = {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html},
- urldate = {2012-03-20},
- date = {2012-03-20}
-}
-\end{filecontents*}
-
-\DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- scale-factor = 1 ,
- denominator-bot-sep = -.2ex ,
- denominator-format = \scriptsize #1 ,
- numerator-top-sep = -.2ex ,
- numerator-format = \scriptsize #1 ,
- slash-right-kern = .05em ,
- slash-left-kern = .05em
- }
-
-\newcommand*\chemformula{{\scshape\textcolor{cnpkgblue}{chemformula}}\xspace}
-\newcommand*\ghsystem{{\scshape\textcolor{cnpkgblue}{ghsystem}}\xspace}
-
-\newcommand*\Chemmacros{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}chemmacros}}
-\newcommand*\Chemformula{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}chemformula}}
-\newcommand*\Ghsystem{{\fontspec[Color=cnpkgblue,Scale=1.2]{Linux Biolinum Shadow O}ghsystem}}
-
-\renewcommand*\AmS{\hologo{AmS}}
-% \newcommand*\pdfTeX{\hologo{pdfTeX}}
-% \renewcommand*\LuaTeX{\hologo{LuaTeX}}
-
-\TitlePicture{%
- \ch[font-spec={[Color=chemformula]Augie}]{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}- }
- \redox(o1,o2)[red,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
- \redox(r1,r2)[blue,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
-
-\addcmds{
- a,abinitio,AddRxnDesc,anti,aq,aqi,
- b,ba,bond,bottomrule,bridge,
- cancel,cd,cdot,ce,cee,celsius,centering,chemabove,Chemalpha,Chembeta,Chemgamma,
- Chemdelta,ChemDelta,chemfig,chemname,Chemomega,chemsetup,cip,cis,ch,cnsetup,
- CNMR,color,cstsetup,
- d,D,data,DeclareChemArrow,DeclareChemBond,DeclareChemBondAlias,DeclareChemIUPAC,
- DeclareChemLatin,DeclareChemNMR,DeclareChemParticle,DeclareChemPhase,
- DeclareChemReaction,DeclareChemState,DeclareInstance,DeclareSIUnit,definecolor,
- delm,delp,Delta,Dfi,draw,
- E,el,electronvolt,ElPot,endo,Enthalpy,enthalpy,Entropy,
- footnotesize,fmch,fpch,fscrm,fscrp,
- g,gas,ghs,ghslistall,ghspic,Gibbs,glqq,gram,grqq,
- H,hapto,HNMR,Helmholtz,hertz,hspace,
- includegraphics,insitu,intertext,invacuo,iupac,IUPAC,J,joule,
- Ka,Kb,kilo,Kw,
- L,latin,lewis,Lewis,Lfi,listofreactions,lqd,ltn,
- mch,mega,meta,metre,mhName,midrule,milli,mmHg,mole,
- N,nano,nicefrac,newman,NMR,Nu,Nuc,num,numrange,
- O,ominus,orbital,ortho,oplus,ox,OX,
- p,P,para,pch,per,percent,pgfarrowsdeclarealias,pgfarrowsrenewalias,pH,phase,
- photon,pKa,pKb,pOH,pos,positron,Pot,prt,
- R,Rad,redox,RenewChemArrow,RenewChemBond,RenewChemIUPAC,RenewChemLatin,RenewChemNMR,
- RenewChemParticle,RenewChemPhase,RenewChemState,renewtagform,rightarrow,
- S,Sf,sample,scriptscriptstyle,scrm,scrp,second,setatomsep,setbondoffset,sfrac,
- shorthandoff,ShowChemArrow,ShowChemBond,si,SI,sisetup,sld,Sod,square,State,
- subsection,
- textcolor,textendash,textsuperscript,tiny,toprule,trans,
- upbeta,upeta,upgamma,
- val,volt,vphantom,vspave,
- w,xspace,Z}
-
-\newcommand*\pes{\mbox{p.\,es.}\xspace}
-
-\usepackage{imakeidx}
-\indexsetup{othercode=\footnotesize}
-\makeindex[columns=3,intoc,options={-sl \jobname.ist}]
-
-\begin{document}
-\chemsetup[chemformula]{
- font-spec =
- {[Color=chemformula,Numbers={Proportional,Lining}]Latin Modern Sans}
-}
-\def\glqq{„}
-\def\grqq{“}
-
-\part{Prima di cominciare}\secidx{PRIMA DI COMINCIARE}
-\section{Licenza, requisiti e LEGGIMI}
-Il bundle \chemmacros è pubblicato sotto la \LaTeX\ Project Public License
-(LPPL) versione 1.3 o successive (\url{http://www.latex-project.org/lppl.txt})
-ed ha lo stato \enquote{maintained}.
-
-Il bundle \chemmacros richiede versioni attuali dei bundle \paket{l3kernel} e
-\paket{l3packages}. Inoltre sono richiesti i pacchetti \paket{siunitx},
-\paket{mathtools}, \paket{bm}, \paket{nicefrac} ed \paket{environ} come anche
-\paket*{tikz}\footnote{CTAN:~\href{http://www.ctan.org/pkg/pgf/}{pgf}} e le sue
-librerie \code{calc} e \code{arrows}.
-
-L'opzione globale del pacchetto (d'ora in poi indicata come \enquote{opzione
-globale}) \key{bpchem} (vedi paragrafo~\ref{sec:optionen}) richiede
-\paket{bpchem}, l'opzione globale \key{xspace} richiede \paket{xspace} e l'opzione
-globale \key{method}{mhchem} richiede \paket{mhchem}.
-
-Dalla v3.0 il pacchetto \chemmacros è stato riunito con i nuovi pacchetti
-\chemformula e \ghsystem; \chemformula è un'alternativa a \paket{mhchem}. Questo
-ha portato ad alcuni cambiamenti interni a \chemmacros. Contemporaneamente è
-stato totalmente rielaborato questo manuale.
-
-Forse l'utente ricorderà che le opzioni di \chemmacros appartengono tutte a
-moduli diversi (per ulteriori informazioni a riguardo vedi il paragrafo~%
-\ref{sec:setup}). Questi vengono poste nel margine sinistro quando l'opzione
-viene citata per la prima volta. L'appendice (vedi la parte~\ref{sec:overview})
-elenca tutte le opzioni di \chemmacros e i rispettivi moduli. In questo documento
-le opzioni sono contrassegnate dal colore \textcolor{key}{\code{verde}} e i moduli
-dal colore \textcolor{module}{\code{rosso}}.
-
-Il pacchetto \ghsystem richiede i pacchetti \chemmacros, \paket{tabu},
-\paket{longtable}, \paket{ifpdf} e \paket{graphicx}. %\ghsystem non ha opzioni
-%sdi pacchetto proprie ma passa tutte le opzioni a \chemmacros.
-
-\achtung{Il pacchetto riconosce alcuni comandi e opzioni obsolete, che non
-vengono più descritti in questo manuale; sono ancora definiti per garantire la
-compatibilità con documenti meno recenti. Questi comandi restituiscono un
-avviso; in futuro potrebbero non essere più definiti.}
-
-\section{Motivazioni e ragioni}
-\chemmacros nacque qualche anno fa come una lista crescente di macro che usavo
-frequentemente. Non ricordo più il momento e le ragioni che mi spinsero a
-pubblicarle come pacchetto. Ora lo avete davanti a voi \textendash\ spero che
-anche voi riusciate a trarne qualche beneficio.
-
-Nel corso del tempo le macro ed il loro funzionamento sono leggermente variati,
-e se ne sono aggiunte di nuove. Con il passare del tempo molte cose si sono
-unificate, introducendo sempre più possibilità di apportare personalizzazioni.
-
-Ogni chimico che usi \LaTeX\ per la compilazione dei propri documenti conoscerà
-il meraviglioso pacchetto \paket{mhchem} di Martin Hensel. Fin dall'inizio vi
-furono delle difficoltà a fare cooperare \paket{mhchem} e \chemmacros.
-Alcuni dettagli di \paket{mhchem} non mi hanno mai soddisfatto particolarmente,
-ma non sembravano essere sufficienti per un nuovo pacchetto, nemmeno per inviare
-un \enquote{feature request} all'autore di \paket{mhchem}. La sfida e il
-divertimento nel creare un pacchetto nuovo nonché il desiderio di raggiungere
-una flessibilità massima hanno infine portato a \chemformula.
-
-\chemformula funziona in modo analogo a \paket{mhchem}, ma è più severo per quanto
-riguarda l'input di composti, fattori stechiometrici e frecce di reazione;
-contemporaneamente \chemformula offre alcune possibilità di adattare l'output che
-\paket{mhchem} non ha. Dato che \chemformula nasce come alternativa a
-\paket{mhchem}, \chemmacros offre un'opzione per selezionare uno tra
-\paket{mhchem} e \chemformula.
-
-Il lettore di formazione chimica probabilmente sarà a conoscenza che le
-\acl{UN} hanno introdotto il \ac{ghs} come sostituto di validità
-globale per i numerosi sistemi dei diversi paesi, simili ma non unitari. Nonostante
-non sia ancora stato adottato da tutti i paesi \cite{unece:ghsystem_implementation},
-questo avverrà ben presto. Il pacchetto \ghsystem offre la possibilità di inserire
-e richiamare in modo semplice tutti gli \enquote{hazard and precautionary statements}.
-Le frasi sono tratte dal regolamento CE 1272/2008 \cite{eu:ghsystem_regulation}.
-
-Con questo bundle spero di essere riuscito a realizzare i seguenti quattro punti:
-\begin{itemize}
- \item permettere un utilizzo intuitivo, soprattutto per quanto riguarda la
- sintassi dei comandi;
- \item proporre dei comandi non solo per semplificare la stesura ma anche la
- lettura del codice, migliorandone la semantica e rendendola più logica
- (\lstinline=\ortho-diclorobenzene= è più leggibile e più comprensibile di
- \lstinline=\textsl{o}-diclorobenzene=);
- \item introdurre flessibilità e adattabilità ove possibile, in modo che ogni
- utente possa adattare i comandi alle proprie necessità;
- \item usare impostazioni predefinite conformi alle norme e le indicazioni della \ac{iupac}.
-\end{itemize}
-L'ultimo punto in particolare ha richiesto qualche incitamento da parte degli
-utenti\footnote{Molte grazie al Dr.~Paul~King!} per applicare le
-impostazioni giuste in numerosi punti. Se doveste notare qualcosa che non
-corrisponde ai consigli \ac{iupac}\footnote{Questo non vale per il comando \cmd{ox}.
-La versione \ac{iupac} è \cmd[oxa]{ox*}.} sarei molto grato di una notifica via
-e-mail!
-
-In un pacchetto di questa mole comprendente parti meno e più recenti (le ultime
-debbono essere considerate ancora in fase beta) non è possibile evitare la
-presenza di errori o bug. Ho grande interesse a correggere e migliorare questo
-pacchetto, e quindi prego tutti gli utenti che notino un funzionamento imprevisto
-o indesiderato (anche se apparentemente insignificante) di mandarmi un'e-mail, e
-vedrò di fare quel che posso. Sono particolarmente interessato a feedback
-riguardante \chemformula (vedi la parte~\ref{part:chemformula}) e \ghsystem (vedi
-la parte~\ref{part:ghsystem}), ma sono felice di ricevere feedback anche su
-qualunque altra parte del bundle.
-
-\section{Installazione e caricamento del bundle}\secidx{Caricamento del
-bundle}\secidx{Installazione}
-Il bundle contiene tre fogli di stile\footnote{Con l'estensione \code{sty}.}, una
-cartella di nome \code{language/} che contiene i file di definizione di lingua per
-il GHS (estensione \code{def}) e una cartella di nome \code{pictures/} che
-contiene immagini di tipo \code{eps}, \code{pdf}, \code{jpg} e \code{png} (i
-pittogrammi GHS). Nel caso di un'installazione manuale \emph{è necessario copiare
-le cartelle \code{language/} e \code{pictures/} nella \emph{stessa} cartella dei
-fogli di stile}.
-
-Il caricamento di \chemmacros via
-\begin{beispiel}[code only]
- \usepackage{chemmacros} % `chemmacros', `chemformula' and `ghsystem' are loaded
-\end{beispiel}
-carica anche \chemformula e \ghsystem. È tuttavia possibile impedire a \chemmacros
-di caricare \ghsystem:
-\begin{beispiel}[code only]
- \usepackage[ghsystem=false]{chemmacros} % `chemmacros' and `chemformula' are loaded
-\end{beispiel}
-Il caricamento di \chemformula non può essere evitato a causa dell'interazione tra
-\chemmacros e \chemformula.
-
-Il caricamento esplicito di \chemformula o \ghsystem è possibile e carica
-contemporaneamente anche \chemmacros, se non ancora caricato; implicitamente
-quindi si caricano a vicenda.
-\begin{beispiel}[code only]
- \usepackage{chemformula}
- or
- \usepackage{ghsystem}
-\end{beispiel}
-
-Si consiglia tuttavia di utilizzare solamente \lstinline=\usepackage{chemmacros}=
-e di applicare le opzioni desiderate con \lstinline=\chemsetup= (confronta il
-paragrafo~\ref{sec:setup}).
-\secidx*{Installazione}\secidx*{Caricamento del pacchetto}
-
-\section{Opzioni globali}\label{sec:optionen}\secidx{Opzioni globali}
-\chemmacros ha diverse opzioni, che seguono tutte il principio chiave/valore:
-\begin{beispiel}[code only]
- \usepackage[option1 = <value1>, option2 = <value2>]{chemmacros}
-\end{beispiel}
-La maggior parte delle opzioni può essere richiamata anche senza assegnargli un
-valore (\lstinline+\usepackage[option]{chemmacros}+); in questo caso richiamano il
-valore \default{sot\-to\-li\-ne\-a\-to}.
-
-Sia \chemformula che \ghsystem non hanno opzioni di pacchetto proprie; se caricati
-esplicitamente, perdono tutte le opzioni passate loro, che devono poi essere
-impostate con il comando di setup.
-\chemmacros.
-\begin{beschreibung}
- % bpchem
- \option[option]{bpchem}{\default{true}|false} Questa opzione carica \paket{bpchem}
- e adatta il layout di \cmd{NMR} ai comandi propri di \paket{bpchem}
- \lstinline+\HNMR+ e \lstinline+\CNMR+. Default = \code{false}
- % circled
- \option[option]{circled}{\default{formal}|all|none} \chemmacros distingue due
- tipi di cariche:\footnote{Ringrazio Christoph Schäfer per avermi fatto notare
- che la v1.1 trattava le cariche in modo poco coerente!} le cariche reali ($+/-$)
- e quelle formali (\fplus/\fminus). L'opzione \code{formal} distingue tra i
- due tipi, \code{all} le rappresenta tutte cerchiate, \code{none} tutte senza
- cerchio. Default = \code{formal}
- % circletype
- \option[option]{circletype}{\default{chem}|math} Questa opzione varia tra due
- rappresentazioni per le cariche formali: \cmd{fplus} \fplus\ e
- \lstinline+$\oplus$+ $\oplus$. Default = \code{chem}
- % cmversion
- \option[option]{cmversion}{1|2|bundle} Questa opzione ripristina le definizioni
- di alcuni comandi, in modo da compilare correttamente documenti composti
- utilizzando v1.*. Default = \code{bundle}; in realtà \code{2} e \code{bundle}
- sono equivalenti. L'opzione può essere impostata solamente nel preambolo.
- % ghsystem
- \option[option]{ghsystem}{\default{true}|false} Attiva/disattiva il pacchetto
- \ghsystem. L'impostazione \key{ghs}{false} sopprime il caricamento di \ghsystem.
- Default = \code{true}
- % greek
- \option[option]{greek}{auto|math|textgreek|\default{upgreek}} Questa opzione
- determina come vengono rappresentate la lettera \cmd{Chemalpha} e le sue simili
- (vedi a pagina~\pageref{desc:upgreek} per ulteriori informazioni). L'opzione
- può essere impostata solo nel preambolo. Nota bene: l'opzione non carica né
- \paket{upgreek} né \paket{textgreek}, bensì determina solamente quale dei due
- viene utilizzato, se caricato. Scegliendo \code{upgreek}, è necessario
- \emph{anche} caricare il pacchetto corrispondente.
- Default = \code{auto}
- % iupac
- \option[option]{iupac}{auto|restricted|strict} Determina le impostazioni dei comandi
- di nomenclatura (vedi a pagina~\pageref{desc:iupac}). Default = \code{auto}
- % language
- \option[option]{language}{american|british|english|french|german|italian|ngerman}
- Carica impostazioni specifiche per una lingua. \code{english}, \code{american}
- e \code{british} sono tra loro equivalenti, come anche \code{german} e \code{ngerman}.
- L'opzione può essere impostata solo nel preambolo. Default = \code{english}
- % method
- \option[option]{method}{\default{chemformula}|mhchem} È possibile scegliere tra
- \paket{mhchem} e \chemformula per gli ambienti di reazione di \chemmacros (vedi
- il paragrafo~\ref{sec:reactions}) e per le particelle (vedi il paragrafo~\ref{sec:teilchen}).
- Default = \code{chemformula}. L'opzione può essere impostata solo nel preambolo.
- % Nu
- \option[option]{Nu}{\default{chemmacros}|mathspec} Anche il pacchetto \paket{mathspec}
- definisce una macro \cmd{Nu}; questa opzione decide quale definizione verrà
- applicata (vedi a pagina~\pageref{Nu}). Default = \code{chemmacros}. L'opzione
- può essere impostata solo nel preambolo.
- % strict
- \option[option]{strict}{\default{true}|false} L'impostazione \key{strict}{true}
- trasforma tutti gli avvisi in messaggi di errore. Default = \code{false}
- % synchronize
- \option[option]{synchronize}{\default{true}|false} Impostando \code{true}, se
- \chemformula è stato scelto come metodo \chemmacros ne adotta le impostazioni
- di carattere. Default = \code{false}. Per dimostrare il funzionamento di questa
- opzione, il documento è stato compilato con \key{synchronize}{true} e l'impostazione
- di \chemformula \lstinline+\chemsetup[chemformula]{font-spec={[Color=darkgray]Latin Modern Sans}}+.
- % xspace
- \option[option]{xspace}{\default{true}|false} Con questa opzione la maggior parte
- delle macro comprende un \lstinline+\xspace+. Default = \code{true}
-\end{beschreibung}
-\secidx*{Opzioni globali}
-
-\section{Setup}\label{sec:setup}\secidx{Setup}
-Numerosi comandi di \chemmacros, \chemformula e \ghsystem hanno come opzioni delle
-coppie chiave/valore attraverso le quali possono essere adattate. Tipicamente
-possono essere utilizzate come argomento (opzionale) del comando, e in genere anche
-con il comando \cmd{chemsetup}.
-\begin{beschreibung}
- \Befehl{chemsetup}[<module>]{<key> = <value>} oppure
- \Befehl{chemsetup}{<module>/<key> = <value>}
-\end{beschreibung}
-Quasi tutte le opzioni appartengono ad un modulo, che indica quale comando vanno
-ad influenzare. Quando viene presentata un'opzione, il suo modulo di appartenenza
-viene qui segnato nel margine sinistro. Con il comando \cmd{chemsetup} è possibile
-utilizzare le opzioni in due modalità diverse, come mostrato sopra.
-
-Le opzioni globali possono essere considerate anche come opzioni appartenenti al
-modulo \textcolor{module}{\ttfamily option}; possono essere quindi richiamate anche
-da \cmd{chemsetup}.
-\begin{beispiel}
- \chemsetup[option]{circled=none}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup[option]{circled=formal}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup[option]{circletype=math}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup{option/circletype=chem,option/circled=all}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt \\
- \chemsetup{option/circletype=math}\mch\ \pch\ \fmch\ \fpch\ \el\ \prt
-\end{beispiel}
-Le opzioni che non appartengono a nessun modulo \emph{non possono essere utilizzate}
-con \cmd{chemsetup}!
-
-Tutte le opzioni di \chemformula appartengono al modulo \textcolor{module}{\code{chemformula}},
-e tutte le opzioni di \ghsystem appartengono al modulo \textcolor{module}{\code{ghs}}.
-\secidx*{Setup}
-
-\section{Impostazioni di lingua}\label{sec:languages}\secidx{Impostazioni di lingua}
-\subsection{Lingue supportate}
-Impostando l'opzione
-\begin{beispiel}[code only]
- \chemsetup[option]{language=<language>}
-\end{beispiel}
-può essere selezionata una tra le seguenti lingue: \code{american}, \code{british},
-\code{english}, \code{french}, \code{german}, \code{italian} e \code{ngerman}. Le
-lingue \code{american}, \code{british} e \code{english} sono tra loro equivalenti,
-come anche le lingue \code{german} e \code{ngerman}
-
-Vengono tradotti
-\begin{itemize}
- \item Il titolo della lista delle reazioni.
- \item Le voci della lista delle reazioni.
- \item Le frasi H e P.
-\end{itemize}
-
-\achtung{Attenzione: le frasi GHS non sono disponibili in tutte le lingue (vedi
-anche il paragrafo~\ref{sec:ghsystem_language}).}
-
-\subsection{Particolarità}
-\subsubsection{Tedesco}
-Selezionando come lingua \code{german/ngerman} vengono tradotti i comandi di fase
-\cmd{sld}, \cmd{lqd} nonché \cmd{pKa}.
-
-\subsubsection{Italiano}
-Selezionando come lingua \code{italian} vengono definiti ulteriori comandi \ac{iupac}:
-\begin{beschreibung}
- \befehl{ter} \iupac{\ter}
- \befehl{sin} \iupac{\sin}
-\end{beschreibung}
-\secidx*{Impostazioni di lingua}
-
-\section{Novità}\secidx{Novità}
-\subsection{Versione 3.3}
-\begin{itemize}
- \item Dalla versione 3.3 è disponibile l'ambiente \env{experimental}{} (vedi il
- paragrafo~\ref{sec:spektroskopie}), che può essere impiegato con alcuni nuovi
- comandi e opzioni per riportare dei dati sperimentali in modo consistente.
- \item L'ambiente \env{reaction}{} e i suoi simili sanno utilizzare
- \lstinline+\label+, \lstinline+\ref+ e \lstinline+\intertext+ (vedi il
- paragrafo~\ref{sec:reactions}).
- \item Le opzioni globali \key{german} e \key{ngerman} vengono sostituite dall'opzione
- \key{language} (vedi a pagina~\pageref{key:option_language} e il paragrafo~\ref{sec:languages}
- da pagina~\pageref{sec:languages}).
- \item L'opzione \key{upgreek} è stata rinominata a \key{greek}.
- \item Ai comandi del tipo \code{\textbackslash\textcolor{code}{Chem<greekletter>}}
- sono state aggiunte alcune lettere (vedi il paragrafo~\ref{sec:teilchen}).
-\end{itemize}
-
-\subsection{Versione 3.3a}
-\begin{itemize}
- \item I comandi \ac{iupac} \cmd{hapto} e \cmd{bridge} sono nuovi.
- \item Le frasi H e P sono ora disponibili anche in italiano.
-\end{itemize}
-
-\subsection{Versione 3.3d}
-\begin{itemize}
- \item Versioni \code{pdf} dei pittogrammi \ac{ghs}.
- \item Nuovi valori di default per lunghezza e offset dei legami, vedi a
- pagina~\pageref{ssec:compounds:customization}.
- \item Nuova opzione \key{bond-style}, vedi a
- pagina~\pageref{ssec:compounds:customization}.
- \item Nuova opzione \key{cip-kern}, vedi a pagina~\pageref{par:cip}.
-\end{itemize}
-
-\subsection{Versione 3.4}
-\begin{itemize}
- \item \chemmacros ha ora un manuale italiano; tante grazie a Jonas Rivetti per la
- sua traduzione sia delle frasi H \&\ P che di questo manuale!
- \item Il comando \cmd{bond} permette di usare legami ulteriori a quello
- singolo, doppio e triplo (vedi il sottoparagrafo~\ref{ssec:bonds}). Volevo
- aggiungere questa funzionalità da molto tempo!
- \item Alcuni cambiamenti all'aspetto del punto radicalico e nuove opzioni per la
- sua personalizzazione (vedi il sottoparagrafo~\ref{ssec:compounds:customization}).
-\end{itemize}
-
-\subsection{Versioni 3.5 e 3.6}
-\begin{itemize}
- \item Le interruzioni di riga che precedono o seguono i legami nelle formule non
- sono più possibili.
- \item Le interruzioni di riga seguenti le frecce di reazione nelle formule sono
- ora permesse.
- \item Alcuni degli spazi orizzontali nelle formule ora hanno dei componenti
- elastici.
- \item È ora possibile inserire un ambiente matematico protetto all'interno
- delle formule anche con \cmd*{(} e \cmd*{)}.
- \item Le nuove opzioni \key{radical-vshift}, \key{radical-hshift} e
- \key{radical-space} permettono un controllo fine sul punto di radicale.
- \item Nei fattori stechiometrici viene inserito uno zero iniziale quando mancante.
- \item Nuova opzione \key{stoich-paren-parse}.
- \item Numerose variazioni interne del codice.
- \item Nuova opzione \key{arrow-min-length}.
-\end{itemize}
-\secidx*{Novità}\secidx*{PRIMA DI COMINCIARE}
-
-\part{\texorpdfstring{\Chemmacros}{chemmacros}}\secidx{CHEMMACROS}
-\section{Particelle, ioni e simboli}\label{sec:teilchen}\secidx{Particelle, ioni e simboli}
-\subsection{Predefiniti}\secidx[predefiniti]{Particelle, ioni e simboli}
-\chemmacros definisce alcune semplici macro per raffigurare particelle e simboli
-di uso comune. Si noti che questi possono essere rappresentati in modo diverso a
-seconda delle opzioni globali utilizzate. I comandi possono essere utilizzati
-anche in modalità matematica.
-\begin{beschreibung}
- \befehl{Hpl} \Hpl (protone)
- \befehl{Hyd} \Hyd (ione idrossido)
- \befehl{HtO} \HtO (ione ossonio) (\textbf{H} \textbf{t}hree \textbf{O})
- \befehl{water} \water
- \befehl{el} \el (elettrone)
- \befehl{prt} \prt (protone)
- \befehl{ntr} \ntr (neutrone)
- \befehl{Nu} \Nu (nucleofilo). Anche il pacchetto \paket{mathspec} definisce una
- macro di nome \cmd{Nu}: selezionando l'opzione globale \key[option]{Nu}{mathspec},
- \chemmacros definisce una macro sostitutiva \cmd{Nuc}\label{Nu}.
- \befehl{El} \El (elettrofilo)
- \befehl{ba} \ba (base)
- \befehl{fplus} \fplus
- \befehl{fminus} \fminus
- \befehl{transitionstatesymbol} \transitionstatesymbol
- \befehl{standardstate} \standardstate. Questo simbolo viene reso da \chemmacros
- solamente se non è caricato il pacchetto \paket{chemstyle}. L'idea proviene proprio
- da questo pacchetto\footnote{Molte grazie al suo autore~\href{http://www.texdev.net/}{Joseph Wright}.}.
- \befehl{Chemalpha} \Chemalpha
- \befehl{Chembeta} \Chembeta
- \befehl{Chemgamma} \Chemgamma
- \befehl{Chemdelta} \Chemdelta
- \befehl{Chemepsilon} \Chemepsilon
- \befehl{Chemeta} \Chemeta
- \befehl{Chemkappa} \Chemkappa
- \befehl{Chemmu} \Chemmu
- \befehl{Chemnu} \Chemnu
- \befehl{Chemrho} \Chemrho
- \befehl{Chempi} \Chempi
- \befehl{Chemsigma} \Chemsigma
- \befehl{Chemomega} \Chemomega
- \befehl{ChemDelta} \ChemDelta
-\end{beschreibung}
-
-\achtung{Il comando \cmd{Rad} non è più disponibile!}
-
-Entrambe le particelle \cmd{Nu} e \cmd{ba} possono essere adattate. Per farlo si
-impiega l'opzione
-\begin{beschreibung}
- \Option[particle]{elpair}{false|\default{dots}|dash}
-\end{beschreibung}
-Questa ha effetto solo quando è caricato il pacchetto \paket{chemfig}, da cui
-prende il comando \lstinline+\Lewis+.
-\begin{beispiel}
- % needs package `chemfig'
- \ba[elpair] \Nu[elpair=dash]
-
- \chemsetup[particle]{elpair}
- \ba \Nu
-\end{beispiel}
-
-\label{desc:upgreek}Le lettere greche non sono comandi nuovi: la loro definizione
-dipende dai pacchetti caricati. La loro versione predefinita corrisponde alle lettere
-greche corsive proprie del modo matematico. Se è caricato il pacchetto \paket{textgreek},
-vengono utilizzate le sue lettere; se è caricato il pacchetto \paket{upgreek},
-vengono utilizzate le lettere di quest'ultimo. Questo manuale impiega \paket{upgreek}.
-Quando sono caricati entrambi \paket{textgreek} e \paket{upgreek}, viene impiegato
-automaticamente \paket{upgreek}.
-
-Nel caso in cui l'utente non voglia adattarsi alla selezione automatica di \chemmacros,
-per scegliere autonomamente va impiegata l'opzione globale \key[option]{greek}.
-La tabella~\ref{tab:upgreek_mode} mostra le diverse varianti di alcune lettere.
-
-\begin{table}[h]
- \centering
- \begin{tabular}{lccc}\toprule
- & math & upgreek & textgreek \\\midrule
- \cmd{Chemalpha} & $\alpha$ & $\upalpha$ & \textalpha \\
- \cmd{Chembeta} & $\beta$ & $\upbeta$ & \textbeta \\
- \cmd{ChemDelta} & $\Delta$ & $\Updelta$ & \textDelta \\ \bottomrule
- \end{tabular}
- \caption{Le lettere greche}\label{tab:upgreek_mode}
-\end{table}
-
-La ragione per cui \chemmacros definisce queste macro è per conformarsi alle regole
-\ac{iupac}: la \ac{iupac} consiglia di utilizzare lettere greche tonde nella nomenclatura.
-
-\begin{zitat}[{\ac{iupac} Green Book {\cite[][p.\,9]{iupac:greenbook}}}]
- Greek letters are used in systematic organic, inorganic, macromolecular and
- biochemical nomenclature. These should be roman (upright), since they are not
- symbols for physical quantities.
-\end{zitat}
-
-\chemmacros impiega questi comandi per definire comandi di nomenclatura (vedi a
-pagina~\pageref{par:greek_letters}).
-
-\subsection{Definire particelle proprie}\secidx[proprie]{Particelle, ioni e simboli}
-Talvolta può essere utile avere a disposizione delle ulteriori particelle come macro,
-come ad esempio \lstinline+\positron+ oppure \lstinline+\photon+. È possibile
-definirle agevolmente con i seguenti comandi:
-\begin{beschreibung}
- \Befehl{DeclareChemParticle}{<cmd>}\ma{<definition>}
- \Befehl{RenewChemParticle}{<cmd>}\ma{<definition>}
-\end{beschreibung}
-A seconda del \key{method} scelto come opzione, la \code{<definition>} viene svolta
-alternativamente con \paket{mhchem} o con \chemformula. La particella si comporta
-come quelle predefinite, tranne che per un'eccezione: la particella così definita
-obbedisce all'opzione \key{circled} solamente se è stato selezionato
-\key{method}{chemformula}. Se si desiderano cariche formali con \key{method}{mhchem},
-è necessario richiamare i comandi di \chemmacros in modo esplicito (vedi il
-paragrafo~\ref{sec:ladungen}).
-\begin{beispiel}
- % uses the `upgreek' package
- \DeclareChemParticle{\positron}{$\upbeta$+}
- \DeclareChemParticle{\photon}{$\upgamma$}
- \RenewChemParticle{\el}{$\upbeta$-}
- \positron\ \photon\ \el
-\end{beispiel}
-\cmd{DeclareChemParticle} definisce la particella solamente se \code{<cmd>} non
-esiste ancora. In caso diverso \chemmacros restituisce un avvertimento oppure un
-errore, dipendentemente dall'opzione \key{strict}. \cmd{RenewChemParticle} definisce
-una particella \emph{solamente} se \code{<cmd>} è \emph{già} esistente e restituisce
-un avvertimento o un errore in caso contrario.
-\secidx*{Particelle, ioni e simboli}
-
-\section{Nomenclatura, stereodescrittori e termini in latino}\label{sec:stereo}
-\subsection{Nomi IUPAC}\secidx{Nomi IUPAC}
-Analogamente al pacchetto \paket{bpchem} anche \chemmacros mette a disposizione
-un comando\footnote{L'idea e la realizzazione provengono dal pacchetto \paket*{bpchem}
-di Bjørn Pedersen.} per inserire nomi \ac{iupac}. La sua utilità deriva da un
-motivo molto semplice: i nomi \ac{iupac} possono diventare particolarmente lunghi,
-così lunghi da riempire anche più di due righe, specialmente all'interno di documenti
-in due colonne. Ciò significa che devono poter essere divisi più di una volta. Per
-metterlo in pratica si può utilizzare il seguente comando:
-\begin{beschreibung}
- \befehl{iupac}{<IUPAC name>} All'interno di questo comando vengono impiegati
- {\catcode`\|=11\cmd{|}} e \cmd{-} per segnare punti di divisione oppure un
- trattino separatore. {\catcode`\^=11\cmd{^}} può essere utilizzato come
- abbreviazione per \lstinline=\textsuperscript=.
-\end{beschreibung}
-\begin{beispiel}
- \begin{minipage}{.4\linewidth}
- \iupac{Tetra\|ciclo[2.2.2.1\^{1,4}]\-un\|decano-2\-dodecil\-5\-(epta\|decil\|iso\|dodecil\|tio\|estere)}
- \end{minipage}
-\end{beispiel}
-Nonostante ciò, il comando \cmd{iupac} è più che altro un comando semantico. Nella
-maggior parte dei casi si può raggiungere un risultato (quasi) identico utilizzando
-\cmd{-} anziché {\catcode`\|=11\cmd{|}}, \code{-} anziché \cmd{-} e
-\lstinline=\textsuperscript= anziché {\catcode`\^=11\cmd{^}}.
-
-Vi sono delle sottili differenze: \cmd{-} inserisce un sottile spazio prima del
-trattino e rimuove un sottile spazio dopo. Il comando {\catcode`\|=11\cmd{|}} non
-evita solo le legature, bensì inserisce anche un sottile spazio.
-\begin{beispiel}
- \huge\iupac{2,4\-di\|cloro\|pentano} \\
- 2,4-dicloropentano
-\end{beispiel}
-
-Gli spazi inseriti possono essere adattati:
-\begin{beschreibung}
- \option[iupac]{hyphen-pre-space}{<dim>} default = \code{.01em}
- \option[iupac]{hyphen-post-space}{<dim>} default = \code{-.03em}
- \option[iupac]{break-space}{<dim>} default = \code{.01em}
-\end{beschreibung}
-
-Il comando \cmd{iupac} serve anche ad un altro scopo: indipendentemente dall'opzione
-globale \key[option]{iupac} tutti i comandi presentati in questo paragrafo sono
-sempre definiti \emph{internamente} a \cmd{iupac}. Tutta una serie di comandi di
-nomenclatura ha nomi molto generici come \cmd{meta}, \cmd{D}, \cmd{E}, \cmd{L},
-\cmd{R}, \cmd{S}, \cmd{trans} e così via; ne segue che spesso sono già predefiniti
-(\cmd{L} \L) oppure facilmente modificati da altri pacchetti o altre classi (ad
-esempio, il pacchetto \paket{cool} definisce sia \cmd{D} che \cmd{E}). Per potere
-controllare quali comandi siano definiti e come, esiste l'opzione globale
-\key[option]{iupac}\label{desc:iupac}, con tre modalità di utilizzo:
-\begin{itemize}
- \item \key{iupac}{auto}: se il comando \emph{non è definito} all'interno di un
- pacchetto o una classe in uso è disponibile generalmente, altrimenti solo
- \emph{all'interno} di \cmd{iupac}.
- \item \key{iupac}{restricted}: tutti i comandi di nomenclatura sono definiti
- \emph{solo internamente} a \cmd{iupac}. Sono disponibili esternamente solo se
- definiti da un'altro pacchetto.
- \item \key{iupac}{strict}: \chemmacros sovrascrive ogni definizione preesistente
- e rende disponibili i comandi \emph{in tutto il documento}. Possono essere ridefiniti
- (solo dopo \lstinline=\begin{document}=). Mantengono il significato di nomenclatura
- all'interno di \cmd{iupac}.
-\end{itemize}
-Nella tabella~\ref{tab:iupac_modes} è dimostrato il funzionamento delle diverse modalità.
-
-\begin{table}[h]
- \centering
- \begin{tabular}{lccc}\toprule
- & auto & restricted & strict \\\midrule
- \lstinline=\L= & \L & \L & \iupac{\L} \\
- \lstinline=\iupac{\L}= & \iupac{\L} & \iupac{\L} & \iupac{\L} \\
- \lstinline=\D= & \D & -- & \D \\
- \lstinline=\iupac{\D}= & \iupac{\D} & \iupac{\D} & \iupac{\D} \\\bottomrule
- \end{tabular}
- \caption{Esempio dimostrativo del funzionamento delle diverse modalità di \protect\key{iupac}.}\label{tab:iupac_modes}
-\end{table}
-
-\subsubsection{Comandi predefiniti}\secidx[predefiniti]{Nomi IUPAC}\secidx{Stereodescrittori e nomenclatura}
-\paragraph{Caratteri greci}\label{par:greek_letters}\secidx[caratteri greci]{Nomi IUPAC}
-Le lettere greche all'interno dei nomi di composti vanno scritte in carattere tondo;
-per realizzarlo sono impiegati i pacchetti \paket{upgreek} e \paket{textgreek}.
-Quando viene caricato uno dei due, vengono scritti in tondo i seguenti caratteri:
-\begin{beschreibung}
- \befehl{a} \iupac{\a}
- \befehl{b} \iupac{\b}
- \befehl{g} \iupac{\g}
- \befehl{d} \iupac{\d}
- \befehl{k} \iupac{\k}
- \befehl{m} \iupac{\m}
- \befehl{n} \iupac{\n}
- \befehl{w} \iupac{\w}
-\end{beschreibung}
-\begin{beispiel}
- \iupac{5\a\-androstan\-3\b\-olo} \\
- \iupac{\a\-(tri\|cloro\|metil)\-\w\-cloro\|poli(1,4\-fenilene\|metilene)}
-\end{beispiel}
-
-\paragraph{Eteroatomi e idrogeni aggiunti}\secidx[Eteroatomi]{Nomi IUPAC}
-I legami agli eteroatomi e gli idrogeni aggiunti sono rappresentati da caratteri
-corsivi \cite{iupac:greenbook}. \chemmacros definisce alcune abbreviazioni:
-\begin{beschreibung}
- \befehl{H} \iupac{\H}
- \befehl{O} \iupac{\O}
- \befehl{N} \iupac{\N}
- \befehl{Sf} \iupac{\Sf}
- \befehl{P} \iupac{\P}
-\end{beschreibung}
-\begin{beispiel}
- \iupac{\N\-methyl\|benz\|amide} \\
- \iupac{3\H\-pyrrole} \\
- \iupac{\O\-ethyl hexanethioate}
-\end{beispiel}
-
-\paragraph{Cahn-Ingold-Prelog}\index{Cahn-Ingold-Prelog}\secidx[Cahn-Ingold-Prelog]{Nomi IUPAC}\label{par:cip}
-\begin{beschreibung}
- \befehl{cip}{<conf>} \pes: \cmd{cip}{R,S} \cip{R,S}
- \befehl{R} \iupac{\R}
- \befehl{S} \iupac{\S}
-\end{beschreibung}
-Dato che il comando \cmd{S} ha già un altro significato (\S) come impostazione di
-default è disponibile solo all'interno di \cmd{iupac}.
-
-Sia i comandi che i descrittori \emph{entgegen}/\emph{zusammen} ricevono un po' di
-kerning aggiuntivo dopo la parentesi chiusa. La sua quantità può essere variata
-attraverso l'opzione seguente:
-\begin{beschreibung}
- \option[iupac]{cip-kern}{<dim>} ammontare del kerning dopo la parentesi chiusa.
- Default = \code{.075em}
-\end{beschreibung}
-
-\paragraph{Fischer}\index{Fischer}\secidx[Fischer]{Nomi IUPAC}
-\begin{beschreibung}
- \befehl{D} \iupac{\D}
- \befehl{L} \iupac{\L}
-\end{beschreibung}
-Dato che il comando \cmd{L} ha già un altro significato (\L) come impostazione di
-default è disponibile solo all'interno di \cmd{iupac}.
-
-\paragraph{cis/trans, zusammen/entgegen, sin/anti \& tert}\index{tert}\secidx[tert]{Nomi IUPAC}\index{cis/trans}\secidx[cis/trans]{Nomi IUPAC}\index{zusammen/entgegen}\secidx[zusammen/entgegen]{Nomi IUPAC}\secidx[sin/anti]{Nomi IUPAC}
-\begin{beschreibung}
- \befehl{cis} \cis
- \befehl{trans} \trans
- \befehl{Z} \Z
- \befehl{E} \E
- \befehl{syn} \syn
- \befehl{anti} \anti
- \befehl{tert} \tert
-\end{beschreibung}
-Anche il pacchetto \paket{cool} definisce i comandi \cmd{E} e \cmd{D}. Quando viene
-caricato, come impostazione predefinita la loro versione in \chemmacros è disponibile
-solo all'interno di \cmd{iupac}.
-
-\paragraph{orto/meta/para}\index{orto/meta/para}\secidx[orto/meta/para]{Nomi IUPAC}
-\begin{beschreibung}
- \befehl{ortho} \ortho
- \befehl{meta} \meta
- \befehl{para} \para
-\end{beschreibung}
-
-\paragraph{Configurazione assoluta}\index{Configurazione assoluta} (utilizza \TikZ)
-\begin{beschreibung}
- \befehl{Rconf}[<letter>] \cmd{Rconf}: \Rconf \quad\cmd{Rconf}[]: \Rconf[]
- \befehl{Sconf}[<letter>] \cmd{Sconf}: \Sconf \quad\cmd{Sconf}[]: \Sconf[]
-\end{beschreibung}
-
-Esempi:
-\begin{beispiel}
- \iupac{acido \D\-tartar\|ico} =
- \iupac{acido \cip{2S,3S}\-tartar\|ico} \\
- \iupac{\D\-($-$)\-treosio} =
- \iupac{\cip{2S,3R}\-($-$)\-2,3,4\-tri\|idrossi\|butanale} \\
- \iupac{\cis\-2\-butene} =
- \iupac{\Z\-2\-butene} \\
- \iupac{\cip{2E,4Z}\-esa\|diene} \\
- \iupac{\meta\-xilene} =
- \iupac{1,3\-di\|metil\|benzene}
-\end{beispiel}
-\secidx*{Stereodescrittori e nomenclatura}
-
-\paragraph{Chimica di coordinazione}
-\chemmacros mette a disposizione due comandi che possono essere utili in chimica
-di coordinazione:
-\begin{beschreibung}
- \befehl{bridge}{<num>} \bridge{3}
- \befehl{hapto}{<num>} \hapto{5}
-\end{beschreibung}
-\begin{beispiel}
- Ferrocene = \iupac{bis(\hapto{5}cyclo\|penta\|dienyl)iron} \\
- \iupac{tetra\-\bridge{3}iodido\-tetrakis[tri\|methyl\|platinum(IV)]}
-\end{beispiel}
-
-Sono disponibili due opzioni per l'adattamento:
-\begin{beschreibung}
- \option[iupac]{bridge-number}{sub|super} appende il numero come apice o pedice;
- \ac{iupac} consiglia l'uso del pedice \cite{iupac:redbook}. Default = \code{sub}
- \option[iupac]{coord-use-hyphen}{\default{true}|false} appende un trattino a
- \cmd{hapto} e \cmd{bridge} quando vale \code{true}. Default = \code{true}
-\end{beschreibung}
-
-\subsubsection{Comandi di nomenclatura propri}\secidx[propri]{Nomi IUPAC}
-Se l'utente avesse bisogno di nuovi comandi è possibile definirli nel modo seguente:
-\begin{beschreibung}
- \Befehl{DeclareChemIUPAC}{<cmd>}\ma{<declaration>}
- \Befehl{RenewChemIUPAC}{<cmd>}\ma{<declaration>}
-\end{beschreibung}
-Un comando definito in questa maniera obbedisce all'opzione \key[option]{iupac}.
-Eventuali comandi preesistenti vengono sostituiti solamente se è attiva l'opzione
-globale \key{iupac}{strict}. \cmd{DeclareChemIUPAC} \emph{non sostituisce} la
-definizione di un comando di nomenclatura preesistente, bensì restituisce
-un'avvertimento o un errore (in base all'opzione globale \key{strict}).
-\begin{beispiel}
- \DeclareChemIUPAC\endo{\textit{endo}}
- \RenewChemIUPAC\anti{\textit{anti}}
- \iupac{(2\-\endo,7\-\anti)\-2\-bromo\-7\-fluoro\|bicyclo[2.2.1]heptane}
-\end{beispiel}
-
-\cmd{RenewChemIUPAC} permette di ridefinire i comandi predefiniti.
-\begin{beispiel}
- \iupac{\meta\-xilene} \\
- \RenewChemIUPAC\meta{\textit{m}}
- \iupac{\meta\-xilene}
-\end{beispiel}
-\secidx*{Nomi IUPAC}
-
-\subsection{Termini in latino}\secidx{Termini in latino}
-Il pacchetto \paket{chemstyle} mette a disposizione il comando \cmd{latin} per
-riportare termini latini comuni in modo consistente. \chemmacros definisce un
-comando \cmd{latin} analogo solamente se \paket{chemstyle} \emph{non} è caricato;
-mette inoltre a disposizione i seguenti comandi:
-\begin{beschreibung}
- \befehl{insitu} \insitu
- \befehl{abinitio} \abinitio
- \befehl{invacuo} \invacuo
-\end{beschreibung}
-
-Nel caso sia caricato il pacchetto \paket{chemstyle}, i comandi sono stati già
-definiti con il suo comando \lstinline+\latin+; il loro aspetto dipende quindi
-dall'opzione \code{abbremph} di \paket{chemstyle}.
-
-Le macro sono state definite con il comando seguente:
-\begin{beschreibung}
- \Befehl{DeclareChemLatin}{<cmd>}\ma{<phrase>}
- \Befehl{RenewChemLatin}{<cmd>}\ma{<phrase>}
-\end{beschreibung}
-\begin{beispiel}
- \DeclareChemLatin\ltn{latin text}
- \ltn
-\end{beispiel}
-Nel caso in cui \paket{chemstyle} \emph{non} sia stato caricato è possibile
-cambiarne l'aspetto tramite l'opzione seguente:
-\begin{beschreibung}
- \option[latin]{format}{<definition>} Default = \lstinline+\itshape+
-\end{beschreibung}
-\secidx*{Termini in latino}
-
-\section{Unità di misura per l'impiego con \textsf{siunitx}}\label{sec:einheiten}\secidx{Unità di misura}[Unita di misura]
-In chimica sono largamente impiegate alcune unità non-SI. Il pacchetto
-\paket{siunitx} mette a disposizione il comando \lstinline+\DeclareSIUnit{<command>}{<unit>}+
-per definire unità arbitrarie, e \chemmacros impiega questo comando per definire
-le unità elencate in seguito. Come tutte le unità di misura di \paket{siunitx},
-anche queste unità aggiuntive sono valide solamente all'interno di \lstinline+\SI{<num>}{<unit>}+
-e \lstinline+\si{<unit>}+.
-\begin{beschreibung}
- \befehl{atmosphere} \si{\atmosphere}
- \befehl{atm} \si{\atm}
- \befehl{calory} \si{\calory}
- \befehl{cal} \si{\cal}
- \befehl{cmc} \si{\cmc} Le unità \cmd{cmc}, \cmd{molar} e \cmd{Molar} sono
- definite anche dal pacchetto \paket{chemstyle}; \chemmacros le definisce solo
- nel caso in cui \paket{chemstyle} non sia stato caricato.
- \befehl{molar} \si{\molar}
- \befehl{moLar} \si{\moLar}
- \befehl{Molar} \si{\Molar}
- \befehl{MolMass} \si{\MolMass}
- \befehl{normal} \si{\normal}
- \befehl{torr} \si{\torr}
-\end{beschreibung}
-
-Nota bene: \lstinline+\mmHg+ \si{\mmHg} è messo a disposizione da \paket{siunitx}
-e \paket{chemstyle}.
-\secidx*{Unità di misura}[Unita di misura]
-
-\section{Acidi/basi}\label{sec:saeure_base}\secidx{Acidi/basi}
-È possibile rappresentare semplicemente \pH, \pKa \ldots\ (la resa dei comandi
-\cmd{Ka} e \cmd{pKa} dipende dall'opzione globale \key{language}).
-\begin{beschreibung}
- \befehl{pH} \pH
- \befehl{pOH} \pOH
- \befehl{Ka} \Ka
- \befehl{Kb} \Kb
- \befehl{Kw} \Kw
- \befehl{pKa}[<num>] \cmd{pKa}: \pKa, \cmd{pKa}[1]: \pKa[1]
- \befehl{pKb}[<num>] \cmd{pKb}: \pKb, \cmd{pKb}[1]: \pKb[1]
- \befehl{p}{<anything>} \pes: \cmd{p}{\cmd{Kw}} \p{\Kw}
-\end{beschreibung}
-
-\begin{beispiel}
- \Ka \Kb \pKa \pKa[1] \pKb \pKb[1]
-\end{beispiel}
-
-\achtung{L'aspetto predefinito dei comandi di tipo \p{} è stato modificato per
-accogliere l'indicazione \ac{iupac}.}
-\begin{zitat}[{\ac{iupac} Green Book {\cite[][p.\,103]{iupac:greenbook}}}]
- The operator \p{} \textelp{} shall be printed in Roman type.
-\end{zitat}
-
-Esiste un'opzione che varia lo stile di rappresentazione di \p{}:
-\begin{beschreibung}
- \option[acid-base]{p-style}{italics|slanted|upright} Default = \code{upright}
-\end{beschreibung}
-\begin{beispiel}
- \pH, \pKa
-
- \chemsetup[acid-base]{p-style=slanted} \pH, \pKa
-
- \chemsetup[acid-base]{p-style=italics} \pH, \pKa
-\end{beispiel}
-\secidx*{Acido/base}
-
-\section{Numeri di ossidazione, cariche reali e formali}\label{sec:ladungen}
-\chemmacros distingue tra simboli di cariche reali ($+$/$-$) e formali (\fplus/\fminus)
-(vedi anche il paragrafo~\ref{sec:optionen}). Tutti i comandi che restituiscono
-cariche formali iniziano con la lettera \code{f}.
-
-\subsection{Cariche ioniche}\label{ssec:ionen}\secidx{Cariche ioniche}
-Le cariche (reali) sono di facile impiego. Si noti che i comandi sono stati
-introdotti quando \chemmacros aveva ancora come obbiettivo l'alta compatibilità
-con \paket{mhchem}, e \Chemformula non esisteva ancora. Sono ancora disponibili,
-anche se personalmente consiglio di usare \cmd{ch} (vedi~ref{part:chemformula})
-e di dimenticare questi comandi.
-\begin{beschreibung}
- \befehl{pch}[<number>] carica positiva (\textbf{p}lus + \textbf{ch}arge)
- \befehl{mch}[<number>] carica negativa (\textbf{m}inus + \textbf{ch}arge)
-\end{beschreibung}
-
-\begin{beispiel}
- \pch, Na\pch, Ca\pch[2]\\
- \mch, F\mch, S\mch[2]
-\end{beispiel}
-
-Altrettanto vale per le cariche formali:
-\begin{beschreibung}
- \befehl{fpch}[<number>] carica positiva
- \befehl{fmch}[<number>] carica negativa
-\end{beschreibung}
-
-\begin{beispiel}
- \fpch\ \fmch\ \fpch[3] \fmch[3]
-\end{beispiel}
-
-Esiste un'opzione che influenza il comportamento delle cariche:
-\begin{beschreibung}
- \option[charges]{append}{\default{true}|false} Quando è impostata a \code{true},
- la carica viene appesa ad un gruppo vuoto. Default = \code{false}
-\end{beschreibung}
-
-Questo ha delle conseguenze:
-\begin{beispiel}
- % uses package `mhchem'
- \chemsetup{charges/append=false,phases/pos=sub}
- \ce{H\pch\aq} \ce{H\aq\pch}
-
- \chemsetup[charges]{append=true}
- \ce{H\pch\aq} \ce{H\aq\pch}
-\end{beispiel}
-
-Nella maggior parte dei casi questo comportamento può essere indesiderato, anche
-se esistono delle occasioni dove può tornare utile:
-\begin{beispiel}
- \chemsetup{charges/append=false,phases/pos=sub}
- \ce{\ox{1,H}\pch\aq}
-
- \chemsetup[charges]{append=true}
- \ce{\ox{1,H}\pch\aq}
-\end{beispiel}
-\secidx*{Cariche ioniche}
-
-\subsection{Numeri di ossidazione}\label{ssec:oxidationszahlen}\secidx{Numeri di ossidazione}
-Inserimento di numeri di ossidazione:
-\begin{beschreibung}
- \befehl{ox}[<options>]{<number>,<atom>} inserisce \code{<number>} al di sopra di
- \code{<atom>}; \code{<number>} deve essere un numero (razionale)!
-\end{beschreibung}
-
-\begin{beispiel}
- \ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ox{-1,F}
-\end{beispiel}
-
-Esiste una serie di opzioni con le quali è possibile adattare \cmd{ox}.
-\begin{beschreibung}
- \option[ox]{parse}{\default{true}|false} Quando vale \code{false}, può essere
- inserito un contenuto qualunque per \code{<number>}. Default = \code{true}
- \option[ox]{roman}{\default{true}|false} Seleziona l'impiego di numeri romani o
- arabi. Default = \code{true}
- \option[ox]{pos}{top|super|side} Varia la posizione del numero di ossidazione:
- \code{top} pone \code{<number>} al di sopra di \code{<atom>}, \code{super} come
- apice alla destra e \code{side} a destra tra parentesi. Default = \code{top}
- \option[ox]{explicit-sign}{\default{true}|false} Restituisce $+$ per numeri positivi
- e $\pm$ per $0$ aus. Default = \code{false}
- \option[ox]{decimal-marker}{comma|point} Sceglie il tipo di segno decimale per
- i numeri di ossidazione come \ox{1.2,X}. Default = \code{point}
- \option[ox]{align}{center|right} Centra il numero di ossidazione sopra l'atomo
- o lo giustifica a destra. Default = \code{center}
-\end{beschreibung}
-
-\begin{beispiel}
- \ox[roman=false]{2,Ca} \ox{2,Ca} \\
- \ox[pos=super]{3,Fe}-oxide \\
- \ox[pos=side]{3,Fe}-oxide \\
- \ox[parse=false]{?,Mn} \\
- \ox[align=right]{2,Ca}
-\end{beispiel}
-
-La variante \key[ox]{pos}{super} può essere selezionata anche tramite
-l'abbreviazione \cmd[oxa]{ox*}:
-\begin{beispiel}
- \ox{3,Fe} \ox*{3,Fe}
-\end{beispiel}
-
-Impiegando \key[ox]{explicit-sign} viene sempre indicato il segno del numero di
-ossidazione:
-\begin{beispiel}
- \chemsetup[ox]{explicit-sign = true}
- \ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ch{"\ox{0,F}" {}2}
-\end{beispiel}
-
-\begin{beispiel}
- Si confronti ad esempio \ox{-1,\ch{O2^2-}} con \ch{"\ox{-1,O}" {}2^2-}
-\end{beispiel}
-
-Talvolta è necessario impiegare numeri d'ossidazione formali come \num{.5} oppure
-$\frac{1}{3}$:
-\begin{beispiel}
- \ox{.5,\ch{Br2}} \ch{"\ox{1/3,I}" {}3+}
-\end{beispiel}
-
-La frazione impiega il comando \lstinline+\sfrac+ del pacchetto \paket{xfrac}. A
-questo proposito è definita l'istanza \lstinline+chemmacros-ox-frac+.
-\begin{beispiel}[code only]
-\DeclareInstance{xfrac}{chemmacros-ox-frac}{text}
- {
- scale-factor = 1.2 ,
- denominator-bot-sep = -.5ex ,
- numerator-top-sep = -.3ex ,
- slash-left-kern = -.2em ,
- slash-right-kern = -.2em ,
- slash-symbol-font = lmr
- }
-\end{beispiel}
-Naturalmente può essere ridefinita a seconda dei propri gusti.
-\secidx*{Numeri di ossidazione}
-
-\subsection{Cariche parziali e simili}\label{ssec:partialladungen}\secidx{Cariche parziali}
-Sono poco usate, ma possono risultare utili:
-\begin{beschreibung}
- \befehl{delp} \delp\ (\textbf{del}ta + \textbf{p}lus)
- \befehl{delm} \delm\ (\textbf{del}ta + \textbf{m}inus)
- \befehl{fdelp} \fdelp
- \befehl{fdelm} \fdelm
-\end{beschreibung}
-
-Segue un esempio con il comando \cmd{ox} oppure con il pacchetto \paket{chemfig}:
-\begin{beispiel}
- \chemsetup{
- option/circled = all,
- ox/parse = false
- }
- \ce{\ox{\delp,H}-\ox{\delm,Cl}} \hspace*{1cm}
- \chemfig{\chemabove[3pt]{\lewis{246,Br}}{\delm}-\chemabove[3pt]{H}{\delp}}
-\end{beispiel}
-
-Anche queste macro possono essere utilizzate comodamente con \paket{chemfig}.
-\begin{beschreibung}
- \befehl{scrp} \scrp\ (\textbf{scr}iptstyle + \textbf{p}lus)
- \befehl{scrm} \scrm\ (\textbf{scr}iptstyle + \textbf{m}inus)
- \befehl{fscrp} \fscrp
- \befehl{fscrm} \fscrm
- \befehl{fsscrp} \fsscrp\ (impiega \lstinline+\scriptscriptstyle+)
- \befehl{fsscrm} \fsscrm
-\end{beschreibung}
-
-\begin{beispiel}
- \setatomsep{1.8em}\chemfig{CH_3-\chemabove{C}{\scrp}(-[6]C|H_3)-\vphantom{H_3}CH_3}
-
- \chemfig{\fmch{}|O-\chemabove{N}{\fscrp}(-[1]O|\fmch)-[7]O|\fmch}
-\end{beispiel}
-\secidx*{Cariche parziali}
-
-\section{Meccanismi di reazione}\label{sec:mechanismen}\secidx{Meccanismi di reazione}
-Con il comando
-\begin{beschreibung}
- \Befehl{mech}[<type>]
-\end{beschreibung}
-è possibile specificare i meccanismi di reazione più diffusi. \code{<type>} può
-assumere uno dei valori seguenti:
-\begin{beschreibung}
- \befehl{mech} (vuoto, nessun argomento opzionale) sostituzione nucleofila \mech
- \befehl{mech}[1] sostituzione nucleofila unimolecolare \mech[1]
- \befehl{mech}[2] sostituzione nucleofila bimolecolare \mech[2]
- \befehl{mech}[se] sostituzione elettrofila \mech[se]
- \befehl{mech}[1e] sostituzione elettrofila unimolecolare \mech[1e]
- \befehl{mech}[2e] sostituzione elettrofila bimolecolare \mech[2e]
- \befehl{mech}[ar] sostituzione elettrofila aromatica \mech[ar]
- \befehl{mech}[e] eliminazione \mech[e]
- \befehl{mech}[e1] eliminazione unimolecolare \mech[e1]
- \befehl{mech}[e2] eliminazione bimolecolare \mech[e2]
- \befehl{mech}[cb] eliminazione unimolecolare \enquote{conjugated base}, cioè via
- carbanione \mech[cb]
-\end{beschreibung}
-\secidx*{Meccanismi di reazione}
-
-% TODO: watch pagebreaks!
-\section{Reazioni redox}\label{sec:redoxreaktionen}\secidx{Reazioni redox}
-\chemmacros mette a disposizione due comandi con cui mostrare il trasferimento
-di elettroni nelle reazioni redox\footnote{Ringrazio~\href{http://www.mathannotated.com/}{Peter Cao},
-che ha proposto questa funzione.}. Entrambi i comandi utilizzano \TikZ.
-\begin{beschreibung}
- \Befehl{OX}{<name>,<atom>}
- \Befehl{redox}(<name1>,<name2>)[<tikz>]\oa{<num>}\ma{<text>} \cnpkgdocarrow\ È
- necessario solamente il primo argomento\\\da{<name1>,<name2>}; gli altri due
- sono opzionali.
-\end{beschreibung}
-
-\cmd{OX} pone \code{<atom>} in un nodo (un \enquote{node}) dal nome \code{<name>}.
-Una volta impiegati due \cmd{OX}, questi possono essere collegati tramite \cmd{redox};
-i nomi dei nodi da collegare vanno posti tra parentesi tonde. Dato che \cmd{redox}
-crea una Tikzpicture con le opzioni \code{remember picture,overlay}, il documento
-deve essere compilato \emph{almeno due volte}.
-\begin{beispiel}[dist]
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b){ossidazione}
-\end{beispiel}
-Questa linea può essere adattata con chiavi \TikZ entro \oa{<tikz>}:
-\begin{beispiel}[dist]
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
-\end{beispiel}
-
-Con l'argomento \oa{<num>} si può adattare la lunghezza delle linee verticali.
-L'impostazione predefinita vale \code{.6em}, lunghezza che poi viene moltiplicata
-per \code{<num>}. Un valore negativo pone la linea \emph{sotto} il testo.
-\begin{beispiel}[dist]
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch
- \redox(a,b)[->,red]{ox}
- \redox(a,b)[<-,blue][-1]{red}
- \vspace{7mm}
-\end{beispiel}
-
-Con la chiave
-\begin{beschreibung}
- \option[redox]{dist}{<dim>} Default = \code{.6em}
-\end{beschreibung}
-è possibile aggiustare il valore predefinito delle linee verticali:
-\begin{beispiel}[dist]
- \chemsetup{redox/dist=1em}
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
-\end{beispiel}
-
-Inoltre l'opzione
-\begin{beschreibung}
- \option[redox]{sep}{<dim>} Default = \code{.2em}
-\end{beschreibung}
-permette di variare la distanza tra atomo e inizio della linea.
-\begin{beispiel}[dist]
- \chemsetup{redox/sep=.5em}
- \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}
-\end{beispiel}
-
-% TODO: watch pagebreaks!
-Esempi:
-\begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,Na}" + "\OX{r1,Cl}" {}2 -> 2 "\OX{o2,Na}" \pch{} + 2
-"\OX{r2,Cl}" \mch }
- \redox(o1,o2){\small OX: $- 2\el$}
- \redox(r1,r2)[][-1]{\small RED: $+ 2\el$}
- \vspace{7mm}
-\end{beispiel}
-
-\begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}"
-\pch{} + 2 "\OX{r2,\ox{-1,Cl}}" \mch }
- \redox(o1,o2){\small OX: $- 2\el$}
- \redox(r1,r2)[][-1]{\small RED: $+ 2\el$}
- \vspace{7mm}
-\end{beispiel}
-\bspmidlength{dist}{15mm}
-\begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}"
-\pch{} + 2 "\OX{r2,\ox{-1,Cl}}" \mch }
- \redox(o1,o2)[draw=red,->][3.33]{\small OX: $- 2\el$}
- \redox(r1,r2)[draw=blue,->]{\small RED: $+ 2\el$}
-\end{beispiel}
-
-\bspmidlength{dist}{7mm}
- \begin{beispiel}[dist]
- \ch{ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2 -> 2 "\OX{o2,\ox{+1,Na}}"
-\pch{} + 2 "\OX{r2,\ox{-1,Cl}}" \mch }
- \redox(o1,o2)[green,-stealth]{\small OX}
- \redox(r1,r2)[purple,-stealth][-1]{\small RED}
- \vspace{7mm}
-\end{beispiel}
-\secidx*{Reazioni redox}
-
-% TODO: watch pagebreaks!
-\newpage
-\section{Stati (standard), termodinamica}\label{sec:standardstate}\secidx{Termodinamica}
-\subsection{Grandezze termodinamiche}\label{ssec:siunitx}
-I comandi seguenti impiegano \paket{siunitx}:
-\begin{beschreibung}
- \Befehl{Enthalpy}[<options>]\da{<subscript>}\ma{<value>}
- \Befehl{Entropy}[<options>]\da{<subscript>}\ma{<value>}
- \Befehl{Gibbs}[<options>]\da{<subscript>}\ma{<value>}
-\end{beschreibung}
-
-Il loro utilizzo si spiega da sé:
-\begin{beispiel}
- \Enthalpy{123} \\
- \Entropy{123} \\
- \Gibbs{123}
-\end{beispiel}
-\da{<subscript>} aggiunge un pedice descrittivo: \cmd{Enthalpy}(r){123} \Enthalpy(r){123}.
-
-Questi comandi possono essere adattati tramite diverse opzioni:
-\begin{beschreibung}
- \Option*{exponent}{<anything>}
- \Option*{delta}{<anything>/false}
- \Option*{subscript}{left/right}
- \Option*{unit}{<unit>}
-\end{beschreibung}
-
-Il valore predefinito dipende dal relativo comando:
-\begin{beispiel}
- \Enthalpy[unit=\kilo\joule]{-285} \\
- \Gibbs[delta=false]{0} \\
- \Entropy[delta=\Delta,exponent=]{56.7}
-\end{beispiel}
-
-Numero e unità vengono composti secondo le regole di \paket{siunitx} e dipendono
-dalle sue impostazioni:
-\begin{beispiel}
- \Enthalpy{-1234.56e3} \\
- \sisetup{per-mode=symbol,exponent-product=\cdot,output-decimal-marker={,},group-four-digits=true}
- \Enthalpy{-1234.56e3}
-\end{beispiel}
-
-\subsubsection{Definire nuove grandezze}
-Con il comando
-\begin{beschreibung}
- \Befehl{DeclareChemState}[<options>]{<name>}\ma{<symbol>}\ma{<unit>}
-\end{beschreibung}
-è possibile definire nuove grandezze.
-\begin{beispiel}
- \DeclareChemState{Helmholtz}{A}{\kilo\joule\per\mole}
- \DeclareChemState[subscript-left=false,exponent=]{ElPot}{E}{\volt}
- \Helmholtz{123.4} \\
- \ElPot{-1.1} \\
- \ElPot[exponent=0]($\ch{Sn}|\ch{Sn^2+}||\ch{Pb^2+}|\ch{Pb}$){0.01}
-\end{beispiel}
-
-Le opzioni di questo comando sono quasi identiche a quelle delle grandezze stesse,
-con cui possono essere variate le impostazioni predefinite delle nuove grandezze.
-\begin{beschreibung}
- \Option*{exponent}{<anything>}
- \Option*{delta}{<anything>|false}
- \Option*{subscript-left}{\default{true}|false}
- \Option*{subscript}{<anything>}
-\end{beschreibung}
-
-\subsubsection{Ridefinire grandezze}
-Con
-\begin{beschreibung}
- \Befehl{RenewChemState}[<options>]{<name>}\ma{<symbol>}\ma{<unit>}
-\end{beschreibung}
-è possibile ridefinire grandezze preesistenti:
-
-\begin{beispiel}
- \RenewChemState{Enthalpy}{h}{\joule}
- \Enthalpy(f){12.5}
-\end{beispiel}
-Il comando è analogo a \cmd{DeclareChemState}, cioè ha le stesse opzioni.
-
-Sarebbe quindi facile -- seguendo le convenzioni termodinamiche -- definire una
-grandezza molare ed una assoluta:
-\begin{beispiel}
- \DeclareChemState[exponent=]{enthalpy}{h}{\kilo\joule\per\mole}% molar
- \RenewChemState[exponent=]{Enthalpy}{H}{\kilo\joule}% absolute
- \enthalpy{-12.3} \Enthalpy{-12.3}
-\end{beispiel}
-
-\subsection{Grandezze di stato}\label{ssec:state}
-I comandi presentati nel paragrafo~\ref{ssec:siunitx} internamente impiegano il
-comando\footnote{Nota bene: \ma{<subscript>} è un argomento \emph{opzionale}.}
-\begin{beschreibung}
- \Befehl{State}[<options>]{<symbol>}\ma{<subscript>}
-\end{beschreibung}
-Questo comando può essere utilizzato per scrivere le grandezze prive di valore e
-unità.
-
-Esempi:
-\begin{beispiel}
- \State{A}, \State{G}{f}, \State[subscript-left=false]{E}{\ch{Na}}, \State[exponent=\SI{1000}{\celsius}]{H}
-\end{beispiel}
-
-Le sue opzioni sono (quasi) identiche a quelle viste in precedenza:
-\begin{beschreibung}
- \Option[state]{exponent}{<anything>}
- \Option[state]{subscript-left}{true|false}
- \Option[state]{delta}{<anything>|false}
-\end{beschreibung}
-\secidx*{Termodinamica}
-
-\section{Spettroscopia e valori sperimentali}\label{sec:spektroskopie}\secidx{Spettroscopia}
-\subsection{Il comando \code{\textbackslash\textcolor{code}{NMR}}}
-Quando delle sostanze vengono analizzate per verificare se sono quello che si è
-previsto spesso si ricorre alla spettroscopia NMR. I valori sperimentali vengono
-riportati all'incirca in questo modo:
-\begin{center}
- \NMR(400)[CDCl3] = \num{1.59}
-\end{center}
-\chemmacros mette a disposizione un comando che semplifica questa stesura (impiega
-\paket{siunitx}).
-
-\begin{beschreibung}
- \Befehl{NMR}{<num>,<elem>}\da{<num>,<unit>}\oa{<solvent>}
- \Befehl{NMR*}{<num>,<elem>}\da{<num>,<unit>}\oa{<solvent>}
-\end{beschreibung}
-
-\emph{Tutti} gli argomenti sono opzionali! Senza argomenti\footnote{Tutti gli
-argomenti possono essere combinati a piacimento. Il comando può essere impiegato
-anche in modalità matematica.} si ottiene:
-\begin{beispiel}
- \NMR \\
- \NMR*
-\end{beispiel}
-
-Il primo argomento specifica il tipo di analisi NMR eseguito:
-\begin{beispiel}
- \NMR{13,C}
-\end{beispiel}
-
-Con il secondo argomento viene riportata la frequenza utilizzata (in \si{\mega\hertz}):
-\begin{beispiel}
- \NMR(400)
-\end{beispiel}
-Anche munita della sua unità:
-\begin{beispiel}
- \NMR(4e8,\hertz)
-\end{beispiel}
-Nota bene: le impostazioni del pacchetto \paket{siunitx} hanno effetto anche su
-questo comando:
-\begin{beispiel}
- \sisetup{exponent-product=\cdot}\NMR(4e8,\hertz)
-\end{beispiel}
-
-Con il terzo argomento può essere indicato il solvente:
-\begin{beispiel}
- \NMR[CDCl3]
-\end{beispiel}
-
-\subsection{Abbreviazioni}
-Dato che all'interno di un singolo documento alcuni nuclei possono essere richiamati
-più di una volta \chemmacros offre una possibilità di definire delle abbreviazioni.
-\begin{beschreibung}
- \Befehl{DeclareChemNMR}{<csname>}\ma{<num>,<atom>}
- \Befehl{RenewChemNMR}{<csname>}\ma{<num>,<atom>}
-\end{beschreibung}
-Questo definisce un comando con gli stessi argomenti di \cmd{NMR} \emph{eccetto}
-\ma{<num>,<atom>}.
-\begin{beispiel}
- \DeclareChemNMR\HNMR{1,H}%
- \DeclareChemNMR\CNMR{13,C}%
- \CNMR*(100) \\
- \HNMR*(400)
-\end{beispiel}
-
-\subsection{Un ambiente per elencare valori sperimentali}
-\chemmacros offre un ambiente dedicato per facilitare l'elenco di valori sperimentali.
-\begin{beschreibung}\catcode`\#=11
- \umg{experimental}{Dati} Ambiente per l'elenco di dati sperimentali. All'interno
- di questo ambiente sono definiti i comandi seguenti:
- \Befehl{data}{<tipo>}\oa{<specifiche>} \cnpkgdocarrow\ Tipo dei dati, \pes IR,
- MS\ldots\ Nell'argomento opzionale possono essere inserite specifiche ulteriori
- che vengono stampate in parentesi tonde.
- \Befehl{data*}{<tipo>}\oa{<specifiche>} \cnpkgdocarrow\ Come \cmd{data}, ma
- restituisce \code{=} anziché \code{:} se vale \key{use-equal}{true}.
- \Befehl{NMR}{<num>,<elem>\oa{<coupling core>}}\da{<num>,<unit>}\oa{<solvent>}
- \cnpkgdocarrow\ questo comando prende un argomento aggiuntivo:
- \cmd{NMR}{13,C[\textasciicircum 1H]} \NMR{13,C[^1H]}
- \Befehl{J}\da{<bonds>;<nuclei>}\oa{<unit>}\ma{<list of nums>} \cnpkgdocarrow\
- Costante di accoppiamento (NMR) con il separatore \code{;} tra i valori.
- L'argomento \da{<bonds>;<nuclei>} è opzionale e permette di specificare
- ulteriormente l'accoppiamento.
- \befehl{#}{<num>} Numero di nuclei (NMR).
- \befehl{pos}{<num>} Posizione/numero del nucleo (NMR).
- \befehl{val}{<num>} Valore numerico, un alias per \lstinline+\num{<num>}+ di
- \paket*{siunitx}.
- \befehl{val}{<num1>-{}-<num2>} Un alias per \lstinline+\numrange{<num1>}{<num2>}+
- di \paket*{siunitx}.
-\end{beschreibung}
-
-\begin{beispiel}
- \begin{experimental}
- \data{TIPO1} dati.
- \data{TIPO2}[specifiche] altri dati.
- \data*{TIPO3} ulteriori dati.
- \end{experimental}
-\end{beispiel}
-
-\subsection{Personalizzazione}
-L'output dell'ambiente e dei comandi NMR può essere adattato con una serie di
-opzioni; per ragioni storiche appartengono al modulo \textcolor{module}{\code{nmr}}.
-\begin{beschreibung}
- \option[nmr]{unit}{<unit>} Default = \lstinline=\mega\hertz=
- \option[nmr]{nucleus}{\{<num>,<atom>\}} Default = \ma{1,H}
- \option[nmr]{format}{<commands>} Formato delle specifiche dei dati, ad esempio
- \lstinline=\bfseries=.
- \option[nmr]{pos-number}{side|sub} Posizione del numero vicino all'atomo.
- Default = \code{side}
- \option[nmr]{coupling-unit}{<unit>} Un'unità di \paket{siunitx}. Default =
- \lstinline=\hertz=
- \option[nmr]{parse}{\default{true}|false} Tratta il solvente come formula di
- \paket{mhchem}/\chemformula. Default = \code{true}
- \option[nmr]{delta}{<token>} I \code{<token>} vengono inseriti dopo $\delta$.
- \option[nmr]{list}{true|false} L'ambiente \env{nmr}[<options>]{} viene formattato
- come lista. Default = \code{false}
- \option[nmr]{list-setup}{<setup>} Setup della lista. Default = vedi in basso.
- \option[nmr]{use-equal}{\default{true}|false} Inserisce un segno di uguale dopo
- \cmd{NMR} e \cmd{data}. Default = \code{false}
-\end{beschreibung}
-
-Il setup di default della lista:
-\begin{beispiel}[code only]
- \topsep\z@skip \partopsep\z@skip
- \itemsep\z@ \parsep\z@ \itemindent\z@
- \leftmargin\z@
-\end{beispiel}
-
-\begin{beispiel}
- \begin{experimental}[format=\bfseries]
- \data{TIPO1} dati.
- \data{TIPO2}[specifiche] altri dati.
- \data*{TIPO3} ulteriori dati.
- \end{experimental}
-\end{beispiel}
-
-Il comando \cmd{NMR} e tutti i comandi definiti con \cmd{DeclareChemNMR} possono
-essere impiegati al posto di \cmd{data} per dati NMR.
-
-\begin{beispiel}
- \begin{experimental}[format=\bfseries,use-equal]
- \data{TIPO1} dati.
- \data{TIPO2}[specifiche] altri dati.
- \NMR ulteriori dati.
- \end{experimental}
-\end{beispiel}
-
-\subsection{Esempio di applicazione}
-Il codice seguente è riportato in diverse versioni a seconda della selezione delle
-\code{<opzioni>}. Ovviamente le opzioni possono essere impostate anche globalmente
-con \cmd{chemsetup}.
-
-\begin{beispiel}[code only]
-\sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
-\begin{experimental}[<opzioni>]
- \data*{Resa} \SI{17}{\milli\gram} aghi gialli (\SI{0.04}{\milli\mole}, \SI{13}{\percent}).
- %
- \data{P.f.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100, \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
- %
- \data*{Resa quantica} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-\end{beispiel}
-
-\subsubsection{Quasi standard}
-Output per \lstinline+<opzioni>: delta=(ppm),pos-number=sub,use-equal+:
-\bigskip
-
-\begin{experimental}[delta=(ppm),pos-number=sub,use-equal]
- \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
- \chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
- }
- %
- \data*{Resa} \SI{17}{\milli\gram} aghi gialli (\SI{0.04}{\milli\mole}, \SI{13}{\percent}).
- %
- \data{P.f.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100, \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
- %
- \data*{Resa quantica} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-
-\subsubsection{Lista formattata}
-Output per le seguenti \lstinline+<opzioni>: format=\bfseries,delta=(ppm),list=true,use-equal+:
-\bigskip
-
-\begin{experimental}[format=\bfseries,delta=(ppm),list=true,use-equal]
- \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
- \chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
- }
- %
- \data*{Resa} \SI{17}{\milli\gram} aghi gialli (\SI{0.04}{\milli\mole}, \SI{13}{\percent}).
- %
- \data{P.f.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100, \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
- %
- \data*{Resa quantica} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-
-\subsubsection{Buffo}
-Output per \code{<opzioni>}:
-\begin{lstlisting}
- format=\color{red}\itshape,
- list=true,
- delta=\textcolor{green}{\ch{M+ + H2O}},
- pos-number=side,
- coupling-unit=\mega\gram\per\square\second,
- list-setup=,
- use-equal
-\end{lstlisting}
-
-\begin{experimental}[
- format=\color{red}\itshape,
- list=true,
- delta=\textcolor{green}{\ch{M+ + H2O}},
- pos-number=side,
- coupling-unit=\mega\gram\per\square\second,
- list-setup=,use-equal]
- \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
- \chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
- }
- %
- \data*{Resa} \SI{17}{\milli\gram} aghi gialli (\SI{0.04}{\milli\mole}, \SI{13}{\percent}).
- %
- \data{P.f.} \SI{277}{\celsius} (DSC).
- %
- \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12}, \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8}, \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m, \#{4}, \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
- %
- \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$, \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$, \#{8}, \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2}, \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4}, \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4}), \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
- %
- \data{MS}[DCP, EI, \SI{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val{582} (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).
- %
- \data{MS}[\ch{MeOH + H2O + KI}, ESI, \SI{10}{\electronvolt}] \val{720} (100, \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
- %
- \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918} (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s), \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402} (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s), \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979} (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744} (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515} (w).
- %
- \data*{UV-Vis} \SI{386}{\nano\metre} ($\varepsilon = \val{65984}$), \SI{406}{\nano\metre} ($\varepsilon = \val{65378}$).
- %
- \data*{Resa quantica} $\Phi = \val{0.74+-0.1}$\,.
-\end{experimental}
-\secidx*{Spettroscopia}
-
-\section{Comandi per \textsf{mhchem}}\label{sec:mhchem}\secidx{Comandi per \textsf{mhchem}}[Comandi per mhchem]
-\paket{mhchem} non viene più caricato automaticamente da \chemmacros bensì solamente
-nel caso in cui si utilizzi nel preambolo l'opzione \key[option]{method}{mhchem};
-predefinitamente si utilizza invece \chemformula.
-
-\chemmacros mette a disposizione solo un unico comando speciale per \paket{mhchem}%
-\footnote{\chemformula ha una possibilità diversa per ottenere lo stesso risultato.}
-che permette di inserire del testo al di sotto di una formula.
-\begin{beschreibung}
- \Befehl{mhName}[<options>]{<formula>}\ma{<text>}
-\end{beschreibung}
-
-Per esempio:
-\begin{beispiel}
- \ce{4 C2H5Cl + Pb / Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
-\end{beispiel}
-
-\cmd{mhName} può essere adattato con le opzioni seguenti:
-\begin{beschreibung}
- \option[mhName]{align}{<alignment command>} L'orientamento del testo all'interno
- del box in cui viene scritto. Default = \lstinline+\centering+
- \option[mhName]{format}{<anything>} Il formato del testo.
- \option[mhName]{fontsize}{<font size command>} Il corpo del testo. Default =
- \lstinline+\tiny+
- \option[mhName]{width}{<dim>|auto} La larghezza del box all'interno di cui viene
- scritto il testo. Default = \code{auto}
-\end{beschreibung}
-\begin{beispiel}
- \ce{4 C2H5Cl + Pb / Na -> \mhName[fontsize=\footnotesize]{Pb(C2H5)4}{former antiknock additive} + NaCl}\\
- \chemsetup[mhName]{align=\raggedright,fontsize=\small,format=\bfseries\color{red},width=3cm}
- \ce{4 C2H5Cl + Pb / Na -> \mhName{Pb(C2H5)4}{former antiknock additive} + NaCl}
-\end{beispiel}
-\secidx*{Comandi per \textsf{mhchem}}[Comandi per mhchem]
-
-\section{Ambienti di reazione}\label{sec:reactions}\secidx{Ambienti di reazione}
-\subsection{Definiti da \chemmacros}
-Sono disponibili i seguenti ambienti per reazioni numerate\ldots
-\begin{beschreibung}
- \Umg{reaction}{<formula or mhchem code>}
- \Umg{reactions}{<formula or mhchem code>}
-\end{beschreibung}
-
-\ldots e le loro versioni asteriscate per reazioni non numerate.
-\begin{beschreibung}
- \Umg{reaction*}{<formula or mhchem code>}
- \Umg{reactions*}{<formula or mhchem code>}
-\end{beschreibung}
-In questo modo è possibile inserire reazioni (non) numerate in modo analogo alle
-equazioni matematiche.
-
-Per rappresentare le reazioni gli ambienti \code{reaction}/\code{reaction*} internamente
-utilizzano ambienti \code{equation}/\code{equation*}, e gli ambienti
-\code{reactions}/\code{reactions*} utilizzano gli ambienti \code{align}/\code{align*}.
-
-\begin{beispiel}
- reazione con contatore:
- \begin{reaction}
- A -> B
- \end{reaction}
-\end{beispiel}
-
-\begin{beispiel}
- reazione senza contatore:
- \begin{reaction*}
- C -> D
- \end{reaction*}
-\end{beispiel}
-
-\begin{beispiel}
- più reazioni allineate, con contatore:
- \begin{reactions}
- A &-> B + C \\
- D + E &-> F
- \end{reactions}
-\end{beispiel}
-
-\begin{beispiel}
- più reazioni allineate, senza contatore:
- \begin{reactions*}
- G &-> H + I \\
- J + K &-> L
- \end{reactions*}
-\end{beispiel}
-
-Quando si desidera cambiare il formato dell'etichetta, è possibile usare
-\begin{beschreibung}
- \Befehl{renewtagform}{<tagname>}\oa{<format>}\ma{<right delim>}\ma{<left delim>}%
- \footnote{Messo a disposizione dal pacchetto \paket*{mathtools}.}.
-\end{beschreibung}
-
-\begin{beispiel}
- \renewtagform{reaction}[R \textbf]{[}{]}
- \begin{reaction}
- H2O + CO2 <<=> H2CO3
- \end{reaction}
-\end{beispiel}
-
-Dalla versione 3.3 i riferimenti incrociati e il comando \cmd{intertext} di \AmS math
-funzionano come previsto:
-\begin{beispiel}
- \begin{reactions}
- A + 2 B &-> 3 C + D \label{rxn:test}
- \intertext{Un po' di testo tra due reazioni allineate.}
- 3 E + F &<=> G + 1/2 H
- \end{reactions}
- Vedi reazione~\ref{rxn:test}.
-\end{beispiel}
-
-\achtung{Nell'impostazione predefinita, cioè con \key{method}{chemformula}, è
-sconsigliato utilizzare \cmd{mch} e simili all'interno degli ambienti
-\code{reaction}: nella maggior parte dei casi scombinano l'allineamento corretto.
-Come impostazione predefinita le cariche riconoscono automaticamente l'impostazione
-dell'opzione \key{circled} all'interno degli ambienti, in modo che i comandi non
-siano nemmeno necessari.}
-
-\subsection{Reazioni proprie}
-Attraverso il comando
-\begin{beschreibung}
- \Befehl{DeclareChemReaction}[<options>]{<name>}\ma{<math name>}
-\end{beschreibung}
-è possibile definire nuovi ambienti di reazione: \code{<name>} sarà il nome del
-nuovo ambiente; \code{<math name>} è il tipo di ambiente matematico impiegato.
-
-Il comando ha due opzioni:
-\begin{beschreibung}
- \Option*{star}{\default{true}|false}
- \Option*{arg}{\default{true}|false}
-\end{beschreibung}
-La prima opzione è \key*{star}, che definisce anche la variante asteriscata,
-ammesso che esista l'equivalente ambiente matematico; in caso contrario restituirà
-un errore.
-
-La seconda opzione è \key*{arg}, che viene impiegata per definire un ambiente con
-un argomento obbligatorio. Anche in questo caso l'opzione è valida solamente se
-anche l'ambiente matematico corrispondente ha un argomento obbligatorio.
-
-Gli ambienti predefiniti sono stati definiti tramite
-\begin{beschreibung}
- \Befehl{DeclareChemReaction}[star]{reaction}\ma{equation} und
- \Befehl{DeclareChemReaction}[star]{reactions}\ma{align}.
-\end{beschreibung}
-
-Ammettiamo che l'utente voglia definire un ambiente con il comportamento dell'ambiente
-\code{alignat} per reazioni di \chemformula/\paket{mhchem}. È possibile fare il
-seguente:
-\begin{beispiel}[code only]
- \DeclareChemReaction[star,arg]{reactionsat}{alignat}
-\end{beispiel}
-
-In questo modo si è definito l'ambiente \code{reactionsat}.
-\begin{beispiel}
- \DeclareChemReaction[star,arg]{reactionsat}{alignat}
- \begin{reactionsat}{3}
- A &-> B &&-> C &&-> D \\
- aaaaa &-> bbbbb &&-> ccccc &&-> ddddd
- \end{reactionsat}
- \begin{reactionsat*}{2}
- A &-> B & C &-> D \\
- aaaaa &-> bbbbb &\quad{} ccccc &-> ddddd
- \end{reactionsat*}
-\end{beispiel}
-
-\subsection{Lista delle reazioni}
-\chemmacros mette a disposizione un comando per elencare le reazioni inserite negli
-ambienti di reazione.
-\begin{beschreibung}
- \Befehl{listofreactions}
-\end{beschreibung}
-\begin{beispiel}[below]
- \listofreactions
-\end{beispiel}
-
-L'output può essere adattato con le opzioni seguenti:
-\begin{beschreibung}
- \option[reaction]{list-name}{<name of the list>} Imposta il titolo della lista.
- Default = \code{List of reactions}
- \option[reaction]{list-entry}{<prefix to each entry>} Prefisso di ogni voce.
- Default = \code{Reaction}
-\end{beschreibung}
-Entrambi i valori predefiniti reagiscono all'opzione di lingua \key[option]{italian},
-variando rispettivamente a \enquote{Elenco delle reazioni} e \enquote{Reazione}.
-Un'alternativa all'impostazione dell'opzione \key{list-name} è di ridefinire
-\cmd{reactionlistname}.
-
-Nell'elenco vengono elencate esclusivamente tutte le reazioni numerate. Tutte le
-reazioni non asteriscate hanno un argomento opzionale, attraverso il quale è
-possibile aggiungere una descrizione della reazione nell'elenco.
-\begin{beispiel}
- \begin{reaction}[Autoprotolisi]
- 2 H2O <<=> H3O+ + OH-
- \end{reaction}
-\end{beispiel}
-Questo non funzionerà quando viene impiegato l'ambiente \code{reactions}. In
-questo caso è possibile ricorrere a
-\begin{beschreibung}
- \Befehl{AddRxnDesc}{<description>}
-\end{beschreibung}
-
-\begin{beispiel}
- \begin{reactions}
- Cl "\Lewis{0.,\vphantom{Cl}}" + CH4 &-> HCl + "\Lewis{4.,\vphantom{CH}}" CH3 \AddRxnDesc{first~step~of~chain} \\
- "\Lewis{4.,\vphantom{CH}}" CH3 + Cl2 &-> CH3Cl + Cl "\Lewis{0.,\vphantom{Cl}}" \AddRxnDesc{second~step~of~chain}
- \end{reactions}
-\end{beispiel}
-Nota bene: non è necessario impiegare i comandi \enquote{phantom}, se il formato
-degli atomi non è stato variato (vedi il paragrafo~\ref{sec:format} a pagina~\pageref{sec:format}).
-\secidx*{Ambienti di reazione}
-
-\section{Fasi}\label{sec:phasen}\secidx{Fasi}
-\subsection{Principi}\secidx[Principi]{Fasi}
-Questi comandi sono pensati per indicare la fase di una sostanza.
-\begin{beschreibung}
- \befehl{sld} \sld
- \befehl{lqd} \lqd
- \befehl{gas} \gas
- \befehl{aq} \aq
-\end{beschreibung}
-
-\achtung{Il comportamento predefinito dei comandi di fase è variato per seguire
-le raccomandazioni \ac{iupac}. Sia \cmd{sld} che \cmd{lqd} non hanno più nessun
-argomento opzionale.}
-
-\begin{beispiel}
- \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\\
- per completezza: NaCl\aq.
-\end{beispiel}
-
-% Con l'opzione \key{language}{german} (vedi il paragrafo~\ref{sec:optionen}) si ottengono le versioni in tedesco. % IST SCHON ÜBERSETZT, WÜRDE ICH ABER VORERST WEGLASSEN. -Jonas
-
-La raccomandazione \ac{iupac}\footnote{Ringrazio Paul King del suggerimento.} per
-indicare uno stato di aggregazione è di porlo tra parentesi dopo la formula~\cite{iupac:greenbook};
-è tuttavia molto diffusa anche l'indicazione in pedice.
-
-\begin{zitat}[{\ac{iupac} Green Book {\cite[][p.\,54]{iupac:greenbook}}}]
- The \textelp{} symbols are used to represent the states of aggregation of chemica
- species. The letters are appended to the formula in parentheses and should be
- printed in Roman (upright) type without a full stop (period).
-\end{zitat}
-
-Vi sono due opzioni per adattare l'output:
-\begin{beschreibung}
- \option[phases]{pos}{side|sub} Cambia la posizione dell'indicatore di fase.
- Default = \code{side}
- \option[phases]{space}{<dim>} Varia l'interspazio tra formula e indicatore di fase
- per \key{pos}{side}. Una grandezza di \TeX. Default = \code{.1333em}
-\end{beschreibung}
-\begin{beispiel}
- \chemsetup[phases]{pos=sub}
- \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\\
- per completezza: NaCl\aq.
-\end{beispiel}
-
-\subsection{Definire fasi proprie}\secidx[proprie]{Fasi}
-In base al argomento del testo può essere necessario indicare ulteriori stati di
-aggregazione; questi possono essere definiti convenientemente attraverso:
-\begin{beschreibung}
- \Befehl{DeclareChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
- \Befehl{RenewChemPhase}{<cmd>}\oa{<german>}\ma{<english>}
- \befehl{phase}{<phase>} Quando è necessario impiegare la fase solo poche volte.
-\end{beschreibung}
-\cmd{DeclareChemPhase} definisce la fase solamente se \code{<cmd>} non esiste ancora;
-altrimenti \chemmacros dà un avvertimento o un errore, dipendentemente dall'opzione
-\key{strict}. \cmd{RenewChemParticle} definisce una fase \emph{solamente} se \code{<cmd>}
-esiste già, e dà un avvertimento/un errore in caso opposto.
-\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*{Phasen}
-
-\section{Proiezioni di Newman}\label{sec:newman}\secidx{Proiezioni di Newman}
-\chemmacros mette a disposizione il comando
-\begin{beschreibung}
- \Befehl{newman}[<options>]\da{<angle>}\ma{<1>,<2>,<3>,<4>,<5>,<6>}
-\end{beschreibung}
-che permette di rappresentare le proiezioni di Newman (impiega \TikZ). L'argomento
-\da{<angle>} gira gli atomi posteriori in senso antiorario rispetto agli atomi
-anteriori.
-\begin{beispiel}
- \newman{} \newman(170){}
- \newman{1,2,3,4,5,6} \newman{1,2,3} \newman{,,,4,5,6}
-\end{beispiel}
-
-Sono disponibili alcune opzioni per adattare il comando:
-\begin{beschreibung}
- \option[newman]{angle}{<angle>} Angolo predefinito (in gradi). Default = \code{0}
- \option[newman]{scale}{<factor>} Scala l'intera proiezione. Default = \code{1}
- \option[newman]{ring}{<tikz>} Adatta l'aspetto dell'anello con chiavi di \TikZ.
- \option[newman]{atoms}{<tikz>} Adatta l'aspetto dei nodi contenenti gli atomi con
- chiavi di \TikZ.
- \option[newman]{back-atoms}{<tikz>} Adatta solo gli atomi posteriori.
-\end{beschreibung}
-
-\begin{beispiel}
- \chemsetup[newman]{angle=45} \newman{}
- \newman[scale=.75,ring={draw=blue,fill=blue!20}]{}
-\end{beispiel}
-\begin{beispiel}
- \chemsetup[newman]{atoms={draw=red,fill=red!20,inner sep=2pt,rounded corners}}
- \newman{1,2,3,4,5,6}
-\end{beispiel}
-\begin{beispiel}
- \chemsetup[newman]{
- atoms = {draw=red,fill=red!20,inner sep=2pt,rounded corners},
- back-atoms = {draw=blue,fill=blue!20,inner sep=2pt,rounded corners}
- }
- \newman{1,2,3,4,5,6} \newman(170){1,2,3,4,5,6}
-\end{beispiel}
-\secidx*{Proiezioni di Newman}
-
-\section{Orbitali s, p e ibridi}\label{sec:orbitale}\secidx{Orbitali}
-\chemmacros mette a disposizione un comando per rappresentare alcuni orbitali:
-\begin{beschreibung}
- \Befehl{orbital}[<options>]{<type}
-\end{beschreibung}
-
-Sono disponibili i seguenti tipi orbitalici per \ma{<type>}:
-\begin{description}
- \item \code{s}
- \item \code{p}
- \item \code{sp}
- \item \code{sp2}
- \item \code{sp3}
-\end{description}
-
-\begin{beispiel}
- \orbital{s} \orbital{p} \orbital{sp} \orbital{sp2} \orbital{sp3}
-\end{beispiel}
-
-A seconda del tipo sono disponibili diverse opzioni per modificare l'orbitale:
-\begin{beschreibung}
- \option[orbital]{phase}{\default{+}|-} Varia la fase dell'orbitale (tutti i tipi).
- \option[orbital]{scale}{<factor>} Varia la dimensione dell'orbitale (tutti i tipi).
- \option[orbital]{color}{<color>} Varia il colore dell'orbitale (tutti i tipi).
- \option[orbital]{angle}{<angle>} Ruota gli orbitali con un contributo p in senso
- antiorario (tutti i tipi tranne \code{s}).
- \option[orbital]{half}{\default{true}|false} Raffigura solo metà orbitale (solo per
- \code{<type> = p}).
-\end{beschreibung}
-
-\begin{beispiel}
- \orbital{s} \orbital[phase=-]{s}
- \orbital{p} \orbital[phase=-]{p}
- \orbital{sp3} \orbital[phase=-]{sp3}
-
- \orbital[angle=0]{p} \orbital[color=red!50]{p} \orbital[angle=135,scale=1.5]{p} \orbital[half]{p}
-\end{beispiel}
-
-Esistono due opzioni ulteriori attraverso le quali si può influenzare il comportamento
-di \TikZ:
-\begin{beschreibung}
- \option[orbital]{overlay}{\default{true}|false} L'orbitale \enquote{non ha bisogno
- di spazio}; viene disegnato con la chiave di \TikZ \code{overlay}.
- \option[orbital]{opacity}{<num>} L'orbitale diviene trasparente; \code{<value>}
- accetta valori compresi tra \code{1} (opaco) e \code{0} (trasparente).
-\end{beschreibung}
-
-\begin{beispiel}[dist]
- \hspace{1cm}
- \chemsetup[orbital]{
- overlay,
- p/color = black!70
- }
- \setbondoffset{0pt}
- \chemfig{?\orbital{p}-[,1.3]{\orbital[phase=-]{p}}-[:30,1.1]\orbital{p}-[:150,.9]{\orbital[phase=-]{p}}-[4,1.3]\orbital{p}-[:-150,1.1]{\orbital[phase=-]{p}}?}
- \vspace{7mm}
-\end{beispiel}
-
-\bspmidlength{dist}{10mm}
-\begin{beispiel}[dist]
- \hspace{2cm}
- \setbondoffset{0pt}
- \chemsetup[orbital]{
- overlay ,
- opacity = .75 ,
- p/scale = 1.6 ,
- s/color = blue!50 ,
- s/scale = 1.6
- }
- \chemfig{\orbital{s}-[:-20]{\orbital[scale=2]{p}}{\orbital[half,angle=0]{p}}{\orbital[angle=170,half]{p}}{\orbital[angle=-150,half]{p}}(-[:-150]\orbital{s})-\orbital{s}}
- \vspace{1cm}
-\end{beispiel}
-\bspmidlength{dist}{7mm}
-\secidx*{Orbitali}\secidx*{CHEMMACROS}
-
-\newpage
-\part{\texorpdfstring{\Chemformula}{chemformula}}\label{part:chemformula}\secidx{CHEMFORMULA}
-\chemsetup[chemformula]{
- font-spec =
- {[Numbers={Proportional,Lining}]Linux Libertine O}
-}
-\section{Impostazioni}
-Tutte le opzioni di \chemformula appartengono al modulo \textcolor{module}{\code{chemformula}}. Quindi possono essere impostate attraverso
-\begin{beispiel}[code only]
- \chemsetup[chemformula]{<options>} oppure
- \chemsetup{chemformula/<option1>,chemformula/<option2>}
-\end{beispiel}
-Possono inoltre essere passate direttamente come opzioni al comando \cmd{ch}.
-
-\section{Principio di base}
-\chemformula ha un comando di base.
-\begin{beschreibung}
- \Befehl{ch}[<options>]{<input>}
-\end{beschreibung}
-
-Il suo utilizzo sarà intuitivo per l'utente pratico di \paket{mhchem}:
-\begin{beispiel}
- \ch{H2O} \\
- \ch{Sb2O3} \\
- \ch{H+} \\
- \ch{CrO4^2-} \\
- \ch{AgCl2-} \\
- \ch{[AgCl2]-} \\
- \ch{Y^{99}+} \\
- \ch{Y^{99+}} \\
- \ch{H2_{(aq)}} \\
- \ch{NO3-} \\
- \ch{(NH4)2S} \\
- \ch{^{227}_{90}Th+} \\
- $V_{\ch{H2O}}$ \\
- \ch{Ce^{IV}} \\
- \ch{KCr(SO4)2 * 12 H2O}
-\end{beispiel}
-
-Tuttavia esistono delle differenze. La più importante è: \chemformula distingue
-diversi tipi di input. Questi tipi diversi devono essere \emph{necessariamente}
-separati da spazi:
-\begin{beschreibung}
- \Befehl{ch}{type1 type2 type3 type4}
-\end{beschreibung}
-Uno spazio nell'input non corrisponde \emph{mai} ad uno spazio nell'output. Il
-ruolo dello spazio vale strettamente, e quando non viene seguito può produrre output
-erratico. A titolo di esempio, \cmd{ch}{2H2O} viene considerata come \emph{una}
-particella, in questo caso una formula bruta.
-\begin{beispiel}
- \ch{2H2O} \\
- \ch{2 H2O}
-\end{beispiel}
-Ciò significa anche che una particella non può contenere spazi perché verrebbe
-automaticamente divisa in due parti. Quando necessario, uno spazio può essere
-introdotto con \lstinline+~+. Dato che la maggior parte delle macro ignora gli
-spazi seguenti, un input del tipo \cmd{ch}{\textbackslash command ABC} viene
-trattato come un'unità. Nel caso si desideri separare un input di questo tipo
-è necessario introdurre un gruppo vuoto: \cmd{ch}{\textbackslash command\{\} ABC}.
-I diversi tipi di input verranno trattati separatamente in seguito.
-
-Un'ulteriore differenza importante è che \chemformula cerca di evitare il modo
-matematico quanto più possibile:
-\begin{beispiel}
- \ch{A + B ->[a] C} \\
- \ce{A + B ->[a] C}
-\end{beispiel}
-
-Il comando \cmd{ch} ha alcune opzioni per modificare l'output. Possono essere
-impostate localmente come argomenti opzionali oppure globalmente con il comando
-\begin{beschreibung}
- \Befehl{chemsetup}[chemformula]{<options>}
-\end{beschreibung}
-Tutte le opzioni di \chemformula appartengono al modulo \textcolor{module}{\code{chemformula}}.
-
-\section{Fattori stechiometrici}\secidx{Fattori stechiometrici}
-Un fattore stechiometrico deve contenere solo cifre e simboli tra i seguenti: \lstinline+.,_/()+
-\begin{beispiel}
- \ch{2} \\
- \ch{12}
-
- % decimals:
- \ch{.5} \\
- \ch{5,75}
-
- % fractions:
- \ch{3/2} \\
- \ch{1_1/2}
-
- % ``iupac'':
- \ch{(1/2)}
-\end{beispiel}
-
-Come nell'esempio per le frazioni decimali viene introdotto uno zero iniziale
-quando manca nell'input.
-
-Nell'input è necessario badare alla sintassi giusta, anche se ritengo che sia
-piuttosto intuitiva.
-\begin{beispiel}[code only]
- questo non funzionerà, ma darà invece un errore: \ch{1/1_1}
-\end{beispiel}
-
-Quando i fattori stechiometrici sono scritti tra parentesi le frazioni non vengono
-convertite e gli eventuali zeri iniziali non vengono aggiunti.
-Il testo inserito tra parentesi viene reso allo stesso modo dell'input.
-\begin{beispiel}
- \ch{(1/2) H2O} \ch{1/2 H2O} \ch{0.5 H2O}
-\end{beispiel}
-Numerosi esempi come il seguente per l'utilizzo delle parentesi per racchiudere
-fattori stechiometrici possono essere trovati per esempio nello „\ac{iupac} Green
-Book“~\cite{iupac:greenbook}:
-\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*}
-
-L'output può essere adattato utilizzando le opzioni seguenti:
-\begin{beschreibung}
- \option{decimal-marker}{<marker>} Il simbolo usato come separatore decimale.
- Default = \code{.}
- \option{frac-style}{math|xfrac|nicefrac} Determina in che modo vengono rappresentate
- le frazioni. Default = \code{math}
- \option{stoich-space}{<skip>} La dimensione dello spazio dopo un fattore stechiometrico.
- Una lunghezza elastica. Default = \code{.1667em plus .0333em minus .0117em}
- \option{stoich-paren-parse}{\default{true}|false} Quando l'opzione è impostata
- a \code{true} anche i fattori stechiometrici compresi tra parentesi vengono
- elaborati, cioè le frazioni convertite e gli zeri iniziali inseriti.
- Default = \code{false}
-\end{beschreibung}
-\begin{beispiel}
- \ch[decimal-marker={,}]{3.5} \ch[decimal-marker={$\cdot$}]{3,5}
-\end{beispiel}
-
-L'opzione \key{frac-style}{xfrac} utilizza il comando \lstinline+\sfrac+ del
-pacchetto \paket{xfrac}; l'output può dipendere fortemente dal carattere impiegato.
-\secidx[xfrac]{Fattori stechiometrici}
-\begin{beispiel}
- \ch[frac-style=xfrac]{3/2} \ch[frac-style=xfrac]{1_1/2}
-\end{beispiel}
-
-\chemformula definisce l'istanza \lstinline=formula-text-frac=, che può essere
-adattata alle proprie necessità. Le impostazioni di default sono elencate di seguito:
-\begin{beispiel}[code only]
- \DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- slash-left-kern = -.15em ,
- slash-right-kern = -.15em
- }
-\end{beispiel}
-Questo documento impiega il Font Linux Libertine~O e la definizione seguente:
-\begin{beispiel}[code only]
- \DeclareInstance{xfrac}{chemformula-text-frac}{text}
- {
- scale-factor = 1 ,
- denominator-bot-sep = -.2ex ,
- denominator-format = \scriptsize #1 ,
- numerator-top-sep = -.2ex ,
- numerator-format = \scriptsize #1 ,
- slash-right-kern = .05em ,
- slash-left-kern = .05em
- }
-\end{beispiel}
-
-L'opzione \key{frac-style}{nicefrac} utilizza il comando \lstinline+\nicefrac+ del
-pacchetto \paket{nicefrac}.\secidx[nicefrac]{Fattori stechiometrici}
-\begin{beispiel}
- \ch[frac-style=nicefrac]{3/2} \ch[frac-style=nicefrac]{1_1/2}
-\end{beispiel}
-
-L'opzione \key{stoich-space} permette di adattare la larghezza dello spazio tra
-fattore stechiometrico e formula bruta.\secidx[space]{Fattori stechiometrici}
-\begin{beispiel}
- \ch{2 H2O} \\
- \ch[stoich-space=.3em]{2 H2O}
-\end{beispiel}
-\secidx*{Fattori stechiometrici}
-
-\section{Formule brute}\label{ssec:compounds}\secidx{Formule brute}
-\chemformula considera le formule brute come il tipo \enquote{diverso da tutti gli
-altri}. Questo diverrà più chiaro in seguito quando saranno elencati gli altri tipi.
-\begin{beispiel}
- \ch{H2SO4} \\
- \ch{[Cu(NH3)4]^2+}
-\end{beispiel}
-
-\subsection{Addotti}\secidx[Addotti]{Formule brute}
-\chemformula riconosce due identificatori che creano addotti.
-\begin{beschreibung}
- \befehl{ch}{A.B} \ch{A.B}
- \befehl{ch}{A*B} \ch{A*B}
-\end{beschreibung}
-\begin{beispiel}
- \ch{CaSO4.H2O} \\
- \ch{CaSO4*H2O}
-\end{beispiel}
-Dato che le cifre all'interno di una formula bruta vengono considerate sempre
-come pedici (vedi il paragrafo~\ref{ssec:subscripts}), talvolta è necessario
-lasciare uno spazio in modo che il numero venga riconosciuto come fattore
-stechiometrico:
-\begin{beispiel}
- \ch{Na3PO4*12H2O} \\
- \ch{Na3PO4* 12 H2O} \\
- \ch{Na3PO4 * 12 H2O}
-\end{beispiel}
-
-\subsection{Pedici}\label{ssec:subscripts}\secidx[Pedici]{Formle brute}
-\emph{Tutte} le cifre in una sostanza vengono considerate come pedici.
-\begin{beispiel}
- \ch{H2SO4}
-\end{beispiel}
-Quando si desidera utilizzare un carattere come pedice, va utilizzata la sintassi
-matematica:
-\begin{beispiel}
- \ch{A_nB_m}
-\end{beispiel}
-
-Il pedice riconosce i gruppi, all'interno dei quali è anche possibile usare il modo
-matematico.
-\begin{beispiel}
- \ch{A_{$n$}B_{$m$}} \\
- \ch{NaCl_{(aq)}}
-\end{beispiel}
-
-\subsection{Comandi}\secidx[Comandi]{Formule brute}
-All'interno di una formula bruta sono permessi i comandi:
-\begin{beispiel}
- \ch{\textbf{A2}B3} \ch{A2\color{red}B3}
-\end{beispiel}
-Quando però un comando richiede come argomento un numero, ad esempio comandi
-regolanti la spaziatura oppure il comando \lstinline+\ox+, l'utilizzo diretto
-fallirà. Questo deriva dal fatto che le cifre verranno riconosciute come pedice
-\emph{prima} dell'espansione del comando.
-\begin{beispiel}[code only]
- \ch{A\hspace{2mm}B} darà un errore, dato che \hspace vedrà qualcosa del genere: \hspace{$_2$mm}.
-\end{beispiel}
-Vedi il paragrafo~\ref{ssec:text} per una via d'uscita da questo problema.
-
-\subsection{Cariche ed altri apici}\secidx[Cariche]{Formule brute}\secidx[Apici]{Formule brute}
-\paragraph{Principi}
-Quando una formula bruta \emph{termina} con un segno più o meno, questo verrà
-interpretato come un simbolo di carica e messo ad apice. In altri punti un più
-rappresenta un legame triplo ed un trattino un legame singolo, vedi il
-paragrafo~\ref{ssec:bonds}.
-\begin{beispiel}
- \ch{A+B} \ch{AB+} \\
- \ch{A-B} \ch{AB-}
-\end{beispiel}
-
-Per gruppi di carica più lunghi oppure altri apici è possibile utilizzare la sintassi
-matematica, che riconosce i gruppi e permette il modo matematico al loro interno.
-Entro questi gruppi né il simbolo \code{+} né \code{-} vengono interpretati come
-legami. Quando ad apice si trova un punto \code{.} non indica un addotto bensì un
-radicale. Un asterisco \code{*} indica uno stato eccitato.
-\begin{beispiel}
- \ch{A^{x-}} \\
- \ch{A^x-} \\
- \ch{A^{x}-} \\
- \ch{A^{$x-$}} \\
- \ch{RNO2^{-.}} \\
- \ch{^31H} \\
- \ch{^{14}6C} \\
- \ch{^{58}_{26}Fe} \\
- \ch{NO^*}
-\end{beispiel}
-
-Ioni e composti ionici con più di una carica vengono inseriti in modo analogo:
-\begin{beispiel}
- \ch{SO4^2-} \ch{Ca^2+ SO4^2-}
-\end{beispiel}
-
-\paragraph{Comandi ionici}\secidx[Apici!Comandi di carica]{Formule brute}
-All'interno di \cmd{ch} non sono necessari comandi del tipo di \cmd{mch}; difatti
-\emph{è opportuno evitarli}, dato che possono scombinare l'orientamento degli apici
-e dei pedici. L'opzione \code{circled} di \chemmacros viene rispettata da \cmd{ch}.
-\begin{beispiel}
- \chemsetup[option]{circled=all}
- \ch{H+ + OH- <=> H2O}
-\end{beispiel}
-
-\paragraph{Comportamento}\secidx[Apici!Comportamento]{Formule brute}
-Nel caso apice e pedice siano direttamente consecutivi in una formula bruta gli
-apici si comportano diversamente in base alla loro posizione.
-\begin{beispiel}
- \ch{^33B} \ch{{}^33B} \ch{3^3B} \ch{B^3} \ch{B3^3} \\
- \ch{^{23}_{123}B} \ch{{}^{23}_{123}B} \ch{_{123}^{23}B} \ch{B^{23}} \ch{B_{123}^{23}} \\
- \ch{^{123}_{23}B} \ch{{}^{123}_{23}B} \ch{_{23}^{123}B} \ch{B^{123}} \ch{B23^{123}}
-\end{beispiel}
-\begin{itemize}
- \item Quando una formula \emph{inizia} con un apice, gli apici e i pedici vengono
- giustificati a \emph{destra}, altrimenti a \emph{sinistra}.
- \item Quando un apice \emph{segue} un pedice, questo verrà ulteriormente spostato
- di una lunghezza che viene determinata dall'opzione \key{charge-hshift}{<dim>}
- (vedi anche a pagina~\pageref{desc:charge-hshift}s).
-\end{itemize}
-
-Il secondo punto segue l'indicazione \ac{iupac}:
-\begin{zitat}[{\ac{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=full]{SO4^2-},
- \ch{(SO4)^2-} The staggered arrangement is now recommended.
-\end{zitat}
-
-\subsection{Legami}\label{ssec:bonds}\secidx[Legami]{Formule brute}
-\subsubsection{Legami nativi}
-Vi sono tre tipi di quelli chiamati d'ora in poi \enquote{legami nativi}.
-\begin{beispiel}
- singolo: \ch{CH3-CH3} \\
- doppio: \ch{CH2=CH2} \\
- triplo: \ch{CH+CH}
-\end{beispiel}
-
-\subsubsection{Legami flessibili}
-\paragraph{Predefiniti}
-Oltre i tre legami nativi ve ne sono alcuni altri che possono essere richiamati
-tramite
-\begin{beschreibung}
- \Befehl{bond}{<bond name>}
-\end{beschreibung}
-I tipi predefiniti sono mostrati nella tabella~\ref{tab:bond_types}.
-
-\begin{table}
- \centering
- \caption{Legami disponibili con \protect\cmd{bond}.}
- \label{tab:bond_types}
- \begin{tabular}{lcl}
- \toprule
- \bfseries Nome & \bfseries Aspetto & \bfseries Alias \\
- \midrule
- \code{single} & \bond{single} & \code{normal}, \code{sb} \\
- \code{double} & \bond{double} & \code{db} \\
- \code{triple} & \bond{triple} & \code{tp} \\
- \code{dotted} & \bond{dotted} & \code{semisingle} \\
- \code{deloc} & \bond{deloc} & \code{semidouble} \\
- \code{tdeloc} & \bond{tdeloc} & \code{semitriple} \\
- \code{co>} & \bond{co>} & \code{coordright} \\
- \code{<co} & \bond{<co} & \code{coordleft} \\
- \bottomrule
- \end{tabular}
-\end{table}
-
-\begin{beispiel}
- \ch{C\bond{sb}C\bond{db}C\bond{tp}C\bond{deloc}C\bond{tdeloc}C\bond{co>}C\bond{<co}C}
-\end{beispiel}
-
-\paragraph{Legami personalizzati}
-\chemformula offre dei comandi per definire dei tipi di legame personali:
-\begin{beschreibung}
- \Befehl{DeclareChemBond}{<name>}\ma{<code>}
- \Befehl{RenewChemBond}{<name>}\ma{<code>}
- \Befehl{DeclareChemBondAlias}{<new name>}\ma{<old name>}
- \Befehl{ShowChemBond}{<name>}
-\end{beschreibung}
-Il loro uso è facilmente descritto da un esempio. Vediamo come sono definiti il
-legame \code{single} ed il legame \code{co>}:
-\begin{beispiel}[code only]
- \DeclareChemBond{single}
- { \draw[chembond] (chemformula-bond-start) -- (chemformula-bond-end) ; }
- \DeclareChemBond{coordright}
- { \draw[chembond,butt cap->] (chemformula-bond-start) -- (chemformula-bond-end) ; }
- \DeclareChemBondAlias{co>}{coordright}
-\end{beispiel}
-Due punti sono importanti: i nomi delle coordinate di partenza e di arrivo,
-\code{chemformula-bond-start} e \code{chemformula-bond-end}, e lo stile \TikZ
-dei legami \code{chembond}.
-
-Supponiamo di voler definire un particolare tipo di legame tratteggiato, ad
-esempio nel modo seguente:
-\begin{beispiel}
- \usetikzlibrary{decorations.pathreplacing}
- \makeatletter
- \DeclareChemBond{dashed}
- {
- \draw[
- chembond,
- decorate,
- decoration={ticks,segment length=\chemformula@bondlength/10,amplitude=1.5pt}]
- (chemformula-bond-start) -- (chemformula-bond-end) ;
- }
- \makeatother
- \chemsetup[chemformula]{bond-length=2ex}
- \ch{C\bond{dashed}C}
-\end{beispiel}
-
-L'ultimo esempio mostra un'ulteriore macro: \makeatletter\cmd{chemformula@bondlength}\makeatother.
-Esiste solamente per accedere direttamente alla lunghezza di legame impostata
-direttamente con \key{bond-length}.% (vedi anche a pagina~\pageref{key:bond-length}).
-
-\subsection{Personalizzazione}\secidx[Personalizzazione]{Formule brute}\label{ssec:compounds:customization}
-Le seguenti opzioni permettono di adattare l'output:
-\begin{beschreibung}
- \option{subscript-vshift}{<dim>} Ulteriore spostamento verticale dei pedici.
- Default = \code{0pt}
- \option{subscript-style}{text|math} Stile usato per i pedici. Default = \code{text}
- \option{charge-hshift}{<dim>} Spostamento degli apici seguenti un pedice. Default
- = \code{.25em}\label{desc:charge-hshift}
- \option{charge-style}{text|math} Stile usato per gli apici. Default = \code{text}
- \option{adduct-space}{<dim>} Spazio vuoto ai lati del punto di addotto. Default
- = \code{.1333em}
- \option{bond-length}{<dim>} Lunghezza dei legami. Default = \code{.5833em}.
- \option{bond-offset}{<dim>} Distanza tra atomo e legame. Default = \code{.07em}
- \option{bond-style}{<tikz>} Opzioni di \TikZ\ per i legami. Inizialmente vuoto.
- \option{radical-style}{<tikz>} Opzioni di \TikZ\ per il punto radicalico.
- Inizialmente vuoto.
- \option{radical-radius}{<dim>} Il raggio del punto radicalico. Default = \code{.2ex}
- \option{radical-hshift}{<dim>} Spazio orizzontale precedente il punto
- radicalico. Default = \code{.15em}
- \option{radical-vshift}{<dim>} Posizione verticale del punto radicalico
- riferita all'attuale linea di base. Default = \code{.5ex}
- \option{radical-space}{<dim>} Spazio orizzontale seguente il punto radicalico.
- Default = \code{.15em}
-\end{beschreibung}
-
-Forse l'utente si sarà accorto che per alcuni ioni le cariche sono spostate a
-destra:\secidx[Cariche!Spostamento]{Formule brute}
-\begin{beispiel}
- \ch{SO4^2-} \ch{NH4+} \ch{Na+}
-\end{beispiel}
-Queste vengono spostate quando \emph{seguono} un pedice, seguendo la
-raccomandazione \ac{iupac}~\cite[][p.\,51]{iupac:greenbook}. La dimensione dello
-spostamento può essere impostata con l'opzione \key{charge-hshift}.
-\begin{beispiel}
- \ch{SO4^2-} \ch{NH4+} \ch{Na+} \\
- \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}
-
-Nonostante l'indicazione \ac{iupac}, \chemformula nell'impostazione predefinita
-non genera apici completamente spostati, che a mio parere in alcuni casi sono di
-difficile lettura ed in altri casi di aspetto sgradevole. Trattandosi di una
-percezione soggettiva, \chemformula offre sia la possibilità di impostare un
-valore assoluto per lo spostamento che di spostare completamente l'apice.
-Nell'ultimo caso va impiegato \key{charge-hshift}{full}.
-\begin{beispiel}
- \ch[charge-hshift=0pt]{C5H11+} \ch[charge-hshift=0pt]{SO4^2-} \\
- \ch{C5H11+} \ch{SO4^2-} \\
- \ch[charge-hshift=1ex]{C5H11+} \ch[charge-hshift=1ex]{SO4^2-} \\
- \ch[charge-hshift=full]{C5H11+} \ch[charge-hshift=full]{SO4^2-}
-\end{beispiel}
-
-Se non si desidera rendere le cariche in modo testuale è possibile passare al
-modo matematico:
-\begin{beispiel}
- \ch{M^x+} \ch{SO4^2-} \\
- \chemsetup[chemformula]{charge-style = math}
- \ch{M^x+} \ch{SO4^2-}
-\end{beispiel}
-
-L'opzione \key{subscript-vshift} può essere impiegata per adattare lo spostamento
-verticale dei pedici.\secidx[Pedici!Spostamento]{Formule brute}
-\begin{beispiel}
- \ch{H2SO4} \ch{Na3PO4} \\
- \chemsetup[chemformula]{subscript-vshift=.5ex}
- \ch{H2SO4} \ch{Na3PO4} \\
- \chemsetup[chemformula]{subscript-vshift=-.2ex}
- \ch{H2SO4} \ch{Na3PO4}
-\end{beispiel}
-
-Si può inolte selezionare in quale modo verranno composti i pedici:
-\begin{beispiel}
- \ch{A_nB_m} \ch{H2SO4} \\
- \chemsetup[chemformula]{subscript-style = math}
- \ch{A_nB_m} \ch{H2SO4}
-\end{beispiel}
-
-Con l'opzione \key{adduct-space} è possibile variare lo spazio a sinistra e destra
-del segno di addotto.
-\begin{beispiel}
- \ch{Na3PO3*H2O} \\
- \chemsetup[chemformula]{adduct-space=.2em}
- \ch{Na3PO3*H2O}
-\end{beispiel}
-
-La lunghezza dei legami va modificata con:\secidx[Legami!Lunghezza]{Formule brute}
-\begin{beispiel}
- \chemsetup[chemformula]{bond-length=4mm}%
- single: \ch{CH3-CH3} \\
- double: \ch{CH2=CH2} \\
- triple: \ch{CH+CH}
-\end{beispiel}
-
-Si può inoltre impostare la distanza tra atomo e legame:
-\begin{beispiel}
- \ch{H-H + N+N + O=O} \\
- \ch[bond-offset=1pt]{H-H + N+N + O=O}
-\end{beispiel}
-\secidx*{Formule brute}
-
-\section{Tipi speciali di input}\secidx{Tipi speciali di input}
-Esistono alcuni \enquote{tipi di input speciali}.
-
-\subsection{Token a input singolo}\secidx[Token a input singolo]{Tipi speciali di input}
-Questo tipo è composto da un singolo token compreso tra i seguenti:
-\begin{beschreibung}
- \befehl{ch}{ + } \ch{+} Genera un segno più tra formule se spaziato a destra e sinistra:\\
- \cmd{ch}{2 Na + Cl2} \ch{2 Na + Cl2}
- \befehl{ch}{ v } \ch{v} Simbolo per una precipitazione o la formazione di un solido: \cmd{ch}{BaSO4 v} \ch{BaSO4 v}
- \befehl{ch}{ \lstinline+^+ } \ch{^} Simbolo per la formazione di gas: \cmd{ch}{\lstinline=H2 ^=} \ch{H2 ^}
-\end{beschreibung}
-
-Lo spazio a sinistra e destra del più può essere adattato tramite un'opzione:
-\begin{beschreibung}
- \option{plus-space}{<skip>} Una lunghezza elastica. Default =
- \code{.3em plus .1em minus .1em}
-\end{beschreibung}
-\begin{beispiel}
- \ch{A + B}\\
- \ch[plus-space=4pt]{A + B}
-\end{beispiel}
-
-\subsection{Input di opzioni}\secidx[Input di opzioni]{Tipi di input speciali}
-Talvolta si desidera applicare un'opzione solo ad una parte di una reazione;
-naturalmente è possibile impiegare ripetutamente \cmd{ch}.
-\begin{beispiel}
- \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-}
-\end{beispiel}
-Tuttavia questo interrompe l'input nel sorgente e \emph{potrebbe} influenzare la
-spaziatura. Per questo motivo esiste un'alternativa:
-\begin{beschreibung}\makeatletter
- \befehl{ch}{ @\{<options>\} } Le opzioni date sono attive \emph{solo} fino alla
- fine della \emph{prossima} formula bruta.
-\end{beschreibung}
-\begin{beispiel}
- \ch{H2O +}\textcolor{red}{\ch{H2SO4}}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O + @{format=\color{red}} H2SO4 -> H3O+ + HSO4-} \\
- o naturalmente:\\
- \ch{H2O + \textcolor{red}{H2SO4} -> H3O+ + HSO4-}\\[1em]
- \ch{H2O +}\ch[subscript-vshift=2pt]{H2SO4}\ch{-> H3O+ + HSO4-} \\
- \ch{H2O + @{subscript-vshift=2pt} H2SO4 -> H3O+ + HSO4-}
-\end{beispiel}
-\achtung{Si tratta di una modalità sperimentale che potrebbe scomparire nelle versioni future.}
-\secidx*{Tipi di input speciali}
-
-\section{Input protetto}\secidx{Input protettto}
-In certi casi si può desiderare di evitare che \chemformula elabori l'input.
-Esistono due possibilità di ottenere proprio questo.
-
-\subsection{Testo}\label{ssec:text}\secidx[text]{Input protetto}
-Quando del testo viene posto tra \lstinline+" "+ oppure \lstinline+' '+ allora
-l'input viene considerato come testo normale ad eccezione per gli spazi: non sono
-ammessi e devono essere inseriti con \lstinline+~+.
-\begin{beschreibung}
- \Befehl{ch}{ "<escaped text>" }
- \Befehl{ch}{ '<escaped text>' }
-\end{beschreibung}
-\begin{beispiel}
- \ch{"\ox{2,Ca}" O} \\
- \ch{"\ldots\," Na + "\ldots\," Cl2 -> "\ldots\," NaCl} \\
- \ch{'A~->~B'}
-\end{beispiel}
-Questo stratagemma sarà necessario in pochi casi; ma quando risulta difficoltoso
-impiegare un comando all'interno di \cmd{ch} può essere utile applicare il modo protetto.
-
-\subsection{Matematica}\secidx[math]{Input protetto}
-Quando si ha dell'input matematico, è sufficiente porlo tra \lstinline+$ $+.
-L'output si distingue dal testo protetto (oltre che per il modo matematico)
-anche per la presenza di uno spazio in seguito. Il motivo è che suppongo che
-l'input matematico venga utilizzato soprattutto in luogo dei fattori
-stechiometrici.
-\begin{beschreibung}
- \Befehl{ch}{ \string$<escaped math>\string$ }
- \Befehl{ch}{ \string\(<escaped math>\string\) }
-\end{beschreibung}
-\begin{beispiel}
- escaped text: \ch{"$x$" H2O} \\
- escaped math: \ch{$x$ H2O} \\
- also escaped math: \ch{\(x\) H2O} \\
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl}
-\end{beispiel}
-
-Lo spazio seguente l'input matematico protetto può essere adattato.
-\begin{beschreibung}
- \option{math-space}{<skip>} Una lunghezza elastica. Default =
- \code{.1667em plus .0333em minus .0117em}
-\end{beschreibung}
-\begin{beispiel}
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
- \chemsetup[chemformula]{math-space=.25em}
- \ch{$2n$ Na + $n$ Cl2 -> $2n$ NaCl} \\
- \ch{$A->B$}
-\end{beispiel}
-\secidx*{Input protetto}
-
-\section{Frecce}\label{sec:arrows}\secidx{Frecce}
-\subsection{Tipi di frecce}\secidx[Tipi]{Frecce}
-Le frecce vengono indicate nello stesso modo intuitivo di \paket{mhchem}. Ne esiste
-una serie:
-\begin{beschreibung}
- \befehl{ch}{ -> } \ch{->} freccia semplice a destra
- \befehl{ch}{ <- } \ch{<-} freccia semplice a sinistra
- \befehl{ch}{ -/> } \ch{-/>} non reagisce (destra)
- \befehl{ch}{ </- } \ch{</-} non reagisce (sinistra)
- \befehl{ch}{ <-> } \ch{<->} doppia freccia di mesomeria
- \befehl{ch}{ <> } \ch{<>} la reazione avviene in entrambe le direzioni
- \befehl{ch}{ == } \ch{==} equazione stechiometrica
- \befehl{ch}{ <=> } \ch{<=>} doppia freccia di equilibrio
- \befehl{ch}{ \lstinline+<=>>+ } \ch{<=>>} equilibrio spostato a destra
- \befehl{ch}{ \lstinline+<<=>+ } \ch{<<=>} equilibrio spostato a sinistra
- \befehl{ch}{ <o> } \ch{<o>} freccia isolobale
-\end{beschreibung}
-Tutte le frecce sono disegnate con \TikZ.
-\begin{beispiel}
- \ch{H2 + Cl2 -> 2 HCl} \\
- \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}
-
-\subsection{Etichettazione}\secidx[Etichettazione]{Frecce}
-Le frecce hanno due argomenti opzionali per essere etichettate.
-\begin{beschreibung}
- \Befehl{ch}{ ->[<above>][<below>] }
-\end{beschreibung}
-\begin{beispiel}
- \ch{A ->[a] B} \\
- \ch{A ->[a][b] B} \\
- \ch{A ->[\SI{100}{\celsius}] B}
-\end{beispiel}
-Il testo descrittivo può essere elaborato indipendentemente dalla freccia: basta
-usare degli spazi.
-\begin{beispiel}
- \ch{A ->[H2O] B} \\
- \ch{A ->[ H2O ] B} \\
- \ch{A ->[ "\ox{2,Ca}" F2 ] B} \\
- \ch{A ->[$\Delta$,~ \[H+ \]] B}
-\end{beispiel}
-
-Quando sono presenti degli spazi \chemformula elabora dapprima la parte tra
-parentesi come un input normale. Le frecce leggono i loro argomenti solo \emph{dopo}
-l'elaborazione. Come si può vedere, le frecce \enquote{crescono} con la lunghezza
-dell'etichetta, mentre rimane costante la parte eccedente. Nell'ultimo esempio si
-può inoltre vedere che le parentesi quadre all'interno degli argomenti dei comandi
-freccia devono essere inserite con \cmd{[} e \cmd{]}; naturalmente al di fuori di
-\cmd{ch} mantengono il loro comportamento normale. Questi comandi sono necessari
-perché il metodo solitamente impiegato di racchiudere le parentesi quadre tra
-parentesi graffe non funziona a causa del modo in cui \cmd{ch} legge il suo
-argomento.
-\begin{beispiel}
- \ch{A ->[a] B} \\
- \ch{A ->[ab] B} \\
- \ch{A ->[abc] B} \\
- \ch{A ->[abc~abc] B} \\
- % needs the `chemfig' package:
- \setatomsep{15pt}
- \ch{A ->[ "\chemfig{-[:30]-[:-30]OH}" ] B} \\
- \ch{A ->[[]] B} vs. \ch{A ->[\[\]] B}
-\end{beispiel}
-
-\subsection{Adattamento}\secidx[Adattamento]{Frecce}
-Con le opzioni seguenti è possibile adattare la resa grafica delle frecce:
-\begin{beschreibung}
- \option{arrow-offset}{<dim>} La lunghezza della freccia eccedente l'etichetta (a
- sinistra e destra). La lunghezza di una freccia vuota è il doppio di \code{arrow-offset}.
- Una lunghezza di \TeX. Default = \code{.75em}
-\option{arrow-min-length}{<dim>} La lunghezza minima che deve avere un errore,
- se tale lunghezza è inferiore al doppio di \key{arrow-offset} più la larghezza
- dell'etichetta. Default = \code{0pt}
- \option{arrow-yshift}{<dim>} Sposta una freccia verso l'alto (valore positivo) o
- verso il basso (valore negativo); una dimensione di \TeX. Default = \code{0pt}
- \option{arrow-ratio}{<factor>} Il rapporto tra le lunghezze delle frecce di equilibrio
- spostato: \code{.4} significa che la freccia più corta è lunga \num{0.4} volte
- la freccia più lunga. Default = \code{.6}
- \option{compound-sep}{<dim>} Lo spazio vuoto tra formule e freccia; una dimensione
- di \TeX. Default = \code{.5em}
- \option{label-offset}{<dim>} Lo spazio tra freccia ed etichette; una dimensione
- di \TeX. Default = \code{2pt}
- \option{label-style}{<font command>} Il corpo del font dell'etichetta. Default =
- \lstinline+\footnotesize+
-\end{beschreibung}
-
-Il codice seguente mostra gli effetti delle varie opzioni sulla freccia \lstinline+<=>>+:
-\begin{beispiel}
- standard: \ch{A <=>>[x][y] B} \\
- più lunga: \ch[arrow-offset=12pt]{A <=>>[x][y] B} \\
- più alta: \ch[arrow-yshift=2pt]{A <=>>[x][y] B} \\
- più bilanciata: \ch[arrow-ratio=.8]{A <=>>[x][y] B} \\
- etichetta più distante: \ch[label-offset=4pt]{A <=>>[x][y] B} \\
- distanza maggiore dalle formule: \ch[compound-sep=2ex]{A <=>>[x][y] B} \\
- etichette più piccole: \ch[label-style=\tiny]{A <=>[x][y] B}
-\end{beispiel}
-
-\subsection{Modificare i tipi di frecce}\label{sec:arrows_modify}\secidx[tipi!modificare]{Frecce}
-Le frecce sono definite attraverso il comando
-\begin{beschreibung}
- \Befehl{DeclareChemArrow}{<tokens>}\ma{<tikz>}
-\end{beschreibung}
-\ma{<tokens>} sono i simboli sostituiti dal codice proprio della freccia. Ad esempio,
-la freccia principale è stata definita attraverso
-\begin{beispiel}[code only]
- \DeclareChemArrow{->}{\draw[-cf] (cf_arrow_start) -- (cf_arrow_end) ;}
-\end{beispiel}
-Nel caso si desideri definire frecce proprie sono necessarie conoscenze fondamentali
-di \TikZ\footnote{Si rimanda alla guida \textsf{pgfmanual}.}. Si consiglia l'uso
-di alcune coordinate predefinite:
-\begin{description}
- \item[\code{(cf\_arrow\_start)}] L'inizio della freccia.
- \item[\code{(cf\_arrow\_end)}] La fine della freccia.
- \item[\code{(cf\_arrow\_mid)}] La metà della freccia.
- \item[\code{(cf\_arrow\_mid\_start)}] L'inizio della freccia più breve nelle freccie
- del tipo \lstinline+<=>>+.
- \item[\code{(cf\_arrow\_mid\_end)}] La fine della freccia più breve nelle freccie
- del tipo \lstinline+<=>>+.
- \item[\code{cf}, \code{left cf}, \code{right cf}] Punte di frecce definite per
- \chemformula.
-\end{description}
-\begin{beispiel}
- \DeclareChemArrow{.>}{\draw[-cf,dotted,red] (cf_arrow_start) -- (cf_arrow_end);}
- \DeclareChemArrow{n>}{\draw[-cf] (cf_arrow_start) .. controls ([yshift=3ex]cf_arrow_mid) .. (cf_arrow_end);}
- \ch{A .> B} \ch{A .>[a][b] B} \ch{A n> B}
-\end{beispiel}
-Quando si desidera ridefinire una freccia preesistente, è possibile usare uno dei
-due comandi seguenti:
-\begin{beschreibung}
- \Befehl{RenewChemArrow}{<tokens>}\ma{<tikz>}
- \Befehl{ShowChemArrow}{<tokens>}
-\end{beschreibung}
-Il secondo mostra la definizione attuale, il primo ridefinisce la freccia.
-\begin{beispiel}
- \texttt{\ShowChemArrow{->}} \\
- \RenewChemArrow{->}{\draw[->,red] (cf_arrow_start) -- (cf_arrow_end) ;}
- \texttt{\ShowChemArrow{->}} \\
- \ch{A -> B}
-\end{beispiel}
-\secidx*{Frecce}
-
-\section{Didascalie di formule}\secidx{Didascalie di formule}
-\subsection{Sintassi}\secidx[sintassi]{Didascalie di formule}
-\chemformula ha una propria sintassi per scrivere del testo sotto ad una formula
-chimica, che funziona in modo analogo agli argomenti opzionali delle frecce.
-\begin{beschreibung}
- \Befehl{ch}{ !(<name>)( <formula> ) }
-\end{beschreibung}
-Quando un punto esclamativo viene seguito da una coppia di parentesi tonde,
-\chemformula fa il seguente:
-\begin{beispiel}
- \ch{!(ethanol)( CH2CH2OH )}
-\end{beispiel}
-
-Quel che vale per le etichette delle frecce vale anche qui: lasciando degli spazi
-le parti di input vengono elaborate a seconda del loro tipo prima che il testo
-venga scritto sotto la formula.
-\begin{beispiel}
- \ch{!(water)(H2O)} \quad
- \ch{!( "\textcolor{blue}{water}" )( H2O )} \quad
- \ch{!( $2n-1$ )( H2O )} \quad
- \ch{!( H2O )( H2O )} \quad
- \ch{!(oxonium)( H3O+ )}
-\end{beispiel}
-
-Se per qualche ragione si desidera avere un punto esclamativo \emph{senza} aggiungere
-un testo sotto una formula, è sufficiente evitare di farlo seguire da parentesi.
-\begin{beispiel}
- \ch{H2O~(!)} \\
- \ch{A!{}()}
-\end{beispiel}
-
-\subsection{Personalizzazione}\secidx[Personalizzazione]{Didascalie di formule}
-\chemformula mette a disposizione due opzioni per adattare il testo:
-\begin{beschreibung}
- \option{name-format}{<commands>} Il formato del testo; può essere inserito un
- input qualunque. Default = \lstinline+\scriptsize\centering+
- \option{name-width}{<dim>|auto} La larghezza del box nel quale viene posto il
- testo: \code{auto} riconosce la larghezza della didascalia e imposta il box di
- conseguenza. Default = \code{auto}
-\end{beschreibung}
-\begin{beispiel}
- \ch{!(acido)( H2SO4 ) -> B} \\
- \ch[name-format=\sffamily\small]{!(acido)( H2SO4 ) -> B} \\
- \ch[name-format=\scriptsize N:~]{!(acido)( H2SO4 ) -> B} \\
- \ch[name-width=3em,name-format=\scriptsize\raggedright]{!(acido)( H2SO4 ) -> B}
-\end{beispiel}
-\secidx*{Didascalie di formule}
-
-\section{Formato e carattere}\label{sec:format}\secidx{Formato e carattere}
-Come impostazione predefinita \chemformula non varia l'output delle formule.
-Prendiamo come esempio un input privo di senso chimico per dimostrare tutte le
-capacità di \chemformula:
-\begin{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"}}
- \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"}}
-Ora variamo alcuni aspetti del testo e osserviamo i risultati:
-\begin{beispiel}[below]
- \sffamily Ciao \sample \\
- \ttfamily Ciao \sample \normalfont \\
- \bfseries Ciao \sample \normalfont \\
- \itshape Ciao \sample
-\end{beispiel}
-Come si osserva la maggior parte delle funzioni adattano le caratteristiche del
-font circostante.
-
-Quando si vuole cambiare questo comportamento preimpostato oppure il formato di
-default è possibile usare la seguente opzione:
-\begin{beschreibung}
- \option{format}{<anything>} Inserisce il codice desiderato all'inizio del comando
- \cmd{ch}.
-\end{beschreibung}
-\begin{beispiel}
- % blu e privo di grazie:
- \definecolor{newblue}{rgb}{.1,.1,.5}\chemsetup[chemformula]{format=\color{newblue}\sffamily}
- \sffamily Ciao \sample \\
- \ttfamily Ciao \sample \normalfont \\
- \bfseries Ciao \sample \normalfont \\
- \itshape Ciao \sample
-\end{beispiel}
-
-Si possono inoltre variare specificatamente la famiglia, la serie e la forma del
-font dell'output:
-\begin{beschreibung}
- \option{font-family}{<family>} Varia la famiglia con: \lstinline+\fontfamily{<family>}\selectfont+.
- \option{font-series}{<series>} Varia la serie con: \lstinline+\fontseries{<series>}\selectfont+.
- \option{font-shape}{<shape>} Varia la forma con \lstinline+\fontshape{<shape>}\selectfont+.
-\end{beschreibung}
-\begin{beispiel}
- % sempre in nero:
- \chemsetup[chemformula]{font-series=bx}
- Ciao \sample \\
- \sffamily Ciao \sample \normalfont \\
- \chemsetup[chemformula]{font-family=lmr,font-series=m} Ciao \sample \normalfont \\
- \itshape Ciao \sample
-\end{beispiel}
-
-Quando si impiegano \XeLaTeX\ oppure \LuaLaTeX\ avendo caricato il pacchetto
-\paket{fontspec}, è possibile variare il carattere di \chemformula anche nel
-modo seguente:
-\begin{beschreibung}
- \Option{font-spec}{\{<font>\}} oppure con opzioni
- \Option{font-spec}{\{[<options>]<font>\}}
-\end{beschreibung}
-\begin{beispiel}
- \chemsetup[chemformula]{font-spec={Linux Biolinum O}} \sample \\
- \chemsetup[chemformula]{font-spec={[Color=darkgray]Augie}} \sample \\
- \chemsetup[chemformula]{font-spec={Tipbrush Script}} \sample \\
- \chemsetup[chemformula]{font-spec={Latin Modern Sans}} \sample \\
- \bfseries \sample \normalfont \\
- \chemsetup[chemformula]{font-spec={Feathergraphy Decoration}} \sample
-\end{beispiel}
-\secidx*{Formato e carattere}
-
-\section{Utilizzo in ambienti matematici}\secidx{Ambienti matematici}
-Il comando \cmd{ch} può essere utilizzato in ambienti matematici; riconosce
-\lstinline+\\+ e \lstinline+&+ e ne passa oltre i contenuti; tuttavia gli
-argomenti opzionali di \lstinline+\\+ non possono essere utilizzati all'interno
-di \cmd{ch}.
-\begin{beispiel}
- \begin{align}
- \ch{
- H2O & ->[a] H2SO4 \\
- Cl2 & ->[x][y] CH4
- }
- \end{align}
- \begin{align*}
- \ch{
- RNO2 &<=>[ + e- ] RNO2^{-.} \\
- RNO2^{-.} &<=>[ + e- ] RNO2^2-
- }
- \end{align*}
-\end{beispiel}
-\secidx*{Ambienti matematici}
-
-\section{Ulteriori esempi}
-Questo paragrafo mostra ulteriori esempi per l'impiego di \chemformula, ed in
-particolare l'accoppiamento agli ambienti \code{reaction} di \chemmacros.
-
-\begin{beispiel}
- \begin{reaction}[Sintesi di alcani]
- !(gas~di~sintesi)( $n$ CO + $(2n+1)$ H2 ) ->[\SI{200}{\celsius}][\[CoNi\]] C_{$n$}H_{$2n+2$} + $n$ H2O
- \end{reaction}
-\end{beispiel}
-
-\begin{beispiel}
- \begin{reactions*}
- "a)" && CH4 + Cl2 &-> CH3Cl + HCl && "{\small clorometano/cloruro~di~metile}" \\
- "b)" && CH3Cl + Cl2 &-> CH2Cl2 + HCl && "{\small diclorometano/cloruro~di~metilene}" \\
- "c)" && CH2Cl2 + Cl2 &-> CHCl3 + HCl && "{\small triclorometano/cloroformio}" \\
- "d)" && CHCl3 + Cl2 &-> CCl4 + HCl && "{\small tetraclorometano/tetracloruro~di~carbonio}"
- \end{reactions*}
-\end{beispiel}
-
-\begin{beispiel}
- \chemsetup[ox]{parse=false}\ch{"\ox{\delm,C}" -{} "\ox{\delp,M}" \qquad ( <-> "\ox{\delp,C}" -{} "\ox{\delm,Br}" )} \\
- \ch[adduct-space=0pt]{X. + .Y <=> X-Y + energia~di~legame} \\
- \ch[name-format=\normalsize]{!(\State{H}{f}\qquad)() !(\textcolor{red}{??})( CH4\gas{} ) + !(\num{0})( 2 O2\gas{} ) -> !(\num{-94.3})( CO2\gas{} ) + !(\num{-57.9})( H2O\lqd{} ) + !(\num{-192.1})( "\State{H}" )}
-\end{beispiel}
-
-\begin{beispiel}
- \begin{reactions*}
- CH3MgBr + "\ox*{1,Cu}" X &-> "\glqq" CH3 "\ox*{1,Cu}\grqq" + MgBrX "\qquad X~$=$~Br,I,CN" \\
- 2 MeLi + CuI &-> !(dimetilcuprato~(cuprato~di~Gilmann))( Me2CuLi ) + Li
- \end{reactions*}
-\end{beispiel}
-
-\begin{beispiel}
- % needs `chemfig'
- \begin{reactions*}
- H3C-CH3 + Cl2 &->[$\Delta$][$h\nu$] H3CCH2Cl + HCl & &"\Enthalpy{-27.1}" \\
- H3C-CH3 + "\Lewis{0.,Cl}" &-> H3CCH2 "\Lewis{0.,\vphantom{H}}" + HCl & &"\Enthalpy{-5.0}" \\
- H3C-CH2 "\Lewis{0.,\vphantom{H}}" + Cl2 &-> H3CCH2Cl + "\Lewis{0.,Cl}" & &"\Enthalpy{-23.0}"
- \end{reactions*}
-\end{beispiel}
-
-L'esempio seguente mostra come si può rappresentare la semplificazione di sistemi
-di reazioni\footnote{Ispirato da una domanda su TeX.SE:
-\url{http://tex.stackexchange.com/q/30118/5049}}.
-\begin{beispiel}
- % needs `cancel'
- \begin{align*}
- \centering
- \ch{\cancel{HCOOH\aq} + H2O\lqd{} &<=> H3O^+\aq{} + \cancel{HCOO^-\aq}} \\
- \ch{\cancel{HCOO^-\aq} + H2O\lqd{} &<=> \cancel{HCOOH\aq} + OH^-\aq}\\[-1ex]
- \cline{1-2}
- \ch{H2O\lqd{} + H2O\lqd{} &<=> H3O^+\aq{} + OH^-\aq}
- \end{align*}
-\end{beispiel}
-\secidx*{CHEMFORMULA}
-
-\part{\texorpdfstring{\Ghsystem}{ghsystem}}\label{part:ghsystem}\secidx{GHSYSTEM}
-\section{Setup}
-Tutte le opzioni di \ghsystem appartengono al modulo \textcolor{module}{\code{ghsystem}}.
-Possono essere impostate anche con
-\begin{beschreibung}
- \Befehl{chemsetup}[ghsystem]{<options>} oppure
- \Befehl{chemsetup}{ghsystem/<option1>,ghsystem/<option2>}
-\end{beschreibung}
-Inoltre possono essere passate anche localmente ai comandi come argomenti opzionali.
-
-\section{Richiamare le frasi di rischio (H) e sicurezza (P)}\secidx{Frasi di rischio e sicurezza}[Frasi di rischio e sicurezza]
-\subsection{Chiamata semplice}\secidx[Chiamata]{GHSYSTEM}
-È generalmente semplice richiamare le frasi:
-\begin{beschreibung}
- \Befehl{ghs}[<options>]{<type>}\ma{<number>}
- \Befehl[ghsa]{ghs*}[<options>]{<type>}\ma{<number>}
-\end{beschreibung}
-Esistono tre tipi di frasi: \code{h}, \code{euh} e \code{p}; l'argomento \ma{<type>}
-non distingue tra maiuscole e minuscole.
-\begin{beispiel}
- \ghs{h}{200} \\
- \ghs{H}{224} \\
- \ghs{euh}{001} \\
- \ghs{Euh}{202} \\
- \ghs{p}{201}
-\end{beispiel}
-
-La versione asteriscata nasconde il numero e restituisce solo la frase. Quando si
-desidera nascondere la frase e richiamare solo il numero, è possibile utilizzare
-l'opzione seguente:
-\begin{beschreibung}
- \Option{hide}{\default{true}|false}
-\end{beschreibung}
-
-Inoltre esiste un'opzione per adattare l'output.
-\begin{beschreibung}
- \option{space}{<space command>} Spazio tra \code{<type>} e \code{<number>}.
-\end{beschreibung}
-\begin{beispiel}
- \ghs{h}{200} \\
- \ghs[space=\,]{h}{200} \\
- \ghs*{h}{200} \\
- \ghs[hide]{h}{200}
-\end{beispiel}
-
-\subsection{Frasi con segnaposto}\secidx[Segnaposto]{GHSYSTEM}
-Alcune frasi utilizzano dei segnaposto; ve ne sono quattro diversi:
-\begin{itemize}
- \item \textit{\textless indicare la via di esposizione se è accertato che
- nessun'altra via di esposizione comporta il medesimo pericolo\textgreater}
- \item \textit{\textless indicare l'effetto specifico, se noto\textgreater}
- \item \textit{\textless o indicare tutti gli organi interessati, se noti\textgreater}
- \item \textit{\textless denominazione della sostanza sensibilizzante\textgreater}
-\end{itemize}
-
-Da predefinito sono nascosti tutti tranne l'ultimo, che deve essere sostituito.
-Possono essere resi visibili attraverso l'opzione
-\begin{beschreibung}
- \option{fill-in}{\default{true}|false} Default = \code{false}
-\end{beschreibung}
-\begin{beispiel}[below]
- \ghs{h}{340} \\
- \ghs[fill-in]{h}{340} \\
- \ghs{h}{360} \\
- \ghs[fill-in]{h}{360} \\
- \ghs{h}{370} \\
- \ghs[fill-in]{h}{370} \\
- \ghs{euh}{208} \\
- \ghs[fill-in]{euh}{208}
-\end{beispiel}
-
-Con le opzioni seguenti è possibile sostituire i segnaposto:
-\begin{beschreibung}
- \option{exposure}{<text>} segnaposto di esposizione
- \option{effect}{<text>} segnaposto di effetto
- \option{organs}{<text>} segnaposto di organo
- \option{substance}{<text>} segnaposto di sostanza
-\end{beschreibung}
-\begin{beispiel}
- \ghs[exposure=In questo modo si è esposti al pericolo.]{h}{340} \\
- \ghs[effect=Questi sono gli effetti.]{h}{360} \\
- \ghs[organs=quest'organo]{h}{370} \\
- \ghs[substance=sostanza]{euh}{208}
-\end{beispiel}
-
-\subsection{Frasi con buchi}\secidx[Frasi con buchi]{GHSYSTEM}
-Alcune frasi hanno dei \enquote{buchi}:
-\begin{beispiel}
- \ghs{p}{301} \\
- \ghs{p}{401} \\
- \ghs{p}{411} \\
- \ghs{p}{413}
-\end{beispiel}
-
-Con le seguenti opzioni questi buchi possono essere riempiti:
-\begin{beschreibung}
- \option{text}{<text>} Riempie il \enquote{buco invisibile} che segue un doppio
- punto.
- \option{dots}{<text>} Riempie il buco indicato da \enquote{\ldots}.
- \option{C-temperature}{<num>} Inserisce la temperatura in Celsius.
- \option{F-temperature}{<num>} Inserisce la temperatura in Fahrenheit.
- \option{kg-mass}{<num>} Inserisce la massa in chilogrammi.
- \option{lbs-mass}{<num>} Inserisce la massa in libbre.
-\end{beschreibung}
-\begin{beispiel}
- \ghs[dots=Contattare un medico!]{p}{301} \\
- \ghs[text=qui]{p}{401} \\
- \ghs[C-temperature=50, F-temperature=122]{p}{411} \\
- \ghs[kg-mass=5.0, lbs-mass=11, C-temperature=50, F-temperature=122]{p}{413}
-\end{beispiel}
-
-\subsection{Frasi combinate}\secidx[Frasi combinate]{GHSYSTEM}
-Esistono alcune frasi combinate. Vengono inserite con un \code{+} tra i numeri:
-\begin{beispiel}[below]
- \ghs{p}{235+410} \\
- \ghs{p}{301+330+331}
-\end{beispiel}
-
-Si noti che sono valide solo le combinazioni ufficiali. \emph{Non è possibile
-combinare le frasi a piacere}.
-\secidx*{Frasi di rischio e sicurezza}
-
-\section{Pittogrammi}\secidx{Pittogrammi}
-\subsection{Le immagini}
-Il \ac{ghs} contiene alcuni pittogrammi:
-
-\ghspic{explos} \ghspic{flame} \ghspic{flame-O} \ghspic{bottle} \ghspic{acid}
-\ghspic{skull} \ghspic{exclam} \ghspic{health} \ghspic{aqpol}
-
-Il comando
-\begin{beschreibung}
- \Befehl{ghspic}[<options>]{<name>}
-\end{beschreibung}
-li carica. La tabella~\ref{tab:ghs_pictograms} mostra tutti i pittogrammi e i nomi
-dei loro file, o meglio: mostra i nomi dei file da utilizzare con il comando \cmd{ghspic}.
-In realtà i file si chiamano \lstinline=ghsystem_<name>.<filetype>=, dove
-\code{<filetype>} è un'estensione tra \code{eps}, \code{pdf}, \code{jpg}
-oppure \code{png}, vedi anche il paragrafo~\ref{ssec:picture_type}.
-\begin{beispiel}
- \ghspic{skull}
-\end{beispiel}
-
-Se si preferisce variare la dimensione, è disponibile l'opzione
-\begin{beschreibung}
- \option{scale}{<factor>} Scala il pittogramma. Default = \code{1}
-\end{beschreibung}
-Le immagini originali sono piuttosto grandi. La preimpostazione (fattore = $1$)
-scala le immagini ad un ventesimo della loro dimensione reale.
-\begin{beispiel}
- \ghspic[scale=2]{skull}
-\end{beispiel}
-
-Se si desidera utilizzare opzioni speciali di \lstinline=\includegraphics=, ad
-esempio per ruotare il pittogramma, va usata l'opzione seguente:
-\begin{beschreibung}
- \Option{includegraphics}{\{<includegraphics keyvals>\}}
-\end{beschreibung}
-\begin{beispiel}
- \ghspic[includegraphics={angle=90}]{skull}
-\end{beispiel}
-
-\begin{longtable}{>{\ttfamily}ll>{\ttfamily}ll}
- \caption{Tutti i pittogrammi \ac{ghs} disponibili.\label{tab:ghs_pictograms}} \\
- \toprule
- \normalfont\bfseries nome & \bfseries pittogramma & \normalfont\bfseries nome & \bfseries pittogramma \\
- \midrule\endfirsthead
- \toprule
- \normalfont\bfseries nome & \bfseries pittogramma & \normalfont\bfseries nome & \bfseries pittogramma \\
- \midrule\endhead
- \bottomrule\endfoot
- explos & \ghspic{explos} & explos-1 & \ghspic{explos-1} \\
- explos-2 & \ghspic{explos-2} & explos-3 & \ghspic{explos-3} \\
- explos-4 & \ghspic{explos-4} & explos-5 & \ghspic{explos-5} \\
- explos-6 & \ghspic{explos-6} & & \\
- flame & \ghspic{flame} & flame-2-white & \ghspic{flame-2-white} \\
- flame-2-black & \ghspic{flame-2-black} & flame-3-white & \ghspic{flame-3-white} \\
- flame-3-black & \ghspic{flame-3-black} & flame-4-1 & \ghspic{flame-4-1} \\
- flame-4-2 & \ghspic{flame-4-2} & flame-4-3-white & \ghspic{flame-4-3-white} \\
- flame-4-3-black & \ghspic{flame-4-3-black} & flame-5-2-white & \ghspic{flame-5-2-white} \\
- flame-5-2-black & \ghspic{flame-5-2-black} & & \\
- flame-O & \ghspic{flame-O} & flame-O-5-1 & \ghspic{flame-O-5-1} \\
- bottle & \ghspic{bottle} & bottle-2-black & \ghspic{bottle-2-white} \\
- bottle-2-white & \ghspic{bottle-2-black} & & \\
- acid & \ghspic{acid} & acid-8 & \ghspic{acid-8} \\
- skull & \ghspic{skull} & skull-2 & \ghspic{skull-2} \\
- skull-6 & \ghspic{skull-6} & & \\
- exclam & \ghspic{exclam} & & \\
- health & \ghspic{health} & & \\
- aqpol & \ghspic{aqpol} & & \\
-\end{longtable}
-
-\subsection{Il tipo dell'immagine dipende dal compilatore}\label{ssec:picture_type}
-L'utente probabilmente è a conoscenza che non tutti i tipi di immagini sono compatibili
-con ciascun compilatore. \pdfTeX{} in modalità \acs{dvi} richiede file di tipo
-\code{eps}, mentre \pdfTeX{} in modalità \acs{pdf}, \XeTeX{} e \LuaTeX{} convertono
-file di tipo \code{eps} in \code{pdf}, ammesso che l'utente abbia diritti di scrittura
-nella cartella contenente le immagini. Gli ultimi elencati sanno tuttavia
-includere immagini di tipo \code{jpg} e \code{png} senza problemi, mentre
-\pdfTeX{} in modalità \acs{dvi} non ne è capace.
-
-Per risolvere il problema \ghsystem verifica quale compilatore viene utilizzato,
-e nel caso di \pdfTeX{} anche la modalità di utilizzo; poi sceglie quale immagine
-utilizzare tra \code{eps} e \code{png} per i pittogrammi. In ogni caso il tipo di
-immagine può essere selezionato a piacimento attraverso l'opzione
-\begin{beschreibung}
- \Option{pic-type}{eps|pdf|jpg|png}
-\end{beschreibung}
-\secidx*{Pittogrammi}
-
-\section{Lingue disponibili}\label{sec:ghsystem_language}
-Al momento attuale le frasi H e P sono disponibili solo in inglese, tedesco ed
-italiano. Il pacchetto reagisce all'opzione \key[option]{italian} di \chemmacros,
-ma non riconosce (ancora) la lingua impostata con \paket{babel} o \paket{polyglossia}.
-
-È possibile scegliere la lingua anche in modo esplicito.
-\begin{beschreibung}
- \Option{language}{english|german|italian}
-\end{beschreibung}
-\begin{beispiel}
- \ghs{h}{201}
-
- \chemsetup[ghsystem]{language=english}
- \ghs{h}{201}
-\end{beispiel}
-
-È mia intenzione implementare ulteriori lingue in futuro; tuttavia potrebbe volerci
-ancora del tempo. Chi volesse partecipare a \ghsystem e trascrivere le frasi in
-un'altra lingua, è invitato a contattarmi%
-\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}};
-gli metterò a disposizione un file template, un \acs{pdf} contenenti le traduzioni
-officiali ed ogni ulteriore aiuto necessario.
-
-\section{Lista delle frasi}\secidx{Lista delle frasi}
-Se si desidera elencare tutte le frasi, è possibile utilizzare il comando
-\begin{beschreibung}
- \Befehl{ghslistall}[<options>]
-\end{beschreibung}
-
-Questo comando crea una tabella di tutte le frasi nell'ambiente \lstinline=longtable=
-del pacchetto \paket{longtable}. Il suo aspetto può essere adattato con le opzioni
-seguenti.
-\begin{beschreibung}
- \option{table-head-number}{<text>} Default = \code{Numero}
- \option{table-head-text}{<text>} Default = \code{Frase}
- \option{table-next-page}{<text>} Default = \code{Continua nella prossima pagina}
- \option{table-caption}{<text>} Didascalia della tabella. Default = \code{Elenco
- di tutte le frasi H, EUH e P.}
- \option{table-caption-short}{<text>} \code{<short>} in \lstinline=\caption[<short>]{<text>}=.
- \option{table-label}{<text>} L'etichetta per l'uso di riferimenti incrociati con
- i comandi del tipo di \lstinline=\ref=. Default = \code{tab:ghs-hp-statements}
- \option{table-row-sep}{<dim>} Distanza tra le righe. Una dimensione di \TeX.
- Default = \code{3pt}
- \option{table-rules}{\default{default}|booktabs|none} Lo stile delle righe
- orizzontali della tabella. \code{default} utilizza \lstinline=\hline=, \code{booktabs}
- utilizza \lstinline=\toprule=, \lstinline=\midrule= e \lstinline=\bottomrule=.
- Questa opzione richiede che sia caricato il pacchetto \paket{booktabs}. Default
- = \code{default}
- \option{table-top-head-rule}{\default{default}|booktabs|none} Varia la riga in
- modo esplicito. Default = \code{default}
- \option{table-head-rule}{\default{default}|booktabs|none} Varia la riga in modo
- esplicito. Default = \code{default}
- \option{table-foot-rule}{\default{default}|booktabs|none} Varia la riga in modo
- esplicito. Default = \code{default}
- \option{table-last-foot-rule}{\default{default}|booktabs|none} Varia la riga in
- modo esplicito. Default = \code{default}
-\end{beschreibung}
-
-Il codice seguente mostra come è stata creata la tabella~\ref{tab:ghs-hp-statements}:
-\begin{beispiel}[code only]
- \ghslistall[fill-in,table-rules=booktabs]
-\end{beispiel}
-
-\ghslistall[fill-in,table-rules=booktabs]
-\secidx*{Lista delle frasi}\secidx*{GHSYSTEM}
-
-\appendix
-\part{Appendice}\index{APPENDICE@\textbf{APPENDICE}}
-\addsec{Panoramica delle opzioni e modalità di adattamento}\label{sec:overview}\secidx{Panoramica delle opzioni (chemmacros)}[Panoramica delle opzioni]
-\minisec{Opzioni}
-Nella tabella seguente sono elencate tutte le opzioni disponibili in \chemmacros.
-Tutte le opzioni che appartengono ad un particolare modulo possono essere impostate
-tramite
-\begin{beschreibung}
- \Befehl{chemsetup}[<module>]{<options>} oppure
- \Befehl{chemsetup}{<module>/<options>}
-\end{beschreibung}
-Alcune opzioni possono essere richiamate senza assegnargli un valore; in tal caso
-verrà utilizzato il valore \default{sottolineato}. Le opzioni dei moduli
-\code{\textcolor{module}{chemformula}} e \code{\textcolor{module}{ghssystem}} non
-sono elencate a parte.
-\small
-\begin{longtable}{>{\ttfamily\color{key}\hspace{5mm}}l>{\ttfamily\color{module}}l>{\ttfamily}l>{\ttfamily}ll}
- \toprule
- \normalfont\normalcolor\bfseries opzione &
- \normalfont\normalcolor\bfseries modulo &
- \normalfont\bfseries valori &
- \normalfont\bfseries default & \\
- \midrule
- \endhead
- \bottomrule
- \endfoot
- \multicolumn{5}{l}{opzioni globali:} \\
- bpchem & option & \default{true}|false & false & pagina \pageref{key:option_bpchem} \\
- circled & option & \default{formal}|all|none & formal & pagina \pageref{key:option_circled} \\
- circletype & option & chem|math & chem & pagina \pageref{key:option_circletype} \\
- cmversion & option & 1|2|bundle & bundle & pagina \pageref{key:option_cmversion} \\
- ghsystem & option & \default{true}|false & true & pagina \pageref{key:option_ghsystem} \\
- iupac & option & auto|restricted|strict & auto & pagina \pageref{key:option_iupac} \\
- language & option & <language> & english & pagina \pageref{key:option_language} \\
- method & option & chemformula|mhchem & chemformula & pagina \pageref{key:option_method} \\
- Nu & option & chemmacros|mathspec & chemmacros & pagina \pageref{key:option_Nu} \\
- strict & option & \default{true}|false & false & pagina \pageref{key:option_strict} \\
- synchronize & option & \default{true}|false & false & pagina \pageref{key:option_synchronize} \\
- greek & option & math|textgreek|\default{upgreek} & upgreek & pagina \pageref{key:option_greek} \\
- xspace & option & \default{true}|false & true & pagina \pageref{key:option_xspace} \\
- \multicolumn{5}{l}{\cmd{ba}, \cmd{Nu}:} \\
- elpair & particle & \default{dots}|dash|false & false & pagina \pageref{key:particle_elpair} \\
- \multicolumn{5}{l}{comandi IUPAC:} \\
- break-space & iupac & <dim> & .01em & pagina \pageref{key:iupac_break-space} \\
- bridge-number & iupac & sub|super & sub & pagina \pageref{key:iupac_bridge-number} \\
- cip-kern & iupac & <dim> & .075em & pagina \pageref{key:iupac_cip-kern} \\
- coord-use-hyphen & iupac & \default{true}|false & true & pagina \pageref{key:iupac_coord-use-hyphen} \\
- hyphen-pre-space & iupac & <dim> & .01em & pagina \pageref{key:iupac_hyphen-pre-space} \\
- hyphen-post-space & iupac & <dim> & -.03em & pagina \pageref{key:iupac_hyphen-post-space} \\
- \multicolumn{5}{l}{\cmd{DeclareChemLatin}:} \\
- format & latin & <anything> & \lstinline=\itshape= & pagina \pageref{key:latin_format} \\
- \multicolumn{5}{l}{\cmd{pch}, \cmd{mch}, \cmd{fpch}, \cmd{fmch}:} \\
- append & charges & \default{true}|false & false & pagina \pageref{key:charges_append} \\
- \multicolumn{5}{l}{acido/base:} \\
- p-style & acid-base & slanted|italics|upright & upright & pagina \pageref{key:acid-base_p-style} \\
- \multicolumn{5}{l}{\cmd{ox}:} \\
- align & ox & center|right & center & pagina~\pageref{key:ox_align} \\
- parse & ox & \default{true}|false & true & pagina \pageref{key:ox_parse} \\
- roman & ox & \default{true}|false & true & pagina \pageref{key:ox_roman} \\
- pos & ox & top|super|side & top & pagina \pageref{key:ox_pos} \\
- explicit-sign & ox & \default{true}|false & false & pagina \pageref{key:ox_explicit-sign} \\
- decimal-marker & ox & comma|point & point & pagina \pageref{key:ox_decimal-marker} \\
- align & ox & center|right & center & pagina \pageref{key:ox_align}\\
- \multicolumn{5}{l}{\cmd{OX}, \cmd{redox}:} \\
- dist & redox & <dim> & .6em & pagina \pageref{key:redox_dist} \\
- sep & redox & <dim> & .2em & pagina \pageref{key:redox_sep} \\
- \multicolumn{5}{l}{\cmd{Enthalpy}, \cmd{Entropy}, \cmd{Gibbs}:} \\
- exponent & & <anything> & \cmd{standardstate} & pagina \pageref{key:none_exponent} \\
- delta & & <anything>|false & & pagina \pageref{key:none_delta} \\
- subscript & & left|right & & pagina \pageref{key:none_subscript} \\
- unit & & <unit> & & pagina \pageref{key:none_unit} \\
- \multicolumn{5}{l}{\cmd{DeclareChemState}, \cmd{RenewChemState}:} \\
- exponent & & <anything> & \cmd{standardstate} & pagina \pageref{key:none_exponent} \\
- delta & & <anything>|false & & pagina \pageref{key:none_delta} \\
- subscript & & <anything> & & pagina \pageref{key:none_subscript} \\
- subscript-left & & \default{true}|false & & pagina \pageref{key:none_subscript-left} \\
- \multicolumn{5}{l}{\cmd{State}:} \\
- exponent & state & <anything> & \cmd{standardstate} & pagina \pageref{key:state_exponent} \\
- delta & state & <anything>|false & & pagina \pageref{key:state_delta} \\
- subscript-left & state & \default{true}|false & & pagina \pageref{key:state_subscript-left} \\
- \multicolumn{5}{l}{\cmd{NMR}, \env{spectroscopy}{}:} \\
- unit & nmr & <unit> & \cmd{mega}\cmd{hertz} & pagina \pageref{key:nmr_unit} \\
- nucleus & nmr & \{<num>,<atom symbol>\} & \{1,H\} & pagina \pageref{key:nmr_nucleus} \\
- format & nmr & <anything> & & pagina \pageref{key:nmr_format} \\
- pos-number & nmr & side|sub & side & pagina \pageref{key:nmr_pos-number} \\
- coupling-unit & nmr & <unit> & \lstinline+\hertz+ & pagina \pageref{key:nmr_coupling-unit} \\
- parse & nmr & \default{true}|false & true & pagina \pageref{key:nmr_parse} \\
- delta & nmr & <anything> & & pagina \pageref{key:nmr_delta} \\
- list & nmr & \default{true}|false & false & pagina \pageref{key:nmr_list} \\
- list-setup & nmr & & (vedi il testo) & pagina \pageref{key:nmr_list-setup} \\
- use-equal & nmr & \default{true}|false & false & pagina \pageref{key:nmr_use-equal} \\
- \multicolumn{5}{l}{\cmd{DeclareChemReaction}:} \\
- star & & \default{true}|false & false & pagina \pageref{key:none_star} \\
- arg & & \default{true}|false & false & pagina \pageref{key:none_arg} \\
- list-name & reaction & <anything> & Elenco delle reazioni & pagina \pageref{key:reaction_list-name} \\
- list-entry & reaction & <anything> & Reazione & pagina \pageref{key:reaction_list-entry} \\
- \multicolumn{5}{l}{\cmd{mhName}:} \\
- align & mhName & <alignment> & \cmd{centering} & pagina \pageref{key:mhName_align} \\
- format & mhName & <commands> & & pagina \pageref{key:mhName_format} \\
- fontsize & mhName & <fontsize> & \cmd{tiny} & pagina \pageref{key:mhName_fontsize} \\
- width & mhName & <dim> & auto & pagina \pageref{key:mhName_width} \\
- \multicolumn{5}{l}{fasi:} \\
- pos & phases & side|sub & side & pagina \pageref{key:phases_pos} \\
- space & phases & <dim> & .1333em & pagina \pageref{key:phases_space} \\
- \multicolumn{5}{l}{\cmd{newman}:} \\
- angle & newman & <angle> & 0 & pagina \pageref{key:newman_angle} \\
- scale & newman & <factor> & 1 & pagina \pageref{key:newman_scale} \\
- ring & newman & <tikz> & & pagina \pageref{key:newman_ring} \\
- atoms & newman & <tikz> & & pagina \pageref{key:newman_atoms} \\
- back-atoms & newman & <tikz> & & pagina \pageref{key:newman_back-atoms} \\
- \multicolumn{5}{l}{\cmd{orbital} \ttfamily <type> = s|p|sp|sp2|sp3:} \\
- phase & orbital/<type> & +|- & + & pagina \pageref{key:orbital_phase} \\
- scale & orbital/<type> & <factor> & 1 & pagina \pageref{key:orbital_scale} \\
- color & orbital/<type> & <color> & black & pagina \pageref{key:orbital_color} \\
- angle & orbital/<type> & <angle> & 90 & pagina \pageref{key:orbital_angle} \\
- half & orbital/p & \default{true}|false & false & pagina \pageref{key:orbital_half} \\
- overlay & orbital & \default{true}|false & false & pagina \pageref{key:orbital_overlay} \\
- opacity & orbital & <num> & 1 & pagina \pageref{key:orbital_opacity}
-\end{longtable}
-\normalsize
-
-\minisec{Comandi di personalizzazione}
-È stata presentata una serie di comandi che mostrano le possibilità di adattare
-\chemmacros. Vengono elencati nuovamente qui sotto.
-\begin{beschreibung}
- \befehl{DeclareChemArrow} Definisce una nuova freccia; vedi a
- pagina~\pageref{cmd:DeclareChemArrow}.
- \befehl{RenewChemArrow} Modifica una freccia già esistente.
- \befehl{DeclareChemBond} Definisce un nuovo legame; vedi a
- pagina~\pageref{cmd:DeclareChemBond}.
- \befehl{RenewChemBond} Ridefinisce un legame.
- \befehl{DeclareChemBondAlias} Definisce un alias per un legame esistente.
- \befehl{DeclareChemIUPAC} Definisce un nuovo comando IUPAC; vedi a
- pagina~\pageref{cmd:DeclareChemIUPAC}.
- \befehl{RenewChemIUPAC} Ridefinisce un comando IUPAC.
- \befehl{DeclareChemLatin} Definisce un nuovo termine latino; vedi a
- pagina~\pageref{cmd:DeclareChemLatin}.
- \befehl{RenewChemLatin} Ridefinisce un termine latino.
- \befehl{DeclareChemNMR} Definisce un nuovo comando NMR; vedi a
- pagina~\pageref{cmd:DeclareChemNMR}.
- \befehl{RenewChemNMR} Ridefinisce un comando NMR.
- \befehl{DeclareChemParticle} Definisce una nuova particella; vedi a
- pagina~\pageref{cmd:DeclareChemParticle}.
- \befehl{RenewChemParticle} Ridefinisce una particella.
- \befehl{DeclareChemPhase} Definisce un nuovo comando di fase; vedi a
- pagina~\pageref{cmd:DeclareChemPhase}.
- \befehl{RenewChemPhase} Ridefinisce un comando di fase.
- \befehl{DeclareChemReaction} Definisce un nuovo ambiente di reazione; vedi a
- pagina~\pageref{cmd:DeclareChemReaction}.
- \befehl{DeclareChemState} Definisce una nuova grandezza di stato; vedi a
- pagina~\pageref{cmd:DeclareChemState}.
- \befehl{RenewChemState} Ridefinisce una grandezza di stato.
-\end{beschreibung}
-\secidx*{Panoramica delle opzioni (chemmacros)}[Panoramica delle opzioni]
-
-\addsec{Suggerimenti e avvisi di bug}
-Ogni feedback riguardante \chemmacros, \chemformula e \ghsystem è il benvenuto!
-Se avete proposte, se mancano delle funzionalità oppure vengono notati dei bug,
-non esitate a contattarmi. Se trovate degli errori, siano essi di natura chimica,
-di documentazione sbagliata ecc.\ sarei grato di una breve e-mail%
-\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}}.
-
-Se trovate un bug, sarebbe il meglio mandarmi un esempio minimale con cui sia possibile
-riprodurre il bug. È anche possibile segnalaro come \enquote{Issue} su
-\url{https://bitbucket.org/cgnieder/chemmacros/}.
-
-Ringrazio tanto anche tutti coloro da cui ho già avuto segnalazioni, in particolare
-(in ordine alfabetico):
-\begin{itemize}
- \item Peter Cao
- \item Christina Lüdigk
- \item Dr.\ Paul King
- \item Jonas Rivetti (traduzione delle frasi H e P in italiano; molte grazie anche
- per la traduzione del manuale!)
- \item Christoph Schäfer
- \item Timo Stein
-\end{itemize}
-
-\printbibliography
-
-{\catcode`\^=11 \catcode`\#=11 \catcode`\|=11
-\printindex}
-
-\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.pdf
new file mode 100644
index 00000000000..eefcfbf083a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.tex b/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.tex
new file mode 100644
index 00000000000..9ca8cd2b3d7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.tex
@@ -0,0 +1,663 @@
+% arara: xelatex
+% !arara: biber
+% !arara: xelatex
+% !arara: xelatex
+\documentclass[DIV11,toc=index,toc=bib]{cnpkgdoc}
+\docsetup{
+ pkg = {[greek=newtx]chemmacros} ,
+ language = en,
+ title = the \Chemmacros\ bundle,
+ subtitle = {
+ packages \Chemmacros\ (v\csname chemmacros@version\endcsname),
+ \Chemformula\ (v\csname chemformula@version\endcsname),
+ \Ghsystem\ (v\csname ghsystem@version\endcsname) and
+ \Chemgreek\ (v\csname chemgreek@version\endcsname)\\[2ex]
+ {\Large documentation for the \Ghsystem\ package}},
+ modules = true,
+ code-box = {skipabove=1ex,skipbelow=1ex},
+ label = {},
+ name = ghsystem ,
+ url = https://bitbucket.org/cgnieder/chemmacros/
+}
+\usepackage{booktabs,cancel}
+\usepackage{fontspec}
+\usepackage[oldstyle,proportional]{libertine}
+\usepackage[libertine]{newtxmath}
+\usepackage{libertinehologopatch}
+\setmonofont[Scale=MatchLowercase]{Bitstream Vera Sans Mono}
+
+\cnpkgusecolorscheme{friendly}
+\renewcommand*\othersectionlevelsformat[3]{%
+ \textcolor{main}{#3\autodot}\enskip}
+\renewcommand*\partformat{%
+ \textcolor{main}{\partname~\thepart\autodot}}
+
+\usepackage{fnpct}
+\usepackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\pagestyle{headings}
+
+\usepackage[accsupp]{acro}
+\acsetup{
+ long-format=\scshape,
+ short-format=\scshape
+}
+\DeclareAcronym{ghs}{
+ short = ghs ,
+ long = Globally Harmonized System of Classification and Labelling of
+ Chemicals ,
+ pdfstring = GHS ,
+ accsupp = GHS
+}
+\DeclareAcronym{eu}{
+ short = eu ,
+ long = European Union ,
+ pdfstring = EU ,
+ accsupp = EU ,
+}
+\DeclareAcronym{iupac}{
+ short = iupac ,
+ long = International Union of Pure and Applied Chemistry ,
+ pdfstring = IUPAC ,
+ accsupp = IUPAC
+}
+\DeclareAcronym{UN}{
+ short = un ,
+ long = United Nations ,
+ pdfstring = UN ,
+ accsupp = UN
+}
+\DeclareAcronym{dvi}{
+ short = dvi ,
+ long = device independent file format ,
+ pdfstring = DVI ,
+ accsupp = DVO
+}
+\DeclareAcronym{pdf}{
+ short = pdf ,
+ long = portable document file ,
+ pdfstring = PDF ,
+ accsupp = PDF
+}
+
+\chemsetup{
+ option/synchronize ,
+ chemformula/font-spec={[Numbers=Lining]Linux Libertine O}
+}
+\colorlet{chemformula}{darkgray}
+
+\sisetup{
+ detect-mode=false,
+ mode=text,
+ text-rm=\addfontfeatures{Numbers={Proportional,Lining}}
+}
+
+\usepackage{filecontents}
+
+\begin{filecontents*}{\jobname.ist}
+ preamble "\\begin{theindex}\n Section titles are indicated \\textbf{bold},
+ packages \\textsf{sans serif}, commands \\code{\\textbackslash\\textcolor{code}{brown}},
+ options \\textcolor{key}{\\code{yellow}} and modules (only \\chemmacros)
+ \\textcolor{module}{\\code{blue}}.\\newline\n\n"
+ heading_prefix "{\\bfseries "
+ heading_suffix "\\hfil}\\nopagebreak\n"
+ headings_flag 1
+ delim_0 "\\dotfill\\hyperpage{"
+ delim_1 "\\dotfill\\hyperpage{"
+ delim_2 "\\dotfill\\hyperpage{"
+ delim_r "}\\textendash\\hyperpage{"
+ delim_t "}"
+ suffix_2p "\\nohyperpage{\\,f.}"
+ 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ürgen Stohner and Herbert L. Strauss and
+ Michio Takami and Anders J Thor},
+ title = {“Quantities, Symbols and Units in Physical Chemistry”, \acs{iupac}
+ Green Book},
+ edition = {3rd Edition. 2nd Printing},
+ year = {2008},
+ publisher = {\acs{iupac} \&\ RSC Publishing, Cambridge}
+}
+@book{iupac:redbook,
+ author = {Neil G. Connelly and Ture Damhus and Richard M. Hartshorn and
+ Alan T. Hutton},
+ title = {“Nomenclature of Inorganic Chemistry”, \acs{iupac} Red Book},
+ year = {2005},
+ publisher = { \acs{iupac} \&\ RSC Publishing, Cambridge},
+ isbn = {0-85404-438-8}
+}
+@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}
+}
+@online{unece:ghsystem_implementation,
+ author = {United Nations Economic Commission for Europe},
+ title = {GHS Implementation},
+ url = {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html},
+ urldate = {2012-03-20},
+ date = {2012-03-20}
+}
+\end{filecontents*}
+
+\DeclareInstance{xfrac}{chemformula-text-frac}{text}
+ {
+ scale-factor = 1 ,
+ denominator-bot-sep = -.2ex ,
+ denominator-format = \scriptsize #1 ,
+ numerator-top-sep = -.2ex ,
+ numerator-format = \scriptsize #1 ,
+ slash-right-kern = .05em ,
+ slash-left-kern = .05em
+ }
+
+\usetikzlibrary{calc,positioning,decorations.pathmorphing,patterns}
+
+\pgfdeclaredecoration{penciline}{initial}{
+ \state{initial}[
+ width=+\pgfdecoratedinputsegmentremainingdistance,
+ auto corner on length=1mm
+ ]{
+ \pgfpathcurveto%
+ {% From
+ \pgfqpoint
+ {\pgfdecoratedinputsegmentremainingdistance}
+ {\pgfdecorationsegmentamplitude}
+ }
+ {% Control 1
+ \pgfmathrand
+ \pgfpointadd
+ {\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
+ {%
+ \pgfqpoint
+ {-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}%
+ {\pgfmathresult\pgfdecorationsegmentamplitude}
+ }
+ }
+ {%TO
+ \pgfpointadd
+ {\pgfpointdecoratedinputsegmentlast}
+ {\pgfpoint{1pt}{1pt}}
+ }
+ }
+ \state{final}{}
+}
+\tikzset{pencil/.style={decorate,decoration=penciline}}
+
+\TitlePicture{%
+ \ch[font-spec={Augie}]{
+ 2 "\OX{o1,\ox{0,Na}}" + "\OX{r1,\ox{0,Cl}}" {}2
+ ->
+ 2 "\OX{o2,\ox{+1,Na}}" {}+ + 2 "\OX{r2,\ox{-1,Cl}}" {}-
+ }
+ \redox(o1,o2)[red,pencil,-cf]{\small\ch[font-spec={[Color=red]Augie},math-space=.3em]{$-$ 2 e-}}
+ \redox(r1,r2)[blue,pencil,-cf][-1]{\small\ch[font-spec={[Color=blue]Augie},math-space=.3em]{$+$ 2 e-}}}
+
+\addcmds{
+ a, abinitio, AddRxnDesc, anti, aq, aqi,
+ b, ba, bond, bottomrule, bridge,
+ cancel, cd, cdot, ce, cee, celsius, centering, changechemgreeksymbol,
+ chemabove, Chemalpha, Chembeta, Chemgamma, ChemGamma, Chemdelta,
+ ChemDelta, chemfig, chemname, Chemomega, Chemphi, ChemPhi, chemsetup, cip,
+ cis, ch, clap, cnsetup, CNMR, color, cstack,
+ cstsetup,
+ d, D, data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias,
+ DeclareChemIUPAC, DeclareChemLatin, DeclareChemNMR, DeclareChemParticle,
+ DeclareChemPhase, DeclareChemReaction, DeclareChemState, DeclareInstance,
+ DeclareSIUnit, definecolor, delm, delp, Delta, Dfi, draw,
+ E, el, electronvolt, ElPot, endo, Enthalpy, enthalpy, Entropy,
+ footnotesize, fmch, fpch, fscrm, fscrp,
+ g, gas, ghs, ghslistall, ghspic, Gibbs, glqq, gram, grqq,
+ H, hapto, HNMR, Helmholtz, hertz, hspace,
+ includegraphics, insitu, intertext, invacuo, iupac, IUPAC,
+ J, joule,
+ Ka, Kb, kilo, Kw,
+ L, latin, lewis, Lewis, Lfi, listofreactions, lqd, ltn,
+ mch, mega, meta, metre, mhName, midrule, milli, mmHg, mole,
+ N, nano, nicefrac, newchemgreekmapping, newman, NMR, Nu, Nuc, num, numrange,
+ O, ominus, orbital, ortho, oplus, ox, OX,
+ p, P, para, pch, per, percent, pgfarrowsdeclarealias, pgfarrowsrenewalias,
+ pH, phase, phi, Phi, photon, pKa, pKb, pOH, pos, positron, Pot, prt,
+ R, Rad, redox, RenewChemArrow, RenewChemBond, RenewChemIUPAC,
+ RenewChemLatin, RenewChemNMR, RenewChemParticle, RenewChemPhase,
+ RenewChemState, renewtagform, rightarrow,
+ S, Sf, sample, scriptscriptstyle, scrm, scrp, second,
+ selectchemgreekmapping, setatomsep, setbondoffset, setchemformula, sfrac,
+ shorthandoff, ShowChemArrow, ShowChemBond, si, SI, sisetup, sld, Sod,
+ square, State, subsection,
+ textcolor, textendash, textsuperscript, tiny, toprule, trans,
+ upbeta, upeta, upgamma, upphi, upPhi, Upphi,
+ val, volt, vphantom, vspave,
+ w, xspace, Z
+}
+
+\usepackage{imakeidx}
+\indexsetup{othercode=\footnotesize}
+\makeindex[columns=3,intoc,options={-sl \jobname.ist}]
+
+\newcommand*\Chemmacros{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemmacros%
+ }%
+}
+\providecommand*\chemmacros{{\scshape\textcolor{main}{chemmacros}}\xspace}
+
+\newcommand*\Chemformula{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemformula%
+ }%
+}
+\providecommand*\chemformula{{\scshape\textcolor{main}{chemformula}}\xspace}
+
+\newcommand*\Ghsystem{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ ghsystem%
+ }%
+}
+\providecommand*\ghsystem{{\scshape\textcolor{main}{ghsystem}}\xspace}
+
+\newcommand*\Chemgreek{%
+ {%
+ \fontspec[Color=main,Scale=1.2]
+ {Linux Biolinum Shadow O}%
+ chemgreek%
+ }%
+}
+\providecommand*\chemgreek{{\scshape\textcolor{main}{chemgreek}}\xspace}
+
+\renewcommand*\AmS{\hologo{AmS}}
+
+\newcommand*\Default[1]{%
+ \hfill\llap{%
+ \ifblank{#1}
+ {(initially~empty)}
+ {Default:~\code{#1}}%
+ }\newline
+}
+
+\usepackage{marginnote,ragged2e}
+\makeatletter
+\providecommand*\sinceversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Introduced in version~#1}}%
+ \@esphack}
+\providecommand*\changedversion[1]{%
+ \@bsphack
+ \marginnote{%
+ \footnotesize\sffamily\RaggedRight
+ \textcolor{black!75}{Changed in version~#1}}%
+ \@esphack}
+
+\RenewDocumentCommand\CTANurl{O{macros/latex/contrib}m}
+ {%
+ on CTAN: %
+ \hyper@linkurl{#2}{http://mirrors.ctan.org/#1/#2/}%
+ }
+\ExplSyntaxOn
+\RenewDocumentCommand \paket { sO{macros/latex/contrib}m }
+ {
+ \paketfont { #3 }
+ \index { #3 @ \paketfont { #3 } }
+ \prop_if_in:NnF \g_cnpkgdoc_pakete_prop { #3 }
+ {
+ \prop_gput:Nnn \g_cnpkgdoc_pakete_prop { #3 } {}
+ \IfBooleanF { #1 }
+ { \footnote { \CTANurl[]{#3} } }
+ }
+ }
+\ExplSyntaxOff
+\makeatother
+
+\newcommand*\tablehead[1]{\textrm{\bfseries#1}}
+
+\begin{document}
+
+\section{Introduction}
+As a chemist you are probably aware of the fact that the \acl{UN} have
+developed the \ac{ghs} as a global replacement for the various different
+systems in different countries. While it has not been implemented by all
+countries yet~\cite{unece:ghsystem_implementation}, it is 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 statements
+are taken from \acs{eu} regulation 1272/2008~\cite{eu:ghsystem_regulation}.
+
+\section{Licence and Requirements}
+Permission is granted to copy, distribute and/or modify this software under
+the terms of the \LaTeX\ project public license (lppl) version 1.3 or later
+(\url{http://www.latex-project.org/lppl.txt}). The package has the status
+``maintained.''
+
+\ghsystem\ loads the following packages:
+\paket*{expl3}\footnote{\CTANurl{l3kernel}}, \paket*{xparse} and
+\paket*{l3keys2e}\footnote{\CTANurl{l3packages}}, \paket*{translations} (from
+the \paket{exsheets} bundle), \paket{siunitx}, \paket{graphicx},
+\paket{longtable} and \paket{ifpdf}.
+
+\section{Setup}
+The simplest way is to load \chemmacros\ which loads \ghsystem\ implicitily.
+All of \ghsystem's options belong to the module
+\textcolor{module}{\code{ghsystem}}. This means they can be setup with
+\begin{beispiel}[code only]
+ \chemsetup[ghsystem]{<options>} or
+ \chemsetup{ghsystem/<option1>,ghsystem/<option2>}
+\end{beispiel}
+\sinceversion{4.0}However, \ghsystem\ can be loaded as a standalone package
+and thus provides its own setup command:
+\begin{beschreibung}
+ \Befehl{ghssystem}{<options>}
+\end{beschreibung}
+
+\section{Get Hazard and Precautionary Statements}\secidx{Hazard and Precautionary Statements}
+\subsection{Simple Statements}\secidx[get statements]{GHSYSTEM}
+The general usage is simple: you use the command
+\begin{beschreibung}
+ \Befehl{ghs}*[<options>]{<type>}\ma{<number>}
+\end{beschreibung}
+There are three types available: \code{h}, \code{euh} and \code{p}. The
+\ma{<type>} argument is case insensitive, so just type them in as you like.
+\begin{beispiel}
+ \ghs{h}{200} \\
+ \ghs{H}{224} \\
+ \ghs{euh}{001} \\
+ \ghs{Euh}{202} \\
+ \ghs{p}{201}
+\end{beispiel}
+
+The starred version hides the identifier and only gives the statement. If you
+want to hide the statement itself instead you can use the option:
+\begin{beschreibung}
+ \Option{hide}{\default{true}|false}\Default{false}
+ Hide the statement.
+\end{beschreibung}
+
+There is an option to customize the output, too.
+\begin{beschreibung}
+ \Option{space}{<space command>}\Default{}
+ Space between \code{<type>} and \code{<number>}.
+\end{beschreibung}
+\begin{beispiel}
+ \ghs{h}{200} \\
+ \ghs[space=\,]{h}{200} \\
+ \ghs*{h}{200} \\
+ \ghs[hide]{h}{200}
+\end{beispiel}
+
+\subsection{Statements with Placeholders}\secidx[statements with placeholders]{GHSYSTEM}
+Some of the statements contain placeholders. They can be one of the
+following:
+\begin{itemize}
+ \item \textit{\textless state route of exposure if it is conclusively proven that
+ no other routes of exposure cause the hazard\textgreater}
+ \item \textit{\textless state specific effect if known\textgreater}
+ \item \textit{\textless or state all organs affected, if known\textgreater}
+ \item \textit{\textless name of sensitising substance\textgreater}
+\end{itemize}
+
+Except the last one which needs to be filled in, they are hidden per default.
+They can be made visible with the option
+\begin{beschreibung}
+ \Option{fill-in}{\default{true}|false}\Default{false}
+ Show placeholders.
+\end{beschreibung}
+\begin{beispiel}[below]
+ \ghs{h}{340} \\
+ \ghs[fill-in]{h}{340} \\
+ \ghs{h}{360} \\
+ \ghs[fill-in]{h}{360} \\
+ \ghs{h}{370} \\
+ \ghs[fill-in]{h}{370} \\
+ \ghs{euh}{208} \\
+ \ghs[fill-in]{euh}{208}
+\end{beispiel}
+
+These placeholders can be replaced with one of these options:
+\begin{beschreibung}
+ \Option{exposure}{<text>}\Default{}
+ exposure placeholder
+ \Option{effect}{<text>}\Default{}
+ effect placeholder
+ \Option{organs}{<text>}\Default{}
+ organ placeholder
+ \Option{substance}{<text>}\Default{}
+ substance placeholder
+\end{beschreibung}
+\begin{beispiel}
+ \ghs[exposure=This is how you get exposed.]{h}{340} \\
+ \ghs[effect=These are the effects.]{h}{360} \\
+ \ghs[organs=to this organ]{h}{370} \\
+ \ghs[substance=substance]{euh}{208}
+\end{beispiel}
+
+\subsection{Statements with Gaps}\secidx[statements with gaps]{GHSYSTEM}
+Some of the statements have gaps that can be filled.
+\begin{beispiel}
+ \ghs{p}{301} \\
+ \ghs{p}{401} \\
+ \ghs{p}{411} \\
+ \ghs{p}{413}
+\end{beispiel}
+
+These gaps can be filled using these options:
+\begin{beschreibung}
+ \Option{text}{<text>}
+ \Option{dots}{<text>}
+ \Option{C-temperature}{<num>}
+ \Option{F-temperature}{<num>}
+ \Option{kg-mass}{<num>}
+ \Option{lbs-mass}{<num>}
+\end{beschreibung}
+\begin{beispiel}
+ \ghs[text=contact physician!]{p}{301} \\
+ \ghs[dots=here]{p}{401} \\
+ \ghs[C-temperature=50, F-temperature=122]{p}{411} \\
+ \ghs[kg-mass=5.0, lbs-mass=11, C-temperature=50, F-temperature=122]{p}{413}
+\end{beispiel}
+
+\subsection{Combined Statements}\secidx[combined statements]{GHSYSTEM}
+There are some combinations of statements. They are input with a \code{+}
+between the numbers:
+\begin{beispiel}[below]
+ \ghs{p}{235+410} \\
+ \ghs{p}{301+330+331}
+\end{beispiel}
+
+Note that you can only get combinations that officially exist. \emph{You
+ can't combine freely}.
+\secidx*{Hazard and Precautionary Statements}
+
+\section{Pictograms}\secidx{Pictograms}
+\subsection{The Pictures}
+The \ac{ghs} defines a number of pictograms:
+
+\ghspic{explos} \ghspic{flame} \ghspic{flame-O} \ghspic{bottle} \ghspic{acid}
+\ghspic{skull} \ghspic{exclam} \ghspic{health} \ghspic{aqpol}
+
+The command
+\begin{beschreibung}
+ \Befehl{ghspic}[<options>]{<name>}
+\end{beschreibung}
+loads them. Table~\ref{tab:ghs_pictograms} shows all available pictograms and
+their names. To be more precise: it shows the names to use with the
+\cmd{ghspic} command. The file names are
+\lstinline=ghsystem_<name>.<filetype>= where \code{<filetype>} is \code{eps},
+\code{pdf}, \code{jpg} or \code{png}, see also
+section~\ref{ssec:picture_type}.
+\begin{beispiel}
+ \ghspic{skull}
+\end{beispiel}
+
+If you don't like the default size you can change it using this option:
+\begin{beschreibung}
+ \Option{scale}{<factor>}\Default{1}
+ Scales the pictogram.
+\end{beschreibung}
+The pictures are actually quite large. The default setting scales them by a
+factor
+of $\frac{1}{20}$.
+\begin{beispiel}
+ \ghspic[scale=2]{skull}
+\end{beispiel}
+
+If you want to use some specific \lstinline=\includegraphics= options, \eg, if
+you want to rotate the pictogram for some reason, use this option:
+\begin{beschreibung}
+ \Option{includegraphics}{\{<includegraphics keyvals>\}}
+\end{beschreibung}
+\begin{beispiel}
+ \ghspic[includegraphics={angle=90}]{skull}
+\end{beispiel}
+
+\begin{longtable}{>{\ttfamily}ll>{\ttfamily}ll}
+ \caption{All available \ac{ghs} pictograms.\label{tab:ghs_pictograms}} \\
+ \toprule
+ \normalfont\bfseries name & \bfseries pictogram & \normalfont\bfseries name & \bfseries pictogram \\
+ \midrule\endfirsthead
+ \toprule
+ \normalfont\bfseries name & \bfseries pictogram & \normalfont\bfseries name & \bfseries pictogram \\
+ \midrule\endhead
+ \bottomrule\endfoot
+ explos & \ghspic{explos} & explos-1 & \ghspic{explos-1} \\
+ explos-2 & \ghspic{explos-2} & explos-3 & \ghspic{explos-3} \\
+ explos-4 & \ghspic{explos-4} & explos-5 & \ghspic{explos-5} \\
+ explos-6 & \ghspic{explos-6} & & \\
+ flame & \ghspic{flame} & flame-2-white & \ghspic{flame-2-white} \\
+ flame-2-black & \ghspic{flame-2-black} & flame-3-white & \ghspic{flame-3-white} \\
+ flame-3-black & \ghspic{flame-3-black} & flame-4-1 & \ghspic{flame-4-1} \\
+ flame-4-2 & \ghspic{flame-4-2} & flame-4-3-white & \ghspic{flame-4-3-white} \\
+ flame-4-3-black & \ghspic{flame-4-3-black} & flame-5-2-white & \ghspic{flame-5-2-white} \\
+ flame-5-2-black & \ghspic{flame-5-2-black} & & \\
+ flame-O & \ghspic{flame-O} & flame-O-5-1 & \ghspic{flame-O-5-1} \\
+ bottle & \ghspic{bottle} & bottle-2-black & \ghspic{bottle-2-white} \\
+ bottle-2-white & \ghspic{bottle-2-black} & & \\
+ acid & \ghspic{acid} & acid-8 & \ghspic{acid-8} \\
+ skull & \ghspic{skull} & skull-2 & \ghspic{skull-2} \\
+ skull-6 & \ghspic{skull-6} & & \\
+ exclam & \ghspic{exclam} & & \\
+ health & \ghspic{health} & & \\
+ aqpol & \ghspic{aqpol} & & \\
+\end{longtable}
+
+\subsection{Picture Type Depending on Engine}\label{ssec:picture_type}
+As you probably know you can't use every picture type with every compiler
+engine. \pdfTeX{} in \acs{dvi} mode \emph{needs} \code{eps} pictures while
+\pdfTeX{} in \acs{pdf} mode, \XeTeX{} and \LuaTeX{} convert \code{eps}
+pictures into \code{pdf} files, given they have the rights to write in the
+directory the pictures are saved in.
+
+However, the latter can include \code{jpg} and \code{png} without any
+problems, while \pdfTeX{} in \acs{dvi} mode can't.
+
+To resolve this \ghsystem tests which engine is used and if \pdfTeX{} which
+mode is used and then chooses either \code{eps} or \code{pdf} for the
+pictograms. You are free to choose the picture type yourself with the option
+\begin{beschreibung}
+ \Option{pic-type}{eps|pdf|jpg|png}
+\end{beschreibung}
+\secidx*{Pictograms}
+
+\section{Available Languages}\label{sec:ghsystem_language}
+Right now the H and P statements are only available in English, German or
+Italian. The package adapts \chemmacros' option \key[option]{language} or if
+the option hasn't been used recognizes the language settings made with
+\paket{babel} or \paket{polyglossia}. To be more precise: the language
+selected at begin document is recognized. Later changes won't affect
+\ghsystem. If you want to use different languages you have to use
+\ghsystem's language option then.
+
+You can also choose the language explicitly.
+\begin{beschreibung}
+ \Option{language}{english|german|italian}\Default{english}
+ Selects and loads language file. Falls back to \code{english} if the
+ chosen file doesn't exist.
+\end{beschreibung}
+\begin{beispiel}
+ \ghs{h}{201}
+
+ \chemsetup[ghsystem]{language=german}
+ \ghs{h}{201}
+\end{beispiel}
+
+% TODO: \loadghsystemlanguage
+
+I will add other languages some time in future. This may take a while,
+though. If you would be willing to contribute and write the statements of
+another language please feel free to contact
+me\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}}. I
+would provide you with a template file, a \acs{pdf} containing the official
+translations, and help to all your questions.
+
+\section{List of All Statements}\secidx{List of All Statements}
+If for some reason you want to list all sentences you can use
+\begin{beschreibung}
+ \Befehl{ghslistall}[<options>]
+\end{beschreibung}
+
+This command has a number of options to customize the table, which is created with
+the \lstinline=longtable= environment of the \paket{longtable} package.
+\begin{beschreibung}
+ \Option{table-head-number}{<text>}\Default{Identifier}
+ \Option{table-head-text}{<text>}\Default{Statement}
+ \Option{table-next-page}{<text>}\Default{continues on next page}
+ \Option{table-caption}{<text>}\Default{All H, EUH, and P Statements.}
+ As \code{<text>} in \lstinline=\caption{<text>}=.
+ \Option{table-caption-short}{<text>}\Default{}
+ As \code{<short>} in \lstinline=\caption[<short>]{<text>}=.
+ \Option{table-label}{<text>}\Default{tab:ghs-hp-statements}
+ The label to refer to the table with \lstinline=\ref= and similar
+ commands.
+ \Option{table-row-sep}{<dim>}\Default{3pt}
+ The separation of the table rows. A \TeX\ dimension.
+ \Option{table-rules}{\default{default}|booktabs|none}\Default{default}
+ The style of the horizontal rules in the table. \code{default} uses
+ \lstinline=\hline=, \code{booktabs} uses \lstinline=\toprule=,
+ \lstinline=\midrule= or \lstinline=\bottomrule=, resp. This option needs
+ the \paket{booktabs} package which you have to load yourself then.
+ \Option{table-top-head-rule}{\default{default}|booktabs|none}\Default{default}
+ Change top rule explicitly.
+ \Option{table-head-rule}{\default{default}|booktabs|none}\Default{default}
+ Change rule below head explicitly.
+ \Option{table-foot-rule}{\default{default}|booktabs|none}\Default{default}
+ Change foot rule explicitly.
+ \Option{table-last-foot-rule}{\default{default}|booktabs|none}\Default{default}
+ Change last foot rule explicitly.
+\end{beschreibung}
+
+The code below shows how table~\ref{tab:ghs-hp-statements} was created:
+\begin{beispiel}[code only]
+ \ghslistall[fill-in,table-rules=booktabs]
+\end{beispiel}
+
+\ghslistall[fill-in,table-rules=booktabs]
+\secidx*{List of All Statements}
+
+\appendix
+
+\printbibliography
+
+{\catcode`\^=11 \catcode`\#=11
+\printindex}
+
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemformula.sty b/Master/texmf-dist/tex/latex/chemmacros/chemformula.sty
index 12344325e7d..b29047b1e3d 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/chemformula.sty
+++ b/Master/texmf-dist/tex/latex/chemmacros/chemformula.sty
@@ -1,41 +1,86 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% --------------------------------------------------------------------------- %
-% - the CHEMMACROS bundle - %
-% - chemformula.sty - %
-% - macros and commands for chemists - %
-% --------------------------------------------------------------------------- %
-% - Clemens Niederberger - %
-% --------------------------------------------------------------------------- %
-% - https://bitbucket.org/cgnieder/chemmacros/ - %
-% - contact@mychemistry.eu - %
-% --------------------------------------------------------------------------- %
-% - If you have any ideas, questions, suggestions or bugs to report, please - %
-% - feel free to contact me. - %
-% --------------------------------------------------------------------------- %
-% - Copyright 2011-2013 Clemens Niederberger - %
-% - - %
-% - This work may be distributed and/or modified under the - %
-% - conditions of the LaTeX Project Public License, either version 1.3 - %
-% - of this license or (at your option) any later version. - %
-% - The latest version of this license is in - %
-% - http://www.latex-project.org/lppl.txt - %
-% - and version 1.3 or later is part of all distributions of LaTeX - %
-% - version 2005/12/01 or later. - %
-% - - %
-% - This work has the LPPL maintenance status `maintained'. - %
-% - - %
-% - The Current Maintainer of this work is Clemens Niederberger. - %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\RequirePackage{ chemmacros }
+% --------------------------------------------------------------------------
+% the CHEMMACROS bundle
+% chemformula.sty
+% macros and commands for chemists
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% --------------------------------------------------------------------------
+% https://bitbucket.org/cgnieder/chemmacros/
+% contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% Copyright 2011-2013 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\RequirePackage{ expl3 , xparse , l3keys2e , tikz , amsmath , xfrac , nicefrac , scrlfile }
+\usetikzlibrary{arrows}
+\def\chemformula@version{4.0}
+\def\chemformula@date{2013/07/06}
+
\ProvidesExplPackage
{chemformula}
- {\chemmacros@date}
- {\chemmacros@version}
+ {\chemformula@date}
+ {\chemformula@version}
{typeset chemical compounds and reactions}
-%-----------------------------------------------------------------------------%
-% WARNING AND ERROR MESSAGES
-\msg_set:nnnn { chemformula } { missing-argument }
+% --------------------------------------------------------------------------
+% check expl3 version:
+\@ifpackagelater { expl3 } { 2012/11/21 }
+ { }
+ {
+ \PackageError { chemformula } { Support~package~expl3~too~old }
+ {
+ You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
+ 'l3packages'.\MessageBreak
+ Loading~chemformula~will~abort!
+ }
+ \tex_endinput:D
+ }
+
+% --------------------------------------------------------------------------
+% warning and erroe messages:
+\cs_new_protected:Npn \chemformula_error:nnxx #1#2#3#4
+ {
+ \bool_if:NTF \l__chemformula_strict_bool
+ { \msg_error:nnxx { #1 } { #2 } { #3 } { #4 } }
+ { \msg_warning:nnxx { #1 } { #2 } { #3 } { #4 } }
+ }
+
+\cs_new_protected:Npn \chemformula_error:nn #1#2
+ {
+ \bool_if:NTF \l__chemformula_strict_bool
+ { \msg_error:nnxx { #1 } { #2 } }
+ { \msg_warning:nnxx { #1 } { #2 } }
+ }
+
+\cs_new_protected:Npn \chemformula_warning:nnxx #1#2#3#4
+ {
+ \bool_if:NTF \l__chemformula_strict_bool
+ { \msg_warning:nnxx { #1 } { #2 } { #3 } { #4 } }
+ { \msg_info:nnxx { #1 } { #2 } { #3 } { #4 } }
+ }
+
+\cs_new_protected:Npn \chemformula_warning:nn #1#2
+ {
+ \bool_if:NTF \l__chemformula_strict_bool
+ { \msg_warning:nn { #1 } { #2 } }
+ { \msg_info:nn { #1 } { #2 } }
+ }
+
+\msg_new:nnnn { chemformula } { missing-argument }
{
Wrong~name~input~ \msg_line_context: .
}
@@ -47,15 +92,7 @@
Either~way~-~I~don't~know~what~to~do~ \msg_line_context: .
}
-\msg_set:nnnn { chemformula } { explicit }
- { It~seems~you've~loaded~`chemformula'~explicitly. }
- {
- It~seems~you've loaded~`chemformula'~explicitly.~This~should~work~but~the~
- recommended~way~is~to~load~it~via~the~bundle,~i.e.~by~using~
- \token_to_str:N \usepackage \{ chemmacros \}.
- }
-
-\msg_set:nnnn { chemformula } { declare-arrow }
+\msg_new:nnnn { chemformula } { declare-arrow }
{
The~arrow~type~ \tl_to_str:n { #1 } \c_space_tl is~already~defined.
}
@@ -65,14 +102,14 @@
~Choose~another~name.
}
-\msg_set:nnnn { chemformula } { renew-arrow }
+\msg_new:nnnn { chemformula } { renew-arrow }
{ The~arrow~type~ \tl_to_str:n { #1 } \c_space_tl is~not~defined. }
{
You've~tried~to~renew~the~arrow~type~\tl_to_str:n { #1 } ~but~it~doesn't~
exist.
}
-\msg_set:nnnn { chemformula } { declare-bond }
+\msg_new:nnnn { chemformula } { declare-bond }
{
The~bond~type~ \tl_to_str:n { #1 } \c_space_tl is~already~defined.
}
@@ -82,34 +119,248 @@
~Choose~another~name.
}
-\msg_set:nnnn { chemformula } { renew-bond }
+\msg_new:nnnn { chemformula } { renew-bond }
{ The~bond~type~ \tl_to_str:n { #1 } \c_space_tl is~not~defined. }
{
You've~tried~to~renew~the~bond~type~\tl_to_str:n { #1 } ~but~it~doesn't~
exist.
}
-% --------------------------------------------------------------------------- %
-% scratch variables
+\msg_new:nnnn { chemformula } { stand-alone }
+ {
+ You're~using~`chemformula'~as~a~stand-alone~package~or~have~loaded~it~
+ before~you've~loaded~`chemmacros',~too.~Some~features~might~not~be~
+ provided!~Espacially~you~cannot~use~\token_to_str:N \chemsetup \c_space_tl
+ to~setup~your~formulae.
+ }
+ {
+ You're~using~`chemformula'~as~a~stand-alone~package~or~have~loaded~it~
+ before~you've~loaded~`chemmacros',~too.~Some~features~might~not~be~
+ provided!~Espacially~you~cannot~use~\token_to_str:N \chemsetup \c_space_tl
+ to~setup~your~formulae.
+ }
+
+\msg_new:nnnn { chemformula } { command-deprecated }
+ {
+ The~command~\token_to_str:N #1 \c_space_tl is~deprecated.~Use~
+ \token_to_str:N #2 \c_space_tl instead.
+ }
+ {
+ The~command~\token_to_str:N #1 \c_space_tl is~deprecated.~Use~
+ \token_to_str:N #2 \c_space_tl instead.
+ }
+
+\cs_new_protected:Npn \chemformula_define_deprecated:NNn #1#2#3
+ {
+ \cs_new_protected:Npn #1
+ {
+ \chemformula_error:nnxx { chemformula } { command-deprecated }
+ { #1 } { #2 }
+ #3
+ }
+ }
+
+\NewDocumentCommand \DeprecatedFormulaCommand { mmm }
+ { \chemformula_define_deprecated:NNn #1 #2 { #3 } }
+
+% --------------------------------------------------------------------------
+% variants of kernel functions:
+\cs_generate_variant:Nn \keys_set:nn { nV }
+\cs_generate_variant:Nn \tl_if_blank:nF { V }
+\cs_generate_variant:Nn \tl_if_in:nnT { x }
+\cs_generate_variant:Nn \prop_get:Nn { NV }
+\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV }
+
+% --------------------------------------------------------------------------
+% package options:
+\bool_new:N \l__chemformula_strict_bool
+\keys_define:nn { chemmacros / chemformula }
+ {
+ strict .bool_set:N = \l__chemformula_strict_bool ,
+ strict .default:n = true
+ }
+
+\ProcessKeysOptions{ chemmacros / chemformula }
+
+\AtBeginDocument
+ {
+ \@ifpackageloaded{ chemmacros }
+ {
+ \bool_if:NT \l_chemmacros_strict_bool
+ { \bool_set_true:N \l__chemformula_strict_bool }
+ }
+ {}
+ }
+
+% --------------------------------------------------------------------------
+% VARIABLES
+% temporary variables:
\tl_new:N \l__chemformula_tmpa_tl
\tl_new:N \l__chemformula_tmpb_tl
\tl_new:N \l__chemformula_tmpc_tl
+
\dim_new:N \l__chemformula_tmpa_dim
\dim_new:N \l__chemformula_tmpb_dim
+
\int_new:N \l__chemformula_tmpa_int
\int_new:N \l__chemformula_tmpb_int
+
\box_new:N \l__chemformula_tmpa_box
\box_new:N \l__chemformula_tmpb_box
-%-----------------------------------------------------------------------------%
-% gobble options
-\DeclareOption* { }
-\ProcessOptions \scan_stop:
+% booleans:
+% this one is officially used to detect wether we're in \ch or not:
+\bool_new:N \l_chemformula_inside_ch_bool
+% those are private:
+\bool_new:N \l__chemformula_formal_charges_bool
+\bool_new:N \l__chemformula_formal_chem_bool
+\bool_set_true:N \l__chemformula_formal_chem_bool
+\bool_new:N \l__chemformula_options_bool
+\bool_new:N \l__chemformula_is_option_bool
+\bool_new:N \l__chemformula_stoich_bool
+\bool_new:N \l__chemformula_no_stoich_bool
+\bool_new:N \l__chemformula_is_plus_bool
+\bool_new:N \l__chemformula_is_up_bool
+\bool_new:N \l__chemformula_is_down_bool
+\bool_new:N \l__chemformula_is_arrow_bool
+\bool_new:N \l__chemformula_is_name_bool
+\bool_new:N \l__chemformula_stoich_is_iupac_bool
+\bool_new:N \l__chemformula_stoich_parse_iupac_bool
+\bool_new:N \l__chemformula_first_last_text_bool
+\bool_new:N \l__chemformula_first_last_double_bool
+\bool_new:N \l__chemformula_first_last_single_bool
+\bool_new:N \l__chemformula_first_last_math_bool
+\bool_new:N \l__chemformula_first_last_dollar_bool
+\bool_new:N \l__chemformula_first_last_mathbraces_bool
+\bool_new:N \l__chemformula_number_style_math_bool
+\bool_new:N \l__chemformula_charge_style_math_bool
+\bool_new:N \l__chemformula_sub_bool
+\bool_new:N \l__chemformula_sup_bool
+\bool_new:N \l__chemformula_is_isotope_bool
+\bool_new:N \l__chemformula_xfrac_bool
+\bool_new:N \l__chemformula_nicefrac_bool
+\bool_new:N \l__chemformula_mathfrac_bool
+\bool_set_true:N \l__chemformula_mathfrac_bool
+\bool_new:N \l__chemformula_fss_bool
+\bool_new:N \l__chemformula_fontspec_bool
+\bool_new:N \l__chemformula_fss_family_bool
+\bool_new:N \l__chemformula_fss_series_bool
+\bool_new:N \l__chemformula_fss_shape_bool
+\bool_new:N \l__chemformula_name_width_bool
+\bool_new:N \l__chemformula_charge_full_shift_bool
+
+% dimensions:
+\dim_new:N \l__chemformula_arrow_length_dim
+\dim_new:N \l__chemformula_arrow_label_offset_dim
+\dim_set:Nn \l__chemformula_arrow_label_offset_dim { 2pt }
+\dim_new:N \l__chemformula_arrow_minimum_length_dim
+\dim_new:N \l__chemformula_arrow_shortage_dim
+\dim_new:N \l__chemformula_arrow_offset_dim
+\dim_set:Nn \l__chemformula_arrow_offset_dim { .75em }
+\dim_new:N \l__chemformula_compound_sep_dim
+\dim_set:Nn \l__chemformula_compound_sep_dim { .5em }
+\dim_new:N \l__chemformula_arrow_yshift_dim
+\dim_set:Nn \l__chemformula_arrow_yshift_dim { 0pt }
+\dim_new:N \l__chemformula_radical_radius_dim
+\dim_set:Nn \l__chemformula_radical_radius_dim { .2ex }
+\dim_new:N \l__chemformula_radical_hshift_dim
+\dim_set:Nn \l__chemformula_radical_hshift_dim { .15em }
+\dim_new:N \l__chemformula_radical_vshift_dim
+\dim_set:Nn \l__chemformula_radical_vshift_dim { .5ex }
+\dim_new:N \l__chemformula_radical_space_dim
+\dim_set:Nn \l__chemformula_radical_space_dim { .15em }
+\dim_new:N \l__chemformula_arrow_head_dim
+\dim_new:N \l__chemformula_name_dim
+\dim_new:N \l__chemformula_adduct_space_dim
+\dim_set:Nn \l__chemformula_adduct_space_dim { .1333em }
+\dim_new:N \l__chemformula_charge_shift_dim
+\dim_set:Nn \l__chemformula_charge_shift_dim { .5ex }
+\dim_new:N \l__chemformula_subscript_shift_dim
+\dim_new:N \l__chemformula_superscript_shift_dim
+\dim_new:N \l__chemformula_subscript_dim
+\dim_zero:N \l__chemformula_subscript_dim
+\dim_new:N \l__chemformula_superscript_dim
+\dim_zero:N \l__chemformula_superscript_dim
+\dim_new:N \l__chemformula_bond_dim
+\dim_set:Nn \l__chemformula_bond_dim { .5833em }
+\dim_new:N \l__chemformula_bond_space_dim
+\dim_set:Nn \l__chemformula_bond_space_dim { .07em }
+
+% skips:
+\skip_new:N \l__chemformula_stoich_space_skip
+\skip_set:Nn \l__chemformula_stoich_space_skip { .1667em plus .0333em minus .0117em }
+\skip_new:N \l__chemformula_math_space_skip
+\skip_set:Nn \l__chemformula_math_space_skip { .1667em plus .0333em minus .0117em }
+\skip_new:N \l__chemformula_plus_space_skip
+\skip_set:Nn \l__chemformula_plus_space_skip { .3em plus .1em minus .1em }
+
-\RequirePackage { nicefrac }
+% integers:
+\int_new:N \l__chemformula_count_tokens_int
+
+% token lists:
+\tl_new:N \l__chemformula_arrow_ratio_tl
+\tl_set:Nn \l__chemformula_arrow_ratio_tl { .6 }
+\tl_new:N \l__chemformula_radical_style_tl
+\tl_new:N \l__chemformula_arrow_head_tl
+\tl_set:Nn \l__chemformula_arrow_head_tl { cf }
+\tl_new:N \l__chemformula_upper_label_tl
+\tl_new:N \l__chemformula_lower_label_tl
+\tl_new:N \l__chemformula_arrow_style_tl
+\tl_new:N \l__chemformula_arrow_label_style_tl
+\tl_set:Nn \l__chemformula_arrow_label_style_tl { \footnotesize }
+\tl_new:N \l__chemformula_arrow_tmp_tl
+\tl_new:N \l__chemformula_arrow_type_tl
+\tl_new:N \l__chemformula_name_tmp_tl
+\tl_new:N \l__chemformula_chemformula_tmpa_tl
+\tl_new:N \g__chemformula_options_tl
+\tl_new:N \g__chemformula_output_tl
+\tl_new:N \l__chemformula_input_tl
+\tl_new:N \l__chemformula_stoich_tl
+\tl_new:N \l__chemformula_decimal_output_tl
+\tl_set:Nn \l__chemformula_decimal_output_tl { . }
+\tl_new:N \l__chemformula_font_family_tl
+\tl_set_eq:NN \l__chemformula_font_family_tl \f@family
+\tl_new:N \l__chemformula_font_series_tl
+\tl_set_eq:NN \l__chemformula_font_series_tl \f@series
+\tl_new:N \l__chemformula_font_shape_tl
+\tl_set_eq:NN \l__chemformula_font_shape_tl \f@shape
+\tl_new:N \l__chemformula_format_tl
+\tl_new:N \l__chemformula_fontspec_options_tl
+\tl_new:N \l__chemformula_fontspec_argument_tl
+\tl_new:N \l__chemformula_name_format_tl
+\tl_set:Nn \l__chemformula_name_format_tl { \scriptsize\centering }
+\tl_new:N \l_chemormula_sup_super_factor_tl
+\tl_new:N \l__chemformula_subscript_shift_additional_tl
+\tl_set:Nn \l__chemformula_subscript_shift_additional_tl { 0pt }
+\tl_new:N \l__chemformula_superscript_shift_additional_tl
+\tl_set:Nn \l__chemformula_superscript_shift_additional_tl { 0pt }
+\tl_new:N \l__chemformula_bond_style_tl
+\tl_new:N \l__chemformula_subscript_tl
+\tl_new:N \l__chemformula_superscript_tl
+\tl_new:N \g__chemformula_input_up_tl
+
+% property lists:
+\prop_new:N \l__chemformula_arrows_code_prop
+\prop_new:N \l__chemformula_cmpd_prop
+\prop_new:N \l__chemformula_bonds_prop
+\prop_new:N \l__chemformula_stoich_prop
+\prop_new:N \l__chemformula_charge_prop
+\prop_new:N \l__chemformula_numbers_prop
+\prop_new:N \l__chemformula_no_stoich_prop
+
+% sequences:
+\seq_new:N \l__chemformula_arrows_type_seq
+\seq_new:N \l__chemformula_input_seq
+
+% boxes:
+\box_new:N \l__chemformula_arrow_arg_i_box
+\box_new:N \l__chemformula_arrow_arg_ii_box
+\box_new:N \l__chemformula_superscript_box
+\box_new:N \l__chemformula_subscript_box
-%-----------------------------------------------------------------------------%
-% HELPER FUNCTIONS
+% --------------------------------------------------------------------------
+% general and helper functions:
\cs_new:Npn \chemformula_tikz:nn #1#2
{ \tikz [ #1 ] { #2 } }
\cs_generate_variant:Nn \chemformula_tikz:nn { xn,nf }
@@ -118,50 +369,135 @@
{ \draw [ #1 ] #2 ; }
\cs_generate_variant:Nn \chemformula_draw:nn { xn,nx,xx,xf }
-%-----------------------------------------------------------------------------%
-% Some basic internal commands:
-\cs_new:Npn \chemformula_plus:
+\cs_new:Npn \chemformula_allow_break:
+ { \tex_penalty:D \c_zero }
+
+\cs_new_protected:Npn \chemformula_leave_vmode:
+ { \hbox_unpack:N \c_empty_box }
+
+\cs_new:Npn \chemformula_nobreak:
+ { \tex_penalty:D \c_ten_thousand }
+
+\cs_new:Npn \chemformula_skip_nobreak:N #1
+ {
+ \chemformula_nobreak:
+ \skip_horizontal:N #1
+ \chemformula_nobreak:
+ }
+
+\cs_new_protected:Npn \chemformula_dim_to_width:Nn #1#2
+ {
+ \hbox_set:Nn \l__chemformula_tmpa_box { #2 }
+ \dim_set:Nn #1 { \box_wd:N \l__chemformula_tmpa_box }
+ \box_clear:N \l__chemformula_tmpa_box
+ }
+
+% an l3 conditional that can test 2e's conditionals that go like
+% \iffoo ... \else ... \fi
+% see http://tex.stackexchange.com/a/119806/5049
+\prg_new_conditional:Npnn \chemformula_latex_if:n #1 {p,T,F,TF}
+ { \use:c { if #1 } \prg_return_true: \else: \prg_return_false: \fi: }
+
+% --------------------------------------------------------------------------
+% circled charge signs:
+\cs_new_protected:Npn \chemformula_fplus:
+ { \ensuremath { \__chemformula_fplus: } }
+
+\cs_new:Npn \__chemformula_fplus:
+ { \mathpalette \__chemformula_fplus_aux: \bigcirc }
+
+\cs_new:Npn \__chemformula_fplus_aux: #1#2
{
- \bool_if:nTF
- { \l__chemmacros_circled_bool && !\l__chemmacros_circled_formal_bool }
+ \ooalign
{
- \bool_if:NTF \l__chemmacros_circled_chem_bool
- { \chemmacros_fplus: }
- { \mode_if_math:TF { \oplus } { $ \oplus $ } }
+ \tex_hfil:D
+ $
+ #1
+ \chemformula_plain_plus:
+ $
+ \tex_hfil:D
+ \tex_cr:D
+ \tex_hfil:D
+ $#1#2$
+ \tex_hfil:D
+ \tex_cr:D
}
+ }
+
+\cs_new_protected:Npn \chemformula_fminus:
+ { \ensuremath { \__chemformula_fminus: } }
+
+\cs_new:Npn \__chemformula_fminus:
+ { \mathpalette \__chemformula_fminus_aux_aux: \bigcirc }
+
+\cs_new:Npn \__chemformula_fminus_aux_aux: #1#2
+ {
+ \ooalign
{
- \bool_if:NTF \l__chemformula_charge_style_math_bool
- { \ensuremath { + } }
- { \mode_if_math:TF { \text { + } } { + } }
+ \tex_hfil:D
+ $
+ #1
+ \chemformula_plain_minus:
+ $
+ \tex_hfil:D
+ \tex_cr:D
+ \tex_hfil:D
+ $#1#2$
+ \tex_hfil:D
+ \tex_cr:D
}
}
-\cs_new:Npn \chemformula_minus:
+\AtBeginDocument{
+ \@ifpackageloaded { chemmacros }
+ {
+ \bool_if:nT
+ { \l__chemmacros_circled_bool && !\l__chemmacros_circled_formal_bool }
+ { \bool_set_true:N \l__chemformula_formal_charges_bool }
+ \bool_if:NF \l__chemmacros_circled_chem_bool
+ { \bool_set_false:N \l__chemformula_formal_chem_bool }
+ }
+ { }
+}
+
+\cs_new_protected:Npn \chemformula_plain_plus:
+ {
+ \bool_if:NTF \l__chemformula_charge_style_math_bool
+ { \ensuremath { + } }
+ { \mode_if_math:TF { \text { + } } { + } }
+ }
+
+\cs_new_protected:Npn \chemformula_plus:
{
- \bool_if:nTF
- { \l__chemmacros_circled_bool && !\l__chemmacros_circled_formal_bool }
+ \bool_if:NTF \l__chemformula_formal_charges_bool
{
- \bool_if:NTF \l__chemmacros_circled_chem_bool
- { \chemmacros_fminus: }
- { \mode_if_math:TF { \ominus } { $ \ominus $ } }
+ \bool_if:NTF \l__chemformula_formal_chem_bool
+ { \chemformula_fplus: }
+ { \mode_if_math:TF { \oplus } { \( \oplus \) } }
}
+ { \chemformula_plain_plus: }
+ }
+
+\cs_new_protected:Npn \chemformula_plain_minus:
+ {
+ \bool_if:NTF \l__chemformula_charge_style_math_bool
+ { \ensuremath { - } }
+ { \mode_if_math:TF { \text { \textendash } } { \textendash } }
+ }
+
+\cs_new_protected:Npn \chemformula_minus:
+ {
+ \bool_if:NTF \l__chemformula_formal_charges_bool
{
- \bool_if:NTF \l__chemformula_charge_style_math_bool
- { \ensuremath { - } }
- { \mode_if_math:TF { \text { \textendash } } { \textendash } }
+ \bool_if:NTF \l__chemformula_formal_chem_bool
+ { \chemformula_fminus: }
+ { \mode_if_math:TF { \ominus } { \( \ominus \) } }
}
+ { \chemformula_plain_minus: }
}
-\tl_new:N \l__chemformula_radical_style_tl
-\dim_new:N \l__chemformula_radical_radius_dim
-\dim_set:Nn \l__chemformula_radical_radius_dim { .2ex }
-\dim_new:N \l__chemformula_radical_hshift_dim
-\dim_set:Nn \l__chemformula_radical_hshift_dim { .15em }
-\dim_new:N \l__chemformula_radical_vshift_dim
-\dim_set:Nn \l__chemformula_radical_vshift_dim { .5ex }
-\dim_new:N \l__chemformula_radical_space_dim
-\dim_set:Nn \l__chemformula_radical_space_dim { .15em }
-
+% --------------------------------------------------------------------------
+% Some basic internal commands:
\cs_new_protected:Npn \chemformula_radical:
{
\chemformula_tikz:xn
@@ -194,16 +530,15 @@
\cs_new:Npn \chemformula_adduct:
{
- \skip_horizontal:N \l__chemformula_cdot_space_dim
+ \skip_horizontal:N \l__chemformula_adduct_space_dim
\textperiodcentered
- \skip_horizontal:N \l__chemformula_cdot_space_dim
+ \skip_horizontal:N \l__chemformula_adduct_space_dim
}
\cs_new_eq:NN \chemformula_star_adduct: \chemformula_adduct:
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% ARROW DEFINITION
% arrow heads:
-\dim_new:N \l__chemformula_arrow_head_dim
% full tip for pairs
\pgfarrowsdeclare { cf } { cf }
@@ -290,30 +625,14 @@
\pgfusepathqfillstroke
}
-% a possibility to overwrite the arrow tips:
+% a possibility to overwrite the arrow tips -- undocumented:
\providecommand*\pgfarrowsrenewalias[4]{%
\let\savedef\pgf@arrows@check@already
\def\pgf@arrows@check@already##1##2##3{##3}%
\pgfarrowsdeclarealias{#1}{#2}{#3}{#4}%
\let\pgf@arrows@check@already\savedef}
-%-----------------------------------------------------------------------------%
-% variables
-\dim_new:N \l__chemformula_arrow_length_dim
-\dim_new:N \l__chemformula_arrow_label_offset_dim
-\dim_set:Nn \l__chemformula_arrow_label_offset_dim { 2pt }
-\dim_new:N \l__chemformula_arrow_minimum_length_dim
-\dim_new:N \l__chemformula_arrow_shortage_dim
-\dim_new:N \l__chemformula_arrow_offset_dim
-\dim_set:Nn \l__chemformula_arrow_offset_dim { .75em }
-\dim_new:N \l__chemformula_compound_sep_dim
-\dim_set:Nn \l__chemformula_compound_sep_dim { .5em }
-\dim_new:N \l__chemformula_arrow_yshift_dim
-\dim_set:Nn \l__chemformula_arrow_yshift_dim { 0pt }
-
-\tl_new:N \l__chemformula_arrow_ratio_tl
-\tl_set:Nn \l__chemformula_arrow_ratio_tl { .6 }
-
+% --------------------------------------------------------------------------
% determine length in dependency of labels
\cs_new_protected:Npn \__chemformula_determine_arrow_length:NN #1#2
{
@@ -350,50 +669,18 @@
}
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% define arrow types
-\tl_new:N \l__chemformula_arrow_head_tl
-\tl_set:Nn \l__chemformula_arrow_head_tl { cf }
-\tl_new:N \l__chemformula_upper_label_tl
-\tl_new:N \l__chemformula_lower_label_tl
-\tl_new:N \l__chemformula_arrow_style_tl
-\tl_new:N \l__chemformula_arrow_label_style_tl
-\tl_set:Nn \l__chemformula_arrow_label_style_tl { \footnotesize }
-\tl_new:N \l__chemformula_arrow_tmp_tl
-\prop_new:N \l__chemformula_arrows_code_prop
-\seq_new:N \l__chemformula_arrows_type_seq
-\tl_new:N \l__chemformula_arrow_type_tl
-\box_new:N \l__chemformula_arrow_arg_i_box
-\box_new:N \l__chemformula_arrow_arg_ii_box
-
-% read optional arguments
-\cs_new:Npn \__chemformula_arrow_read_args:w
- {
- \peek_meaning:NTF [
- { \__chemformula_arrow_read_args_aux_i:w }
- { \__chemformula_arrow_read_args_aux_iii: }
- }
+% read arrow labels:
-\cs_new_protected:Npn \__chemformula_arrow_read_args_aux_i:w [#1]
+\cs_new:Npn \chemformula_arrow_labels:nn #1#2
{
\hbox_set:Nn \l__chemformula_arrow_arg_i_box
{ \tl_use:N \l__chemformula_arrow_label_style_tl #1 }
- \peek_meaning:NTF [
- { \__chemformula_arrow_read_args_aux_ii:w }
- { \__chemformula_arrow_read_args_aux_iii: }
- }
-
-\cs_new_protected:Npn \__chemformula_arrow_read_args_aux_ii:w [#1]
- {
\hbox_set:Nn \l__chemformula_arrow_arg_ii_box
- { \tl_use:N \l__chemformula_arrow_label_style_tl #1 }
- \__chemformula_arrow_read_args_aux_iii:
- }
-
-\cs_new:Npn \__chemformula_arrow_read_args_aux_iii:
- {
- % now we have both arguments do the actual drawing:
+ { \tl_use:N \l__chemformula_arrow_label_style_tl #2 }
+ % now that we have both arguments do the actual drawing:
\prop_get:NVN \l__chemformula_arrows_code_prop
\l__chemformula_arrow_type_tl
\l__chemformula_tmpb_tl
@@ -409,13 +696,19 @@
\box_clear:N \l__chemformula_arrow_arg_ii_box
% then get the arrow type
\tl_set:Nn \l__chemformula_arrow_type_tl { #1 }
- \__chemformula_arrow_read_args:w
+ }
+
+% this will be \arrow inside \ch
+\DeclareDocumentCommand \charrow { mO{}O{} }
+ {
+ \__chemformula_arrows_get:n { #1 }
+ \chemformula_arrow_labels:nn { #2 } { #3 }
}
% draw the arrows
\cs_new:Npn \__chemformula_arrow_draw:n #1
{
- \chemmacros_allow_break:
+ \chemformula_allow_break:
% prepare arrow code for drawing:
\tl_set_rescan:Nnn \l__chemformula_tmpc_tl
{ \char_set_catcode_letter:N \_ } { #1 }
@@ -455,7 +748,7 @@
;
\tl_use:N \l__chemformula_tmpc_tl
}
- \chemmacros_allow_break:
+ \chemformula_allow_break:
}
\cs_generate_variant:Nn \__chemformula_arrow_draw:n { V }
@@ -464,7 +757,7 @@
\NewDocumentCommand \DeclareChemArrow { mm }
{
\prop_if_in:NnTF \l__chemformula_arrows_code_prop { #1 }
- { \chemmacros_msg:nnxx { chemformula } { declare-arrow } { #1 } {} }
+ { \chemformula_error:nnxx { chemformula } { declare-arrow } { #1 } {} }
{
% store type in the sequence and code in the property list
\seq_put_right:Nn \l__chemformula_arrows_type_seq { #1 }
@@ -476,7 +769,7 @@
{
\prop_if_in:NnTF \l__chemformula_arrows_code_prop { #1 }
{ \prop_put:Nnn \l__chemformula_arrows_code_prop { #1 } { #2 } }
- { \chemmacros_msg:nnxx { chemformula } { renew-arrow } { #1 } {} }
+ { \chemformula_error:nnxx { chemformula } { renew-arrow } { #1 } {} }
}
\NewDocumentCommand \ShowChemArrow { m }
@@ -540,7 +833,7 @@
% net reaction:
\DeclareChemArrow { == } { \node at ([yshift=-.2ex]cf_arrow_mid) { = } ; }
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% arrow customization
\keys_define:nn { chemmacros / chemformula }
{
@@ -550,53 +843,65 @@
arrow-ratio .tl_set:N = \l__chemformula_arrow_ratio_tl ,
label-offset .dim_set:N = \l__chemformula_arrow_label_offset_dim ,
compound-sep .dim_set:N = \l__chemformula_compound_sep_dim ,
-% arrow-tips .tl_set:N = \l__chemformula_arrow_head_tl ,
arrow-style .tl_set:N = \l__chemformula_arrow_style_tl ,
label-style .tl_set:N = \l__chemformula_arrow_label_style_tl
}
-%-----------------------------------------------------------------------------%
-\seq_new:N \l__chemformula_input_seq
+% --------------------------------------------------------------------------
% MAIN COMMAND
\cs_new_protected:Npn \__chemformula_ch_main:n #1
{
\group_begin:
\seq_set_split:Nnn \l__chemformula_input_seq { ~ } { #1 }
\cs_set_eq:NN \xspace \scan_stop:
+ % the next two necessary any more but shouldn't do harm, too:
\cs_set_nopar:Npn \[ { [ }
\cs_set_nopar:Npn \] { ] }
- \bool_set_true:N \l__chemformula_inside_ch_bool
- \tl_if_blank:oF { \g__chemformula_options_tl }
+ \bool_set_true:N \l_chemformula_inside_ch_bool
+ \tl_if_blank:VF \g__chemformula_options_tl
{
- \keys_set:no { chemmacros / chemformula }
- { \g__chemformula_options_tl }
+ \keys_set:nV
+ { chemmacros / chemformula }
+ \g__chemformula_options_tl
}
\seq_map_function:NN
\l__chemformula_input_seq
\chemformula_input:n
-% \tl_set_eq:NN
-% \l__chemformula_output_tl
-% \l__chemformula_input_tl
- \tl_set_rescan:Nno \l__chemformula_input_tl
+ \tl_set_rescan:NnV \l__chemformula_input_tl
{ \ExplSyntaxOn \makeatletter }
- { \l__chemformula_input_tl }
+ \l__chemformula_input_tl
\chemformula_write:V \l__chemformula_input_tl
\group_end:
}
+\cs_new:Npn \chemformula_write:n #1
+ {
+ \mode_if_math:TF
+ {
+ \mathchoice
+ { \text { #1 } }
+ { \text { #1 } }
+ { \text { \scriptsize #1 } }
+ { \text { \tiny #1 } }
+ }
+ { #1 }
+ }
+\cs_generate_variant:Nn \chemformula_write:n { V }
+
% internal version of \ch command:
\cs_new_protected:Npn \chemformula_ch:nn #1#2
{
\group_align_safe_begin:
- \chemmacros_leave_vmode:
- \IfNoValueTF { #1 }
+ \chemformula_leave_vmode:
+ \tl_if_blank:nTF { #1 }
{ \tl_gclear:N \g__chemformula_options_tl }
- { \tl_gset:Nn \g__chemformula_options_tl { #1 } }
+ { \tl_gset:Nn \g__chemformula_options_tl { #1 } }
\__chemformula_ch_aux_i:w #2 \\ \q_no_value \q_stop
\group_align_safe_end:
- \tl_use:N \g__chemformula_output_tl
+ \tl_use:N \g__chemformula_output_tl
\tl_gclear:N \g__chemformula_output_tl
}
+\cs_generate_variant:Nn \chemformula_ch:nn { V , nV , VV }
% Trickery to use \ch inside align environment:
% bypass \\:
@@ -627,18 +932,20 @@
\__chemformula_ch_aux_iv:w #1 \tag{} \q_no_value \q_stop
\quark_if_no_value:nF { #3 }
{
- \tl_gput_right:Nn \g__chemformula_output_tl { \label{#2} }
+ \tl_gput_right:Nn \g__chemformula_output_tl { \label { #2 } }
\__chemformula_ch_aux_iii:w #3 \q_stop
}
}
+% here's something not working when used together with `hyperref'
+% which seems to be related to \nonumber
% bypass \tag:
\cs_new_protected:Npn \__chemformula_ch_aux_iv:w #1 \tag#2 #3 \q_stop
{
\__chemformula_ch_aux_v:w #1 \intertext{} \q_no_value \q_stop
\quark_if_no_value:nF { #3 }
{
- \tl_gput_right:Nn \g__chemformula_output_tl { \tag{#2} }
+ \tl_gput_right:Nn \g__chemformula_output_tl { \protect\tag { #2 } }
\__chemformula_ch_aux_iv:w #3 \q_stop
}
}
@@ -650,30 +957,30 @@
{ \__chemformula_ch_main:n { #1 } }
\quark_if_no_value:nF { #3 }
{
- \tl_gput_right:Nn \g__chemformula_output_tl { \intertext{#2} }
+ \tl_gput_right:Nn \g__chemformula_output_tl { \intertext { #2 } }
\__chemformula_ch_aux_v:w #3 \q_stop
- }
+ }
}
-% user command:
-\NewDocumentCommand \ch { om }
+% --------------------------------------------------------------------------
+% user commands:
+\NewDocumentCommand \ch { O{}m }
{ \chemformula_ch:nn { #1 } { #2 } }
-\cs_new:Npn \chemformula_write:n #1
+\tl_new:N \l__chemformula_compound_tl
+\cs_new_protected:Npn \chemformula_chcpd:nn #1#2
{
- \mode_if_math:TF
- {
- \mathchoice
- { \text { #1 } }
- { \text { #1 } }
- { \text { \scriptsize #1 } }
- { \text { \tiny #1 } }
- }
- { #1 }
+ \group_begin:
+ \keys_set:nn { chemmacros / chemformula } { #1 }
+ \chemformula_input_cmpd:nN { #2 } \l__chemformula_compound_tl
+ \chemformula_write:V \l__chemformula_compound_tl
+ \group_end:
}
-\cs_generate_variant:Nn \chemformula_write:n { V }
-%-----------------------------------------------------------------------------%
+\NewDocumentCommand \chcpd { O{}m }
+ { \chemformula_chcpd:nn { #1 } { #2 } }
+
+% --------------------------------------------------------------------------
% arrow generation & detection
\cs_new:Npn \__chemformula_generate_arrows:Nn #1#2
{
@@ -681,7 +988,7 @@
\seq_map_inline:Nn \l__chemformula_arrows_type_seq
{
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
- { ##1 } { \__chemformula_arrows_get:n { ##1 } }
+ { ##1 } { \charrow { ##1 } }
}
\tl_set_eq:NN #1 \l__chemformula_tmpa_tl
}
@@ -698,37 +1005,35 @@
}
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% --------------------------------------------------------------------------
% compound names
-\dim_new:N \l__chemformula_name_dim
-\tl_new:N \l__chemformula_name_tmp_tl
-
\cs_new:Npn \__chemformula_name_cmpd:w
- { \peek_meaning:NTF ( { \__chemformula_name_cmpd_aux:w } { ! } }
+ { \peek_meaning:NTF ( { \chname } { ! } }
-% TODO
-% this is no document command -- but now nesting of brackets is possible
-\NewDocumentCommand \__chemformula_name_cmpd_aux:w {r()r()}
+\NewDocumentCommand \chname { R(){}R(){} }
+ { \chemformula_chwritebelow:nn { #1 } { #2 } }
+
+\cs_new:Npn \chemformula_chwritebelow:nn #1#2
{
\(
\underset
{
\bool_if:NF \l__chemformula_name_width_bool
{
- \chemmacros_dim_to_width:Nn \l__chemformula_name_dim
+ \chemformula_dim_to_width:Nn \l__chemformula_name_dim
{ \l__chemformula_name_format_tl #1 }
}
\parbox
{ \dim_use:N \l__chemformula_name_dim }
{ \l__chemformula_name_format_tl #1 }
}
- { \text { \vphantom{\gas} #2 } }
+ { \text { \strut #2 } }
\)
}
\cs_new_protected:Npn \__chemformula_generate_name:Nn #1#2
{
- \tl_set:Nn \l__chemformula_tmpa_tl { #2 }
+ \__chemformula_sanitize:Nn \l__chemformula_tmpa_tl { #2 }
\tl_if_in:VnT \l__chemformula_tmpa_tl { ! }
{
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
@@ -747,97 +1052,8 @@
{ \bool_set_true:N \l__chemformula_is_name_bool }
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% --------------------------------------------------------------------------
% parsing input
-% booleans:
-\bool_new:N \l__chemformula_inside_ch_bool
-\bool_new:N \l__chemformula_options_bool
-\bool_new:N \l__chemformula_is_option_bool
-\bool_new:N \l__chemformula_stoich_bool
-\bool_new:N \l__chemformula_no_stoich_bool
-\bool_new:N \l__chemformula_is_plus_bool
-\bool_new:N \l__chemformula_is_up_bool
-\bool_new:N \l__chemformula_is_down_bool
-\bool_new:N \l__chemformula_is_arrow_bool
-\bool_new:N \l__chemformula_is_name_bool
-\bool_new:N \l__chemformula_stoich_is_iupac_bool
-\bool_new:N \l__chemformula_stoich_parse_iupac_bool
-\bool_new:N \l__chemformula_first_last_text_bool
-\bool_new:N \l__chemformula_first_last_double_bool
-\bool_new:N \l__chemformula_first_last_single_bool
-\bool_new:N \l__chemformula_first_last_math_bool
-\bool_new:N \l__chemformula_first_last_dollar_bool
-\bool_new:N \l__chemformula_first_last_mathbraces_bool
-\bool_new:N \l__chemformula_number_style_math_bool
-\bool_new:N \l__chemformula_charge_style_math_bool
-\bool_new:N \l__chemformula_sub_bool
-\bool_new:N \l__chemformula_sup_bool
-\bool_new:N \l__chemformula_is_isotope_bool
-\bool_new:N \l__chemformula_xfrac_bool
-\bool_new:N \l__chemformula_nicefrac_bool
-\bool_new:N \l__chemformula_mathfrac_bool
- \bool_set_true:N \l__chemformula_mathfrac_bool
-\bool_new:N \l__chemformula_fss_bool
-\bool_new:N \l__chemformula_fontspec_bool
-\bool_new:N \l__chemformula_fss_family_bool
-\bool_new:N \l__chemformula_fss_series_bool
-\bool_new:N \l__chemformula_fss_shape_bool
-\bool_new:N \l__chemformula_name_width_bool
-\bool_new:N \l__chemformula_charge_full_shift_bool
-
-% token lists:
-\tl_new:N \l__chemformula_chemformula_tmpa_tl
-\tl_new:N \g__chemformula_options_tl
-\tl_new:N \g__chemformula_output_tl
-% \tl_new:N \l__chemformula_output_tl
-\tl_new:N \l__chemformula_input_tl
-\tl_new:N \l__chemformula_stoich_tl
-\tl_new:N \l__chemformula_decimal_output_tl
-\tl_set:Nn \l__chemformula_decimal_output_tl { . }
-\tl_new:N \l__chemformula_font_family_tl
-\tl_set_eq:NN \l__chemformula_font_family_tl \f@family
-\tl_new:N \l__chemformula_font_series_tl
-\tl_set_eq:NN \l__chemformula_font_series_tl \f@series
-\tl_new:N \l__chemformula_font_shape_tl
-\tl_set_eq:NN \l__chemformula_font_shape_tl \f@shape
-\tl_new:N \l__chemformula_format_tl
-\tl_new:N \l__chemformula_fontspec_options_tl
-\tl_new:N \l__chemformula_fontspec_argument_tl
-\tl_new:N \l__chemformula_name_format_tl
-\tl_set:Nn \l__chemformula_name_format_tl { \scriptsize\centering }
-\tl_new:N \l_chemormula_sup_super_factor_tl
-\tl_new:N \l__chemformula_subscript_shift_additional_tl
-\tl_set:Nn \l__chemformula_subscript_shift_additional_tl { 0pt }
-\tl_new:N \l__chemformula_superscript_shift_additional_tl
-\tl_set:Nn \l__chemformula_superscript_shift_additional_tl { 0pt }
-\tl_new:N \l__chemformula_bond_style_tl
-
-% dimensions and skips:
-\skip_new:N \l__chemformula_stoich_space_skip
-\skip_set:Nn \l__chemformula_stoich_space_skip { .1667em plus .0333em minus .0117em }
-\skip_new:N \l__chemformula_math_space_skip
-\skip_set:Nn \l__chemformula_math_space_skip { .1667em plus .0333em minus .0117em }
-\skip_new:N \l__chemformula_plus_space_skip
-\skip_set:Nn \l__chemformula_plus_space_skip { .3em plus .1em minus .1em }
-\dim_new:N \l__chemformula_cdot_space_dim
-\dim_set:Nn \l__chemformula_cdot_space_dim { .1333em }
-\dim_new:N \l__chemformula_charge_shift_dim
-\dim_set:Nn \l__chemformula_charge_shift_dim { .5ex }
-\dim_new:N \l__chemformula_subscript_shift_dim
-\dim_new:N \l__chemformula_superscript_shift_dim
-\dim_new:N \l__chemformula_subscript_dim
-\dim_zero:N \l__chemformula_subscript_dim
-\dim_new:N \l__chemformula_superscript_dim
-\dim_zero:N \l__chemformula_superscript_dim
-\dim_new:N \l__chemformula_bond_dim
-\dim_set:Nn \l__chemformula_bond_dim { .5833em }
-
-% integers:
-\int_new:N \l__chemformula_count_tokens_int
-
-% property lists:
-% behaviour in a compound
-\prop_new:N \l__chemformula_cmpd_prop
\prop_put:Nnn \l__chemformula_cmpd_prop { 0 } { \chemformula_subscript:n { 0 } }
\prop_put:Nnn \l__chemformula_cmpd_prop { 1 } { \chemformula_subscript:n { 1 } }
\prop_put:Nnn \l__chemformula_cmpd_prop { 2 } { \chemformula_subscript:n { 2 } }
@@ -855,7 +1071,6 @@
\prop_put:Nnn \l__chemformula_cmpd_prop { + } { \chemformula_triple_bond: }
% numbers
-\prop_new:N \l__chemformula_numbers_prop
\prop_put:Nnn \l__chemformula_numbers_prop { 0 } { 0 }
\prop_put:Nnn \l__chemformula_numbers_prop { 1 } { 1 }
\prop_put:Nnn \l__chemformula_numbers_prop { 2 } { 2 }
@@ -868,23 +1083,21 @@
\prop_put:Nnn \l__chemformula_numbers_prop { 9 } { 9 }
% behaviour in a charge
-\prop_new:N \l__chemformula_charge_prop
-\prop_put:Nnn \l__chemformula_charge_prop { 0 } { \__chemformula_charge_style:n { 0 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 1 } { \__chemformula_charge_style:n { 1 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 2 } { \__chemformula_charge_style:n { 2 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 3 } { \__chemformula_charge_style:n { 3 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 4 } { \__chemformula_charge_style:n { 4 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 5 } { \__chemformula_charge_style:n { 5 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 6 } { \__chemformula_charge_style:n { 6 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 7 } { \__chemformula_charge_style:n { 7 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 8 } { \__chemformula_charge_style:n { 8 } }
-\prop_put:Nnn \l__chemformula_charge_prop { 9 } { \__chemformula_charge_style:n { 9 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 0 } { \chemformula_charge_style:n { 0 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 1 } { \chemformula_charge_style:n { 1 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 2 } { \chemformula_charge_style:n { 2 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 3 } { \chemformula_charge_style:n { 3 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 4 } { \chemformula_charge_style:n { 4 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 5 } { \chemformula_charge_style:n { 5 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 6 } { \chemformula_charge_style:n { 6 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 7 } { \chemformula_charge_style:n { 7 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 8 } { \chemformula_charge_style:n { 8 } }
+\prop_put:Nnn \l__chemformula_charge_prop { 9 } { \chemformula_charge_style:n { 9 } }
\prop_put:Nnn \l__chemformula_charge_prop { + } { \chemformula_plus: }
\prop_put:Nnn \l__chemformula_charge_prop { - } { \chemformula_minus: }
\prop_put:Nnn \l__chemformula_charge_prop { . } { \chemformula_radical: }
% stoichiometric factors
-\prop_new:N \l__chemformula_stoich_prop
\prop_put:Nnn \l__chemformula_stoich_prop { 0 } { 0 }
\prop_put:Nnn \l__chemformula_stoich_prop { 1 } { 1 }
\prop_put:Nnn \l__chemformula_stoich_prop { 2 } { 2 }
@@ -902,7 +1115,6 @@
\prop_put:Nnn \l__chemformula_stoich_prop { ( } { ( }
\prop_put:Nnn \l__chemformula_stoich_prop { ) } { ) }
-\prop_new:N \l__chemformula_no_stoich_prop
\prop_put:Nnn \l__chemformula_no_stoich_prop { . } { }
\prop_put:Nnn \l__chemformula_no_stoich_prop { , } { }
\prop_put:Nnn \l__chemformula_no_stoich_prop { / } { }
@@ -910,12 +1122,8 @@
\prop_put:Nnn \l__chemformula_no_stoich_prop { ( } { }
\prop_put:Nnn \l__chemformula_no_stoich_prop { ) } { }
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% bonds:
-\dim_new:N \l__chemformula_bond_space_dim
-\dim_set:Nn \l__chemformula_bond_space_dim { .07em }
-\prop_new:N \l__chemformula_bonds_prop
-
\cs_new:Npn \chemformula@bondlength
{ \l__chemformula_bond_dim }
@@ -932,9 +1140,9 @@
\cs_new:Npn \chemformula_triple_bond:
{ \chemformula_bond:n { triple } }
-\cs_new:Npn \chemformula_bond:n #1
+\cs_new_protected:Npn \chemformula_bond:n #1
{
- \chemmacros_skip_nobreak:N \l__chemformula_bond_space_dim
+ \chemformula_skip_nobreak:N \l__chemformula_bond_space_dim
\chemformula_tikz:nn
{
inner~sep = 0 ,
@@ -953,14 +1161,14 @@
{ \__chemformula_bond_draw:n { single } }
{ \__chemformula_bond_draw:n { #1 } }
}
- \chemmacros_skip_nobreak:N \l__chemformula_bond_space_dim
+ \chemformula_skip_nobreak:N \l__chemformula_bond_space_dim
}
\cs_new_protected:Npn \__chemformula_bond_draw:n #1
{
\tl_set_rescan:Nnn \l__chemformula_tmpa_tl {} { #1 }
- \exp_args:NNo \prop_get:Nn \l__chemformula_bonds_prop
- { \l__chemformula_tmpa_tl }
+ \prop_get:NV \l__chemformula_bonds_prop
+ \l__chemformula_tmpa_tl
}
\tikzset { chembond/.style={butt~cap-butt~cap,\l__chemformula_bond_style_tl} }
@@ -968,7 +1176,7 @@
\NewDocumentCommand \DeclareChemBond { mm }
{
\cs_if_exist:cTF { chemformula_bond_type_#1 }
- { \chemmacros_msg:nnxx { chemformula } { declare-bond } { #1 } {} }
+ { \chemformula_error:nnxx { chemformula } { declare-bond } { #1 } {} }
{
\cs_new:cpn { chemformula_bond_type_#1 } {}
\prop_put:Nnn \l__chemformula_bonds_prop { #1 } { #2 }
@@ -978,7 +1186,7 @@
\NewDocumentCommand \DeclareChemBondAlias { mm }
{
\cs_if_exist:cTF { chemformula_bond_type_#1 }
- { \chemmacros_msg:nnxx { chemformula } { declare-bond } { #1 } {} }
+ { \chemformula_error:nnxx { chemformula } { declare-bond } { #1 } {} }
{
\cs_new:cpn { chemformula_bond_type_#1 } {}
\prop_get:NnN \l__chemformula_bonds_prop { #2 } \l__chemformula_tmpa_tl
@@ -990,7 +1198,7 @@
{
\cs_if_exist:cTF { chemformula_bond_type_#1 }
{ \prop_put:Nnn \l__chemformula_bonds_prop { #1 } { #2 } }
- { \chemmacros_msg:nnxx { chemformula } { renew-bond } { #1 } {} }
+ { \chemformula_error:nnxx { chemformula } { renew-bond } { #1 } {} }
}
\NewDocumentCommand \ShowChemBond { m }
@@ -1071,7 +1279,7 @@
{ \draw[chembond,<-butt~cap] (chemformula-bond-start) -- (chemformula-bond-end) ; }
\DeclareChemBondAlias{<co}{coordleft}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% sub- and superscripts
\cs_new:Npn \__chemformula_number_style:n #1
{
@@ -1079,19 +1287,17 @@
{ \ensuremath { #1 } }
{ \ensuremath { \text { #1 } } }
}
+\cs_generate_variant:Nn \__chemformula_number_style:n { V }
-\cs_new:Npn \__chemformula_charge_style:n #1
+\cs_new_protected:Npn \chemformula_charge_style:n #1
{
\bool_if:NTF \l__chemformula_charge_style_math_bool
{ \ensuremath { #1 } }
{ \ensuremath { \text { #1 } } }
}
-\cs_generate_variant:Nn \__chemformula_charge_style:n { V }
+\cs_generate_variant:Nn \chemformula_charge_style:n { V }
% subscripts
-\tl_new:N \l__chemformula_subscript_tl
-\box_new:N \l__chemformula_subscript_box
-
% remove double or nested sub- and superscripts
\cs_new_protected:Npn \chemformula_subscript:n #1
{
@@ -1129,7 +1335,7 @@
}
}
}
-\cs_generate_variant:Nn \__chemformula_subscript:n { o,V }
+\cs_generate_variant:Nn \__chemformula_subscript:n { V }
\cs_new_protected:Npn \__chemformula_clean_subscript:
{
@@ -1146,7 +1352,7 @@
\cs_new_protected:Npn \__chemformula_subscript_raise:N #1
{
\hbox_set:Nn \l__chemformula_tmpa_box
- { $\scriptstyle Hg$ }
+ { \(\scriptstyle Hg\) }
\hbox_set:Nn \l__chemformula_tmpb_box { Hg }
\dim_set:Nn #1
{
@@ -1157,17 +1363,23 @@
\tex_raise:D #1
}
-\cs_new:Npn \__chemformula_subscript_write:n #1
+\cs_new_protected:Npn \__chemformula_subscript_write:n #1
{
- \__chemformula_subscript_raise:N \l__chemformula_subscript_shift_dim
- \hbox:n
- {
- $\scriptstyle
- \prop_get:NoNTF \l__chemformula_numbers_prop
- { #1 } \l__chemformula_tmpa_tl
- { \__chemformula_number_style:n { \l__chemformula_tmpa_tl } }
- { \__chemformula_number_style:n { #1 } }$
- }
+ \group_begin:
+ \tl_set_eq:NN \chemformula_subscript:n \use:n
+ \tl_set_eq:NN \chemformula_superscript:n \use:n
+ \__chemformula_subscript_raise:N \l__chemformula_subscript_shift_dim
+ \hbox:n
+ {
+ \(
+ \scriptstyle
+ \prop_get:NoNTF \l__chemformula_numbers_prop
+ { #1 } \l__chemformula_tmpa_tl
+ { \__chemformula_number_style:V \l__chemformula_tmpa_tl }
+ { \__chemformula_number_style:n { #1 } }
+ \)
+ }
+ \group_end:
}
\cs_generate_variant:Nn \__chemformula_subscript_write:n { V }
@@ -1182,9 +1394,6 @@
\cs_generate_variant:Nn \__chemformula_measure_subscript:n { V }
% superscripts
-\tl_new:N \l__chemformula_superscript_tl
-\box_new:N \l__chemformula_superscript_box
-
% remove double or nested sub- and superscripts
\cs_new_protected:Npn \chemformula_superscript:n #1
{
@@ -1219,7 +1428,7 @@
}
}
}
-\cs_generate_variant:Nn \__chemformula_superscript:n { o,V }
+\cs_generate_variant:Nn \__chemformula_superscript:n { V }
\cs_new_protected:Npn \__chemformula_clean_superscript:
{
@@ -1242,7 +1451,7 @@
\cs_new_protected:Npn \__chemformula_superscript_raise:N #1
{
\hbox_set:Nn \l__chemformula_tmpa_box
- { $\scriptstyle Hg$ }
+ { \(\scriptstyle Hg\) }
\hbox_set:Nn \l__chemformula_tmpb_box { Hg }
\dim_set:Nn #1
{
@@ -1253,17 +1462,23 @@
\tex_raise:D #1
}
-\cs_new:Npn \__chemformula_superscript_write:n #1
+\cs_new_protected:Npn \__chemformula_superscript_write:n #1
{
- \__chemformula_superscript_raise:N \l__chemformula_superscript_shift_dim
- \hbox:n
- {
- $\scriptstyle
- \prop_get:NoNTF \l__chemformula_charge_prop
- { #1 } \l__chemformula_tmpa_tl
- { \__chemformula_charge_style:V \l__chemformula_tmpa_tl }
- { \__chemformula_charge_style:n { #1 } }$
- }
+ \group_begin:
+ \tl_set_eq:NN \chemformula_subscript:n \use:n
+ \tl_set_eq:NN \chemformula_superscript:n \use:n
+ \__chemformula_superscript_raise:N \l__chemformula_superscript_shift_dim
+ \hbox:n
+ {
+ \(
+ \scriptstyle
+ \prop_get:NoNTF \l__chemformula_charge_prop
+ { #1 } \l__chemformula_tmpa_tl
+ { \tl_use:N \l__chemformula_tmpa_tl }
+ { \chemformula_charge_style:n { #1 } }
+ \)
+ }
+ \group_end:
}
\cs_generate_variant:Nn \__chemformula_superscript_write:n { V }
@@ -1341,7 +1556,8 @@
\bool_if:NTF \l__chemformula_charge_full_shift_bool
{
\tl_if_blank:VF \l__chemformula_subscript_tl
- { \dim_set:Nn \l__chemformula_tmpa_dim { - \l__chemformula_superscript_dim } }
+ { \dim_set:Nn \l__chemformula_tmpa_dim
+ { - \l__chemformula_superscript_dim } }
}
{
\tl_if_blank:VF \l__chemformula_superscript_tl
@@ -1367,23 +1583,15 @@
\tl_clear:N \l__chemformula_superscript_tl
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% read the input
\cs_new_protected:Npn \chemformula_input:n #1
{
- \tl_set_rescan:Nnn \l__chemformula_chemformula_tmpa_tl
- {
- \char_set_catcode_letter:N \{
- \char_set_catcode_letter:N \}
- \char_set_catcode_letter:N \\
- \char_set_catcode_other:N \"
- \char_set_catcode_math_superscript:N \^
- }
- { #1 }
+ \__chemformula_sanitize:Nn \l__chemformula_chemformula_tmpa_tl { #1 }
\chemformula_input_escape_text:V \l__chemformula_chemformula_tmpa_tl
\chemformula_input_escape_math:n { #1 }
\chemformula_input_stoich:n { #1 }
- \__chemformula_clean_chem_macros:V \l__chemformula_chemformula_tmpa_tl
+ \__chemformula_clean_chemmacros:V \l__chemformula_chemformula_tmpa_tl
\chemformula_input_cmpd:VN
\l__chemformula_chemformula_tmpa_tl \l__chemformula_input_tl
\chemformula_input_arrow:n { #1 }
@@ -1393,7 +1601,7 @@
\chemformula_input_down:n { #1 }
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% set options for next compound:
\cs_new_protected:Npn \chemformula_input_options:n #1
{
@@ -1412,7 +1620,7 @@
{ \bool_set_false:N \l__chemformula_is_option_bool }
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input stoichiometric factors
\cs_new_protected:Npn \chemformula_input_stoich:n #1
{
@@ -1470,6 +1678,7 @@
\DeclareInstance { xfrac } { chemformula-text-frac } { text }
{
slash-left-kern = -.15em ,
+ numerator-top-sep = 0pt ,
slash-right-kern = -.15em
}
@@ -1530,9 +1739,8 @@
{ \sfrac[chemformula-text-frac]{#1}{#2} }
\bool_if:NT \l__chemformula_nicefrac_bool
{ \nicefrac{#1}{#2} }
- % FIXME: why doesn't this work without \textstyle?
\bool_if:NT \l__chemformula_mathfrac_bool
- { $ \textstyle \frac{ \text { #1 } } { \text { #2 } } $ }
+ { \( \frac{ \text { #1 } } { \text { #2 } } \) }
}
\cs_new:Npn \__chemformula_misc_frac:nnn #1#2#3
@@ -1542,10 +1750,10 @@
\bool_if:NT \l__chemformula_nicefrac_bool
{ #1\nicefrac{#2}{#3} }
\bool_if:NT \l__chemformula_mathfrac_bool
- { #1 $ \frac{ \text { #2 } } { \text { #3 } } $ }
+ { #1 \( \frac{ \text { #2 } } { \text { #3 } } \) }
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input compounds
\cs_new_protected:Npn \chemformula_input_cmpd:nN #1#2
{
@@ -1565,7 +1773,8 @@
\tl_put_right:Nn #2
{
\group_begin:
- \keys_set:nV { chemmacros / chemformula }
+ \keys_set:nV
+ { chemmacros / chemformula }
\l__chemformula_internal_options_tl
}
}
@@ -1597,7 +1806,7 @@
}
{
\tl_put_right:Nn #2
- { \skip_horizontal:N \l__chemformula_stoich_space_skip }
+ { \chemformula_skip_nobreak:N \l__chemformula_stoich_space_skip }
\tl_clear:N \l__chemformula_stoich_tl
}
}
@@ -1640,20 +1849,25 @@
{
% expl3 catcodes:
\char_set_catcode_letter:N \_
+ \char_set_catcode_letter:N \:
+ % I've forgotten why I put this here:
\char_set_catcode_math_superscript:N \^
- % disable some of the specials:
+ % disable some of the specials (needed for sub- and superscripts):
\char_set_catcode_letter:N \{
\char_set_catcode_letter:N \}
- \char_set_catcode_letter:N \\
+ % this one seems not necessary any more:
+% \char_set_catcode_letter:N \\
\char_set_catcode_letter:N \#
% make the naming work with babel languages like French that make
% ! active:
\char_set_catcode_other:N \!
+ % ensure " is other:
+ \char_set_catcode_other:N \"
}
{ #2 }
}
+\cs_generate_variant:Nn \__chemformula_sanitize:Nn { NV }
-\cs_generate_variant:Nn \tl_if_in:nnT { x }
\cs_new_protected:Npn \__chemformula_handle_sub_and_superscripts:nN #1#2
{
\__chemformula_sanitize:Nn \l__chemformula_tmpa_tl { #1 }
@@ -1717,9 +1931,9 @@
}
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% clean up chemmacros commands:
-\cs_new_protected:Npn \__chemformula_clean_chem_macros:n #1
+\cs_new_protected:Npn \__chemformula_clean_chemmacros:n #1
{
\cs_set:Nn \chemmacros_text:n
{
@@ -1729,9 +1943,9 @@
}
\cs_set:Npn \chemmacros_xspace: {}
}
-\cs_generate_variant:Nn \__chemformula_clean_chem_macros:n { V }
+\cs_generate_variant:Nn \__chemformula_clean_chemmacros:n { V }
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input "and" sign
\cs_new_protected:Npn \chemformula_input_plus:n #1
{
@@ -1739,7 +1953,7 @@
{
\tl_put_right:Nn \l__chemformula_input_tl
{
- \skip_horizontal:N \l__chemformula_plus_space_skip
+ \chemformula_skip_nobreak:N \l__chemformula_plus_space_skip
+
\skip_horizontal:N \l__chemformula_plus_space_skip
}
@@ -1747,9 +1961,8 @@
\bool_set_false:N \l__chemformula_is_plus_bool
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input escaping gas
-\tl_new:N \g__chemformula_input_up_tl
\cs_new_protected:Npn \chemformula_input_up:n #1
{
\group_begin:
@@ -1764,23 +1977,23 @@
{
\tl_gclear:N \g__chemformula_input_up_tl
\tl_if_eq:nnT { #1 } { ^ }
- { \tl_gset:Nn \g__chemformula_input_up_tl { $\uparrow$ } }
+ { \tl_gset:Nn \g__chemformula_input_up_tl { \(\uparrow\) } }
\group_end:
\tl_put_right:NV \l__chemformula_input_tl \g__chemformula_input_up_tl
\bool_set_false:N \l__chemformula_is_up_bool
}
\cs_generate_variant:Nn \__chemformula_input_up:n { V }
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input precipitate
\cs_new_protected:Npn \chemformula_input_down:n #1
{
\tl_if_eq:nnT { #1 } { v }
- { \tl_put_right:Nn \l__chemformula_input_tl { $\downarrow$ } }
+ { \tl_put_right:Nn \l__chemformula_input_tl { \(\downarrow\) } }
\bool_set_false:N \l__chemformula_is_down_bool
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input arrow
\cs_new_protected:Npn \chemformula_input_arrow:n #1
{
@@ -1798,7 +2011,7 @@
}
\cs_generate_variant:Nn \chemformula_input_arrow:n { o }
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input compound name
\cs_new_protected:Npn \chemformula_input_name:n #1
{
@@ -1815,7 +2028,7 @@
\bool_set_false:N \l__chemformula_is_name_bool
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input escaped text
% #1: <bool> #2: <tl> #3: <first> #4: <last>
\cs_new_protected:Npn \__chemformula_bool_set_if_first_last:Nnnn #1#2#3#4
@@ -1861,6 +2074,7 @@
{
\char_set_catcode_letter:N \_
\char_set_catcode_other:N \:
+
}
{ #1 }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
@@ -1869,9 +2083,6 @@
{ _ } { \sb }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
{ chemformulaplaceholder } { \_ }
- \tl_set_rescan:Nno \l__chemformula_tmpa_tl
- { }% TODO da war \ExplSyntaxOff drin: brauchts das?
- { \l__chemformula_tmpa_tl }
\tl_put_right:NV \l__chemformula_input_tl \l__chemformula_tmpa_tl
}
@@ -1899,7 +2110,7 @@
}
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% input escaped math
\cs_new_protected:Npn \chemformula_input_escape_math:n #1
{
@@ -1930,12 +2141,9 @@
{ _ } { \sb }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
{ chemformulaplaceholder } { \_ }
- \tl_set_rescan:Nno \l__chemformula_tmpa_tl
- { }% TODO da war \ExplSyntaxOff drin: brauchts das?
- { \l__chemformula_tmpa_tl }
\tl_put_right:NV \l__chemformula_input_tl \l__chemformula_tmpa_tl
\tl_put_right:Nn \l__chemformula_input_tl
- { \skip_horizontal:N \l__chemformula_math_space_skip }
+ { \chemformula_skip_nobreak:N \l__chemformula_math_space_skip }
}
\cs_new:Npn \__chemformula_read_escape_dollar:w $#1$ \q_nil
@@ -1962,7 +2170,7 @@
}
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
% customization of output other than arrows
\keys_define:nn { chemmacros / chemformula }
{
@@ -2005,7 +2213,7 @@
\bool_set_false:N \l__chemformula_mathfrac_bool ,
stoich-paren-parse .bool_set:N = \l__chemformula_stoich_parse_iupac_bool ,
stoich-space .skip_set:N = \l__chemformula_stoich_space_skip ,
- adduct-space .dim_set:N = \l__chemformula_cdot_space_dim ,
+ adduct-space .dim_set:N = \l__chemformula_adduct_space_dim ,
plus-space .skip_set:N = \l__chemformula_plus_space_skip ,
math-space .skip_set:N = \l__chemformula_math_space_skip ,
name-format .tl_set:N = \l__chemformula_name_format_tl ,
@@ -2046,21 +2254,125 @@
\tl_set:Nn \l__chemformula_format_tl { #1 }
}
-%-----------------------------------------------------------------------------%
+% --------------------------------------------------------------------------
+
+\NewDocumentCommand \setchemformula { m }
+ { \keys_set:nn { chemmacros / chemformula } { #1 } }
+
+% --------------------------------------------------------------------------
% hyperref support
\AfterPackage* { hyperref }
- { \pdfstringdefDisableCommands { \cs_set:Npn \ch #1 { #1 } } }
+ {
+ \pdfstringdefDisableCommands
+ {
+ \cs_set:Npn \chcpd #1 { #1 }
+ \cs_set:Npn \charrow #1 { #1 }
+ \cs_set:Npn \chname (#1)(#2) { #2~(#1) }
+ \cs_set:Npn \ch #1 { #1 }
+ }
+ }
\tex_endinput:D
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-VERSION HISTORY
-see the chemmacros.sty file
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% --------------------------------------------------------------------------
+VERSION HISTORY
+2012/01/28 - version 3.0 - bundled with packages `chemmacros' and `ghs'
+2012/01/30 - version 3.0a - bugfix
+ - renamed formula => chemformula
+ (following a request by Karl Berry for TeXlive)
+2012/02/03 - version 3.0b - stepped number with `chemmacros'
+2012/02/05 - version 3.0c - stepped number with `chemmacros'
+2012/02/10 - version 3.0d - several bugfixes
+ - new arrow type <>
+2012/02/19 - version 3.1 - new arrow types -/>, </- and <o>
+ - new commands \DeclareChemArrow, \RenewChemArrow and
+ \ShowChemArrow
+2012/02/26 - version 3.1a - stepped number with `chemmacros'
+2012/03/03 - version 3.1b - arrow types are stored in a sequence to automate the
+ search and replace in the right order
+ - new arrow type ==
+ - IUPAC compliance for stoichiometric factors
+ - new handling of super- and subscripts to correct
+ various flaws: clear distinction between isotope and
+ formula
+ - new option charge-vshift
+2012/03/14 - version 3.1c - improved arrow labels
+2012/03/20 - version 3.2 - new: option input via @{<options>}
+2012/05/07 - version 3.3 - \ch now bypasses \ref{}, \label{}, and \intertext{}
+2012/05/13 - version 3.3a - stepped number with `chemmacros'
+2012/05/18 - version 3.3b - stepped number with `chemmacros'
+2012/05/18 - version 3.3c - stepped number with `chemmacros'
+2012/07/24 - version 3.3d - stepped number with `chemmacros'
+ - default bond length set to 1.1667ex
+ - bug fix in the bonds
+2012/08/21 - version 3.3e - stepped number with `chemmacros'
+2012/09/11 - version 3.4 - cleaned a little, minor bug fixes
+ - switched to internal scratch variables
+ - new command \bond, more bond types
+ - new commands \DeclareChemBond, \DeclareChemBondAlias,
+ \RenewChemBond and \ShowChemBond
+ - radical point thicker, new options `radical-style'
+ and `radical-radius'
+2012/10/03 - version 3.4a - stepped number with `chemmacros'
+2013/01/04 - version 3.4b - bug fix in the sub- and superscript handling
+2013/01/28 - version 3.5 - disallow breaks at bonds
+ - allow breaks after arrows
+ - made some spaces in chemformulas stretch- and
+ shrinkable
+ - various internal code improvements
+ - changed defaults for horizontal spaces that have in
+ set in ex into corresponding values in em.
+ - improvements to the placement of sub- and superscripts
+2013/02/19 - version 3.5a - stepped number with `chemmacros'
+2013/02/26 - version 3.6 - support for use with the `breqn' package
+ - math escaping also via \(\)
+ - internal: clearer escaping macros
+ - new options: `radical-vshift', `radical-hshift'
+ and `radical-space'
+ - bug fix: `radical-...' options are now correctly set
+ - stoichiometric factors: add leading 0 if missing
+ - new option: `stoich-paren-parse'
+ - internal changes: be way more rigid about protected
+ and expandable macros
+ - internal changes: clearer distinction between
+ private macros and accessable module macros
+ - internal changes: clearer distinction between
+ document commands and module level commands
+ - !()() syntax now also works with babel's French
+2013/02/27 - version 3.6a - bug fix: escaped text and math stays escaped, i.e.
+ also arrow code like `<=>'
+2013/04/19 - version 3.6b - new option `arrow-min-length'
+ - bug fix: stoichiometric fractions correctly displayed
+2013/07/06 - version 4.0 - don't need `chemmacros' package any more,
+ `chemformula' can be used stand-alone;
+ this has lead to a few definitions that previously
+ were done by chemmacros; chemmacros will get them
+ now from chemformula when needed
+ - bug fix: allow braces in subscripts and superscripts
+ by disabling superfluous \chemformula_subscript:n
+ and \chemformula_superscript:n in the scripts write
+ commands
+ - remove superfluous rescanning at the begin of the
+ formula input; this is handled by the sanitize
+ command later anyway
+ - changed internal mathshifts from $ ... $ to \( ... \)
+ - removed superfluous \textstyle from math-frac
+ definition
+ - new command \charrow{}[][] that allows direct
+ access to chemformula's arrows
+ - new command \chname()() that allows direct access
+ to chemformula's naming
+ - new command \chcpd[]{} that allows typesetting a
+ simple single formula - also not nestable with \ch
+ - new command \setchemformula
+ - package option: `strict'
+ - don't allow a line break before a plus
+ (`chem-and')
+ - don't allow a line break between a stoichiometric
+ factor and a compound
+ - changed formal charges to match ``plain'' charges
+
+% --------------------------------------------------------------------------
% TODO
-- Bug: math- und text-escaping schützt nicht vor arrow-Umwandlung: \ch{"->"}
- Addukte: Zahlen nach * und . automatisch erkennen?
-- allow fractions in subscripts: _{$\frac{1}{2}$} ?
- optionale Argumente von \\ nach außen weiterreichen?
-- vertikalen Shift der Hoch- und Tiefstellungen mit \mathchoice anpassen:
- \( K = \frac{[\ch{Na+}]^2[\ch{SO4^2-}]}{[\ch{Na2SO4}]} \) \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemgreek.sty b/Master/texmf-dist/tex/latex/chemmacros/chemgreek.sty
new file mode 100644
index 00000000000..dc072de4205
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/chemmacros/chemgreek.sty
@@ -0,0 +1,443 @@
+% ----------------------------------------------------------------------------
+% - the CHEMMACROS bundle
+% - chemgreek.sty
+% - macros and commands for chemists
+% ---------------------------------------------------------------------------
+% - Clemens Niederberger
+% ---------------------------------------------------------------------------
+% - https://bitbucket.org/cgnieder/chemmacros/
+% - contact@mychemistry.eu
+% ---------------------------------------------------------------------------
+% - If you have any ideas, questions, suggestions or bugs to report, please
+% - feel free to contact me.
+% ---------------------------------------------------------------------------
+% - Copyright 2011-2013 Clemens Niederberger
+% -
+% - This work may be distributed and/or modified under the
+% - conditions of the LaTeX Project Public License, either version 1.3
+% - of this license or (at your option) any later version.
+% - The latest version of this license is in
+% - http://www.latex-project.org/lppl.txt
+% - and version 1.3 or later is part of all distributions of LaTeX
+% - version 2005/12/01 or later.
+% -
+% - This work has the LPPL maintenance status `maintained'.
+% -
+% - The Current Maintainer of this work is Clemens Niederberger.
+% ----------------------------------------------------------------------------
+\RequirePackage{expl3,xparse}
+\def\chemgreek@version{0.1a}
+\def\chemgreek@date{2013/07/06}
+
+\ProvidesExplPackage{chemgreek}{\chemgreek@date}{\chemgreek@version}
+ {interface for upright greek letters for use in chemistry (CN)}
+
+% ----------------------------------------------------------------------------
+% temporary variables:
+\seq_new:N \l__chemgreek_tmpa_seq
+\tl_new:N \l__chemgreek_tmpa_tl
+\tl_new:N \l__chemgreek_tmpb_tl
+\int_new:N \l__chemgreek_tmpa_int
+\int_new:N \g__chemgreek_tmpa_int
+
+% ----------------------------------------------------------------------------
+% messages
+\msg_new:nnnn { chemgreek } { mapping-not-defined }
+ { The~ mapping~ `#1'~ does~ not~ exist~ \msg_line_context: }
+ {
+ You~ chose~ the~ mapping~ `#1'~ which~ has~ apparently~ not~ been~
+ defined,~ yet.~ If~ this~ is~ due~ to~ a~ miss-spelling~ you~ need~ to~
+ declare~ it~ first~ via~ \token_to_str:N \newchemgreekmapping \c_space_tl
+ or~ \token_to_str:N \declarechemgreekmapping .
+ }
+
+\msg_new:nnnn { chemgreek } { mapping-defined }
+ { The~ mapping~ `#1'~ does~ already~ exist~ \msg_line_context: }
+ {
+ It~ seems~ you're~ trying~ to~ define~ the~ mapping~ `#1'.~ However,~
+ this~ mapping~ does~ already~ exist.~ If~ this~ is~ not~ due~ to~ a~
+ miss-spelling~ you~ need~ to~ redefine~ it~ via~ \token_to_str:N
+ \renewchemgreekmapping .
+ }
+
+% ----------------------------------------------------------------------------
+% a tokenlist constant that will be used to build the mapping property lists
+% both for uppercase and lowercase and also for setting the output macros
+\tl_const:Nn \c__chemgreek_order_tl
+ {
+ { alpha } % 1
+ { beta } % 2
+ { gamma } % 3
+ { delta } % 4
+ { epsilon } % 5
+ { zeta } % 6
+ { eta } % 7
+ { theta } % 8
+ { iota } % 9
+ { kappa } % 10
+ { lambda } % 11
+ { mu } % 12
+ { nu } % 13
+ { xi } % 14
+ { omikron } % 15
+ { pi } % 16
+ { rho } % 17
+ { sigma } % 18
+ { tau } % 19
+ { upsilon } % 20
+ { phi } % 21
+ { psi } % 22
+ { chi } % 23
+ { omega } % 24
+ }
+
+% ----------------------------------------------------------------------------
+% variants of kernel functions:
+\cs_generate_variant:Nn \prop_put:Nnn { cxV }
+
+% ----------------------------------------------------------------------------
+% helper function to retrieve upper- and lowercase entries while the mapping
+% happens:
+\cs_new:Npn \__chemgreek_get_upper_lower:w #1 / #2 \q_stop
+ {
+ \tl_set:Nn \l__chemgreek_tmpa_tl { #1 }
+ \tl_set:Nn \l__chemgreek_tmpb_tl { #2 }
+ }
+
+% ----------------------------------------------------------------------------
+% a conditional to test if a mapping exists:
+\prg_new_conditional:Npnn \chemgreek_if_mapping_exists:n #1 {p,T,F,TF}
+ {
+ \bool_if:nTF
+ {
+ \prop_if_exist_p:c { l__chemgreek_uppercase_mapping_#1_prop } &&
+ \prop_if_exist_p:c { l__chemgreek_lowercase_mapping_#1_prop }
+ }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+% ----------------------------------------------------------------------------
+% the main mapping function:
+% #1: mapping-name
+% #2: mapping-entries
+\cs_new_protected:Npn \chemgreek_new_mapping:nn #1#2
+ {
+ \chemgreek_if_mapping_exists:nTF { #1 }
+ { \msg_error:nn { chemgreek } { mapping-defined } }
+ {
+ \prop_new:c { l__chemgreek_uppercase_mapping_#1_prop }
+ \prop_new:c { l__chemgreek_lowercase_mapping_#1_prop }
+ \__chemgreek_set_mapping:nn { #1 } { #2 }
+ }
+ }
+
+\cs_new_protected:Npn \chemgreek_renew_mapping:nn #1#2
+ {
+ \chemgreek_if_mapping_exists:nTF { #1 }
+ { \__chemgreek_set_mapping:nn { #1 } { #2 } }
+ { \msg_error:nn { chemgreek } { mapping-not-defined } }
+ }
+
+\cs_new_protected:Npn \chemgreek_declare_mapping:nn #1#2
+ {
+ \chemgreek_if_mapping_exists:nF { #1 }
+ {
+ \prop_new:c { l__chemgreek_uppercase_mapping_#1_prop }
+ \prop_new:c { l__chemgreek_lowercase_mapping_#1_prop }
+ }
+ \__chemgreek_set_mapping:nn { #1 } { #2 }
+ }
+
+\cs_new_protected:Npn \__chemgreek_set_mapping:nn #1#2
+ {
+ \int_zero:N \l__chemgreek_tmpa_int
+ \clist_map_inline:nn { #2 }
+ {
+ \int_incr:N \l__chemgreek_tmpa_int
+ \__chemgreek_get_upper_lower:w ##1 \q_stop
+ \prop_put:cxV { l__chemgreek_lowercase_mapping_#1_prop }
+ { \tl_item:Nn \c__chemgreek_order_tl { \l__chemgreek_tmpa_int } }
+ \l__chemgreek_tmpa_tl
+ \prop_put:cxV { l__chemgreek_uppercase_mapping_#1_prop }
+ { \tl_item:Nn \c__chemgreek_order_tl { \l__chemgreek_tmpa_int } }
+ \l__chemgreek_tmpb_tl
+ }
+ }
+
+% the user command:
+\NewDocumentCommand \newchemgreekmapping { mm }
+ { \chemgreek_new_mapping:nn { #1 } { #2 } }
+
+\NewDocumentCommand \renewchemgreekmapping { mm }
+ { \chemgreek_renew_mapping:nn { #1 } { #2 } }
+
+\NewDocumentCommand \declarechemgreekmapping { mm }
+ { \chemgreek_declare_mapping:nn { #1 } { #2 } }
+
+% ----------------------------------------------------------------------------
+% a function to selectively change specific entries in a mapping:
+% #1: mapping-name
+% #2: upper / lower
+% #3: entry-name
+% #4: entry
+\cs_new_protected:Npn \chemgreek_change:nnnn #1#2#3#4
+ {
+ \chemgreek_if_mapping_exists:nTF { #1 }
+ {
+ \prop_put:cnn { l__chemgreek_#2 case_mapping_#1_prop }
+ { #3 }
+ { #4 }
+ }
+ { \msg_error:nn { chemgreek } { mapping-not-defined } }
+ }
+
+% the user command:
+\NewDocumentCommand \changechemgreeksymbol { mmmm }
+ { \chemgreek_change:nnnn { #1 } { #2 } { #3 } { #4 } }
+
+% ----------------------------------------------------------------------------
+% a function to activate a mapping:
+% #1: mapping-name
+\cs_new_protected:Npn \chemgreek_activate_mapping:n #1
+ {
+ \chemgreek_if_mapping_exists:nTF { #1 }
+ {
+ \tl_map_inline:Nn \c__chemgreek_order_tl
+ {
+ \cs_set_protected:cpx { Chem \tl_expandable_uppercase:n ##1 }
+ { \prop_get:cn { l__chemgreek_uppercase_mapping_#1_prop } { ##1 } }
+ \cs_set_protected:cpx { Chem ##1 }
+ { \prop_get:cn { l__chemgreek_lowercase_mapping_#1_prop } { ##1 } }
+ }
+ }
+ { \msg_error:nn { chemgreek } { mapping-not-defined } }
+ }
+
+% user command that also loads the needed package:
+% #1: load package
+% #2: option
+% #3: mapping-name
+\NewDocumentCommand \activatechemgreekmapping { som }
+ {
+ \IfBooleanT { #1 }
+ {
+ \IfNoValueTF { #2 }
+ { \RequirePackage { #3 } }
+ { \RequirePackage [ #2 ] { #3 } }
+ }
+ \chemgreek_activate_mapping:n { #3 }
+ }
+\@onlypreamble\activatechemgreekmapping
+
+% user command that activates a new mapping without loading the package:
+\NewDocumentCommand \selectchemgreekmapping { m }
+ { \chemgreek_activate_mapping:n { #1 } }
+
+% ----------------------------------------------------------------------------
+% a debugging command:
+\cs_new_protected:Npn \chemgreek_show_mapping:n #1
+ {
+ \chemgreek_activate_mapping:n { #1 }
+ \int_gzero:N \g__chemgreek_tmpa_int
+ \begin { tabular } { llll }
+ pos & name & lower & upper \\
+ \tl_map_inline:Nn \c__chemgreek_order_tl
+ {
+ \int_gincr:N \g__chemgreek_tmpa_int
+ \int_use:N \g__chemgreek_tmpa_int . &
+ ##1 &
+ \use:c { Chem ##1 } &
+ \use:c { Chem \tl_expandable_uppercase:n ##1 } \\
+ }
+ \end{tabular}
+ }
+
+\cs_new_eq:NN \showchemgreekmapping \chemgreek_show_mapping:n
+
+% ----------------------------------------------------------------------------
+% predefine some mappings
+% default:
+\chemgreek_new_mapping:nn { default }
+ {
+ \ensuremath{\alpha} / \ensuremath{\mathrm{A}} , % 1
+ \ensuremath{\beta} / \ensuremath{\mathrm{B}} , % 2
+ \ensuremath{\gamma} / \ensuremath{\Gamma} , % 3
+ \ensuremath{\delta} / \ensuremath{\Delta} , % 4
+ \ensuremath{\epsilon} / \ensuremath{\mathrm{E}} , % 5
+ \ensuremath{\zeta} / \ensuremath{\mathrm{Z}} , % 6
+ \ensuremath{\eta} / \ensuremath{\mathrm{H}} , % 7
+ \ensuremath{\theta} / \ensuremath{\Theta} , % 8
+ \ensuremath{\iota} / \ensuremath{\mathrm{I}} , % 9
+ \ensuremath{\kappa} / \ensuremath{\mathrm{K}} , % 10
+ \ensuremath{\lambda} / \ensuremath{\Lambda} , % 11
+ \ensuremath{\mu} / \ensuremath{\mathrm{M}} , % 12
+ \ensuremath{\nu} / \ensuremath{\mathrm{N}} , % 13
+ \ensuremath{\xi} / \ensuremath{\Xi} , % 14
+ \ensuremath{o} / \ensuremath{\mathrm{O}} , % 15
+ \ensuremath{\pi} / \ensuremath{\Pi} , % 16
+ \ensuremath{\rho} / \ensuremath{\mathrm{P}} , % 17
+ \ensuremath{\sigma} / \ensuremath{\Sigma} , % 18
+ \ensuremath{\tau} / \ensuremath{\mathrm{T}} , % 19
+ \ensuremath{\upsilon} / \ensuremath{\Upsilon} , % 20
+ \ensuremath{\phi} / \ensuremath{\Phi} , % 21
+ \ensuremath{\psi} / \ensuremath{\Psi} , % 22
+ \ensuremath{\chi} / \ensuremath{\mathrm{X}} , % 23
+ \ensuremath{\omega} / \ensuremath{\Omega} % 24
+ }
+
+% default-variant:
+\chemgreek_new_mapping:nn { var-default }
+ {
+ \ensuremath{\alpha} / \ensuremath{\mathrm{A}} , % 1
+ \ensuremath{\beta} / \ensuremath{\mathrm{B}} , % 2
+ \ensuremath{\gamma} / \ensuremath{\Gamma} , % 3
+ \ensuremath{\delta} / \ensuremath{\Delta} , % 4
+ \ensuremath{\varepsilon} / \ensuremath{\mathrm{E}} , % 5
+ \ensuremath{\zeta} / \ensuremath{\mathrm{Z}} , % 6
+ \ensuremath{\eta} / \ensuremath{\mathrm{H}} , % 7
+ \ensuremath{\theta} / \ensuremath{\Theta} , % 8
+ \ensuremath{\iota} / \ensuremath{\mathrm{I}} , % 9
+ \ensuremath{\kappa} / \ensuremath{\mathrm{K}} , % 10
+ \ensuremath{\lambda} / \ensuremath{\Lambda} , % 11
+ \ensuremath{\mu} / \ensuremath{\mathrm{M}} , % 12
+ \ensuremath{\nu} / \ensuremath{\mathrm{N}} , % 13
+ \ensuremath{\xi} / \ensuremath{\Xi} , % 14
+ \ensuremath{o} / \ensuremath{\mathrm{O}} , % 15
+ \ensuremath{\pi} / \ensuremath{\Pi} , % 16
+ \ensuremath{\varrho} / \ensuremath{\mathrm{P}} , % 17
+ \ensuremath{\sigma} / \ensuremath{\Sigma} , % 18
+ \ensuremath{\tau} / \ensuremath{\mathrm{T}} , % 19
+ \ensuremath{\upsilon} / \ensuremath{\Upsilon} , % 20
+ \ensuremath{\phi} / \ensuremath{\Phi} , % 21
+ \ensuremath{\psi} / \ensuremath{\Psi} , % 22
+ \ensuremath{\chi} / \ensuremath{\mathrm{X}} , % 23
+ \ensuremath{\omega} / \ensuremath{\Omega} % 24
+ }
+
+% textgreek:
+\chemgreek_new_mapping:nn { textgreek }
+ {
+ \textalpha / \textAlpha , % 1
+ \textbeta / \textBeta , % 2
+ \textgamma / \textGamma , % 3
+ \textdelta / \textDelta , % 4
+ \textepsilon / \textEpsilon , % 5
+ \textzeta / \textZeta , % 6
+ \texteta / \textEta , % 7
+ \texttheta / \textTheta , % 8
+ \textiota / \textIota , % 9
+ \textkappa / \textKappa , % 10
+ \textlambda / \textLambda , % 11
+ \textmugreek / \textMu , % 12
+ \textnu / \textNu , % 13
+ \textxi / \textXi , % 14
+ \textomikron / \textOmikron , % 15
+ \textpi / \textPi , % 16
+ \textrho / \textRho , % 17
+ \textsigma / \textSigma , % 18
+ \texttau / \textTau , % 19
+ \textupsilon / \textUpsilon , % 20
+ \textphi / \textPhi , % 21
+ \textpsi / \textPsi , % 22
+ \textchi / \textChi , % 23
+ \textomega / \textOmega % 24
+ }
+
+% upgreek:
+\chemgreek_new_mapping:nn { upgreek }
+ {
+ \ensuremath{\upalpha} / \ensuremath{\mathrm{A}} , % 1
+ \ensuremath{\upbeta} / \ensuremath{\mathrm{B}} , % 2
+ \ensuremath{\upgamma} / \ensuremath{\Upgamma} , % 3
+ \ensuremath{\updelta} / \ensuremath{\Updelta} , % 4
+ \ensuremath{\upepsilon} / \ensuremath{\mathrm{E}} , % 5
+ \ensuremath{\upzeta} / \ensuremath{\mathrm{Z}} , % 6
+ \ensuremath{\upeta} / \ensuremath{\mathrm{H}} , % 7
+ \ensuremath{\uptheta} / \ensuremath{\Uptheta} , % 8
+ \ensuremath{\upiota} / \ensuremath{\mathrm{I}} , % 9
+ \ensuremath{\upkappa} / \ensuremath{\mathrm{K}} , % 10
+ \ensuremath{\uplambda} / \ensuremath{\Uplambda} , % 11
+ \ensuremath{\upmu} / \ensuremath{\mathrm{M}} , % 12
+ \ensuremath{\upnu} / \ensuremath{\mathrm{N}} , % 13
+ \ensuremath{\upxi} / \ensuremath{\Upxi} , % 14
+ \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
+ \ensuremath{\uppi} / \ensuremath{\Uppi} , % 16
+ \ensuremath{\uprho} / \ensuremath{\mathrm{R}} , % 17
+ \ensuremath{\upsigma} / \ensuremath{\Upsigma} , % 18
+ \ensuremath{\uptau} / \ensuremath{\mathrm{T}} , % 19
+ \ensuremath{\upupsilon} / \ensuremath{\Upupsilon} , % 20
+ \ensuremath{\upphi} / \ensuremath{\Upphi} , % 21
+ \ensuremath{\uppsi} / \ensuremath{\Uppsi} , % 22
+ \ensuremath{\upchi} / \ensuremath{\mathrm{X}} , % 23
+ \ensuremath{\upomega} / \ensuremath{\Upomega} % 24
+ }
+
+% kpfonts:
+\chemgreek_new_mapping:nn { kpfonts }
+ {
+ \ensuremath{\alphaup} / \ensuremath{\mathrm{A}} , % 1
+ \ensuremath{\betaup} / \ensuremath{\mathrm{B}} , % 2
+ \ensuremath{\gammaup} / \ensuremath{\Gammaup} , % 3
+ \ensuremath{\deltaup} / \ensuremath{\Deltaup} , % 4
+ \ensuremath{\epsilonup} / \ensuremath{\mathrm{E}} , % 5
+ \ensuremath{\zetaup} / \ensuremath{\mathrm{Z}} , % 6
+ \ensuremath{\etaup} / \ensuremath{\mathrm{H}} , % 7
+ \ensuremath{\thetaup} / \ensuremath{\Thetaup} , % 8
+ \ensuremath{\iotaup} / \ensuremath{\mathrm{I}} , % 9
+ \ensuremath{\kappaup} / \ensuremath{\mathrm{K}} , % 10
+ \ensuremath{\lambdaup} / \ensuremath{\Lambdaup} , % 11
+ \ensuremath{\muup} / \ensuremath{\mathrm{M}} , % 12
+ \ensuremath{\nuup} / \ensuremath{\mathrm{N}} , % 13
+ \ensuremath{\xiup} / \ensuremath{\Xiup} , % 14
+ \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
+ \ensuremath{\piup} / \ensuremath{\Piup} , % 16
+ \ensuremath{\rhoup} / \ensuremath{\mathrm{R}} , % 17
+ \ensuremath{\sigmaup} / \ensuremath{\Sigmaup} , % 18
+ \ensuremath{\tauup} / \ensuremath{\mathrm{T}} , % 19
+ \ensuremath{\upsilonup} / \ensuremath{\Upsilonup} , % 20
+ \ensuremath{\phiup} / \ensuremath{\Phiup} , % 21
+ \ensuremath{\psiup} / \ensuremath{\Psiup} , % 22
+ \ensuremath{\chiup} / \ensuremath{\mathrm{X}} , % 23
+ \ensuremath{\omegaup} / \ensuremath{\Omegaup} % 24
+ }
+
+% newtx:
+\chemgreek_new_mapping:nn { newtx }
+ {
+ \ensuremath{\upalpha} / \ensuremath{\mathrm{A}} , % 1
+ \ensuremath{\upbeta} / \ensuremath{\mathrm{B}} , % 2
+ \ensuremath{\upgamma} / \ensuremath{\upGamma} , % 3
+ \ensuremath{\updelta} / \ensuremath{\upDelta} , % 4
+ \ensuremath{\upepsilon} / \ensuremath{\mathrm{E}} , % 5
+ \ensuremath{\upzeta} / \ensuremath{\mathrm{Z}} , % 6
+ \ensuremath{\upeta} / \ensuremath{\mathrm{H}} , % 7
+ \ensuremath{\uptheta} / \ensuremath{\upTheta} , % 8
+ \ensuremath{\upiota} / \ensuremath{\mathrm{I}} , % 9
+ \ensuremath{\upkappa} / \ensuremath{\mathrm{K}} , % 10
+ \ensuremath{\uplambda} / \ensuremath{\upLambda} , % 11
+ \ensuremath{\upmu} / \ensuremath{\mathrm{M}} , % 12
+ \ensuremath{\upnu} / \ensuremath{\mathrm{N}} , % 13
+ \ensuremath{\upxi} / \ensuremath{\upXi} , % 14
+ \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
+ \ensuremath{\uppi} / \ensuremath{\upPi} , % 16
+ \ensuremath{\uprho} / \ensuremath{\mathrm{R}} , % 17
+ \ensuremath{\upsigma} / \ensuremath{\upSigma} , % 18
+ \ensuremath{\uptau} / \ensuremath{\mathrm{T}} , % 19
+ \ensuremath{\upupsilon} / \ensuremath{\upUpsilon} , % 20
+ \ensuremath{\upphi} / \ensuremath{\upPhi} , % 21
+ \ensuremath{\uppsi} / \ensuremath{\upPsi} , % 22
+ \ensuremath{\upchi} / \ensuremath{\mathrm{X}} , % 23
+ \ensuremath{\upomega} / \ensuremath{\upOmega} % 24
+ }
+
+% activate default mapping
+\chemgreek_activate_mapping:n { default }
+
+\tex_endinput:D
+
+HISTORY:
+2013/06/26 - v0.1 - first working version to be bundled with chemmacros
+2013/07/06 - v0.1a - fixed stupid bug in `upgreek' mapping
+ - added error messages and added \renewchemgreekmapping and
+ \declarechemgreekmapping
diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty
index efa0b0d2138..a1c7aa6c46f 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty
+++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty
@@ -1,67 +1,105 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% --------------------------------------------------------------------------- %
-% - the CHEMMACROS bundle - %
-% - chemmacros.sty - %
-% - macros and commands for chemists - %
-% --------------------------------------------------------------------------- %
-% - Clemens Niederberger - %
-% --------------------------------------------------------------------------- %
-% - https://bitbucket.org/cgnieder/chemmacros/ - %
-% - contact@mychemistry.eu - %
-% --------------------------------------------------------------------------- %
-% - If you have any ideas, questions, suggestions or bugs to report, please - %
-% - feel free to contact me. - %
-% --------------------------------------------------------------------------- %
-% - Copyright 2011-2013 Clemens Niederberger - %
-% - - %
-% - This work may be distributed and/or modified under the - %
-% - conditions of the LaTeX Project Public License, either version 1.3 - %
-% - of this license or (at your option) any later version. - %
-% - The latest version of this license is in - %
-% - http://www.latex-project.org/lppl.txt - %
-% - and version 1.3 or later is part of all distributions of LaTeX - %
-% - version 2005/12/01 or later. - %
-% - - %
-% - This work has the LPPL maintenance status `maintained'. - %
-% - - %
-% - The Current Maintainer of this work is Clemens Niederberger. - %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\RequirePackage{ expl3 , xparse , l3keys2e , xfrac , siunitx }
-\RequirePackage{ tikz , mathtools , environ , scrlfile , etoolbox , bm }
-\usetikzlibrary{calc,arrows}
-\def\chemmacros@version{3.6b}
-\def\chemmacros@date{2013/04/19}
+% --------------------------------------------------------------------------
+% - the CHEMMACROS bundle
+% - chemmacros.sty
+% - loads of little helpers for chemists
+% --------------------------------------------------------------------------
+% - Clemens Niederberger
+% --------------------------------------------------------------------------
+% - https://bitbucket.org/cgnieder/chemmacros/
+% - contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% - If you have any ideas, questions, suggestions or bugs to report, please
+% - feel free to contact me.
+% --------------------------------------------------------------------------
+% - Copyright 2011-2013 Clemens Niederberger
+% -
+% - This work may be distributed and/or modified under the
+% - conditions of the LaTeX Project Public License, either version 1.3
+% - of this license or (at your option) any later version.
+% - The latest version of this license is in
+% - http://www.latex-project.org/lppl.txt
+% - and version 1.3 or later is part of all distributions of LaTeX
+% - version 2005/12/01 or later.
+% -
+% - This work has the LPPL maintenance status `maintained'.
+% -
+% - The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\RequirePackage{ expl3 , xparse , l3keys2e }
+\def\chemmacros@version{4.0}
+\def\chemmacros@date{2013/07/06}
\ProvidesExplPackage
{chemmacros}
{\chemmacros@date}
{\chemmacros@version}
- {macros and commands for chemists}
-
-\@ifpackageloaded { chemformula } {} { \RequirePackage { chemformula } }
-
-\bool_new:N \l__chemmacros_version_one_bool
-\bool_new:N \l__chemmacros_xspace_bool
- \bool_set_true:N \l__chemmacros_xspace_bool
-\bool_new:N \l__chemmacros_bpchem_bool
-\bool_new:N \l__chemmacros_circled_bool
- \bool_set_true:N \l__chemmacros_circled_bool
-\bool_new:N \l__chemmacros_circled_formal_bool
- \bool_set_true:N \l__chemmacros_circled_formal_bool
-\bool_new:N \l__chemmacros_circled_chem_bool
- \bool_set_true:N \l__chemmacros_circled_chem_bool
-\bool_new:N \l__chemmacros_EZ_cool_bool
-\bool_new:N \l__chemmacros_Nu_mathspec_bool
-\bool_new:N \l__chemmacros_use_mhchem_bool
-\bool_new:N \l__chemmacros_chemstyle_bool
-\bool_new:N \l__chemmacros_hyperref_bool
-\bool_new:N \l__chemmacros_varioref_bool
-\bool_new:N \l__chemmacros_chemfig_bool
-\bool_new:N \l__chemmacros_ghsystem_bool
- \bool_set_true:N \l__chemmacros_ghsystem_bool
-\bool_new:N \l__chemmacros_iupac_restricted_bool
-\bool_new:N \l__chemmacros_iupac_strict_bool
-\bool_new:N \l__chemmacros_in_document_bool
+ {loads of little helpers for chemists (CN)}
+
+% --------------------------------------------------------------------------
+% check expl3 version:
+\@ifpackagelater { expl3 } { 2012/11/21 }
+ { }
+ {
+ \PackageError { chemmacros } { Support~package~expl3~too~old }
+ {
+ You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
+ 'l3packages'.\MessageBreak
+ Loading~chemmacros~will~abort!
+ }
+ \tex_endinput:D
+ }
+
+% --------------------------------------------------------------------------
+% variants of kernel commands:
+\cs_generate_variant:Nn \prop_if_in:NnTF { NV , Nx }
+\cs_generate_variant:Nn \prop_put:Nnn { NV , NVx }
+\cs_generate_variant:Nn \prop_get:NnNTF { NV }
+\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV }
+
+% --------------------------------------------------------------------------
+% load required packages
+% the technical ones:
+\RequirePackage { environ , scrlfile , etoolbox , translations }
+% related to other topics like mathematics or graphics:
+\RequirePackage { xfrac , siunitx , tikz, mathtools , bm }
+% other packages of this bundle -- ghsystem is not loaded here but at the end
+% of the preamble depending on a package option:
+\RequirePackage { chemformula , chemgreek }
+% TikZ libraries (the don't like expl3 syntax):
+\ExplSyntaxOff
+\usetikzlibrary{calc,arrows}
+\ExplSyntaxOn
+
+% --------------------------------------------------------------------------
+% boolean variables for the package options
+% versioning:
+\bool_new:N \l__chemmacros_version_one_bool
+\bool_new:N \l__chemmacros_version_three_bool
+\bool_new:N \l__chemmacros_version_four_bool
+\bool_set_true:N \l__chemmacros_version_four_bool
+
+\bool_new:N \l__chemmacros_xspace_bool
+\bool_set_true:N \l__chemmacros_xspace_bool
+
+\bool_new:N \l__chemmacros_circled_bool
+\bool_set_true:N \l__chemmacros_circled_bool
+\bool_new:N \l__chemmacros_circled_formal_bool
+\bool_set_true:N \l__chemmacros_circled_formal_bool
+\bool_new:N \l__chemmacros_circled_chem_bool
+\bool_set_true:N \l__chemmacros_circled_chem_bool
+
+\bool_new:N \l__chemmacros_EZ_cool_bool
+\bool_new:N \l__chemmacros_Nu_mathspec_bool
+\bool_new:N \l__chemmacros_chemstyle_bool
+\bool_new:N \l__chemmacros_hyperref_bool
+\bool_new:N \l__chemmacros_varioref_bool
+\bool_new:N \l__chemmacros_chemfig_bool
+\bool_new:N \l__chemmacros_ghsystem_bool
+\bool_set_true:N \l__chemmacros_ghsystem_bool
+
+\bool_new:N \l__chemmacros_iupac_restricted_bool
+\bool_new:N \l__chemmacros_iupac_strict_bool
+\bool_new:N \l__chemmacros_in_document_bool
\AtBeginDocument
{
@@ -80,211 +118,293 @@
{ \bool_set_false:N \l__chemmacros_chemfig_bool }
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% warning / error messages
-\cs_new:Npn \chemmacros_msg:nnxx #1#2#3#4
+\cs_new_protected:Npn \chemmacros_msg:nnxx #1#2#3#4
{
- \bool_if:NTF \l__chemmacros_strict_bool
+ \bool_if:NTF \l_chemmacros_strict_bool
{ \msg_error:nnxx { #1 } { #2 } { #3 } { #4 } }
{ \msg_warning:nnxx { #1 } { #2 } { #3 } { #4 } }
}
-\msg_set:nnnn { chemmacros } { language-not-defined }
+\cs_new_protected:Npn \chemmacros_warning:nnxx #1#2#3#4
{
- The~language~#1~is~not~defined~by~chemmacros.
- }
- {
- You~chose~the~language~`#1'~which~is~not~defined~by~chemmacros.~`english'~is
- ~used~instead.~If~you~just~mistyped~try~again!~Otherwise~contact~the~author~
- and~he'll~probably~add~your~language.
+ \bool_if:NTF \l_chemmacros_strict_bool
+ { \msg_warning:nnxx { #1 } { #2 } { #3 } { #4 } }
+ { \msg_info:nnxx { #1 } { #2 } { #3 } { #4 } }
}
-\msg_set:nnnn { chemmacros } { already-defined }
+\msg_new:nnnn { chemmacros } { language-not-defined }
+ { The~ language~ `#1'~ is~ not~ defined~ by~ chemmacros. }
{
- The~command~#1~has~also~been~defined~by~another~package.
+ You~ chose~ the~ language~ `#1'~ which~ is~ not~ defined~ by~ chemmacros.~
+ `english'~ is~ used~ instead.~ If~ you~ just~ mistyped~ try~ again!~
+ Otherwise~ contact~ the~ author~ and~ he'll~ probably~ add~ your~ language.
}
+
+\msg_new:nnnn { chemmacros } { already-defined }
+ { The~ command~ #1~ has~ also~ been~ defined~ by~ another~ package. }
{
- The~command~#1~has~also~been~defined~by~another~package.~
- chemmacros~provides~an~alternative~definition.~
- See~the~documentation~for~more~information.
+ The~ command~ #1~ has~ also~ been~ defined~ by~ another~ package.~
+ chemmacros~ provides~ an~ alternative~ definition.~ See~ the~
+ documentation~ for~ more~ information.
}
-\msg_set:nnnn { chemmacros } { option-deprecated }
- { The~option~#1~is~deprecated.~I~will~ignore~it. }
+\msg_new:nnnn { chemmacros } { option-deprecated }
+ { The~ option~ `#1'~ is~ deprecated.~ I~ will~ ignore~ it. }
{
- The~package~option~#1~is~deprecated~and~not~used~by~chemmacros~any~more.
- ~It~will~therefore~simply~be~ignored.
+ The~ package~ option~ `#1'~ is~ deprecated~ and~ not~ used~ by~
+ chemmacros~ any~ more.~ It~ will~ therefore~ simply~ be~ ignored.
}
-\msg_set:nnnn { chemmacros } { command-deprecated }
+\msg_new:nnnn { chemmacros } { command-deprecated }
{
- The~command~\token_to_str:N #1 \c_space_tl is~deprecated.~Use~
+ The~ command~ \token_to_str:N #1 \c_space_tl is~ deprecated.~ Use~
\token_to_str:N #2 \c_space_tl instead.
}
{
- The~command~\token_to_str:N #1 \c_space_tl is~deprecated.~Use~
+ The~ command~ \token_to_str:N #1 \c_space_tl is~ deprecated.~ Use~
\token_to_str:N #2 \c_space_tl instead.
}
-\cs_new_protected:Npn \chemmacros_define_deprecated:NNn #1#2#3
+\msg_new:nnnn { chemmacros } { command-dropped }
{
- \cs_new_protected:Npn #1
- {
- \chemmacros_msg:nnxx { chemmacros } { command-deprecated }
- { #1 } { #2 }
- #3
- }
+ The~ command~ \token_to_str:N #1 \c_space_tl has~ been~ dropped.~ I'm~
+ sorry.
+ }
+ {
+ The~ command~ \token_to_str:N #1 \c_space_tl has~ been~ dropped.~ I'm~
+ sorry.
}
-\NewDocumentCommand \DeclareChemDeprecated { mmm }
- { \chemmacros_define_deprecated:NNn #1 #2 { #3 } }
-
-\msg_set:nnnn { chemmacros } { command-dropped }
- { The~command~\token_to_str:N #1 \c_space_tl has~been~dropped.~I'm~sorry. }
- { The~command~\token_to_str:N #1 \c_space_tl has~been~dropped.~I'm~sorry. }
-\msg_set:nnnn { chemmacros } { declare-particle }
+\msg_new:nnnn { chemmacros } { declare-particle }
{
- The~command~sequence~ \token_to_str:N #1 \c_space_tl is~already~defined.
+ The~ command~ sequence~ \token_to_str:N #1 \c_space_tl is~ already~
+ defined.
}
{
- You've~tried~to~define~a~particle~with~\token_to_str:N \DeclareChemParticle,
- ~but~the~command~sequence~ \token_to_str:N #1 \c_space_tl already~exists.
- ~Please~choose~another~name.
+ You've~ tried~ to~ define~ a~ particle~ with~ \token_to_str:N
+ \DeclareChemParticle ,~ but~ the~ command~ sequence~ \token_to_str:N #1
+ \c_space_tl already~ exists.~ Please~ choose~ another~ name.
}
-\msg_set:nnnn { chemmacros } { renew-particle }
- { The~particle~ \token_to_str:N #1 \c_space_tl is~not~defined. }
+\msg_new:nnnn { chemmacros } { renew-particle }
+ { The~ particle~ \token_to_str:N #1 \c_space_tl is~ not~ defined. }
{
- You've~tried~to~renew~the~particle~\token_to_str:N #1 ,~but~it~doesn't~
- exist.
+ You've~ tried~ to~ renew~ the~ particle~ \token_to_str:N #1 ,~ but~ it~
+ doesn't~ exist.
}
-\msg_set:nnnn { chemmacros } { declare-latin }
+\msg_new:nnnn { chemmacros } { declare-latin }
{
- The~command~sequence~ \token_to_str:N #1 \c_space_tl is~already~defined.
+ The~ command~ sequence~ \token_to_str:N #1 \c_space_tl is~ already~
+ defined.
}
{
- You've~tried~to~define~a~latin~phrase~with~\token_to_str:N
- \DeclareChemLatin,~but~the~command~sequence~ \token_to_str:N #1 \c_space_tl
- already~exists.~Please~choose~another~name.
+ You've~ tried~ to~ define~ a~ latin~ phrase~ with~\token_to_str:N
+ \DeclareChemLatin ,~ but~ the~ command~ sequence~ \token_to_str:N #1
+ \c_space_tl already~ exists.~ Please~ choose~ another~ name.
}
-\msg_set:nnnn { chemmacros } { renew-latin }
- { The~latin~phrase \token_to_str:N #1 \c_space_tl is~not~defined. }
+\msg_new:nnnn { chemmacros } { renew-latin }
+ { The~ latin~ phrase \token_to_str:N #1 \c_space_tl is~ not~ defined. }
{
- You've~tried~to~renew~the~latin~phrase~\token_to_str:N #1 ,~but~it~doesn't~
- exist.
+ You've~ tried~ to~ renew~ the~ latin~ phrase~ \token_to_str:N #1 ,~ but~
+ it~ doesn't~ exist.
}
-\msg_set:nnnn { chemmacros } { declare-nmr }
+\msg_new:nnnn { chemmacros } { declare-nmr }
{
- The~command~sequence~ \token_to_str:N #1 \c_space_tl is~already~defined.
+ The~ command~ sequence~ \token_to_str:N #1 \c_space_tl is~ already~
+ defined.
}
{
- You've~tried~to~define~a~NMR~command~with~\token_to_str:N
- \DeclareChemParticle, ~but~the~command~sequence~ \token_to_str:N #1
- \c_space_tl already~exists.~Please~choose~another~name.
+ You've~ tried~ to~ define~ a~ NMR~ command~ with~\token_to_str:N
+ \DeclareChemParticle ,~ but~ the~ command~ sequence~ \token_to_str:N #1
+ \c_space_tl already~ exists.~ Please~ choose~ another~ name.
}
-\msg_set:nnnn { chemmacros } { renew-nmr }
- { The~NMR~command~ \token_to_str:N #1 \c_space_tl is~not~defined. }
+\msg_new:nnnn { chemmacros } { renew-nmr }
+ { The~ NMR~ command~ \token_to_str:N #1 \c_space_tl is~ not~ defined. }
{
- You've~tried~to~renew~the~NMR~command~\token_to_str:N #1 ,~but~it~doesn't~
- exist.
+ You've~ tried~ to~ renew~ the~ NMR~ command~ \token_to_str:N #1 ,~ but~
+ it~ doesn't~ exist.
}
-\msg_set:nnnn { chemmacros } { declare-phase }
+\msg_new:nnnn { chemmacros } { declare-phase }
{
- The~command~sequence~ \token_to_str:N #1 \c_space_tl is~already~defined.
+ The~ command~ sequence~ \token_to_str:N #1 \c_space_tl is~ already~
+ defined.
}
{
- You've~tried~to~define~a~particle~with~\token_to_str:N \DeclareChemPhase ,
- ~but~the~command~sequence~ \token_to_str:N #1 \c_space_tl already~exists.
- ~Please~choose~another~name.
+ You've~ tried~ to~ define~ a~ phase~ with~ \token_to_str:N
+ \DeclareChemPhase ,~ but~ the~ command~ sequence~ \token_to_str:N #1
+ \c_space_tl already~ exists.~ Please~ choose~ another~ name.
}
-\msg_set:nnnn { chemmacros } { renew-phase }
- { The~phase~ \token_to_str:N #1 \c_space_tl is~not~defined. }
+\msg_new:nnnn { chemmacros } { renew-phase }
+ { The~ phase~ \token_to_str:N #1 \c_space_tl is~ not~ defined. }
{
- You've~tried~to~renew~the~phase~\token_to_str:N #1 ,~but~it~doesn't~
- exist.
+ You've~ tried~ to~ renew~ the~ phase~ \token_to_str:N #1 ,~ but~ it~
+ doesn't~ exist.
}
-\msg_set:nnnn { chemmacros } { declare-iupac }
+\msg_new:nnnn { chemmacros } { declare-iupac }
{
- The~iupac~naming~command~ \token_to_str:N #1 \c_space_tl is~already~defined.
+ The~ iupac~ naming~ command~ \token_to_str:N #1 \c_space_tl is~ already~
+ defined.
}
{
- You've~tried~to~define~a~iupac~naming~command~with~\token_to_str:N
- \DeclareChemIUPAC,~but~the~iupac~command~ \token_to_str:N #1 \c_space_tl
- already~exists.~Choose~another~name~or~use~\token_to_str:N \RenewChemIUPAC .
+ You've~ tried~ to~ define~ a~ iupac~ naming~ command~ with~
+ \token_to_str:N \DeclareChemIUPAC ,~ but~ the~ iupac~ command~
+ \token_to_str:N #1 \c_space_tl already~ exists.~ Choose~ another~ name~
+ or~ use~ \token_to_str:N \RenewChemIUPAC .
}
-\msg_set:nnnn { chemmacros } { renew-iupac }
- { The~iupac~naming~command~ \token_to_str:N #1 \c_space_tl is~not~defined. }
+\msg_new:nnnn { chemmacros } { renew-iupac }
{
- You've~tried~to~renew~the~iupac~command~\token_to_str:N #1 ,~but~it~doesn't~
- exist.~Use~\token_to_str:N \DeclareChemIUPAC \c_space_tl instead .
+ The~ iupac~ naming~ command~ \token_to_str:N #1 \c_space_tl is~ not~
+ defined.
+ }
+ {
+ You've~ tried~ to~ renew~ the~ iupac~ command~ \token_to_str:N #1 ,~ but~
+ it~ doesn't~ exist.~ Use~ \token_to_str:N \DeclareChemIUPAC \c_space_tl
+ instead.
}
-\msg_set:nnnn { chemmacros } { ox }
+\msg_new:nnnn { chemmacros } { ox }
{ \token_to_str:N \ox \c_space_tl : ~ #1 ~ \msg_line_context: . }
{ \token_to_str:N \ox \c_space_tl : ~ #1 ~ \msg_line_context: . }
-\msg_set:nnnn { chemmacros } { OX }
+\msg_new:nnnn { chemmacros } { OX }
{ \token_to_str:N \OX \c_space_tl : ~ #1 ~ \msg_line_context: . }
{ \token_to_str:N \OX \c_space_tl : ~ #1 ~ \msg_line_context: . }
-\msg_set:nnnn { chemmacros } { redox }
+\msg_new:nnnn { chemmacros } { redox }
{ \token_to_str:N \redox \c_space_tl : ~ #1 ~ \msg_line_context: . }
{ \token_to_str:N \redox \c_space_tl : ~ #1 ~ \msg_line_context: . }
-\msg_set:nnnn { chemmacros } { chemfig }
+\msg_new:nnnn { chemmacros } { chemfig }
{
- You~need~to~load~the~chemfig~package~in~order~to~make~
- \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl
- work~properly~\msg_line_context: .
+ You~ need~ to~ load~ the~ `chemfig'~ package~ in~ order~ to~ make~
+ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl work~
+ properly~ \msg_line_context: .
}
{
- You~need~to~load~the~chemfig~package~in~order~to~make~
- \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl
- work~properly~\msg_line_context: .
+ You~ need~ to~ load~ the~ `chemfig'~ package~ in~ order~ to~ make~
+ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl work~
+ properly~ \msg_line_context: .
}
-\msg_set:nnnn { chemmacros } { DeclareChemState }
+\msg_new:nnnn { chemmacros } { DeclareChemState }
{
- The~state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end:
- \c_space_tl already~exists.~You~need~to~use~
- \token_to_str:N \RenewChemState \c_space_tl to~alter~it.
+ The~ state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl
+ already~ exists.~ You~ need~ to~ use~ \token_to_str:N \RenewChemState
+ \c_space_tl to~ alter~ it.
}
{
- The~state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end:
- \c_space_tl already~exists.~You~need~to~use~
- \token_to_str:N \RenewChemState \c_space_tl to~alter~it.
+ The~ state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl
+ already~ exists.~ You~ need~ to~ use~ \token_to_str:N \RenewChemState
+ \c_space_tl to~ alter~ it.
}
-\msg_set:nnnn { chemmacros } { RenewChemState }
+\msg_new:nnnn { chemmacros } { RenewChemState }
{
- The~state~\exp_after:wN \token_to_str:N \cs:w #1 \cs_end:
- \c_space_tl isn't~set~up~yet.~You~need~to~use~
- \token_to_str:N \DeclareChemState \c_space_tl to~create~it.
+ The~ state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl
+ isn't~ set~ up~ yet.~ You~ need~ to~ use~ \token_to_str:N
+ \DeclareChemState \c_space_tl to~ create~ it.
}
{
- The~state~\exp_after:wN \token_to_str:N \cs:w #1 \cs_end:
- \c_space_tl isn't~set~up~yet.~You~need~to~use~
- \token_to_str:N \DeclareChemState \c_space_tl to~create~it.
+ The~ state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl
+ isn't~ set~ up~ yet.~ You~ need~ to~ use~ \token_to_str:N
+ \DeclareChemState \c_space_tl to~ create ~it.
}
-% --------------------------------------------------------------------------- %
-% scratch variables
+% declare an option as deprecated:
+\cs_new_protected:Npn \chemmacros_option_deprecated:n #1
+ { \chemmacros_msg:nnn { chemmacros } { option-deprecated } { #1 } }
+
+% define a deprecated command with hints to the corresponding new one:
+\cs_new_protected:Npn \chemmacros_define_deprecated:NNn #1#2#3
+ {
+ \cs_new_protected:Npn #1
+ {
+ \chemmacros_msg:nnxx { chemmacros } { command-deprecated }
+ { #1 } { #2 }
+ #3
+ }
+ }
+
+\NewDocumentCommand \DeclareChemDeprecated { mmm }
+ { \chemmacros_define_deprecated:NNn #1 #2 { #3 } }
+
+% define a command as dropped!
+\cs_new_protected:Npn \chemmacros_define_dropped:N #1
+ {
+ \cs_new_protected:Npn #1
+ { \chemmacros_msg:nnxx { chemmacros } { command-dropped } { #1 } { } }
+ }
+
+\NewDocumentCommand \DeclareChemDropped { m }
+ { \chemmacros_define_dropped:N #1 }
+
+% --------------------------------------------------------------------------
+% temporary variables
\tl_new:N \l__chemmacros_tmpa_tl
\tl_new:N \l__chemmacros_tmpb_tl
\int_new:N \l__chemmacros_tmpa_int
\box_new:N \l__chemmacros_tmpa_box
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
+% language settings:
+\bool_new:N \l__chemmacros_language_auto_bool
+\bool_set_true:N \l__chemmacros_language_auto_bool
+% this token list will hold the chosen language for chemmacros; since the
+% language is either chosen automatically or by option it is only available at
+% begin document
+\tl_new:N \l_chemmacros_language_tl
+\tl_set:Nn \l_chemmacros_language_tl { english }
+\tl_new:N \l__chemmacros_current_language_tl
+
+% translate the key #1 or insert #2
+\cs_new:Npn \chemmacros_translate:nn #1#2
+ {
+ \@trnslt@if@translation
+ { #1 }
+ { \l_chemmacros_language_tl }
+ { \GetTranslation{#1} }
+ { #2 }
+ }
+
+\AtBeginDocument{
+ \bool_if:NTF \l__chemmacros_language_auto_bool
+ {
+ \tl_set:Nx \l_chemmacros_language_tl
+ { \@trnslt@language{\@trnslt@current@language} }
+ }
+ {
+ \tl_set_eq:NN
+ \l_chemmacros_language_tl
+ \l__chemmacros_current_language_tl
+ }
+}
+
+% --------------------------------------------------------------------------
+% version management:
+\tl_const:Nn \c__chemmacros_versions_tl { {one} {three} {four} }
+
+\cs_new_protected:Npn \chemmacros_set_version:n #1
+ {
+ \tl_map_inline:Nn \c__chemmacros_versions_tl
+ {
+ \tl_if_eq:nnTF { #1 } { ##1 }
+ { \bool_set_true:c { l__chemmacros_version_##1_bool } }
+ { \bool_set_false:c { l__chemmacros_version_##1_bool } }
+ }
+ }
+
+% --------------------------------------------------------------------------
% package options
-% bpchem => use \IUPAC inside for \NMR command
% circled => circle charges
% detect-bold => behaviour when font series bold
% EZ => cool or chemmacros version of \E
@@ -299,55 +419,52 @@
% version=1 => compatibility for documents set with v1.*
% xspace => add an \xspace after a whole bunch of macros
-\bool_new:N \l__chemmacros_strict_bool
+% this boolean has to be public since the other packages of the bundle may
+% want to know its value
+\bool_new:N \l_chemmacros_strict_bool
+
\bool_new:N \l__chemmacros_detect_bold_bool
\bool_set_true:N \l__chemmacros_detect_bold_bool
+
+\bool_new:N \l__chemmacros_option_greek_set_bool
\bool_new:N \l__chemmacros_use_upgreek_bool
\bool_new:N \l__chemmacros_use_textgreek_bool
-\bool_new:N \l__chemmacros_option_greek_set_bool
-
-\tl_new:N \l__chemmacros_language_tl
-\tl_set:Nn \l__chemmacros_language_tl { english }
-\tl_new:N \l__chemmacros_current_language_tl
-\tl_set:Nn \l__chemmacros_current_language_tl { english }
+\bool_new:N \l__chemmacros_use_kpfonts_bool
+\bool_new:N \l__chemmacros_use_newtx_bool
\cs_new:Npn \chemmacros_inner_font: {}
\keys_define:nn { chemmacros / option }
{
- bpchem .bool_set:N = \l__chemmacros_bpchem_bool ,
- bpchem .default:n = true ,
+ bpchem .code:n = \chemmacros_option_deprecated:n { bpchem } ,
circletype .choice: ,
circletype / math .code:n =
{ \bool_set_false:N \l__chemmacros_circled_chem_bool } ,
circletype / chem .code:n =
{ \bool_set_true:N \l__chemmacros_circled_chem_bool } ,
circled .choice: ,
- circled / none .code:n =
+ circled / none .code:n =
{
\bool_set_false:N \l__chemmacros_circled_bool
\bool_set_false:N \l__chemmacros_circled_formal_bool
} ,
- circled / formal .code:n =
+ circled / formal .code:n =
{
\bool_set_true:N \l__chemmacros_circled_bool
\bool_set_true:N \l__chemmacros_circled_formal_bool
} ,
- circled / all .code:n =
+ circled / all .code:n =
{
\bool_set_true:N \l__chemmacros_circled_bool
\bool_set_false:N \l__chemmacros_circled_formal_bool
} ,
circled .default:n = all ,
- detect-bold .code:n =
- \chemmacros_msg:nnxx { chemmacros } { option-deprecated }
- { detect-bold } {} ,
- EZ .code:n =
- \chemmacros_msg:nnxx { chemmacros } { option-deprecated } { EZ } {} ,
+ detect-bold .code:n = \chemmacros_option_deprecated:n { detect-bold } ,
+ EZ .code:n = \chemmacros_option_deprecated:n { EZ } ,
german .code:n =
- \tl_set:Nn \l__chemmacros_language_tl { german } ,
+ \tl_set:Nn \l__chemmacros_current_language_tl { german } ,
ngerman .code:n =
- \tl_set:Nn \l__chemmacros_language_tl { ngerman } ,
+ \tl_set:Nn \l__chemmacros_current_language_tl { ngerman } ,
ghsystem .bool_set:N = \l__chemmacros_ghsystem_bool ,
ghsystem .default:n = true ,
iupac .choice: ,
@@ -360,18 +477,20 @@
iupac / strict .code:n =
\bool_set_false:N \l__chemmacros_iupac_restricted_bool
\bool_set_true:N \l__chemmacros_iupac_strict_bool ,
- language .tl_set:N = \l__chemmacros_language_tl ,
+ language .code:n =
+ \bool_set_false:N \l__chemmacros_language_auto_bool
+ \tl_set:Nn \l__chemmacros_current_language_tl { #1 } ,
method .choice: ,
method / chemformula .code:n =
- \bool_set_false:N \l__chemmacros_use_mhchem_bool ,
+ \chemmacros_option_deprecated:n { method } ,
method / mhchem .code:n =
- \bool_set_true:N \l__chemmacros_use_mhchem_bool ,
+ \chemmacros_option_deprecated:n { method } ,
Nu .choice: ,
Nu / mathspec .code:n =
\bool_set_true:N \l__chemmacros_Nu_mathspec_bool ,
Nu / chemmacros .code:n =
\bool_set_false:N \l__chemmacros_Nu_mathspec_bool ,
- strict .bool_set:N = \l__chemmacros_strict_bool ,
+ strict .bool_set:N = \l_chemmacros_strict_bool ,
strict .default:n = true ,
synchronize .choice: ,
synchronize / true .code:n =
@@ -380,88 +499,54 @@
synchronize .default:n = true ,
greek .choice: ,
greek / upgreek .code:n =
- \bool_set_true:N \l__chemmacros_use_upgreek_bool
- \bool_set_false:N \l__chemmacros_use_textgreek_bool
- \bool_set_true:N \l__chemmacros_option_greek_set_bool ,
+ \chemgreek_activate_mapping:n { upgreek }
+ \bool_set_true:N \l__chemmacros_option_greek_set_bool ,
greek / textgreek .code:n =
- \bool_set_false:N \l__chemmacros_use_upgreek_bool
- \bool_set_true:N \l__chemmacros_use_textgreek_bool
- \bool_set_true:N \l__chemmacros_option_greek_set_bool ,
+ \chemgreek_activate_mapping:n { textgreek }
+ \bool_set_true:N \l__chemmacros_option_greek_set_bool,
+ greek / kpfonts .code:n =
+ \chemgreek_activate_mapping:n { kpfonts }
+ \bool_set_true:N \l__chemmacros_option_greek_set_bool,
+ greek / newtx .code:n =
+ \chemgreek_activate_mapping:n { newtx }
+ \bool_set_true:N \l__chemmacros_option_greek_set_bool,
greek / math .code:n =
- \bool_set_false:N \l__chemmacros_use_upgreek_bool
- \bool_set_false:N \l__chemmacros_use_textgreek_bool
- \bool_set_true:N \l__chemmacros_option_greek_set_bool ,
+ \chemgreek_activate_mapping:n { default }
+ \bool_set_true:N \l__chemmacros_option_greek_set_bool,
greek / auto .code:n =
- \bool_set_false:N \l__chemmacros_use_upgreek_bool
- \bool_set_false:N \l__chemmacros_use_textgreek_bool
- \bool_set_false:N \l__chemmacros_option_greek_set_bool ,
+ \bool_set_false:N \l__chemmacros_option_greek_set_bool,
greek .default:n = auto ,
- upgreek .code:n =
- \chemmacros_msg:nnxx { chemmacros } { option-deprecated }
- { upgreek } {} ,
+ upgreek .code:n = \chemmacros_option_deprecated:n { upgreek } ,
% dummy version for compatibility with KOMA's global option and backwards
% compatibility of chemmacros
- version .code:n =
- \chemmacros_msg:nnxx { chemmacros } { option-deprecated }
- { version } {} ,
+ version .code:n = \chemmacros_option_deprecated:n { version } ,
cmversion .choice: ,
- cmversion / 1 .code:n =
- { \bool_set_true:N \l__chemmacros_version_one_bool } ,
- cmversion / 2 .code:n =
- { \bool_set_false:N \l__chemmacros_version_one_bool } ,
- cmversion / bundle .code:n =
- { \bool_set_false:N \l__chemmacros_version_one_bool } ,
+ cmversion / 1 .code:n = \chemmacros_set_version:n { one } ,
+ cmversion / 2 .code:n = \chemmacros_set_version:n { three } ,
+ cmversion / 3 .code:n = \chemmacros_set_version:n { three } ,
+ cmversion / 4 .code:n = \chemmacros_set_version:n { four } ,
+ cmversion / newest .code:n = \chemmacros_set_version:n { four } ,
+ cmversion / bundle .code:n =
+ \chemmacros_option_deprecated:n { cmversion/bundle } ,
xspace .bool_set:N = \l__chemmacros_xspace_bool ,
xspace .default:n = true
}
-\ProcessKeysOptions { chemmacros / option }
-% --------------------------------------------------------------------------- %
-% language settings:
-\prop_new:N \l__chemmacros_language_prop
-\prop_put:Nnn \l__chemmacros_language_prop { english } { english }
-\prop_put:Nnn \l__chemmacros_language_prop { american } { english }
-\prop_put:Nnn \l__chemmacros_language_prop { british } { english }
-\prop_put:Nnn \l__chemmacros_language_prop { german } { german }
-\prop_put:Nnn \l__chemmacros_language_prop { ngerman } { german }
-\prop_put:Nnn \l__chemmacros_language_prop { italian } { italian }
-\prop_put:Nnn \l__chemmacros_language_prop { french } { french }
-
-\prop_map_inline:Nn \l__chemmacros_language_prop
- {
- \cs_if_exist:cF { l__chemmacros_ #2 _bool }
- { \bool_new:c { l__chemmacros_ #2 _bool } }
- }
-\cs_new_protected:Npn \chemmacros_set_language:
- {
- \prop_get:NoNTF
- \l__chemmacros_language_prop
- { \l__chemmacros_language_tl }
- \l__chemmacros_current_language_tl
- {
- \bool_set_true:c
- { l__chemmacros_ \l__chemmacros_current_language_tl _bool }
- }
- {
- \chemmacros_msg:nnxx { chemmacros } { language-not-defined }
- { \l__chemmacros_language_tl } { }
- }
- }
+\ProcessKeysOptions { chemmacros / option }
+% --------------------------------------------------------------------------
+% set up a few things:
+% - is `ghsystem' requested?
+% - do we need `xspace'?
+% - what about the greek letters?
\AtEndPreamble
{
- \chemmacros_set_language:
- \chemmacros_make_phases:
\bool_if:NT \l__chemmacros_ghsystem_bool
{ \RequirePackage { ghsystem } }
- \bool_if:NT \l__chemmacros_bpchem_bool
- { \RequirePackage { bpchem } }
\bool_if:NT \l__chemmacros_xspace_bool
{ \RequirePackage { xspace } }
- \bool_if:NT \l__chemmacros_use_mhchem_bool
- { \RequirePackage[ version=3 ]{ mhchem } }
\bool_if:NF \l__chemmacros_option_greek_set_bool
{
\@ifpackageloaded { upgreek }
@@ -469,205 +554,113 @@
{
\@ifpackageloaded { textgreek }
{ \bool_set_true:N \l__chemmacros_use_textgreek_bool }
- { }
+ {
+ \@ifpackageloaded { kpfonts }
+ { \bool_set_true:N \l__chemmacros_use_kpfonts_bool }
+ {
+ \@ifpackageloaded { newtxmath }
+ { \bool_set_true:N \l__chemmacros_use_newtx_bool }
+ { }
+ }
+ }
}
}
- \bool_if:NTF \l__chemmacros_use_upgreek_bool
- {
- \cs_set:Npn \Chemalpha { \ensuremath { \upalpha } }
- \cs_set:Npn \Chembeta { \ensuremath { \upbeta } }
- \cs_set:Npn \Chemgamma { \ensuremath { \upgamma } }
- \cs_set:Npn \Chemdelta { \ensuremath { \updelta } }
- \cs_set:Npn \Chemepsilon { \ensuremath { \upvarepsilon } }
- \cs_set:Npn \Chemeta { \ensuremath { \upeta } }
- \cs_set:Npn \Chemkappa { \ensuremath { \upkappa } }
- \cs_set:Npn \Chemmu { \ensuremath { \upmu } }
- \cs_set:Npn \Chemnu { \ensuremath { \upnu } }
- \cs_set:Npn \Chemrho { \ensuremath { \uprho } }
- \cs_set:Npn \Chempi { \ensuremath { \uppi } }
- \cs_set:Npn \Chemsigma { \ensuremath { \upsigma } }
- \cs_set:Npn \Chemomega { \ensuremath { \upomega } }
- \cs_set:Npn \ChemDelta { \ensuremath { \Updelta } }
- }
- {
- \bool_if:NT \l__chemmacros_use_textgreek_bool
- {
- \cs_set_protected:Npn \Chemalpha { \ensuremath { \text { \textalpha } } }
- \cs_set_protected:Npn \Chembeta { \ensuremath { \text { \textbeta } } }
- \cs_set_protected:Npn \Chemgamma { \ensuremath { \text { \textgamma } } }
- \cs_set_protected:Npn \Chemdelta { \ensuremath { \text { \textdelta } } }
- \cs_set_protected:Npn \Chemepsilon { \ensuremath { \text { \textepsilon } } }
- \cs_set_protected:Npn \Chemeta { \ensuremath { \text { \texteta } } }
- \cs_set_protected:Npn \Chemkappa { \ensuremath { \text { \textkappa } } }
- \cs_set_protected:Npn \Chemmu { \ensuremath { \text { \textmu } } }
- \cs_set_protected:Npn \Chemnu { \ensuremath { \text { \textnu } } }
- \cs_set_protected:Npn \Chemrho { \ensuremath { \text { \textrho } } }
- \cs_set_protected:Npn \Chempi { \ensuremath { \text { \textpi } } }
- \cs_set_protected:Npn \Chemsigma { \ensuremath { \text { \textsigma } } }
- \cs_set_protected:Npn \Chemomega { \ensuremath { \text { \textomega } } }
- \cs_set_protected:Npn \ChemDelta { \ensuremath { \text { \textDelta } } }
- }
- }
- }
-
-\cs_new:Npn \Chemalpha { \ensuremath { \alpha } }
-\cs_new:Npn \Chembeta { \ensuremath { \beta } }
-\cs_new:Npn \Chemgamma { \ensuremath { \gamma } }
-\cs_new:Npn \Chemdelta { \ensuremath { \delta } }
-\cs_new:Npn \Chemepsilon { \ensuremath { \varepsilon } }
-\cs_new:Npn \Chemeta { \ensuremath { \eta } }
-\cs_new:Npn \Chemkappa { \ensuremath { \kappa } }
-\cs_new:Npn \Chemmu { \ensuremath { \mu } }
-\cs_new:Npn \Chemnu { \ensuremath { \nu } }
-\cs_new:Npn \Chemrho { \ensuremath { \rho } }
-\cs_new:Npn \Chempi { \ensuremath { \pi } }
-\cs_new:Npn \Chemsigma { \ensuremath { \sigma } }
-\cs_new:Npn \Chemomega { \ensuremath { \omega } }
-\cs_new:Npn \ChemDelta { \ensuremath { \Delta } }
-
-\cs_new:Npn \chemmacros_xspace:
+ \bool_if:NT \l__chemmacros_use_upgreek_bool
+ { \chemgreek_activate_mapping:n { upgreek } }
+ \bool_if:NT \l__chemmacros_use_textgreek_bool
+ { \chemgreek_activate_mapping:n { textgreek } }
+ \bool_if:NT \l__chemmacros_use_kpfonts_bool
+ { \chemgreek_activate_mapping:n { kpfonts } }
+ \bool_if:NT \l__chemmacros_use_newtx_bool
+ { \chemgreek_activate_mapping:n { newtx } }
+ }
+
+\cs_new_protected:Npn \chemmacros_xspace:
{ \bool_if:NT \l__chemmacros_xspace_bool { \xspace } }
-% --------------------------------------------------------------------------- %
-% TikZ drawings
-\cs_new:Npn \chemmacros_tikz_picture:nn #1#2
+% --------------------------------------------------------------------------
+% TikZ drawings - helper macros
+\cs_new_protected:Npn \chemmacros_tikz_picture:nn #1#2
{ \tikzpicture[#1] #2 \endtikzpicture }
\cs_generate_variant:Nn \chemmacros_tikz_picture:nn { fn,xn }
-\cs_new:Npn \chemmacros_tikz_draw:n #1
+\cs_new_protected:Npn \chemmacros_tikz_draw:n #1
{ \draw[#1] }
\cs_generate_variant:Nn \chemmacros_tikz_draw:n { f,x }
-\cs_new:Npn \chemmacros_tikz_node:n #1
+\cs_new_protected:Npn \chemmacros_tikz_node:n #1
{ \node[#1] }
\cs_generate_variant:Nn \chemmacros_tikz_node:n { f,x }
-\cs_new:Npn \chemmacros_tikz_shade:n #1
+\cs_new_protected:Npn \chemmacros_tikz_shade:n #1
{ \shade[#1] }
\cs_generate_variant:Nn \chemmacros_tikz_shade:n { f,x }
-\cs_new:Npn \chemmacros_tikz_shadedraw:n #1
+\cs_new_protected:Npn \chemmacros_tikz_shadedraw:n #1
{ \shadedraw[#1] }
\cs_generate_variant:Nn \chemmacros_tikz_shadedraw:n { f,x }
-\cs_new:Npn \chemmacros_tikz_node_in_draw:n #1
+\cs_new_protected:Npn \chemmacros_tikz_node_in_draw:n #1
{ node[#1] }
\cs_generate_variant:Nn \chemmacros_tikz_node_in_draw:n { f,x }
-% --------------------------------------------------------------------------- %
-% general functions
-\cs_new_protected:Npn \chemmacros_leave_vmode:
- { \hbox_unpack:N \c_empty_box }
-
+% --------------------------------------------------------------------------
+% a few general functions:
+\cs_new_eq:NN \chemmacros_leave_vmode: \chemformula_leave_vmode:
\cs_new_eq:NN \chemmacros_ignore_spaces: \tex_ignorespaces:D
+\cs_new_eq:NN \chemmacros_nobreak: \chemformula_nobreak:
+\cs_new_eq:NN \chemmacros_allow_break: \chemformula_allow_break:
+\cs_new_eq:NN \chemmacros_skip_nobreak:N \chemformula_skip_nobreak:N
+\cs_new:Npn \chemmacros_remove_backslash:N #1
+ { \exp_after:wN \use_none:n \token_to_str:N #1 }
-\cs_new:Npn \chemmacros_nobreak:
- { \tex_penalty:D \c_ten_thousand }
-\cs_new:Npn \chemmacros_allow_break:
- { \tex_penalty:D \c_zero }
-
-\cs_new:Npn \chemmacros_skip_nobreak:N #1
+% detection and handling of bold face:
+\prg_new_conditional:Npnn \chemmacros_if_bold: { T,F,TF }
{
- \chemmacros_nobreak:
- \skip_horizontal:N #1
- \chemmacros_nobreak:
+ \seq_if_in:NVTF \l__chemmacros_if_bf_seq \f@series
+ { \prg_return_true: }
+ { \prg_return_false: }
}
-% --------------------------------------------------------------------------- %
-% circled charge signs
-\cs_new_protected:Npn \chemmacros_fplus:
- { \ensuremath { \__chemmacros_fplus: } }
-
-\cs_new:Npn \__chemmacros_fplus:
- { \mathpalette \__chemmacros_fplus_aux: \bigcirc }
+\seq_new:N \l__chemmacros_if_bf_seq
-% TODO: can I rewrite this in a more "expl3-way"?
-% and what about a ``text'' version?
-\cs_new:Npn \__chemmacros_fplus_aux: #1#2
+\seq_set_split:Nnn \l__chemmacros_if_bf_seq { , }
{
- \ooalign
- {
- \tex_hfil:D
- $#1+$
- \tex_hfil:D
- \tex_cr:D
- \tex_hfil:D
- $#1#2$
- \tex_hfil:D
- \tex_cr:D
- }
+ b , bc , bm , bx , bux ,
+ eb , ebc , ebx , mb ,
+ sb , sbc , sbx ,
+ ub , ubc , ubx
}
-\cs_new_protected:Npn \chemmacros_fminus:
- { \ensuremath { \__chemmacros_fminus: } }
-
-\cs_new:Npn \__chemmacros_fminus:
- { \mathpalette \__chemmacros_fminus_aux_aux: \bigcirc }
-
-\cs_new:Npn \__chemmacros_fminus_aux_aux: #1#2
+\cs_new_protected:Npn \chemmacros_bm:n #1
{
- \ooalign
- {
- \tex_hfil:D
- $#1-$
- \tex_hfil:D
- \tex_cr:D
- \tex_hfil:D
- $#1#2$
- \tex_hfil:D
- \tex_cr:D
- }
+ \bool_if:NTF \l__chemmacros_detect_bold_bool
+ { \bm { #1 } }
+ { #1 }
}
-% use directly:
-\cs_new_eq:NN \fplus \chemmacros_fplus:
-\cs_new_eq:NN \fminus \chemmacros_fminus:
-
-% change output depending on circled-option
-\cs_new:Npn \chemmacros_plus:
+\cs_new_protected:Npn \chemmacros_bf:n #1
{
- \bool_if:nTF
- { \l__chemmacros_circled_bool && !\l__chemmacros_circled_formal_bool }
- {
- \bool_if:NTF \l__chemmacros_circled_chem_bool
- { \chemmacros_fplus: }
- { \oplus }
- }
- { + }
+ \bool_if:NTF \l__chemmacros_detect_bold_bool
+ { { \normalfont \bfseries #1 } }
+ { { \normalfont #1 } }
}
-\cs_new:Npn \chemmacros_minus:
+\cs_new_protected:Npn \chemmacros_detect_bold:n #1
{
- \bool_if:nTF
- { \l__chemmacros_circled_bool && !\l__chemmacros_circled_formal_bool }
+ \chemmacros_if_bold:TF
{
- \bool_if:NTF \l__chemmacros_circled_chem_bool
- { \chemmacros_fminus: }
- { \ominus }
+ \mode_if_math:TF
+ { \chemmacros_bm:n { #1 } }
+ { \chemmacros_bf:n { #1 } }
}
- { - }
- }
-
-\cs_new_protected:Npn \chemmacros_formal_plus:
- {
- \group_begin:
- \bool_set_false:N \l__chemmacros_circled_formal_bool
- \chemmacros_plus:
- \group_end:
- }
-
-\cs_new_protected:Npn \chemmacros_formal_minus:
- {
- \group_begin:
- \bool_set_false:N \l__chemmacros_circled_formal_bool
- \chemmacros_minus:
- \group_end:
+ { #1 }
}
-% --------------------------------------------------------------------------- %
+% ---------------------------------------------------------------------------
% transition state symbol
-\cs_new:Npn \__chemmacros_transition_state:
+\cs_new_protected:Npn \__chemmacros_transition_state:
{
\text
{
@@ -693,165 +686,100 @@
}
}
+% \DeclareDocumentCommand?
\cs_new_eq:NN \transitionstatesymbol \chemmacros_transition_state:
-\cs_new:Nn \chemmacros_atom:n
+% --------------------------------------------------------------------------
+% let's make use of `chemformula' inside some of `chemmacros' commands:
+\cs_new_protected:Nn \chemmacros_atom:n
{
\mode_if_math:TF
{ \text { \chemmacros_inner_font: #1 } }
{ \group_begin: \chemmacros_inner_font: #1 \group_end: }
}
-\cs_generate_variant:Nn \chemmacros_atom:n { o,f,x,V }
+\cs_generate_variant:Nn \chemmacros_atom:n { V }
-\cs_new:Npn \chemmacros_text:n #1
+\cs_new_protected:Npn \chemmacros_text:n #1
{ \mode_if_math:TF { \text { #1 } } { #1 } }
-% add a possibility to let chemformula use the chemformula
-% with method=chemformula, too
\tl_new:N \l__chemmacros_chemformula_tl
+
\cs_new_protected:Npn \chemmacros_chemformula:n #1
{
- \bool_if:NTF \l__chemmacros_use_mhchem_bool
- { \ce { #1 } }
- {
- \group_begin:
- \cs_set_eq:NN \chemformula_font_inner: \chemmacros_inner_font:
- \chemformula_input_cmpd:nN { #1 } \l__chemmacros_chemformula_tl
- \mode_if_math:TF
- { \text { \l__chemmacros_chemformula_tl } }
- { { \l__chemmacros_chemformula_tl } }
- \group_end:
- }
+ \group_begin:
+ \cs_set_eq:NN \chemformula_font_inner: \chemmacros_inner_font:
+ \chemformula_chcpd:nn {} { #1 }
+ \group_end:
}
\cs_generate_variant:Nn \chemmacros_chemformula:n { x,V }
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% particles, charges
-\bool_new:N \l__chemmacros_charge_append_bool
-\bool_set_false:N \l__chemmacros_charge_append_bool
-
-% \DeclareChemParticle, \RenewChemParticle
-\bool_if:NTF \l__chemmacros_use_mhchem_bool
+\NewDocumentCommand \DeclareChemParticle { mm }
{
- \NewDocumentCommand \DeclareChemParticle { mm }
- {
- \cs_if_free:NTF #1
- { \cs_new:Npn #1 { \ce { #2 } \chemmacros_xspace: } }
- { \chemmacros_msg:nnxx { chemmacros } { declare-particle } { #1 } {} }
- }
- \NewDocumentCommand \RenewChemParticle { mm }
- {
- \cs_if_free:NTF #1
- { \chemmacros_msg:nnxx { chemmacros } { renew-particle } { #1 } {} }
- { \cs_set:Npn #1 { \ce { #2 } \chemmacros_xspace: } }
- }
+ \cs_if_free:NTF #1
+ { \chemmacros_new_particle:Nn #1 { #2 } }
+ { \chemmacros_msg:nnxx { chemmacros } { declare-particle } { #1 } {} }
}
+
+\NewDocumentCommand \RenewChemParticle { mm }
{
- \NewDocumentCommand \DeclareChemParticle { mm }
- {
- \cs_if_free:NTF #1
- { \chemmacros_chem_particle:Nn #1 { #2 } }
- { \chemmacros_msg:nnxx { chemmacros } { declare-particle } { #1 } {} }
- }
- \NewDocumentCommand \RenewChemParticle { mm }
- {
- \cs_if_free:NTF #1
- { \chemmacros_msg:nnxx { chemmacros } { renew-particle } { #1 } {} }
- { \chemmacros_chem_particle:Nn #1 { #2 } }
- }
+ \cs_if_free:NTF #1
+ { \chemmacros_msg:nnxx { chemmacros } { renew-particle } { #1 } {} }
+ { \chemmacros_new_particle:Nn #1 { #2 } }
}
-\cs_new_protected:Nn \chemmacros_chem_particle:Nn
+\cs_new_protected:Nn \chemmacros_new_particle:Nn
{
- \cs_set:Npn #1
+ \cs_set_protected:Npn #1
{
- \bool_if:NTF \l__chemformula_inside_ch_bool
- {
- \chemformula_input_cmpd:nN { #2 } \l__chemmacros_chemformula_tl
- \tl_set_rescan:Nno \l__chemmacros_chemformula_tl
- { \ExplSyntaxOn }
- { \l__chemmacros_chemformula_tl }
- \tl_use:N \l__chemmacros_chemformula_tl
- \tl_clear:N \l__chemmacros_chemformula_tl
- }
- {
- \group_begin:
- \chemformula_input:n { #2 }
- \tl_set_rescan:Nno \l__chemmacros_tmpa_tl
- { \ExplSyntaxOn }
- { \l__chemformula_input_tl }
- \chemformula_write:V \l__chemmacros_tmpa_tl
- \group_end:
- \chemmacros_xspace:
- }
+ \chemformula_chcpd:nn {} { #2 }
+ \chemmacros_xspace:
}
}
-\bool_if:NTF \l__chemmacros_use_mhchem_bool
- {
- \cs_new:Npn \el { \chemmacros_atom:n { e } \mch \chemmacros_xspace: }
- \cs_new:Npn \prt { \chemmacros_atom:n { p } \pch \chemmacros_xspace: }
- }
- {
- \DeclareChemParticle \el { e- }
- \DeclareChemParticle \prt { p+ }
- }
-
+\DeclareChemParticle \el { e- }
+\DeclareChemParticle \prt { p+ }
\DeclareChemParticle \ntr { n^0 }
-\cs_new:Npn \chemmacros_bm:n #1
- {
- \bool_if:NTF \l__chemmacros_detect_bold_bool
- { \bm { #1 } }
- { #1 }
- }
+\DeclareChemDropped \Rad
-\cs_new:Npn \chemmacros_bf:n #1
- {
- \bool_if:NTF \l__chemmacros_detect_bold_bool
- { { \normalfont \bfseries #1 } }
- { { \normalfont #1 } }
- }
+% --------------------------------------------------------------------------
+% charges
+% circled charge signs: they are defined in the `chemformula' module:
+% use directly:
+
+\cs_new_protected:Npn \fplus { { \chemformula_fplus: } }
+\cs_new_protected:Npn \fminus { { \chemformula_fminus: } }
+
+% change output depending on circled-option
+\cs_new_eq:NN \chemmacros_plus: \chemformula_plus:
+\cs_new_eq:NN \chemmacros_minus: \chemformula_minus:
-\cs_new:Npn \chemmacros_detect_bold:n #1
+\cs_new_protected:Npn \chemmacros_formal_plus:
{
- \chemmacros_if_bold:TF
- {
- \mode_if_math:TF
- { \chemmacros_bm:n { #1 } }
- { \chemmacros_bf:n { #1 } }
- }
- { #1 }
+ \group_begin:
+ \bool_set_true:N \l__chemformula_formal_charges_bool
+ \chemformula_plus:
+ \group_end:
}
-\NewDocumentCommand \Rad { O{}G{} }
+\cs_new_protected:Npn \chemmacros_formal_minus:
{
- \chemmacros_msg:nnxx { chemmacros } { command-dropped }
- { \Rad } { }
- #1#2
+ \group_begin:
+ \bool_set_true:N \l__chemformula_formal_charges_bool
+ \chemformula_minus:
+ \group_end:
}
-% charges
-\cs_new:Npn \chemmacros_charge:n #1
+\cs_new_protected:Npn \chemmacros_charge:n #1
{
- \bool_if:NTF \l__chemmacros_charge_append_bool
- {
- \mode_if_math:TF
- { {}^ { \chemmacros_detect_bold:n { #1 } } }
- { $ {}^ { \chemmacros_detect_bold:n { #1 } } $ }
- }
- {
- \mode_if_math:TF
- { ^ { \chemmacros_detect_bold:n { #1 } } }
- { $ ^ { \chemmacros_detect_bold:n { #1 } } $ }
- }
+ \chemformula_superscript:n
+ { \chemmacros_detect_bold:n { #1 } }
}
\keys_define:nn { chemmacros / charges }
- {
- append .bool_set:N = \l__chemmacros_charge_append_bool ,
- append .default:n = true
- }
+ { append .code:n = \chemmacros_option_deprecated:n { append } }
\NewDocumentCommand \mch { o }
{
@@ -881,44 +809,67 @@
{ \chemmacros_charge:n { #1 \chemmacros_formal_plus: } }
}
-\cs_new:Npn \delm
- { \mbox { \tiny \( \delta \chemmacros_minus: \) } \chemmacros_xspace: }
-\cs_new:Npn \delp
- { \mbox { \tiny \( \delta \chemmacros_plus: \) } \chemmacros_xspace: }
-\cs_new:Npn \fdelm
- { \mbox { \tiny \( \delta \chemmacros_formal_minus: \) } \chemmacros_xspace: }
-\cs_new:Npn \fdelp
- { \mbox { \tiny \( \delta \chemmacros_formal_plus: \) } \chemmacros_xspace: }
-\cs_new:Npn \scrm
+\tl_new:N \l__chemmacros_partial_charge_format_tl
+\tl_set:Nn \l__chemmacros_partial_charge_format_tl { \tiny }
+
+\cs_new_protected:Npn \delm
+ {
+ \mbox {
+ \l__chemmacros_partial_charge_format_tl
+ \( \delta \chemmacros_minus: \)
+ }
+ \chemmacros_xspace:
+ }
+\cs_new_protected:Npn \delp
+ {
+ \mbox {
+ \l__chemmacros_partial_charge_format_tl
+ \( \delta \chemmacros_plus: \)
+ }
+ \chemmacros_xspace:
+ }
+\cs_new_protected:Npn \fdelm
+ {
+ \mbox {
+ \l__chemmacros_partial_charge_format_tl
+ \( \delta \chemmacros_formal_minus: \)
+ }
+ \chemmacros_xspace:
+ }
+\cs_new_protected:Npn \fdelp
+ {
+ \mbox {
+ \l__chemmacros_partial_charge_format_tl
+ \( \delta \chemmacros_formal_plus: \)
+ }
+ \chemmacros_xspace:
+ }
+
+\cs_new_protected:Npn \scrm
{ \ensuremath { \scriptstyle \chemmacros_minus: } }
-\cs_new:Npn \scrp
+\cs_new_protected:Npn \scrp
{ \ensuremath { \scriptstyle \chemmacros_plus: } }
-\cs_new:Npn \fscrm
+\cs_new_protected:Npn \fscrm
{ \ensuremath { \scriptstyle \chemmacros_formal_minus: } }
-\cs_new:Npn \fscrp
+\cs_new_protected:Npn \fscrp
{ \ensuremath { \scriptstyle \chemmacros_formal_plus: } }
-\cs_new:Npn \fsscrm
+\cs_new_protected:Npn \fsscrm
{ \ensuremath { \scriptscriptstyle \chemmacros_formal_minus: } }
-\cs_new:Npn \fsscrp
+\cs_new_protected:Npn \fsscrp
{ \ensuremath { \scriptscriptstyle \chemmacros_formal_plus: } }
-% --------------------------------------------------------------------------- %
-% ions, molecules
-% proton, hydroxide, hydronium/oxonium, water, nucleophile, electrophile
-\bool_if:NTF \l__chemmacros_use_mhchem_bool
- {
- \cs_new:Npn \Hpl { \chemmacros_atom:n { H } \pch \chemmacros_xspace: }
- \cs_new:Npn \Hyd { \chemmacros_atom:n { OH } \mch \chemmacros_xspace: }
- \cs_new:Npn \HtO { \chemmacros_chemformula:n { H3O } \pch \chemmacros_xspace: }
- \cs_new:Npn \El { \chemmacros_atom:n { E } \pch \chemmacros_xspace: }
- }
+\keys_define:nn { chemmacros / charges }
{
- \DeclareChemParticle \Hpl { H+ }
- \DeclareChemParticle \Hyd { OH- }
- \DeclareChemParticle \HtO { H3O+ }
- \DeclareChemParticle \El { E+ }
+ partial-format .tl_set:N = \l__chemmacros_partial_charge_format_tl
}
+% --------------------------------------------------------------------------
+% ions, molecules
+% proton, hydroxide, hydronium/oxonium, water, nucleophile, electrophile
+\DeclareChemParticle \Hpl { H+ }
+\DeclareChemParticle \Hyd { OH- }
+\DeclareChemParticle \HtO { H3O+ }
+\DeclareChemParticle \El { E+ }
\DeclareChemParticle \water { H2O }
\NewDocumentCommand \chemmacros_Nu:w { o }
@@ -926,11 +877,7 @@
\IfNoValueF { #1 } { \keys_set:nn { chemmacros / particle } { #1 } }
\bool_if:NTF \l__chemmacros_particle_elpair_bool
{ \chemmacros_elpair:n { Nu } \mch }
- {
- \bool_if:NTF \l__chemmacros_use_mhchem_bool
- { \chemmacros_atom:n { Nu } \mch }
- { \chemmacros_chemformula:n { Nu- } }
- }
+ { \chemmacros_chemformula:n { Nu- } }
\chemmacros_xspace:
}
@@ -941,15 +888,11 @@
{ \cs_set_eq:NN \Nu \chemmacros_Nu:w }
}
-\cs_new:Npn \chemmacros_ba:
+\cs_new_protected:Npn \chemmacros_ba:
{
\bool_if:NTF \l__chemmacros_particle_elpair_bool
{ \chemmacros_elpair:n { ba } \mch }
- {
- \bool_if:NTF \l__chemmacros_use_mhchem_bool
- { \chemmacros_atom:n { ba } \mch }
- { \chemmacros_chemformula:n { ba- } }
- }
+ { \chemmacros_chemformula:n { ba- } }
\chemmacros_xspace:
}
@@ -961,7 +904,7 @@
\group_end:
}
-\cs_new:Npn \chemmacros_elpair:n #1
+\cs_new_protected:Npn \chemmacros_elpair:n #1
{
\bool_if:NTF \l__chemmacros_chemfig_bool
{
@@ -998,20 +941,21 @@
elpair .default:n = dots
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% --------------------------------------------------------------------------
% IUPAC
\prop_new:N \l__chemmacros_iupac_prop
\cs_new_protected:Npn \chemmacros_declare_iupac:Nn #1#2
{
- \tl_set_rescan:Nnn \l__chemmacros_tmpa_tl
- { \char_set_catcode_letter:N \\ }
- { #1 }
- \tl_set:Nf \l__chemmacros_tmpa_tl
- { \tl_tail:V \l__chemmacros_tmpa_tl }
- \prop_if_in:NoTF \l__chemmacros_iupac_prop { \l__chemmacros_tmpa_tl }
+ \tl_set:Nx \l__chemmacros_tmpa_tl
+ { \chemmacros_remove_backslash:N #1 }
+ \prop_if_in:NVTF \l__chemmacros_iupac_prop \l__chemmacros_tmpa_tl
{ \chemmacros_msg:nnxx { chemmacros } { declare-iupac } { #1 } { } }
- { \prop_put:Non \l__chemmacros_iupac_prop { \l__chemmacros_tmpa_tl } { #2 } }
+ {
+ \prop_put:NVn \l__chemmacros_iupac_prop
+ \l__chemmacros_tmpa_tl
+ { #2 }
+ }
\chemmacros_make_iupac:
}
@@ -1022,8 +966,12 @@
{ #1 }
\tl_set:Nf \l__chemmacros_tmpa_tl
{ \tl_tail:V \l__chemmacros_tmpa_tl }
- \prop_if_in:NoTF \l__chemmacros_iupac_prop { \l__chemmacros_tmpa_tl }
- { \prop_put:Non \l__chemmacros_iupac_prop { \l__chemmacros_tmpa_tl } { #2 } }
+ \prop_if_in:NVTF \l__chemmacros_iupac_prop \l__chemmacros_tmpa_tl
+ {
+ \prop_put:NVn \l__chemmacros_iupac_prop
+ \l__chemmacros_tmpa_tl
+ { #2 }
+ }
{ \chemmacros_msg:nnxx { chemmacros } { renew-iupac } { #1 } { } }
\chemmacros_make_iupac:
}
@@ -1076,8 +1024,8 @@
\NewDocumentCommand \cip { m }
{ \chemmacros_cip:n { #1 } }
-\cs_new:Npn \chemmacros_cip:n #1
- { (\textit{#1}\tex_kern:D \l__chemmacros_cip_kern_dim) }
+\cs_new_protected:Npn \chemmacros_cip:n #1
+ { ( \textit{#1} \tex_kern:D \l__chemmacros_cip_kern_dim ) }
\DeclareChemDeprecated \Rcip \R { \cip { R } }
\DeclareChemDeprecated \Scip \S { \cip { S } }
@@ -1087,7 +1035,7 @@
% TikZ needs : to be other
\ExplSyntaxOff
-\def\chemmacros@sconf#1%
+\protected\def\chemmacros@sconf#1%
{%
\tikz[baseline=(a.base),text height=1.5ex,text depth=.25ex]
{
@@ -1096,7 +1044,7 @@
}%
}
-\def\chemmacros@rconf#1%
+\protected\def\chemmacros@rconf#1%
{%
\tikz[baseline=(a.base),text height=1.5ex,text depth=.25ex]
{
@@ -1119,8 +1067,8 @@
\DeclareChemIUPAC \tert { \textit { tert } }
% Fischer
-\DeclareChemDeprecated \Dfi \D { \textsc { d } }
-\DeclareChemDeprecated \Lfi \L { \textsc { l } }
+\DeclareChemDropped \Dfi
+\DeclareChemDropped \Lfi
\DeclareChemIUPAC \D { \textsc { d } }
\DeclareChemIUPAC \L { \textsc { l } }
@@ -1148,10 +1096,10 @@
coord-use-hyphen .default:n = true
}
-\cs_new:Npn \chemformula_hapto:n #1
+\cs_new_protected:Npn \chemformula_hapto:n #1
{ \Chemeta \chemformula_superscript:n { #1 } \chemmacros_break_point_hyphen: }
-\cs_new:Npn \chemformula_bridge:n #1
+\cs_new_protected:Npn \chemformula_bridge:n #1
{
\Chemmu
\tl_if_blank:nF { #1 }
@@ -1167,11 +1115,11 @@
\DeclareChemIUPAC \bridge { \chemformula_bridge:n }
% attachments to heteroatoms / added hydrogen
-\DeclareChemIUPAC \H { \textit { H } }
-\DeclareChemIUPAC \O { \textit { O } }
-\DeclareChemIUPAC \N { \textit { N } }
-\DeclareChemIUPAC \Sf { \textit { S } }
-\DeclareChemIUPAC \P { \textit { P } }
+\DeclareChemIUPAC \H { \textit { H } }
+\DeclareChemIUPAC \O { \textit { O } }
+\DeclareChemIUPAC \N { \textit { N } }
+\DeclareChemIUPAC \Sf { \textit { S } }
+\DeclareChemIUPAC \P { \textit { P } }
% language specific settings
\AtBeginDocument
@@ -1265,6 +1213,7 @@
\NewDocumentCommand \iupac { m }
{ \chemmacros_iupac:n { #1 } }
+% --------------------------------------------------------------------------
% latin phrases
\tl_new:N \l__chemmacros_latin_format_tl
\tl_set:Nn \l__chemmacros_latin_format_tl { \itshape }
@@ -1272,7 +1221,7 @@
\keys_define:nn { chemmacros / latin }
{ format . tl_set:N = \l__chemmacros_latin_format_tl }
-\cs_new:Npn \chemmacros_latin:n #1
+\cs_new_protected:Npn \chemmacros_latin:n #1
{ { \l__chemmacros_latin_format_tl #1 } }
\prop_new:N \l__chemmacros_latin_prop
@@ -1281,7 +1230,8 @@
{
\cs_if_free:NTF #1
{
- \cs_new:Npn #1 { \chemmacros_latin:n { #2 } \chemmacros_xspace: }
+ \cs_new_protected:Npn #1
+ { \chemmacros_latin:n { #2 } \chemmacros_xspace: }
\prop_put:Nnn \l__chemmacros_latin_prop { #1 } { #2 }
}
{ \chemmacros_msg:nnxx { chemmacros } { declare-latin } { #1 } { } }
@@ -1313,13 +1263,13 @@
{
\cs_new_eq:NN \latin \chemmacros_latin:n
}
- \DeclareChemLatin \insitu { in~situ }
+ \DeclareChemLatin \insitu { in~situ }
\DeclareChemLatin \abinitio { ab~initio }
- \DeclareChemLatin \invacuo { in~vacuo }
+ \DeclareChemLatin \invacuo { in~vacuo }
}
% --------------------------------------------------------------------------- %
-% acid/base
+% acid / base
\keys_define:nn { chemmacros / acid-base }
{
p-style .choice: ,
@@ -1330,64 +1280,56 @@
\cs_new_eq:NN \chemmacros_p_style:n \textup
-% TODO: rewrite in expl3 style
-\cs_new:Npn \chemmacros_if_bold:TF #1#2
- {
- \ifx\f@series\l__chemmacros_if_bf_tl
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- { #1 }{ #2 }
- }
-
-\tl_new:N \l__chemmacros_if_bf_tl
-\tl_set:Nn \l__chemmacros_if_bf_tl { bx }
-
\cs_new_protected:Npn \Ka
{
- \mbox
+ \ensuremath
{
- \(
- \chemmacros_detect_bold:n
- {
- K \c_math_subscript_token \mathrm
- { \bool_if:NTF \l__chemmacros_german_bool { S } { A } }
- }
- \)
+ \chemmacros_detect_bold:n
+ {
+ K
+ \c_math_subscript_token
+ { \chemmacros_translate:nn { K-acid } { A } }
+ }
}
\chemmacros_xspace:
}
\cs_new_protected:Npn \Kb
{
- \mbox
+ \ensuremath
{
- \(
- \chemmacros_detect_bold:n
- { K \c_math_subscript_token \mathrm { B } }
- \)
+ \chemmacros_detect_bold:n
+ {
+ K
+ \c_math_subscript_token
+ { \chemmacros_translate:nn { K-base } { B } }
+ }
}
\chemmacros_xspace:
}
\cs_new_protected:Npn \Kw
{
- \mbox
+ \ensuremath
{
- \(
- \chemmacros_detect_bold:n
- { K \c_math_subscript_token \mathrm { W } }
- \)
+ \chemmacros_detect_bold:n
+ {
+ K
+ \c_math_subscript_token
+ { \chemmacros_translate:nn { K-water } { W } }
+ }
}
\chemmacros_xspace:
}
-\cs_new:Npn \chemmacros_p:n #1
+\cs_new_protected:Npn \chemmacros_p:n #1
{
\group_begin:
- \chemmacros_p_style:n { p }
- \ensuremath { #1 }
+ \mbox
+ {
+ \chemmacros_p_style:n { p }
+ \ensuremath { #1 }
+ }
\group_end:
}
@@ -1411,7 +1353,7 @@
\chemmacros_p:n
{
\Ka \IfNoValueF { #1 }
- { \c_math_subscript_token { \chemmacros_detect_bold:n { #1 } } }
+ { {} \c_math_subscript_token { \chemmacros_detect_bold:n { #1 } } }
}
\chemmacros_xspace:
}
@@ -1421,12 +1363,12 @@
\chemmacros_p:n
{
\Kb \IfNoValueF { #1 }
- { \c_math_subscript_token { \chemmacros_detect_bold:n { #1 } } }
+ { {} \c_math_subscript_token { \chemmacros_detect_bold:n { #1 } } }
}
\chemmacros_xspace:
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% units
\DeclareSIUnit { \atm } { atm }
\DeclareSIUnit { \atmosphere } { atm }
@@ -1448,7 +1390,7 @@
\DeclareSIUnit { \normal } { \textsc{n} }
\DeclareSIUnit { \torr } { torr }
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% reaction mechanisms
% \mech[<type>]
% <type> - substitutions: {}, 1, 2, se, 1e, 2e, ar
@@ -1545,27 +1487,27 @@
{ \chemmacros_mech:n { #1 } }
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% oxidation numbers
% \ox{<number>,<atom>}
-\bool_new:N \l__chemmacros_ox_sign_bool
-\bool_new:N \l__chemmacros_ox_integer_bool
-\bool_new:N \l__chemmacros_ox_explicit_sign_bool
+\bool_new:N \l__chemmacros_ox_sign_bool
+\bool_new:N \l__chemmacros_ox_integer_bool
+\bool_new:N \l__chemmacros_ox_explicit_sign_bool
\bool_set_false:N \l__chemmacros_ox_explicit_sign_bool
-\bool_new:N \l__chemmacros_ox_format_roman_bool
-\bool_set_true:N \l__chemmacros_ox_format_roman_bool
-\bool_new:N \l__chemmacros_ox_decimal_marker_comma_bool
+\bool_new:N \l__chemmacros_ox_format_roman_bool
+\bool_set_true:N \l__chemmacros_ox_format_roman_bool
+\bool_new:N \l__chemmacros_ox_decimal_marker_comma_bool
\bool_set_false:N \l__chemmacros_ox_decimal_marker_comma_bool
-\bool_new:N \l__chemmacros_ox_parse_bool
-\bool_set_true:N \l__chemmacros_ox_parse_bool
-\bool_new:N \l__chemmacros_ox_side_bool
-\bool_new:N \l__chemmacros_ox_super_bool
-\bool_new:N \l__chemmacros_ox_top_bool
-\bool_set_true:N \l__chemmacros_ox_top_bool
-\bool_new:N \l__chemmacros_ox_align_center_bool
+\bool_new:N \l__chemmacros_ox_parse_bool
+\bool_set_true:N \l__chemmacros_ox_parse_bool
+\bool_new:N \l__chemmacros_ox_side_bool
+\bool_new:N \l__chemmacros_ox_super_bool
+\bool_new:N \l__chemmacros_ox_top_bool
+\bool_set_true:N \l__chemmacros_ox_top_bool
+\bool_new:N \l__chemmacros_ox_align_center_bool
-\int_new:N \l__chemmacros_ox_number_int
-\fp_new:N \l__chemmacros_ox_number_fp
+\int_new:N \l__chemmacros_ox_number_int
+\fp_new:N \l__chemmacros_ox_number_fp
\cs_new_protected:Npn \__chemmacros_ox_process_number:n #1
{
@@ -1591,16 +1533,20 @@
slash-symbol-font = lmr
}
-\cs_new:Npn \__chemmacros_ox_fraction:n #1/#2
+\cs_new_protected:Npn \__chemmacros_ox_fraction:n #1/#2
{
\bool_set_false:N \l__chemmacros_ox_format_roman_bool
\__chemmacros_ox_sign:n { #1 }
\bool_if:NTF \l__chemmacros_ox_side_bool
{ \sfrac { \__chemmacros_ox_value:n { #1 } } { #2 } }
- { \sfrac [ chemmacros-ox-frac ] { \__chemmacros_ox_value:n { #1 } } { #2 } }
+ {
+ \sfrac [ chemmacros-ox-frac ]
+ { \__chemmacros_ox_value:n { #1 } }
+ { #2 }
+ }
}
-\cs_new:Npn \__chemmacros_ox_sign:n #1
+\cs_new_protected:Npn \__chemmacros_ox_sign:n #1
{
\fp_compare:nNnT { #1 } > { 0 }
{ \bool_if:NT \l__chemmacros_ox_explicit_sign_bool { $+$ } }
@@ -1616,13 +1562,11 @@
\fp_abs:N \l__chemmacros_ox_number_fp
\__chemmacros_ox_is_integer:V \l__chemmacros_ox_number_fp
\bool_if:NTF \l__chemmacros_ox_format_roman_bool
- {
- \__chemmacros_fp_to_Roman:V \l__chemmacros_ox_number_fp
- }
+ { \__chemmacros_fp_to_Roman:V \l__chemmacros_ox_number_fp }
{
\bool_if:NTF \l__chemmacros_ox_integer_bool
- { \__chemmacros_fp_to_arabic:V \l__chemmacros_ox_number_fp }
- { \__chemmacros_fp_show:V \l__chemmacros_ox_number_fp }
+ { $ \__chemmacros_fp_to_arabic:V \l__chemmacros_ox_number_fp $ }
+ { $ \__chemmacros_fp_show:V \l__chemmacros_ox_number_fp $ }
}
}
@@ -1646,10 +1590,11 @@
\group_begin:
\fp_set:Nn \l__chemmacros_tmpa_tl { #1 }
\fp_round_places:Nn \l__chemmacros_tmpa_tl { 0 }
- \int_set:Nn \l__chemmacros_tmpa_int { \fp_to_tl:N \l__chemmacros_tmpa_tl }
+ \int_set:Nn \l__chemmacros_tmpa_int
+ { \fp_to_tl:N \l__chemmacros_tmpa_tl }
\int_compare:nTF { \l__chemmacros_tmpa_int = 0 }
{ 0 }
- { \int_to_Roman:n { \int_use:N \l__chemmacros_tmpa_int } }
+ { \int_to_Roman:n { \l__chemmacros_tmpa_int } }
\group_end:
}
\cs_generate_variant:Nn \__chemmacros_fp_to_Roman:n { V }
@@ -1669,7 +1614,8 @@
\fp_set:Nn \l__chemmacros_tmpa_tl { #1 }
\bool_if:NTF \l__chemmacros_ox_decimal_marker_comma_bool
{
- \tl_set:Nx \l__chemmacros_tmpb_tl { \fp_to_tl:N \l__chemmacros_tmpa_tl }
+ \tl_set:Nx \l__chemmacros_tmpb_tl
+ { \fp_to_tl:N \l__chemmacros_tmpa_tl }
\tl_replace_once:Nnn \l__chemmacros_tmpb_tl { . } { {,} }
\tl_use:N \l__chemmacros_tmpb_tl
}
@@ -1810,12 +1756,19 @@
\cs_new_protected:Npn \chemmacros_redox_partner:nn #1#2
{
- \tl_if_blank:nT { #1 }
- { \msg_error:nnx { chemmacros } { OX } { node~name~missing } }
- \tl_if_blank:nT { #2 }
- { \msg_error:nnx { chemmacros } { OX } { atom~missing } }
- \tikz[baseline=(#1.base),remember~picture]
- { \node [inner~sep=0] (#1) { #2 } ; }
+ \chemformula_latex_if:nTF { measuring@ }
+ {
+ \tikz[baseline=(#1.base)]
+ { \node [inner~sep=0] (#1) { #2 } ; }
+ }
+ {
+ \tl_if_blank:nT { #1 }
+ { \msg_error:nnx { chemmacros } { OX } { node~name~missing } }
+ \tl_if_blank:nT { #2 }
+ { \msg_error:nnx { chemmacros } { OX } { atom~missing } }
+ \tikz[baseline=(#1.base),remember~picture]
+ { \node [inner~sep=0] (#1) { #2 } ; }
+ }
}
\cs_new_protected:Npn \__chemmacros_redox_coordinates:nn #1#2
@@ -1937,20 +1890,18 @@
\leftmargin\z@
}
-\bool_new:N \l__chemmacros_nmr_frequency_bool
-\bool_new:N \l__chemmacros_nmr_solvent_bool
-\bool_new:N \l__chemmacros_nmr_delimiters_bool
-\bool_new:N \l__chemmacros_nmr_comma_bool
-\bool_new:N \l__chemmacros_nmr_inner_bool
-\bool_new:N \l__chemmacros_nmr_position_sub_bool
-\bool_new:N \l__chemmacros_nmr_parse_bool
+\bool_new:N \l__chemmacros_nmr_frequency_bool
+\bool_new:N \l__chemmacros_nmr_solvent_bool
+\bool_new:N \l__chemmacros_nmr_delimiters_bool
+\bool_new:N \l__chemmacros_nmr_comma_bool
+\bool_new:N \l__chemmacros_nmr_inner_bool
+\bool_new:N \l__chemmacros_nmr_position_sub_bool
+\bool_new:N \l__chemmacros_nmr_parse_bool
\bool_set_true:N \l__chemmacros_nmr_parse_bool
-\bool_new:N \l__chemmacros_nmr_list_bool
-% \bool_set_true:N \l__chemmacros_nmr_list_bool
-\bool_new:N \l__chemmacros_nmr_use_equal_bool
-% \bool_set_true:N \l__chemmacros_nmr_use_equal_bool
-\bool_new:N \l__chemmacros_nmr_custom_command_active_bool
-\bool_new:N \l__chemmacros_nmr_custom_command_used_bool
+\bool_new:N \l__chemmacros_nmr_list_bool
+\bool_new:N \l__chemmacros_nmr_use_equal_bool
+\bool_new:N \l__chemmacros_nmr_custom_command_active_bool
+\bool_new:N \l__chemmacros_nmr_custom_command_used_bool
\cs_new_protected:Npn \__chemmacros_nmr_nucleus:w #1,#2 \q_stop
{
@@ -1983,33 +1934,25 @@
\tl_put_right:Nn \g__chemmacros_nmr_element_coupled_tl { \} }
}
\tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl { #2 }
- \bool_if:NTF \l__chemmacros_bpchem_bool
- { \IUPAC { \^ { #1 } \g__chemmacros_nmr_element_coupled_tl - NMR } }
- {
- \iupac { \^ { #1 } }
- \bool_if:NTF \l__chemmacros_nmr_parse_bool
- {
- \bool_if:NTF \l__chemmacros_use_mhchem_bool
- { \exp_args:No \ce { \g__chemmacros_nmr_element_coupled_tl } }
- { \exp_args:No \ch { \g__chemmacros_nmr_element_coupled_tl } }
- }
- { \chemmacros_atom:V \g__chemmacros_nmr_element_coupled_tl }
- - NMR
- }
+ \iupac { \^ { #1 } }
+ \bool_if:NTF \l__chemmacros_nmr_parse_bool
+ { \chemformula_ch:nV {} \g__chemmacros_nmr_element_coupled_tl }
+ { \chemmacros_atom:V \g__chemmacros_nmr_element_coupled_tl }
+ - NMR
}
\cs_generate_variant:Nn \__chemmacros_nmr_base:nn { VV }
-\cs_new:Npn \__chemmacros_nmr_frequency:n #1
+\cs_new_protected:Npn \__chemmacros_nmr_frequency:n #1
{
\tl_if_in:nnTF { #1 } { , }
{ \__chemmacros_nmr_frequency_aux_i:w #1 \q_stop }
{ \__chemmacros_nmr_frequency_aux_ii:n { #1 } }
}
-\cs_new:Npn \__chemmacros_nmr_frequency_aux_i:w #1,#2 \q_stop
+\cs_new_protected:Npn \__chemmacros_nmr_frequency_aux_i:w #1,#2 \q_stop
{ \SI { #1 } { #2 } }
-\cs_new:Npn \__chemmacros_nmr_frequency_aux_ii:n #1
+\cs_new_protected:Npn \__chemmacros_nmr_frequency_aux_ii:n #1
{ \SI { #1 } { \tl_use:N \l__chemmacros_nmr_unit_tl } }
\keys_define:nn { chemmacros / nmr }
@@ -2066,21 +2009,27 @@
\NewDocumentCommand \RenewChemNMR { mm }
{ \chemmacros_renew_nmr:Nn #1 { #2 } }
-% TODO: separate document and module level
+\NewDocumentCommand \NMR { s G{} D(){} O{} }
+ {
+ \IfBooleanTF { #1 }
+ { \chemmacros_nmr:nnnn { * } { #2 } { #3 } { #4 } }
+ { \chemmacros_nmr:nnnn { } { #2 } { #3 } { #4 } }
+ }
+
\AtBeginDocument
{
% \NMR{<num>,<elem>}(<num>,<unit>)[<solvent>] ALL arguments are optional
% \NMR* same but without ": $\delta$" at end
- \NewDocumentCommand \NMR { s g d() o }
+ \cs_new_protected:Npn \chemmacros_nmr:nnnn #1#2#3#4
{
\bool_if:NT \l__chemmacros_nmr_list_bool { \item \scan_stop: }
\group_begin:
\chemmacros_leave_vmode:
\bool_set_false:N \l__chemmacros_nmr_frequency_bool
\bool_set_false:N \l__chemmacros_nmr_solvent_bool
- \IfNoValueF { #3 }
+ \tl_if_empty:nF { #3 }
{ \bool_set_true:N \l__chemmacros_nmr_frequency_bool }
- \IfNoValueF { #4 }
+ \tl_if_empty:nF { #4 }
{ \bool_set_true:N \l__chemmacros_nmr_solvent_bool }
\bool_if:nT
{
@@ -2096,7 +2045,7 @@
\l__chemmacros_nmr_solvent_bool
}
{ \bool_set_true:N \l__chemmacros_nmr_comma_bool }
- \IfNoValueTF { #2 }
+ \tl_if_empty:nTF { #2 }
{
\__chemmacros_nmr_nucleus:w
\l__chemmacros_nmr_isotope_default_tl ,
@@ -2122,10 +2071,10 @@
{ \chemmacros_atom:n { #4 } }
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{ ) }
- \IfBooleanF { #1 } { : ~ }
+ \tl_if_blank:nT { #1 } { : ~ }
\group_end:
}
- \IfBooleanF { #1 }
+ \tl_if_blank:nT { #1 }
{
\delta
\text { \l__chemmacros_nmr_delta_tl }
@@ -2147,25 +2096,21 @@
\bool_if:NT \l__chemmacros_nmr_solvent_bool
{
\bool_if:NTF \l__chemmacros_nmr_parse_bool
- {
- \bool_if:NTF \l__chemmacros_use_mhchem_bool
- { \ce { #4 } }
- { \ch { #4 } }
- }
+ { \chemformula_ch:nn { } { #4 } }
{ #4 }
}
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{ ) }
- \IfBooleanF { #1 } { : }
+ \tl_if_blank:nT { #1 } { : }
\group_end:
- \IfBooleanF { #1 }
+ \tl_if_blank:nT { #1 }
{
\tl_use:N \c_space_tl $ \delta $
\l__chemmacros_nmr_delta_tl
\bool_if:NT \l__chemmacros_nmr_use_equal_bool { ~ = }
}
\bool_if:NF \l__chemmacros_nmr_comma_bool
- { \IfBooleanF { #1 } { \chemmacros_xspace: } }
+ { \tl_if_blank:nT { #1 } { \chemmacros_xspace: } }
}
\group_end:
}
@@ -2188,6 +2133,7 @@
{ \chemmacros_val_aux:w #1 \q_nil }
{ \num { #1 } }
}
+
\cs_new_protected:Npn \chemmacros_val_aux:w #1--#2 \q_nil
{ \numrange { #1 } { #2 } }
@@ -2211,30 +2157,14 @@
\chemmacros_ignore_spaces:
}
-\cs_new:Npn \chemmacros_nmr_number:n #1
- {
- #1 \,
- \bool_if:NTF \l__chemmacros_bpchem_bool
- { \g__chemmacros_nmr_element_tl }
- { \chemmacros_atom:V \g__chemmacros_nmr_element_tl }
- }
+\cs_new_protected:Npn \chemmacros_nmr_number:n #1
+ { #1 \, \chemmacros_atom:V \g__chemmacros_nmr_element_tl }
-\cs_new:Npn \chemmacros_nmr_position:n #1
+\cs_new_protected:Npn \chemmacros_nmr_position:n #1
{
- \bool_if:NTF \l__chemmacros_bpchem_bool
- {
- \tl_use:N \g__chemmacros_nmr_element_tl
- \bool_if:NTF \l__chemmacros_nmr_position_sub_bool
- { $\sb{#1}$ }
- { - #1 }
- }
- {
- \bool_if:NTF \l__chemmacros_nmr_position_sub_bool
- {
- \chemmacros_chemformula:x { \g__chemmacros_nmr_element_tl _ #1 }
- }
- { \chemmacros_atom:V \g__chemmacros_nmr_element_tl - #1 }
- }
+ \bool_if:NTF \l__chemmacros_nmr_position_sub_bool
+ { \chemmacros_chemformula:x { \g__chemmacros_nmr_element_tl _ #1 } }
+ { \chemmacros_atom:V \g__chemmacros_nmr_element_tl - #1 }
}
\cs_new_protected:Npn \chemmacros_nmr_coupling:w
@@ -2255,14 +2185,14 @@
\__chemmacros_nmr_coupling_aux_i:w
}
-\cs_new:Npn \__chemmacros_nmr_coupling_aux_i:w
+\cs_new_protected:Npn \__chemmacros_nmr_coupling_aux_i:w
{
\peek_meaning:NTF [
{ \__chemmacros_nmr_coupling_aux_ii:w }
{ \__chemmacros_nmr_coupling_aux_iii:n }
}
-\cs_new:Npn \__chemmacros_nmr_coupling_aux_ii:w [#1]#2
+\cs_new_protected:Npn \__chemmacros_nmr_coupling_aux_ii:w [#1]#2
{
\group_begin:
\sisetup
@@ -2278,7 +2208,7 @@
\group_end:
}
-\cs_new:Npn \__chemmacros_nmr_coupling_aux_iii:n #1
+\cs_new_protected:Npn \__chemmacros_nmr_coupling_aux_iii:n #1
{
\group_begin:
\sisetup
@@ -2295,14 +2225,10 @@
\group_end:
}
-% --------------------------------------------------------------------------- %
-% placing text below atom/molecule
-\cs_new_protected:Npn \chemmacros_dim_to_width:Nn #1#2
- {
- \hbox_set:Nn \l__chemmacros_tmpa_box { #2 }
- \dim_set:Nn #1 { \box_wd:N \l__chemmacros_tmpa_box }
- \box_clear:N \l__chemmacros_tmpa_box
- }
+% --------------------------------------------------------------------------
+% placing text below atom/molecule -- only for `mhchem' users or users of
+% version 1
+\cs_new_eq:NN \chemmacros_dim_to_width:Nn \chemformula_dim_to_width:Nn
\bool_new:N \l__chemmacros_mhname_width_bool
\bool_set_false:N \l__chemmacros_mhname_width_bool
@@ -2331,7 +2257,7 @@
}
% \mhName[<keyval>]{<chemformula>}{<text>}
-\bool_if:nF { \l__chemmacros_version_one_bool || \l__chemmacros_use_mhchem_bool }
+\bool_if:NF \l__chemmacros_version_one_bool
{
\NewDocumentCommand \mhName { o m m }
{
@@ -2352,7 +2278,7 @@
#3
}
}
- { \ce { #2 } }
+ { \cf { #2 } }
}
\group_end:
}
@@ -2374,75 +2300,57 @@
space .dim_set:N = \l__chemmacros_phases_space_dim
}
-\cs_new_protected:Npn \chemmacros_declare_phase:Nnn #1#2#3
+\cs_new_protected:Npn \chemmacros_declare_phase:Nn #1#2
{
- \tl_set_rescan:Nnn \l__chemmacros_tmpa_tl
- { \char_set_catcode_letter:N \\ }
- { #1 }
- \tl_set:Nf \l__chemmacros_tmpa_tl { \tl_tail:V \l__chemmacros_tmpa_tl }
- \cs_if_free:NTF #1
- { \cs_new:Npn #1 {} }
+ \tl_set:Nx \l__chemmacros_tmpa_tl
+ { \chemmacros_remove_backslash:N #1 }
+ \cs_if_free:NF #1
{ \chemmacros_msg:nnxx { chemmacros } { declare-phase } { #1 } {} }
- \tl_if_blank:nTF { #2 }
- { \prop_put:Non \l__chemmacros_phases_german_prop { \l__chemmacros_tmpa_tl } { #3 } }
- { \prop_put:Non \l__chemmacros_phases_german_prop { \l__chemmacros_tmpa_tl } { #2 } }
- \prop_put:Non \l__chemmacros_phases_prop
- { \l__chemmacros_tmpa_tl }
- { #3 }
- \chemmacros_make_phases:
+ \DeclareTranslationFallback { phase-\l__chemmacros_tmpa_tl } { #2 }
+ \__chemmacros_define_phase:Nx #1
+ {
+ \exp_not:N \chemmacros_translate:nn
+ { phase-\l__chemmacros_tmpa_tl }
+ { #2 }
+ }
}
-\cs_new_protected:Npn \chemmacros_renew_phase:Nnn #1#2#3
+\cs_new_protected:Npn \chemmacros_renew_phase:Nn #1#2
{
- \tl_set_rescan:Nnn \l__chemmacros_tmpa_tl
- { \char_set_catcode_letter:N \\ }
- { #1 }
- \tl_set:Nf \l__chemmacros_tmpa_tl { \tl_tail:V \l__chemmacros_tmpa_tl }
+ \tl_set:Nx \l__chemmacros_tmpa_tl
+ { \chemmacros_remove_backslash:N #1 }
\cs_if_free:NT #1
{ \chemmacros_msg:nnxx { chemmacros } { renew-phase } { #1 } {} }
- \tl_if_blank:nTF { #2 }
- { \prop_put:Non \l__chemmacros_phases_german_prop { \l__chemmacros_tmpa_tl } { #3 } }
- { \prop_put:Non \l__chemmacros_phases_german_prop { \l__chemmacros_tmpa_tl } { #2 } }
- \prop_put:Non \l__chemmacros_phases_prop
- { \l__chemmacros_tmpa_tl }
- { #3 }
- \chemmacros_make_phases:
+ \DeclareTranslationFallback { phase-\l__chemmacros_tmpa_tl } { #2 }
+ \__chemmacros_define_phase:Nx #1
+ {
+ \exp_not:N \chemmacros_translate:nn
+ { phase-\l__chemmacros_tmpa_tl }
+ { #2 }
+ }
}
\NewDocumentCommand \DeclareChemPhase { mom }
{
\IfNoValueTF { #2 }
- { \chemmacros_declare_phase:Nnn #1 { } { #3 } }
- { \chemmacros_declare_phase:Nnn #1 { #2 } { #3 } }
+ { \chemmacros_declare_phase:Nn #1 { #3 } }
+ { \chemmacros_declare_phase:Nn #1 { #3 } }
}
\NewDocumentCommand \RenewChemPhase { mom }
{
\IfNoValueTF { #2 }
- { \chemmacros_renew_phase:Nnn #1 { } { #3 } }
- { \chemmacros_renew_phase:Nnn #1 { #2 } { #3 } }
- }
-
-\cs_new_protected:Npn \chemmacros_make_phases:
- {
- \bool_if:NTF \l__chemmacros_german_bool
- {
- \prop_map_function:NN \l__chemmacros_phases_german_prop
- \__chemmacros_define_phases:nn
- }
- {
- \prop_map_function:NN \l__chemmacros_phases_prop
- \__chemmacros_define_phases:nn
- }
+ { \chemmacros_renew_phase:Nn #1 { #3 } }
+ { \chemmacros_renew_phase:Nn #1 { #3 } }
}
-\cs_new_protected:Npn \__chemmacros_define_phases:nn #1#2
+\cs_new_protected:Npn \__chemmacros_define_phase:Nn #1#2
{
- \cs_set:cpn { #1 }
+ \cs_set_protected:Npn #1
{
\bool_if:NTF \l__chemmacros_phases_sub_bool
{
- \bool_if:NTF \l__chemformula_inside_ch_bool
+ \bool_if:NTF \l_chemformula_inside_ch_bool
{ \chemformula_subscript:n { ( #2 ) } }
{ \ensuremath { \c_math_subscript_token { \text { (#2) } } } }
}
@@ -2455,13 +2363,14 @@
}
}
}
+\cs_generate_variant:Nn \__chemmacros_define_phase:Nn { Nx }
-\DeclareChemPhase \sld [ f ] { s }
-\DeclareChemPhase \lqd [ f{}l ] { l }
-\DeclareChemPhase \gas { g }
-\DeclareChemPhase \aq { aq }
+\DeclareChemPhase\sld{ s }
+\DeclareChemPhase\lqd{ l }
+\DeclareChemPhase\gas{ g }
+\DeclareChemPhase\aq { aq }
-\cs_new:Npn \chemmacros_phase:n #1
+\cs_new_protected:Npn \chemmacros_phase:n #1
{
\bool_if:NTF \l__chemmacros_phases_sub_bool
{ \ensuremath { \c_math_subscript_token { \text { (#1) } } } }
@@ -2483,29 +2392,42 @@
\cs_new_eq:NN \liquid \lqd
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% reaction environments
+\cs_new_protected:Npn \__chemmacros_record_for_lor:nnnnn #1#2#3#4#5
+ {
+ \tl_if_eq:nnT { #1 } { reaction }
+ {
+ \group_begin:
+ % we need to prevent \Hy@make@anchor from being written to the lor
+ % file:
+ \bool_if:NT \l__chemmacros_hyperref_bool
+ { \cs_set:Npn \Hy@make@anchor {} }
+ \addcontentsline { lor } { reaction }
+ {
+ \tl_use:N \l__chemmacros_reaction_lorname_tl
+ #2 #3 #4 #5
+ \tl_use:N \g__chemmacros_reaction_description_tl
+ }
+ \tl_gclear:N \g__chemmacros_reaction_description_tl
+ \group_end:
+ }
+ }
% redefine mathtools' command \MT_define_tagform:nwnn to ensure we add an
% entry to the list of reactions even if the user redefines the reaction tag
+% this should probably be done via patching...
\AfterPackage* { mathtools }
{
- \cs_set:Npn \MT_define_tagform:nwnn #1[#2]#3#4
+ \cs_set_protected:Npn \MT_define_tagform:nwnn #1[#2]#3#4
{
\@namedef{MT_tagform_#1:n}##1
{
% this is the original part:
\maketag@@@{#3\ignorespaces#2{##1}\unskip\@@italiccorr#4}
- % this is added:
- \tl_if_eq:nnT { #1 } { reaction }
- {
- \addcontentsline { lor } { reaction }
- {
- \l__chemmacros_reaction_lorname_tl #3 #2 ##1 #4
- \tl_use:N \g__chemmacros_reaction_description_tl
- }
- \tl_gclear:N \g__chemmacros_reaction_description_tl
- }
+ % this is added => this disturbs hyperref:
+ \__chemmacros_record_for_lor:nnnnn
+ { #1 } { #3 } { #2 } { ##1 } { #4 }
}
}
}
@@ -2522,35 +2444,21 @@
{ \chemmacros_add_reaction_description:n { #1 } }
% define \listofreactions
-\tl_new:N \l__chemmacros_reaction_lorname_tl
-\tl_set:Nn \l__chemmacros_reaction_lorname_tl { Reaction ~ }
-\tl_new:N \reactionlistname
-\tl_set:Nn \reactionlistname { List~of~reactions }
+\tl_new:N \l__chemmacros_reaction_lorname_tl
+\tl_new:N \reactionlistname
-% language settings % TODO
-\AtBeginDocument
+% TODO: add option
+\cs_new:Npn \__chemmacros_reaction_heading:n #1
+ { \section* { #1 } }
+\cs_generate_variant:Nn \__chemmacros_reaction_heading:n { V }
+
+\cs_new_protected:Npn \listofreactions
{
- \bool_if:NT \l__chemmacros_german_bool
- {
- \tl_set:Nn \reactionlistname { Reaktionsverzeichnis }
- \tl_set:Nn \l__chemmacros_reaction_lorname_tl { Reaktion ~ }
- }
- \bool_if:NT \l__chemmacros_italian_bool
- {
- \tl_set:Nn \reactionlistname { Elenco ~ delle ~ reazioni }
- \tl_set:Nn \l__chemmacros_reaction_lorname_tl { Reazione ~ }
- }
- \bool_if:NT \l__chemmacros_french_bool
- {
- \tl_set:Nn \reactionlistname { Table ~ des ~ r\'eactions }
- \tl_set:Nn \l__chemmacros_reaction_lorname_tl { R\'eaction ~ }
- }
+ \__chemmacros_reaction_heading:V \reactionlistname
+ \@starttoc { lor }
}
-\cs_new:Npn \listofreactions
- { \section* { \reactionlistname } \@starttoc { lor } }
-
-\cs_new:Npn \l@reaction #1#2
+\cs_new_protected:Npn \l@reaction #1#2
{ \@dottedtocline { 1 } { 1.5em } { 2.3em } { #1 } { #2 } }
% create tagform
@@ -2561,7 +2469,7 @@
\newcounter { reaction }
% switch to reaction tags
-\cs_new:Npn \__chemmacros_begin_reaction:
+\cs_new_protected:Npn \__chemmacros_begin_reaction:
{
% create individual names for `hyperref':
\bool_if:NT \l__chemmacros_hyperref_bool
@@ -2580,7 +2488,7 @@
}
% switch back to equation tags
-\cs_new:Npn \__chemmacros_end_reaction:
+\cs_new_protected:Npn \__chemmacros_end_reaction:
{
\setcounter { reaction } { \value { equation } }
\setcounter { equation } { \value { chemmacros_save_reaction } }
@@ -2592,88 +2500,85 @@
\keys_define:nn { chemmacros / reaction }
{
- star .bool_set:N = \l__chemmacros_reactions_star_bool ,
- star .default:n = true ,
- arg .bool_set:N = \l__chemmacros_reactions_args_bool ,
- arg .default:n = true ,
- list-name .tl_set:N = \reactionlistname ,
- list-entry .code:n =
- \tl_set:Nn \l__chemmacros_reaction_lorname_tl { #1 ~ }
+ star .bool_set:N = \l__chemmacros_reactions_star_bool ,
+ star .default:n = true ,
+ arg .bool_set:N = \l__chemmacros_reactions_args_bool ,
+ arg .default:n = true ,
+ list-name .tl_set:N = \reactionlistname ,
+ list-entry .code:n =
+ \tl_set:Nn \l__chemmacros_reaction_lorname_tl { #1 ~ } ,
+ list-heading .code:n =
+ \cs_set:Npn \__chemmacros_reaction_heading:n ##1 { #1 { ##1 } }
}
-% TODO separate document and module level
% \DeclareChemReaction[<keyval>]{<name>}{<type>}
-\bool_if:NF \l__chemmacros_version_one_bool
+\cs_new_protected:Npn \chemmacros_new_reaction:nnn #1#2#3
{
- \NewDocumentCommand \DeclareChemReaction { o m m }
- {
- \cs_if_exist:cTF { #2 }
- { \msg_error:nnx { chemmacros } { already-defined } { #2 } }
- {
- \IfNoValueTF { #1 }
- {
- \bool_set_false:N \l__chemmacros_reactions_star_bool
- \bool_set_false:N \l__chemmacros_reactions_args_bool
- }
- { \keys_set:nn { chemmacros / reaction } { #1 } }
- \bool_if:NTF \l__chemmacros_reactions_args_bool
- {
- \NewEnviron { #2 } [ 2 ] []
- {
- \__chemmacros_begin_reaction:
- \AddRxnDesc { ##1 }
- \begin { #3 } { ##2 }
- \chemmacros_equation_chemformula:V \BODY
- \end{ #3 }
- \__chemmacros_end_reaction:
- }
- \bool_if:NT \l__chemmacros_reactions_star_bool
- {
- \NewEnviron { #2* } [ 1 ]
- {
- \begin { #3* } { ##1 }
- \chemmacros_equation_chemformula:V \BODY
- \end { #3* }
- }
- }
- }
- {
- \NewEnviron { #2 } [ 1 ] []
- {
- \__chemmacros_begin_reaction:
- \AddRxnDesc { ##1 }
- \begin { #3 }
- \chemmacros_equation_chemformula:V \BODY
- \end { #3 }
- \__chemmacros_end_reaction:
- }
- \bool_if:NT \l__chemmacros_reactions_star_bool
- {
- \NewEnviron { #2* }
- {
- \begin { #3* }
- \chemmacros_equation_chemformula:V \BODY
- \end { #3* }
- }
- }
- }
- }
- \ignorespaces
- }
- \cs_set:Npn \newreaction
+ \cs_if_exist:cTF { #2 }
+ { \msg_error:nnx { chemmacros } { already-defined } { #2 } }
{
- \chemmacros_msg:nnxx { chemmacros } { command-deprecated }
- { \newreaction } { \DeclareChemReaction }
- \DeclareChemReaction
+ \bool_set_false:N \l__chemmacros_reactions_star_bool
+ \bool_set_false:N \l__chemmacros_reactions_args_bool
+ \keys_set:nn { chemmacros / reaction } { #1 }
+ \bool_if:NTF \l__chemmacros_reactions_args_bool
+ {
+ \NewEnviron { #2 } [ 2 ] []
+ {
+ \__chemmacros_begin_reaction:
+ \AddRxnDesc { ##1 }
+ \begin { #3 } { ##2 }
+ \chemmacros_equation_chemformula:V \BODY
+ \end{ #3 }
+ \__chemmacros_end_reaction:
+ }
+ \bool_if:NT \l__chemmacros_reactions_star_bool
+ {
+ \NewEnviron { #2* } [ 1 ]
+ {
+ \begin { #3* } { ##1 }
+ \chemmacros_equation_chemformula:V \BODY
+ \end { #3* }
+ }
+ }
+ }
+ {
+ \NewEnviron { #2 } [ 1 ] []
+ {
+ \__chemmacros_begin_reaction:
+ \AddRxnDesc { ##1 }
+ \begin { #3 }
+ \chemmacros_equation_chemformula:V \BODY
+ \end { #3 }
+ \__chemmacros_end_reaction:
+ }
+ \bool_if:NT \l__chemmacros_reactions_star_bool
+ {
+ \NewEnviron { #2* }
+ {
+ \begin { #3* }
+ \chemmacros_equation_chemformula:V \BODY
+ \end { #3* }
+ }
+ }
+ }
}
+ \ignorespaces
}
-\cs_new:Npn \chemmacros_equation_chemformula:n #1
+\bool_if:NF \l__chemmacros_version_one_bool
{
- \bool_if:NTF \l__chemmacros_use_mhchem_bool
- { \cee { #1 } }
- { \ch { #1 } }
+ \NewDocumentCommand \DeclareChemReaction { o m m }
+ {
+ \IfNoValueTF { #1 }
+ { \chemmacros_new_reaction:nnn { } { #2 } { #3 } }
+ { \chemmacros_new_reaction:nnn { #1 } { #2 } { #3 } }
+ }
+ \DeclareChemDeprecated \newreaction \DeclareChemReaction
+ { \DeclareChemReaction }
}
+
+\cs_new_protected:Npn \chemmacros_equation_chemformula:n #1
+ { \chemformula_ch:nn { } { #1 } }
\cs_generate_variant:Nn \chemmacros_equation_chemformula:n { V }
% predefined:
@@ -2683,43 +2588,44 @@
\DeclareChemReaction [ star ] { reactions } { align }
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% thermodynamics et.al.
% \standardstate as defined by the chemstyle package. Thanks to Joseph Wright
-\cs_if_exist:NF \standardstate
+% the `chemstyle' provides it with \providecommand so it doesn't matter which
+% package defines it first
+\ProvideDocumentCommand \standardstate {}
+ { \ensuremath { \chemmacros_standardstate: } }
+
+\cs_new_protected:Npn \chemmacros_standardstate:
+ { \mathpalette \chemmacros_standardstate_aux: \circ }
+
+\cs_new_protected:Npn \chemmacros_standardstate_aux: #1#2
{
- \cs_new:Npn \standardstate
- { \ensuremath { \chemmacros_standardstate: } }
- \cs_new:Npn \chemmacros_standardstate:
- { \mathpalette \chemmacros_standardstate_aux: \circ }
- \cs_new:Npn \chemmacros_standardstate_aux: #1#2
+ \ooalign
{
- \ooalign
- {
- \tex_hfil:D
- $#1-$
- \tex_hfil:D
- \tex_cr:D
- \tex_hfil:D
- $#1#2$
- \tex_hfil:D
- \tex_cr:D
- }
+ \tex_hfil:D
+ $#1-$
+ \tex_hfil:D
+ \tex_cr:D
+ \tex_hfil:D
+ $#1#2$
+ \tex_hfil:D
+ \tex_cr:D
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% \State
-\tl_new:N \l__chemmacros_State_delta_tl
-\tl_set:Nn \l__chemmacros_State_delta_tl { \Delta }
-\tl_new:N \l__chemmacros_State_exponent_tl
-\tl_set:Nn \l__chemmacros_State_exponent_tl { \standardstate }
+\tl_new:N \l__chemmacros_State_delta_tl
+\tl_set:Nn \l__chemmacros_State_delta_tl { \Delta }
+\tl_new:N \l__chemmacros_State_exponent_tl
+\tl_set:Nn \l__chemmacros_State_exponent_tl { \standardstate }
-\bool_new:N \l__chemmacros_State_delta_bool
+\bool_new:N \l__chemmacros_State_delta_bool
\bool_set_true:N \l__chemmacros_State_delta_bool
-\bool_new:N \l__chemmacros_State_subscript_left_bool
+\bool_new:N \l__chemmacros_State_subscript_left_bool
\bool_set_true:N \l__chemmacros_State_subscript_left_bool
-\bool_new:N \l__chemmacros_State_exponent_bool
+\bool_new:N \l__chemmacros_State_exponent_bool
\bool_set_true:N \l__chemmacros_State_exponent_bool
\keys_define:nn { chemmacros / state }
@@ -2752,7 +2658,7 @@
% old syntax (v2.0):
% \State[<keyval>]{<Symbol>}{<subscript>}
% {<subscript>} is an optional argument!
-\cs_new:Npn \chemmacros_state:nnn #1#2#3
+\cs_new_protected:Npn \chemmacros_state:nnn #1#2#3
{
\group_begin:
\IfNoValueF { #1 }
@@ -2788,7 +2694,7 @@
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
\tl_new:N \l__chemmacros_thermod_subscript_left_tl
\tl_new:N \l__chemmacros_thermod_subscript_left_default_tl
\tl_new:N \l__chemmacros_thermod_subscript_tl
@@ -2829,7 +2735,7 @@
% \DeclareChemState[<keyval>]{<name>}{<symbol>}{<unit>}
\bool_if:NF \l__chemmacros_version_one_bool
{
- \cs_new:Npn \DeclareChemState
+ \cs_new_protected:Npn \DeclareChemState
{
\bool_set_false:N \l__chemmacros_renewstate_bool
\__chemmacros_setnewstate_reset:
@@ -2838,7 +2744,7 @@
{ \__chemmacros_setnewstate_aux:nnn }
}
% \RenewChemState[<keyval>]{<name>}{<symbol>}{<unit>}
- \cs_new:Npn \RenewChemState
+ \cs_new_protected:Npn \RenewChemState
{
\bool_set_true:N \l__chemmacros_renewstate_bool
\__chemmacros_setnewstate_reset:
@@ -2846,13 +2752,13 @@
{ \__chemmacros_setnewstate:n }
{ \__chemmacros_setnewstate_aux:nnn }
}
- \cs_set:Npn \setnewstate
+ \cs_set_protected:Npn \setnewstate
{
\chemmacros_msg:nnxx { chemmacros } { command-deprecated }
{ \setnewstate } { \DeclareChemState }
\DeclareChemState
}
- \cs_set:Npn \renewstate
+ \cs_set_protected:Npn \renewstate
{
\chemmacros_msg:nnxx { chemmacros } { command-deprecated }
{ \renewstate } { \RenewChemState }
@@ -2860,7 +2766,7 @@
}
}
-\cs_new:Npn \__chemmacros_setnewstate_reset:
+\cs_new_protected:Npn \__chemmacros_setnewstate_reset:
{
\tl_set:Nn \l__chemmacros_thermod_subscript_left_default_tl { true }
\tl_clear:N \l__chemmacros_thermod_subscript_default_tl
@@ -2868,13 +2774,13 @@
\tl_set:Nn \l__chemmacros_thermod_delta_default_tl { \Delta }
}
-\cs_new:Npn \__chemmacros_setnewstate:n [#1]
+\cs_new_protected:Npn \__chemmacros_setnewstate:n [#1]
{
\keys_set:nn { chemmacros / setnewstate } { #1 }
\__chemmacros_setnewstate_aux:nnn
}
-\cs_new:Npn \__chemmacros_setnewstate_aux:nnn #1#2#3
+\cs_new_protected:Npn \__chemmacros_setnewstate_aux:nnn #1#2#3
{
\bool_if:NTF \l__chemmacros_renewstate_bool
{
@@ -2911,7 +2817,7 @@
\tl_const:cn
{ l__chemmacros_ #1 _unit_tl }
{ #3 }
- \cs_new:cpn {chemmacros_ #1 _reset: }
+ \cs_new_protected:cpn {chemmacros_ #1 _reset: }
{
\tl_set_eq:Nc
\l__chemmacros_thermod_subscript_tl
@@ -2929,7 +2835,7 @@
\l__chemmacros_thermod_unit_tl
{ l__chemmacros_ #1 _unit_tl }
}
- \cs_new:cpn { #1 }
+ \cs_new_protected:cpn { #1 }
{
\use:c {chemmacros_ #1 _reset: }
\peek_meaning:NTF [
@@ -2940,19 +2846,19 @@
{ \tl_use:c { #1 _aux_iii:n } }
}
}
- \cs_new:cpn { #1 _aux_i:n } [##1]
+ \cs_new_protected:cpn { #1 _aux_i:n } [##1]
{
\keys_set:nn { chemmacros / State } { ##1 }
\peek_meaning:NTF (
{ \tl_use:c { #1 _aux_ii:n } }
{ \tl_use:c { #1 _aux_iii:n } }
}
- \cs_new:cpn { #1 _aux_ii:n } (##1)
+ \cs_new_protected:cpn { #1 _aux_ii:n } (##1)
{
\tl_set:Nn \l__chemmacros_thermod_subscript_tl { ##1 }
\tl_use:c { #1 _aux_iii:n }
}
- \cs_new:cpn { #1 _aux_iii:n } ##1
+ \cs_new_protected:cpn { #1 _aux_iii:n } ##1
{
\ensuremath
{
@@ -3000,21 +2906,21 @@
{G} {\kilo\joule\per\mole}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% Newman projections
-\fp_new:N \l__chemmacros_newman_rel_angle_fp
-\fp_zero:N \l__chemmacros_newman_rel_angle_fp
-\fp_new:N \l__chemmacros_newman_tmp_angle_fp
-\fp_new:N \l__chemmacros_newman_abs_angle_fp
-\fp_zero:N \l__chemmacros_newman_abs_angle_fp
-\fp_new:N \l__chemmacros_newman_scale_fp
-\fp_set:Nn \l__chemmacros_newman_scale_fp { 1 }
-\fp_new:N \l__chemmacros_newman_x_fp
-\fp_new:N \l__chemmacros_newman_y_fp
-
-\tl_new:N \l__chemmacros_newman_tikz_ring_tl
-\tl_new:N \l__chemmacros_newman_tikz_front_tl
-\tl_new:N \l__chemmacros_newman_tikz_back_tl
+\fp_new:N \l__chemmacros_newman_rel_angle_fp
+\fp_zero:N \l__chemmacros_newman_rel_angle_fp
+\fp_new:N \l__chemmacros_newman_tmp_angle_fp
+\fp_new:N \l__chemmacros_newman_abs_angle_fp
+\fp_zero:N \l__chemmacros_newman_abs_angle_fp
+\fp_new:N \l__chemmacros_newman_scale_fp
+\fp_set:Nn \l__chemmacros_newman_scale_fp { 1 }
+\fp_new:N \l__chemmacros_newman_x_fp
+\fp_new:N \l__chemmacros_newman_y_fp
+
+\tl_new:N \l__chemmacros_newman_tikz_ring_tl
+\tl_new:N \l__chemmacros_newman_tikz_front_tl
+\tl_new:N \l__chemmacros_newman_tikz_back_tl
\bool_new:N \l__chemmacros_newman_tikz_back_bool
@@ -3050,7 +2956,7 @@
% place atoms:
% #1: angle
% #2 - #7: atoms
-\cs_new:Npn \chemmacros_newman_atoms:nnnnnnn #1#2#3#4#5#6#7
+\cs_new_protected:Npn \chemmacros_newman_atoms:nnnnnnn #1#2#3#4#5#6#7
{
\tl_if_blank:nTF { #1 }
{
@@ -3107,14 +3013,14 @@
% #2: fp variable for y
% #3: angle
% #4: radius
-\cs_new:Npn \chemmacros_polar_to_cartesian:NNnn #1#2#3#4
+\cs_new_protected:Npn \chemmacros_polar_to_cartesian:NNnn #1#2#3#4
{
\fp_set:Nn #1 { #4 * cos( #3 / 180 * pi ) }% x
\fp_set:Nn #2 { #4 * sin( #3 / 180 * pi ) }% y
}
% place back nodes
-\cs_new:Npn \chemmacros_newman_back_node:nn #1#2
+\cs_new_protected:Npn \chemmacros_newman_back_node:nn #1#2
{
\group_begin:
\fp_add:Nn \l__chemmacros_newman_rel_angle_fp { #1 }
@@ -3155,7 +3061,7 @@
\cs_generate_variant:Nn \chemmacros_newman_back_node:nn { nf }
% place front nodes:
-\cs_new:Npn \chemmacros_newman_front_node:nn #1#2
+\cs_new_protected:Npn \chemmacros_newman_front_node:nn #1#2
{
\chemmacros_polar_to_cartesian:NNnn
\l__chemmacros_newman_x_fp
@@ -3185,27 +3091,27 @@
}
\cs_generate_variant:Nn \chemmacros_newman_front_node:nn { nf }
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% \orbital[<keyval>]{<type>}
% variables:
-\bool_new:N \l__chemmacros_orbital_type_s_bool
-\bool_new:N \l__chemmacros_orbital_type_p_bool
-\bool_new:N \l__chemmacros_orbital_type_sp_bool
-\bool_new:N \l__chemmacros_orbital_type_sptwo_bool
-\bool_new:N \l__chemmacros_orbital_type_spthree_bool
-\bool_new:N \l__chemmacros_orbital_s_phase_bool
+\bool_new:N \l__chemmacros_orbital_type_s_bool
+\bool_new:N \l__chemmacros_orbital_type_p_bool
+\bool_new:N \l__chemmacros_orbital_type_sp_bool
+\bool_new:N \l__chemmacros_orbital_type_sptwo_bool
+\bool_new:N \l__chemmacros_orbital_type_spthree_bool
+\bool_new:N \l__chemmacros_orbital_s_phase_bool
\bool_set_true:N \l__chemmacros_orbital_s_phase_bool
-\bool_new:N \l__chemmacros_orbital_p_phase_bool
+\bool_new:N \l__chemmacros_orbital_p_phase_bool
\bool_set_true:N \l__chemmacros_orbital_p_phase_bool
-\bool_new:N \l__chemmacros_orbital_sp_phase_bool
+\bool_new:N \l__chemmacros_orbital_sp_phase_bool
\bool_set_true:N \l__chemmacros_orbital_sp_phase_bool
-\bool_new:N \l__chemmacros_orbital_sptwo_phase_bool
+\bool_new:N \l__chemmacros_orbital_sptwo_phase_bool
\bool_set_true:N \l__chemmacros_orbital_sptwo_phase_bool
-\bool_new:N \l__chemmacros_orbital_spthree_phase_bool
+\bool_new:N \l__chemmacros_orbital_spthree_phase_bool
\bool_set_true:N \l__chemmacros_orbital_spthree_phase_bool
-\bool_new:N \l__chemmacros_orbital_p_half_bool
-\bool_new:N \l__chemmacros_orbital_overlay_bool
-\bool_new:N \l__chemmacros_orbital_opacity_bool
+\bool_new:N \l__chemmacros_orbital_p_half_bool
+\bool_new:N \l__chemmacros_orbital_overlay_bool
+\bool_new:N \l__chemmacros_orbital_opacity_bool
\tl_new:N \l__chemmacros_orbital_s_color_tl
\tl_set:Nn \l__chemmacros_orbital_s_color_tl { black }
@@ -3260,9 +3166,9 @@
{ opacity = { \fp_use:N \l__chemmacros_orbital_opacity_fp } }
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% s-orbitals
-\cs_new:Npn \__chemmacros_orbital_type_s:
+\cs_new_protected:Npn \__chemmacros_orbital_type_s:
{
\bool_set_true:N \l__chemmacros_orbital_type_s_bool
\bool_set_false:N \l__chemmacros_orbital_type_p_bool
@@ -3282,7 +3188,7 @@
color .tl_set:N = \l__chemmacros_orbital_s_color_tl
}
-\cs_new:Npn \__chemmacros_orbital_s_draw:n #1
+\cs_new_protected:Npn \__chemmacros_orbital_s_draw:n #1
{
\keys_set:nn { chemmacros / orbital / s } { #1 }
\bool_if:NTF \l__chemmacros_orbital_s_phase_bool
@@ -3309,9 +3215,9 @@
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% p-orbitals
-\cs_new:Npn \__chemmacros_orbital_type_p:
+\cs_new_protected:Npn \__chemmacros_orbital_type_p:
{
\bool_set_false:N \l__chemmacros_orbital_type_s_bool
\bool_set_true:N \l__chemmacros_orbital_type_p_bool
@@ -3334,7 +3240,7 @@
half .default:n = true
}
-\cs_new:Npn \__chemmacros_orbital_p_draw:n #1
+\cs_new_protected:Npn \__chemmacros_orbital_p_draw:n #1
{
\keys_set:nn { chemmacros / orbital / p } { #1 }
\bool_if:NTF \l__chemmacros_orbital_p_phase_bool
@@ -3405,9 +3311,9 @@
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% sp-orbitals
-\cs_new:Npn \__chemmacros_orbital_type_sp:
+\cs_new_protected:Npn \__chemmacros_orbital_type_sp:
{
\bool_set_false:N \l__chemmacros_orbital_type_s_bool
\bool_set_false:N \l__chemmacros_orbital_type_p_bool
@@ -3428,7 +3334,7 @@
color .tl_set:N = \l__chemmacros_orbital_sp_color_tl
}
-\cs_new:Npn \__chemmacros_orbital_sp_draw:n #1
+\cs_new_protected:Npn \__chemmacros_orbital_sp_draw:n #1
{
\keys_set:nn { chemmacros / orbital / sp } { #1 }
\bool_if:NTF \l__chemmacros_orbital_sp_phase_bool
@@ -3496,9 +3402,9 @@
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% sp2-orbitals
-\cs_new:Npn \__chemmacros_orbital_type_sptwo:
+\cs_new_protected:Npn \__chemmacros_orbital_type_sptwo:
{
\bool_set_false:N \l__chemmacros_orbital_type_s_bool
\bool_set_false:N \l__chemmacros_orbital_type_p_bool
@@ -3519,7 +3425,7 @@
color .tl_set:N = \l__chemmacros_orbital_sptwo_color_tl
}
-\cs_new:Npn \__chemmacros_orbital_sptwo_draw:n #1
+\cs_new_protected:Npn \__chemmacros_orbital_sptwo_draw:n #1
{
\keys_set:nn { chemmacros / orbital / sp2 } { #1 }
\bool_if:NTF \l__chemmacros_orbital_sptwo_phase_bool
@@ -3587,9 +3493,9 @@
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% sp3-orbitals
-\cs_new:Npn \__chemmacros_orbital_type_spthree:
+\cs_new_protected:Npn \__chemmacros_orbital_type_spthree:
{
\bool_set_false:N \l__chemmacros_orbital_type_s_bool
\bool_set_false:N \l__chemmacros_orbital_type_p_bool
@@ -3610,7 +3516,7 @@
color .tl_set:N = \l__chemmacros_orbital_spthree_color_tl
}
-\cs_new:Npn \__chemmacros_orbital_spthree_draw:n #1
+\cs_new_protected:Npn \__chemmacros_orbital_spthree_draw:n #1
{
\keys_set:nn { chemmacros / orbital / sp3 } { #1 }
\bool_if:NTF \l__chemmacros_orbital_spthree_phase_bool
@@ -3678,7 +3584,7 @@
}
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% main command
\keys_define:nn { chemmacros / orbital }
{
@@ -3702,7 +3608,7 @@
sp3 .code:n = { \__chemmacros_orbital_type_spthree: }
}
-\cs_new:Npn \chemmacros_orbital:n #1
+\cs_new_protected:Npn \chemmacros_orbital:n #1
{
\bool_if:NT \l__chemmacros_orbital_type_s_bool
{ \__chemmacros_orbital_s_draw:n { #1 } }
@@ -3726,7 +3632,7 @@
\group_end:
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% arrow tips for electron movement
\dim_new:N \l__chemmacros_el_length_dim
@@ -3815,22 +3721,30 @@
\pgfusepathqfillstroke
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% setup
\NewDocumentCommand \chemsetup { o m }
{
\IfNoValueTF { #1 }
{ \keys_set:nn { chemmacros } { #2 } }
- { \keys_set:nn { chemmacros / #1 } { #2 } }
+ {
+ \bool_if:NTF \l__chemmacros_version_four_bool
+ {
+ \tl_if_eq:nnTF { #1 } { chemformula }
+ { \setchemformula { #2 } }
+ { \keys_set:nn { chemmacros / #1 } { #2 } }
+ }
+ { \keys_set:nn { chemmacros / #1 } { #2 } }
+ }
\ignorespaces
}
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% load old definitions:
\bool_if:NT \l__chemmacros_version_one_bool
{ \file_input:n { chemmacros-version1 . cfg } }
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
% hyperref support
% ?? unsure about adding IUPAC commands
\AfterPackage* { hyperref }
@@ -3839,15 +3753,72 @@
{
\cs_set:Npn \- { - }% myabe not a good idea...
\cs_set:Npn \| { }
- \cs_set:Npn \iupac #1 { #1 }
\cs_set:Npn \pH { pH }
\cs_set:Npn \pOH { pOH }
- }
+ \cs_set:Npn \iupac #1 { #1 }
+ % \cs_set:Npn \a { alpha }
+ % \cs_set:Npn \g { gamma }
+ % \cs_set:Npn \d { delta }
+ % \cs_set:Npn \m { mu }
+ % \cs_set:Npn \n { eta }
+ % \cs_set:Npn \w { omega }
+ % \cs_set:Npn \N { N }
+ % \cs_set:Npn \O { O }
+ % \cs_set:Npn \Sf { S }
+ % \cs_set:Npn \P { P }
+ % \cs_set:Npn \R { (R) }
+ \cs_set:Npn \cip #1 { (#1) }
+ % \cs_set:Npn \E { (E) }
+ % \cs_set:Npn \Z { (Z) }
+ \cs_set:Npn \cis { cis }
+ \cs_set:Npn \trans { trans }
+ \cs_set:Npn \tert { tert }
+ % \cs_set:Npn \D { D }
+ \cs_set:Npn \ortho { o }
+ \cs_set:Npn \meta { m }
+ \cs_set:Npn \para { p }
+ \cs_set:Npn \syn { syn }
+ \cs_set:Npn \anti { anti }
+ }
+ }
+
+% --------------------------------------------------------------------------
+% language support -- provided through `translations'
+% equilibrium constants:
+\DeclareTranslationFallback{K-acid}{A}
+\DeclareTranslationFallback{K-base}{B}
+\DeclareTranslationFallback{K-water}{W}
+\DeclareTranslation{German}{K-acid}{S}
+% phases:
+\DeclareTranslation{German}{phase-sld}{ f }
+\DeclareTranslation{German}{phase-lqd}{ f{}l }
+% list of reactions:
+\DeclareTranslationFallback {list-of-reactions} { List ~ of ~ reactions }
+\DeclareTranslation{English} {list-of-reactions} { List ~ of ~ reactions }
+\DeclareTranslation{German} {list-of-reactions} { Reaktionsverzeichnis }
+\DeclareTranslation{Italian} {list-of-reactions} { Elenco ~ delle ~ reazioni }
+\DeclareTranslation{French} {list-of-reactions} { Table ~ des ~ r\'eactions }
+%
+\DeclareTranslationFallback {lor-reaction} { Reaction ~ }
+\DeclareTranslation{English} {lor-reaction} { Reaction ~ }
+\DeclareTranslation{German} {lor-reaction} { Reaktion ~ }
+\DeclareTranslation{Italian} {lor-reaction} { Reazione ~ }
+\DeclareTranslation{French} {lor-reaction} { R\'eaction ~ }
+
+\tl_set:Nn \l__chemmacros_reaction_lorname_tl
+ {
+ \chemmacros_translate:nn
+ {lor-reaction} { Reaction ~ }
+ }
+\tl_set:Nn \reactionlistname
+ {
+ \chemmacros_translate:nn
+ {list-of-reactions} { List ~ of ~ reactions }
}
\tex_endinput:D
-% --------------------------------------------------------------------------- %
+% --------------------------------------------------------------------------
Version history
2011/05/15 - version 1.0 - CTAN release
2011/06/22 - version 1.1 - "LaTeXified" whole package for safer usage
@@ -4005,11 +3976,39 @@ Version history
2013/04/19 - version 3.6b - chemformula: new key `arrow-min-length'
- bug fix: stoichiometric fractions correctly displayed
- changed appearance of \cip to use upright parentheses
+2013/07/06 - version 4.0 - `chemformula' doesn't automatically load
+ `chemmacros' any more but can be used stand-alone
+ - option `bpchem' has been dropped
+ - improved detection of bold font series
+ - changed wrongly used \mbox in definition of \Ka,
+ \Kb and \Kw into \ensuremath
+ - adapt \mch and \pch to match `chemformula's
+ charges
+ - dropped option `method=mhchem'
+ - support for `kpfonts' and `newtxmath' upright
+ greek letters added, greek alphabet complete both
+ for uppercase and lowercase; this is handled by
+ the new package in the family: `chemgreek'
+ - \OX and \redox now work in `amsmath's environment
+ by ignoring the measuring phase
+ - language management with the halp of the
+ `translations' package =>
+ recognize document language automatically and use
+ it if it a) is known to `chemmacros' and b) has
+ not been overwritten by the `language' option;
+ this also made minor changes to `ghsystem'
+ necessary; additionally this lead to changes in
+ the way phases are defined
+ - status of \Dfi and \Lfi changed from `deprecated'
+ to `dropped'
+ - new option `charges/partial-format'
+ - fixed wrongly written contents to the lor when
+ used together with `hyperref'
+ - new option `reaction/list-heading'
+ - option `charges/append' deprecated
+
% --------------------------------------------------------------------------- %
-% TODO:
-- ox-option xfrac vs math?
-- drop option `bpchem'
+% TODO: fuer version 4
- add d-orbitals
-- add kpfonts to `greek' option so \Chemalpha and kin use \alphaup ... of kpfonts
- package \ No newline at end of file
+- make electron movement arrow tips (`el', `left el' and `right el') public
diff --git a/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty b/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty
index 90e387ff1d8..5f552b8e2a0 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty
+++ b/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty
@@ -26,13 +26,29 @@
% - - %
% - The Current Maintainer of this work is Clemens Niederberger. - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\RequirePackage{ chemmacros }
+\RequirePackage{ expl3, xparse, l3keys2e }
+\def\ghsystem@version{4.0}
+\def\ghsystem@date{2013/07/06}
\ProvidesExplPackage
{ghsystem}
- {\chemmacros@date}
- {\chemmacros@version}
+ {\ghsystem@date}
+ {\ghsystem@version}
{globally harmonised system}
+% --------------------------------------------------------------------------
+% check expl3 version:
+\@ifpackagelater { expl3 } { 2012/11/21 }
+ { }
+ {
+ \PackageError { ghsystem } { Support~package~expl3~too~old }
+ {
+ You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
+ 'l3packages'.\MessageBreak
+ Loading~ghsystem~will~abort!
+ }
+ \tex_endinput:D
+ }
+
% --------------------------------------------------------------------------- %
% error and warning messages:
\msg_set:nnnn { ghsystem } { explicit }
@@ -62,6 +78,45 @@
sure~to~load~it~in~your~preamble.
}
+\cs_new_protected:Npn \ghsystem_msg:nnxx #1#2#3#4
+ {
+ \bool_if:NTF \l__ghsystem_strict_bool
+ { \msg_error:nnxx { #1 } { #2 } { #3 } { #4 } }
+ { \msg_warning:nnxx { #1 } { #2 } { #3 } { #4 } }
+ }
+
+% --------------------------------------------------------------------------
+% package options:
+\bool_new:N \l__ghsystem_strict_bool
+\keys_define:nn { chemmacros / ghsystem }
+ {
+ strict .bool_set:N = \l__ghsystem_strict_bool ,
+ strict .default:n = true ,
+ language .code:n = \ghsystem_load_language:n { #1 }
+ }
+
+\AtBeginDocument
+ {
+ \@ifpackageloaded{ chemmacros }
+ {
+ \bool_if:NT \l_chemmacros_strict_bool
+ { \bool_set_true:N \l__ghsystem_strict_bool }
+ }
+ {
+ \cs_new:Npn \iupac #1
+ {
+ \group_begin:
+ \cs_set_eq:NN \| \scan_stop:
+ #1
+ \group_end:
+ }
+ }
+ }
+
+% --------------------------------------------------------------------------- %
+% variants of kernel functions:
+\cs_generate_variant:Nn \file_if_exist:nTF { x }
+
% --------------------------------------------------------------------------- %
% scratch variables
\tl_new:N \l__ghsystem_tmpa_tl
@@ -69,13 +124,8 @@
\int_new:N \l__ghsystem_tmpa_int
\int_new:N \l__ghsystem_tmpb_int
-% --------------------------------------------------------------------------- %
-% gobble options
-\DeclareOption* { }
-\ProcessOptions \scan_stop:
-
% load required packages:
-\RequirePackage{ graphicx , tabu , longtable , ifpdf }
+\RequirePackage{ translations , siunitx , graphicx , longtable , ifpdf }
% --------------------------------------------------------------------------- %
% define variables:
@@ -126,7 +176,10 @@
\tl_new:N \l__ghsystem_table_caption_short_tl
\tl_new:N \l__ghsystem_table_label_tl
\tl_set:Nn \l__ghsystem_table_label_tl { tab : ghs-hp-statements }
+\tl_new:N \l__ghsystem_list_all_column_format_tl
+\dim_new:N \l__ghsystem_list_all_column_width_dim
+\dim_set:Nn \l__ghsystem_list_all_column_width_dim { .7\linewidth }
\dim_new:N \l__ghsystem_table_line_sep_dim
\dim_set:Nn \l__ghsystem_table_line_sep_dim { 3pt }
@@ -142,46 +195,63 @@
\bool_new:N \l__ghsystem_language_file_loaded_bool
\bool_new:N \l__ghsystem_language_directory_bool
-\file_if_exist:nTF { language / ghsystem_english_def }
- { \bool_set_true:N \l__ghsystem_language_directory_bool }
- { \bool_set_false:N \l__ghsystem_language_directory_bool }
+% load the language file -- it needs expl3 namespace but shouldn't care about
+% what catcode regime was before and simply restore it
-\bool_if:NTF \l__ghsystem_language_directory_bool
+\cs_new:Npn \__ghsystem_namespace_restore: {}
+
+\cs_new_protected:Npn \__ghsystem_expl_namespace:
{
- \prop_map_inline:Nn \l__chemmacros_language_prop
- {
- \bool_if:cT { l__chemmacros_#1_bool }
- {
- \file_if_exist:nTF { language / ghsystem_#2.def }
- {
- \bool_set_true:N \l__ghsystem_language_file_loaded_bool
- \input { language / ghsystem_#2.def } \ExplSyntaxOn
- }
- { \input { language / ghsystem_english.def } \ExplSyntaxOn }
- }
- }
+ \group_begin:
+ \cs_gset_protected:Npx \__ghsystem_namespace_restore:
+ {
+ \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } }
+ \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } }
+ \char_set_catcode:nn { 34 } { \char_value_catcode:n { 34 } }
+ \char_set_catcode:nn { 38 } { \char_value_catcode:n { 38 } }
+ \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } }
+ \char_set_catcode:nn { 94 } { \char_value_catcode:n { 94 } }
+ \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } }
+ \char_set_catcode:nn { 124 } { \char_value_catcode:n { 124 } }
+ \char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } }
+ \tex_endlinechar:D = \tex_the:D \tex_endlinechar:D \scan_stop:
+ }
+ \group_end:
+ \ExplSyntaxOn
+ }
+
+\cs_new:Npn \ghsystem_load_language_file:n #1
+ {
+ \__ghsystem_expl_namespace:
+ \input ghsystem_#1.def \scan_stop:
+ \__ghsystem_namespace_restore:
}
+
+\cs_new_protected:Npn \ghsystem_load_language:n #1
{
- \prop_map_inline:Nn \l__chemmacros_language_prop
+ \file_if_exist:xTF { ghsystem_ #1 .def }
{
- \bool_if:cT { l__chemmacros_#1_bool }
- {
- \file_if_exist:nTF { ghsystem_#2.def }
- {
- \bool_set_true:N \l__ghsystem_language_file_loaded_bool
- \input { ghsystem_#2.def } \ExplSyntaxOn
- }
- { \input { ghsystem_english.def } \ExplSyntaxOn }
- }
+ \bool_set_true:N \l__ghsystem_language_file_loaded_bool
+ \ghsystem_load_language_file:n { #1 }
}
+ { \ghsystem_load_language_file:n { english } }
}
+\cs_generate_variant:Nn \ghsystem_load_language:n { V }
-\bool_if:NF \l__ghsystem_language_file_loaded_bool
- {
- \bool_if:NTF \l__ghsystem_language_directory_bool
- { \input { language / ghsystem_english.def } \ExplSyntaxOn }
- { \input { ghsystem_english.def } \ExplSyntaxOn }
- }
+\NewDocumentCommand \loadghsystemlanguage { m }
+ { \ghsystem_load_language:n { #1 } }
+
+\AtBeginDocument{
+ \bool_if:NF \l__ghsystem_language_file_loaded_bool
+ {
+ \cs_if_exist:NTF \l_chemmacros_language_tl
+ { \ghsystem_load_language:V \l_chemmacros_language_tl }
+ {
+ \ghsystem_load_language:n
+ { \@trnslt@language{\@trnslt@current@language} }
+ }
+ }
+}
\cs_new_nopar:Nn \ghsystem_booktabs:n
{
@@ -193,12 +263,6 @@
% define options:
\keys_define:nn { chemmacros / ghsystem }
{
- % general options:
- language .code:n =
- \bool_set_true:c { l__ghsystem_#1_bool }
- \bool_if:NTF \l__ghsystem_language_directory_bool
- { \input { language / ghsystem_#1.def } }
- { \input { ghsystem_#1.def } } ,
% \ghs options:
hide .bool_set:N =
\l__ghsystem_hide_statement_bool ,
@@ -289,10 +353,16 @@
\tl_clear:N \l__ghsystem_table_top_head_rule_tl
\tl_clear:N \l__ghsystem_table_foot_rule_tl
\tl_clear:N \l__ghsystem_table_last_foot_rule_tl ,
- table-caption .tl_set:N = \l__ghsystem_table_caption_tl ,
+ table-caption .tl_set:N =
+ \l__ghsystem_table_caption_tl ,
table-caption-short .tl_set:N =
\l__ghsystem_table_caption_short_tl ,
- table-label .tl_set:N = \l__ghsystem_table_label_tl
+ table-label .tl_set:N =
+ \l__ghsystem_table_label_tl ,
+ table-column-format .tl_set:N =
+ \l__ghsystem_list_all_column_format_tl ,
+ table-column-width .dim_set:N =
+ \l__ghsystem_list_all_column_width_dim
}
% --------------------------------------------------------------------------- %
@@ -318,7 +388,7 @@
\bool_if:NF \l__ghsystem_hide_statement_bool
{ \tl_use:N \l__ghsystem_tmpb_tl }
}
- { \chemmacros_msg:nnxx { ghsystem } { statements } { #1 } { #2 } }
+ { \ghsystem_msg:nnxx { ghsystem } { statements } { #1 } { #2 } }
}
\cs_new_protected:Nn \__ghsystem_get_type:nN
@@ -400,8 +470,13 @@
\int_zero:N \l__ghsystem_tmpa_int
\int_zero:N \l__ghsystem_tmpb_int
\prop_map_inline:Nn \l__ghsystem_p_prop { \int_incr:N \l__ghsystem_tmpa_int }
- \dim_set_eq:NN \tabulinesep \l__ghsystem_table_line_sep_dim
- \begin { longtabu } { X[3]X[7,L] }
+ \dim_set_eq:NN \extrarowheight \l__ghsystem_table_line_sep_dim
+ \begin { longtable }
+ {
+ l
+ >{ \l__ghsystem_list_all_column_format_tl }
+ p{ \l__ghsystem_list_all_column_width_dim }
+ }
\caption [ \l__ghsystem_table_caption_short_tl ]
{
\l__ghsystem_table_caption_tl
@@ -435,7 +510,7 @@
\__ghsystem_read_number:nn { P } { ##1 } & ##2
\int_compare:nNnT { \l__ghsystem_tmpb_int } < { \l__ghsystem_tmpa_int } { \\ }
}
- \end { longtabu }
+ \end { longtable }
}
\cs_new:Nn \__ghsystem_read_number:nn
@@ -491,37 +566,49 @@
\cs_new_protected:Npn \ghsystem_pic:n #1
{
- \file_if_exist:nTF { pictures / ghsystem_ #1 . \l__ghsystem_picture_type_tl }
- { \bool_set_true:N \l__ghsystem_picture_directory_bool }
- { \bool_set_false:N \l__ghsystem_picture_directory_bool }
- \bool_if:NTF \l__ghsystem_picture_directory_bool
- {
- \__ghsystem_includegraphics:xn
- {
- scale = \fp_to_tl:N \l__ghsystem_picture_scale_fp
- \l__ghsystem_picture_includegraphics_tl
- }
- { pictures / ghsystem_ #1 . \l__ghsystem_picture_type_tl }
- }
+ \__ghsystem_includegraphics:xn
{
- \__ghsystem_includegraphics:xn
- {
- scale = \fp_to_tl:N \l__ghsystem_picture_scale_fp
- \l__ghsystem_picture_includegraphics_tl
- }
- { ghsystem_ #1 . \l__ghsystem_picture_type_tl }
+ scale = \fp_to_tl:N \l__ghsystem_picture_scale_fp
+ \exp_not:V \l__ghsystem_picture_includegraphics_tl
}
+ { ghsystem_ #1 . \l__ghsystem_picture_type_tl }
}
\cs_new:Nn \__ghsystem_includegraphics:nn
{ \includegraphics[#1]{#2} }
\cs_generate_variant:Nn \__ghsystem_includegraphics:nn { xn }
+% --------------------------------------------------------------------------
+% options and setup
+\ProcessKeysOptions{ chemmacros / ghsystem }
+
+\cs_new_protected:Npn \ghsystem_setup:n #1
+ { \keys_set:nn { chemmacros / ghsystem } { #1 } }
+
+\NewDocumentCommand \ghssetup { m }
+ { \ghsystem_setup:n { #1 } }
+
\tex_endinput:D
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
VERSION HISTORY
-see the chemmacros.sty file
+2012/01/30 - version 3.0a - renamed ghs => ghsystem to make the names unique
+ (following a request by Karl Berry for TeXlive)
+2012/02/05 - version 3.0c - renamed pictogram files (following a request by
+ Karl Berry for TeXlive)
+2012/05/13 - version 3.3a - Italian translations of the H, EUH and P statements
+2012/05/18 - version 3.3b - compatibility with MiKTeX
+2012/05/18 - version 3.3c - fix in the `ghsystem/language' option
+2012/07/24 - version 3.3d - additional picture file type `pdf'
+2013/02/19 - version 3.5a - bug fix: `ghsystem' recognizes language again
+2013/07/06 - version 4.0 - dropped requirement of `tabu' package.
+ - new options `table-column-width' and
+ `table-column-format'
+ - adapted to changed language setting mechanism in
+ `chemmacros'
+ - new command: \loadghsystemlanguage
+ - the package can be used independently from
+ `chemmacros'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO:
-- add option to switch between `longtable` and `supertabular` for \ghslistall ? \ No newline at end of file
+- add option to switch between `longtable` and `supertabular` for \ghslistall ?
diff --git a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_english.def b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_english.def
index e4324bc4c71..4dc71bee897 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_english.def
+++ b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_english.def
@@ -27,7 +27,6 @@
% - - %
% - The Current Maintainer of this work is Clemens Niederberger. - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ExplSyntaxOn
% ENGLISH DEFINITIONS
\prop_clear:N \l__ghsystem_h_prop
\prop_clear:N \l__ghsystem_euh_prop
@@ -45,7 +44,13 @@
{
\bool_if:NT \l__ghsystem_fill_in_bool
{
- \c_space_tl \textit{\textless state~route~of~ex\-po\-sure~if~it~is~ con\-clu\-sive\-ly~pro\-ven~that~no~other~routes~of~ex\-po\-sure~cause~the~ha\-zard \textgreater}
+ \c_space_tl
+ \textit{
+ \textless state~ route~ of~ exposure~ if~ it~ is~
+ conclusively~ proven~ that~ no~ other~ routes~ of~
+ exposure~ cause~ the~ hazard
+ \textgreater
+ }
}
}
@@ -54,7 +59,10 @@
{
\bool_if:NT \l__ghsystem_fill_in_bool
{
- \c_space_tl \textit{\textless state~spe\-ci\-fic~effect~if~known \textgreater}
+ \c_space_tl
+ \textit{
+ \textless state~ specific~ effect~ if~ known \textgreater
+ }
}
}
@@ -63,7 +71,10 @@
{
\bool_if:nT { \l__ghsystem_fill_in_bool && !\l__ghsystem_organs_bool }
{
- \c_space_tl \textit{\textless or~state~all~or\-gans~affec\-ted,~if~known \textgreater}
+ \c_space_tl
+ \textit{
+ \textless or~ state~ all~ organs~ affected,~ if~ known \textgreater
+ }
}
}
@@ -72,272 +83,696 @@
{
\bool_if:NF \l__ghsystem_substance_bool
{
- \c_space_tl \textit{\textless name~of~sen\-si\-ti\-sing~sub\-stance \textgreater}
+ \c_space_tl
+ \textit{
+ \textless name~ of~ sensitising~ substance \textgreater
+ }
}
}
% HAZARD STATEMENTS (Annex 3)
% 1. Hazard Statements
% 1.1 Physical Hazards
-\prop_put:Nnn \l__ghsystem_h_prop { 200 } { Un\-stable~ex\-plo\-sives. }
-\prop_put:Nnn \l__ghsystem_h_prop { 201 } { Ex\-plo\-sive;~mass~ex\-plo\-sion~ha\-zard. }
-\prop_put:Nnn \l__ghsystem_h_prop { 202 } { Ex\-plo\-sive,~se\-vere~pro\-jec\-tion~ha\-zard. }
-\prop_put:Nnn \l__ghsystem_h_prop { 203 } { Ex\-plo\-sive;~fire,~blast~or~pro\-jec\-tion~ha\-zard. }
-\prop_put:Nnn \l__ghsystem_h_prop { 204 } { Fire~or~pro\-jec\-tion~ha\-zard. }
-\prop_put:Nnn \l__ghsystem_h_prop { 205 } { May~mass~ex\-plode~in~fire. }
-\prop_put:Nnn \l__ghsystem_h_prop { 220 } { Ex\-treme\-ly~flammable~gas. }
-\prop_put:Nnn \l__ghsystem_h_prop { 221 } { Flammable~gas. }
-\prop_put:Nnn \l__ghsystem_h_prop { 222 } { Ex\-treme\-ly~flammable~aero\-sol. }
-\prop_put:Nnn \l__ghsystem_h_prop { 223 } { Flammable~aero\-sol. }
-\prop_put:Nnn \l__ghsystem_h_prop { 224 } { Ex\-treme\-ly~flammable~li\-quid~and~va\-pour. }
-\prop_put:Nnn \l__ghsystem_h_prop { 225 } { High\-ly~flammable~liquid~and~va\-pour. }
-\prop_put:Nnn \l__ghsystem_h_prop { 226 } { Flammable~li\-quid~and~va\-pour. }
-\prop_put:Nnn \l__ghsystem_h_prop { 228 } { Flammable~so\-lid. }
-\prop_put:Nnn \l__ghsystem_h_prop { 240 } { Heating~may~cause~an~ex\-plo\-sion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 241 } { Heating~may~cause~a~fire~or~ex\-plo\-sion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 242 } { Heating~may~cause~a~fire. }
-\prop_put:Nnn \l__ghsystem_h_prop { 250 } { Catches~fire~spon\-ta\-ne\-ous\-ly~if~ex\-po\-sed~to~air. }
-\prop_put:Nnn \l__ghsystem_h_prop { 251 } { Self-heating : ~may~catch~fire. }
-\prop_put:Nnn \l__ghsystem_h_prop { 252 } { Self-heating~in~large~quan\-ti\-ties;~may~catch~fire. }
-\prop_put:Nnn \l__ghsystem_h_prop { 260 } { In~con\-tact~with~wa\-ter~re\-leases~flammable~ga\-ses~which~may~ig\-nite~spon\-ta\-ne\-ous\-ly. }
-\prop_put:Nnn \l__ghsystem_h_prop { 261 } { In~con\-tact~with~wa\-ter~re\-leases~flammable~ga\-ses. }
-\prop_put:Nnn \l__ghsystem_h_prop { 270 } { May~cause~or~in\-ten\-si\-fy~fire;~oxi\-di\-ser. }
-\prop_put:Nnn \l__ghsystem_h_prop { 271 } { May~cause~fire~or~ex\-plo\-sion;~strong~oxi\-di\-ser. }
-\prop_put:Nnn \l__ghsystem_h_prop { 272 } { May~in\-ten\-si\-fy~fire;~oxi\-di\-ser. }
-\prop_put:Nnn \l__ghsystem_h_prop { 280 } { Con\-tains~gas~un\-der~pressure;~may~ex\-plode~if~heated. }
-\prop_put:Nnn \l__ghsystem_h_prop { 281 } { Con\-tains~re\-fri\-ge\-ra\-ted~gas;~may~cause~cryo\-ge\-nic~burns~or~in\-ju\-ry. }
-\prop_put:Nnn \l__ghsystem_h_prop { 290 } { May~be~corro\-sive~to~me\-tals. }
+\prop_put:Nnn \l__ghsystem_h_prop { 200 }
+ { Unstable~ explosives. }
+\prop_put:Nnn \l__ghsystem_h_prop { 201 }
+ { Explosive;~ mass~ explosion~ hazard. }
+\prop_put:Nnn \l__ghsystem_h_prop { 202 }
+ { Explosive,~ severe~ projection~hazard. }
+\prop_put:Nnn \l__ghsystem_h_prop { 203 }
+ { Explosive;~ fire,~ blast~ or~ projection~hazard. }
+\prop_put:Nnn \l__ghsystem_h_prop { 204 }
+ { Fire~ or~ projection~ hazard. }
+\prop_put:Nnn \l__ghsystem_h_prop { 205 }
+ { May~ mass~ explode~ in~ fire. }
+\prop_put:Nnn \l__ghsystem_h_prop { 220 }
+ { Extremely~ flammable~ gas. }
+\prop_put:Nnn \l__ghsystem_h_prop { 221 }
+ { Flammable~ gas. }
+\prop_put:Nnn \l__ghsystem_h_prop { 222 }
+ { Extremely~ flammable~ aerosol. }
+\prop_put:Nnn \l__ghsystem_h_prop { 223 }
+ { Flammable~ aerosol. }
+\prop_put:Nnn \l__ghsystem_h_prop { 224 }
+ { Extremely~ flammable~ liquid~ and~ vapour. }
+\prop_put:Nnn \l__ghsystem_h_prop { 225 }
+ { Highly~ flammable~ liquid~ and~ vapour. }
+\prop_put:Nnn \l__ghsystem_h_prop { 226 }
+ { Flammable~ liquid~ and~ vapour. }
+\prop_put:Nnn \l__ghsystem_h_prop { 228 }
+ { Flammable~ solid. }
+\prop_put:Nnn \l__ghsystem_h_prop { 240 }
+ { Heating~ may~ cause~ an~ explosion. }
+\prop_put:Nnn \l__ghsystem_h_prop { 241 }
+ { Heating~ may~ cause~ a~ fire~ or~ explosion. }
+\prop_put:Nnn \l__ghsystem_h_prop { 242 }
+ { Heating~ may~ cause~ a~ fire. }
+\prop_put:Nnn \l__ghsystem_h_prop { 250 }
+ { Catches~ fire~ spontaneously~ if~ exposed~ to~ air. }
+\prop_put:Nnn \l__ghsystem_h_prop { 251 }
+ { Self-heating:~ may~ catch~ fire. }
+\prop_put:Nnn \l__ghsystem_h_prop { 252 }
+ { Self-heating~ in~ large~ quantities;~ may~ catch~ fire. }
+\prop_put:Nnn \l__ghsystem_h_prop { 260 }
+ {
+ In~ contact~ with~ water~ releases~ flammable~ gases~ which~ may~ ignite~
+ spontaneously.
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 261 }
+ { In~ contact~ with~ water~ releases~ flammable~ gases. }
+\prop_put:Nnn \l__ghsystem_h_prop { 270 }
+ { May~ cause~ or~ intensify~ fire;~ oxidiser. }
+\prop_put:Nnn \l__ghsystem_h_prop { 271 }
+ { May~ cause~ fire~ or~ explosion;~ strong~ oxidiser. }
+\prop_put:Nnn \l__ghsystem_h_prop { 272 }
+ { May~ intensify~ fire;~ oxidiser. }
+\prop_put:Nnn \l__ghsystem_h_prop { 280 }
+ { Contains~ gas~ under~ pressure;~ may~ explode~ if~ heated. }
+\prop_put:Nnn \l__ghsystem_h_prop { 281 }
+ { Contains~ refrigerated~ gas;~ may~ cause~ cryogenic~ burns~ or~ injury. }
+\prop_put:Nnn \l__ghsystem_h_prop { 290 }
+ { May~ be~ corrosive~ to~ metals. }
% 1.2 Health Hazards
-\prop_put:Nnn \l__ghsystem_h_prop { 300 } { Fa\-tal~if~swallowed. }
-\prop_put:Nnn \l__ghsystem_h_prop { 301 } { To\-xic~if~swallowed. }
-\prop_put:Nnn \l__ghsystem_h_prop { 302 } { Harm\-ful~if~swallowed. }
-\prop_put:Nnn \l__ghsystem_h_prop { 304 } { May~be~fa\-tal~if~swallowed~and~en\-ters~air\-ways. }
-\prop_put:Nnn \l__ghsystem_h_prop { 310 } { Fa\-tal~in~con\-tact~with~skin. }
-\prop_put:Nnn \l__ghsystem_h_prop { 311 } { To\-xic~in~con\-tact~with~skin. }
-\prop_put:Nnn \l__ghsystem_h_prop { 312 } { Harm\-ful~in~con\-tact~with~skin. }
-\prop_put:Nnn \l__ghsystem_h_prop { 314 } { Cau\-ses~se\-vere~skin~burns~and~eye~da\-mage. }
-\prop_put:Nnn \l__ghsystem_h_prop { 315 } { Cau\-ses~skin~ir\-ri\-ta\-tion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 317 } { May~cause~an~aller\-gic~skin~reac\-tion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 318 } { Causes~se\-rious~eye~da\-mage. }
-\prop_put:Nnn \l__ghsystem_h_prop { 319 } { Causes~se\-rious~eye~irri\-ta\-tion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 330 } { Fa\-tal~if~in\-haled. }
-\prop_put:Nnn \l__ghsystem_h_prop { 331 } { To\-xic~if~in\-haled. }
-\prop_put:Nnn \l__ghsystem_h_prop { 332 } { Harm\-ful~if~in\-haled. }
-\prop_put:Nnn \l__ghsystem_h_prop { 334 } { May~cause~aller\-gy~or~asth\-ma~symp\-toms~or\-breathing~diffi\-cul\-ties~if~in\-haled. }
-\prop_put:Nnn \l__ghsystem_h_prop { 335 } { May~cause~res\-pi\-ra\-to\-ry~irri\-ta\-tion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 336 } { May~cause~drowsi\-ness~or~dizzi\-ness. }
-\prop_put:Nnn \l__ghsystem_h_prop { 340 } { May~cause~ge\-ne\-tic~de\-fects. \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 341 } { Sus\-pec\-ted~of~causing~ge\-ne\-tic~de\-fects. \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 350 } { May~cause~can\-cer. \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 351 } { Sus\-pec\-ted~of~causing~cancer. \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 360 } { May~da\-mage~fer\-ti\-li\-ty~or~the~un\-born~child. \ghsystem_effect: \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 361 } { Sus\-pec\-ted~of~da\-ma\-ging~fer\-ti\-li\-ty~or~the~un\-born~child. \ghsystem_effect: \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 362 } { May~cause~harm~to~breast-fed~child\-ren. }
-\prop_put:Nnn \l__ghsystem_h_prop { 370 } { Causes~da\-mage \bool_if:NF \l__ghsystem_organs_bool { ~to~or\-gans } \ghsystem_organs: . \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 371 } { May~cause~da\-mage \bool_if:NF \l__ghsystem_organs_bool { ~to~or\-gans } \ghsystem_organs: . \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 372 } { Causes~da\-mage \bool_if:NF \l__ghsystem_organs_bool { ~to~or\-gans } \ghsystem_organs:\ through~pro\-longed~or~re\-pea\-ted~ex\-po\-sure. \ghsystem_exposure: }
-\prop_put:Nnn \l__ghsystem_h_prop { 373 } { May~cause~da\-mage \bool_if:NF \l__ghsystem_organs_bool { ~to~or\-gans } \ghsystem_organs:\ through~pro\-longed~or~re\-pea\-ted~ex\-po\-sure. \ghsystem_exposure: }
+\prop_put:Nnn \l__ghsystem_h_prop { 300 }
+ { Fatal~ if~ swallowed. }
+\prop_put:Nnn \l__ghsystem_h_prop { 301 }
+ { Toxic~ if~ swallowed. }
+\prop_put:Nnn \l__ghsystem_h_prop { 302 }
+ { Harmful~ if~ swallowed. }
+\prop_put:Nnn \l__ghsystem_h_prop { 304 }
+ { May~ be~ fatal~ if~ swallowed~ and~ enters~ airways. }
+\prop_put:Nnn \l__ghsystem_h_prop { 310 }
+ { Fatal~ in~ contact~ with~ skin. }
+\prop_put:Nnn \l__ghsystem_h_prop { 311 }
+ { Toxic~ in~ contact~ with~ skin. }
+\prop_put:Nnn \l__ghsystem_h_prop { 312 }
+ { Harmful~ in~ contact~ with~ skin. }
+\prop_put:Nnn \l__ghsystem_h_prop { 314 }
+ { Causes~ severe~ skin~ burns~ and~ eye~ damage. }
+\prop_put:Nnn \l__ghsystem_h_prop { 315 }
+ { Causes~ skin~ irritation. }
+\prop_put:Nnn \l__ghsystem_h_prop { 317 }
+ { May~ cause~ an~ allergic~ skin~ reaction. }
+\prop_put:Nnn \l__ghsystem_h_prop { 318 }
+ { Causes~ serious~ eye~ damage. }
+\prop_put:Nnn \l__ghsystem_h_prop { 319 }
+ { Causes~ serious~ eye~ irritation. }
+\prop_put:Nnn \l__ghsystem_h_prop { 330 }
+ { Fatal~ if~ inhaled. }
+\prop_put:Nnn \l__ghsystem_h_prop { 331 }
+ { Toxic~ if~ inhaled. }
+\prop_put:Nnn \l__ghsystem_h_prop { 332 }
+ { Harmful~ if~ inhaled. }
+\prop_put:Nnn \l__ghsystem_h_prop { 334 }
+ {
+ May~ cause~ allergy~ or~ asthma~ symptoms~ orbreathing~ difficulties~ if~
+ inhaled.
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 335 }
+ { May~ cause~ respiratory~ irritation. }
+\prop_put:Nnn \l__ghsystem_h_prop { 336 }
+ { May~ cause~ drowsiness~ or~ dizziness. }
+\prop_put:Nnn \l__ghsystem_h_prop { 340 }
+ { May~ cause~ genetic~ defects. \ghsystem_exposure: }
+\prop_put:Nnn \l__ghsystem_h_prop { 341 }
+ { Suspected~ of~ causing~ genetic~ defects. \ghsystem_exposure: }
+\prop_put:Nnn \l__ghsystem_h_prop { 350 }
+ { May~ cause~ cancer. \ghsystem_exposure: }
+\prop_put:Nnn \l__ghsystem_h_prop { 351 }
+ { Suspected~ of~ causing~ cancer. \ghsystem_exposure: }
+\prop_put:Nnn \l__ghsystem_h_prop { 360 }
+ {
+ May~ damage~ fertility~ or~ the~ unborn~ child.
+ \ghsystem_effect:
+ \ghsystem_exposure:
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 361 }
+ {
+ Suspected~ of~ damaging~ fertility~ or~ the~ unborn~ child.
+ \ghsystem_effect:
+ \ghsystem_exposure:
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 362 }
+ { May~ cause~ harm~ to~ breast-fed~ children. }
+\prop_put:Nnn \l__ghsystem_h_prop { 370 }
+ {
+ Causes~ damage
+ \bool_if:NF \l__ghsystem_organs_bool { ~to~ organs }
+ \ghsystem_organs: .
+ \ghsystem_exposure:
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 371 }
+ {
+ May~ cause~ damage
+ \bool_if:NF \l__ghsystem_organs_bool { ~to~ organs }
+ \ghsystem_organs: .
+ \ghsystem_exposure:
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 372 }
+ {
+ Causes~ damage
+ \bool_if:NF \l__ghsystem_organs_bool { ~to~ organs }
+ \ghsystem_organs: \c_space_tl
+ through~ prolonged~ or~ repeated~ exposure.
+ \ghsystem_exposure:
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 373 }
+ {
+ May~ cause~ damage
+ \bool_if:NF \l__ghsystem_organs_bool { ~to~ organs }
+ \ghsystem_organs:\c_space_rl
+ through~ prolonged~ or~ repeated~ exposure.
+ \ghsystem_exposure:
+ }
% 1.3 Environmental hazards
-\prop_put:Nnn \l__ghsystem_h_prop { 400 } { Ve\-ry~to\-xic~to~aqua\-tic~life. }
-\prop_put:Nnn \l__ghsystem_h_prop { 410 } { Ve\-ry~to\-xic~to~aqua\-tic~life~with~long~las\-ting~effects. }
-\prop_put:Nnn \l__ghsystem_h_prop { 411 } { To\-xic~to~aqua\-tic~life~with~long~las\-ting~effects. }
-\prop_put:Nnn \l__ghsystem_h_prop { 412 } { Harm\-ful~to~aqua\-tic~life~ with~long~las\-ting~effects. }
-\prop_put:Nnn \l__ghsystem_h_prop { 413 } { May~cause~long~las\-ting~harm\-ful~effects~to~aqua\-tic~life. }
+\prop_put:Nnn \l__ghsystem_h_prop { 400 }
+ { Very~ toxic~ to~ aquatic~ life. }
+\prop_put:Nnn \l__ghsystem_h_prop { 410 }
+ { Very~ toxic~ to~ aquatic~ life~ with~ long~ lasting~ effects. }
+\prop_put:Nnn \l__ghsystem_h_prop { 411 }
+ { Toxic~ to~ aquatic~ life~ with~ long~ lasting~ effects. }
+\prop_put:Nnn \l__ghsystem_h_prop { 412 }
+ { Harmful~ to~ aquatic~ life~ with~ long~ lasting~ effects. }
+\prop_put:Nnn \l__ghsystem_h_prop { 413 }
+ { May~ cause~ long~ lasting~ harmful~ effects~ to~ aquatic~ life. }
% 2 Supplemental Hazard Informations
% 2.1 Physical Properties
-\prop_put:Nnn \l__ghsystem_euh_prop { 001 } { Ex\-plo\-sive~when~dry. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 006 } { Ex\-plo\-sive~with~or~with\-out~con\-tact~with~air. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 014 } { Reacts~vio\-lent\-ly~with~wa\-ter. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 018 } { In~use~may~form~flammable/ex\-plo\-sive~va\-pour-air~mix\-ture. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 019 } { May~form~ex\-plo\-sive~per\-oxides. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 044 } { Risk~of~ex\-plo\-sion~if~heated~un\-der~con\-fine\-ment. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 001 }
+ { Explosive~ when~ dry. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 006 }
+ { Explosive~ with~ or~ without~ contact~ with~ air. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 014 }
+ { Reacts~ violently~ with~ water. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 018 }
+ { In~ use~ may~ form~ flammable\slash explosive~ vapour-air~ mixture. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 019 }
+ { May~ form~ explosive~ peroxides. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 044 }
+ { Risk~ of~ explosion~ if~ heated~ under~ confinement. }
% 2.2 Health Properties
-\prop_put:Nnn \l__ghsystem_euh_prop { 029 } { Con\-tact~with~wa\-ter~li\-be\-rates~to\-xic~gas. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 031 } { Con\-tact~with~acids~li\-be\-rates~to\-xic~gas. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 032 } { Con\-tact~with~acids~li\-be\-rates~ve\-ry~to\-xic~gas. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 066 } { Re\-pea\-ted~ex\-po\-sure~may~cause~skin~dry\-ness~or~cracking. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 070 } { Toxic~by~eye~con\-tact. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 071 } { Corro\-sive~to~the~respi\-ra\-to\-ry~tract. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 029 }
+ { Contact~ with~ water~ liberates~ toxic~ gas. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 031 }
+ { Contact~ with~ acids~ liberates~ toxic~ gas. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 032 }
+ { Contact~ with~ acids~ liberates~ very~ toxic~ gas. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 066 }
+ { Repeated~ exposure~ may~ cause~ skin~ dryness~ or~ cracking. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 070 }
+ { Toxic~ by~ eye~ contact. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 071 }
+ { Corrosive~ to~ the~ respiratory~ tract. }
% 2.3 Environmental Properties
-\prop_put:Nnn \l__ghsystem_euh_prop { 059 } { Ha\-zar\-dous~to~the~ozone~layer. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 059 }
+ { Hazardous~ to~ the~ ozone~ layer. }
% 2.4 Supplemental Label Elements/Information On Certain Substances And Mixtures
-\prop_put:Nnn \l__ghsystem_euh_prop { 201 } { Con\-tains~lead.~Should~not~be~used~on~sur\-faces~liable~to~be~chewed~or~sucked~by~child\-ren. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 201A } { Warning!~con\-tains~lead. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 202 } { \iupac { Cyano\|acrylate } . ~ Dan\-ger.~Bonds~skin~and~eyes~in~se\-conds.~Keep~out~of~the~reach~of~child\-ren. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { Con\-tains ~ \ox[pos=side]{ 6 , chromium } . ~ May~pro\-duce~an~aller\-gic~reac\-tion. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 204 } { Con\-tains ~ \iupac { iso\|cyanates } . ~ May~pro\-duce~an~aller\-gic~reac\-tion. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 205 } { Con\-tains~epoxy~consti\-tuents.~May~pro\-duce~an~aller\-gic~reac\-tion. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 206 } { War\-ning!~Do~not~use~to\-gether~with~other~pro\-ducts.~May~re\-lease~dan\-ge\-rous~gases~(chlorine). }
-\prop_put:Nnn \l__ghsystem_euh_prop { 207 } { War\-ning!~Con\-tains ~ \iupac { cad\|mium } . ~ Dan\-ge\-rous~fumes~are~formed~du\-ring~use.~See~in\-for\-ma\-tion~supplied~by~the~ma\-nu\-fac\-turer.~Comply~with~the~safety~in\-struc\-tions. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 208 } { Con\-tains \ghsystem_substance: . ~ May~pro\-duce~an~aller\-gic~reac\-tion. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 209 } { Can~be\-come~high\-ly~flammable~in~use. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 209A } { Can~be\-come~flammable~in~use. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 210 } { Safe\-ty~da\-ta~sheet~available~on~re\-quest. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 401 } { To~avoid~risks~to~hu\-man~health~and~the~en\-vi\-ron\-ment,~comply~with~the~in\-struc\-tions~for~use. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 201 }
+ {
+ Contains~ lead.~ Should~ not~ be~ used~ on~ surfaces~ liable~ to~ be~
+ chewed~ or~ sucked~ by~ children.
+ }
+\prop_put:Nnn \l__ghsystem_euh_prop { 201A }
+ { Warning!~ contains~ lead. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 202 }
+ {
+ \iupac { Cyano\|acrylate } . ~ Danger.~ Bonds~ skin~ and~ eyes~ in~
+ seconds.~ Keep~ out~ of~ the~ reach~ of~ children.
+ }
+\prop_put:Nnn \l__ghsystem_euh_prop { 203 }
+ {
+ Contains ~ chromium \, (VI) .~ May~ produce~ an~ allergic~
+ reaction.
+ }
+\prop_put:Nnn \l__ghsystem_euh_prop { 204 }
+ {
+ Contains ~ \iupac { iso\|cyanates } . ~ May~ produce~ an~ allergic~
+ reaction.
+ }
+\prop_put:Nnn \l__ghsystem_euh_prop { 205 }
+ { Contains~ epoxy~ constituents.~ May~ produce~ an~ allergic~ reaction. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 206 }
+ {
+ Warning!~ Do~ not~ use~ together~ with~ other~ products.~ May~ release~
+ dangerous~ gases ~(chlorine).
+ }
+\prop_put:Nnn \l__ghsystem_euh_prop { 207 }
+ {
+ Warning!~ Contains ~ \iupac { cadmium } .~ Dangerous~ fumes~ are~ formed~
+ during~ use.~ See~ information~ supplied~ by~ the~ manufacturer.~ Comply~
+ with~ the~ safety~ instructions.
+ }
+\prop_put:Nnn \l__ghsystem_euh_prop { 208 }
+ { Contains \ghsystem_substance: .~ May~ produce~ an~ allergic~ reaction. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 209 }
+ { Can~ become~ highly~ flammable~ in~ use. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 209A }
+ { Can~ become~ flammable~ in~ use. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 210 }
+ { Safety~ data~ sheet~ available~ on~ request. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 401 }
+ {
+ To~ avoid~ risks~ to~ human~ health~ and~ the~ environment,~ comply~ with~
+ the~ instructions~ for~ use.
+ }
% PRECAUTIONARY STATEMENTS (Annex 4 page 19ff)
% 3 Precautionary Statements
% 3.1 General
-\prop_put:Nnn \l__ghsystem_p_prop { 101 } { If~me\-di\-cal~ad\-vice~is~needed,~have~pro\-duct~con\-tainer~or~la\-bel~at~hand. }
-\prop_put:Nnn \l__ghsystem_p_prop { 102 } { Keep~out~of~reach~of~child\-ren. }
-\prop_put:Nnn \l__ghsystem_p_prop { 103 } { Read~label~be\-fore~use. }
+\prop_put:Nnn \l__ghsystem_p_prop { 101 }
+ {
+ If~ medical~ advice~ is~ needed,~ have~ product~ container~ or~ label~ at~
+ hand.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 102 }
+ { Keep~ out~ of~ reach~ of~ children. }
+\prop_put:Nnn \l__ghsystem_p_prop { 103 }
+ { Read~ label~ before~ use. }
% 3.2 Precautionary Statements — Prevention
-\prop_put:Nnn \l__ghsystem_p_prop { 201 } { Ob\-tain~spe\-cial~in\-struc\-tions~be\-fore~use. }
-\prop_put:Nnn \l__ghsystem_p_prop { 202 } { Do~not~handle~un\-til~all~safe\-ty~pre\-cau\-tions~have~been~read~and~un\-der\-stood. }
-\prop_put:Nnn \l__ghsystem_p_prop { 210 } { Keep~away~from~heat/sparks/open~flames/hot~sur\-faces.~\textemdash\ No~smo\-king. }
-\prop_put:Nnn \l__ghsystem_p_prop { 211 } { Do~not~spray~on~an~open~flame~or~other~ig\-ni\-tion~source. }
-\prop_put:Nnn \l__ghsystem_p_prop { 220 } { Keep/Store~away~from~clothing/ \l__ghsystem_dots_tl /com\-bus\-tible~ma\-te\-rials. }
-\prop_put:Nnn \l__ghsystem_p_prop { 221 } { Take~any~pre\-cau\-tion~to~avoid~mi\-xing~with~com\-bus\-tibles ~ \l__ghsystem_dots_tl }
-\prop_put:Nnn \l__ghsystem_p_prop { 222 } { Do~not~allow~con\-tact~with~air. }
-\prop_put:Nnn \l__ghsystem_p_prop { 223 } { Keep~away~from~any~possible~con\-tact~with~wa\-ter,~be\-cause~of~vio\-lent~reac\-tion~and~possible~flash~fire. }
-\prop_put:Nnn \l__ghsystem_p_prop { 230 } { Keep~wetted~with ~ \l__ghsystem_dots_tl }
-\prop_put:Nnn \l__ghsystem_p_prop { 231 } { Handle~un\-der~inert~gas. }
-\prop_put:Nnn \l__ghsystem_p_prop { 232 } { Pro\-tect~from~mois\-ture. }
-\prop_put:Nnn \l__ghsystem_p_prop { 233 } { Keep~con\-tainer~tight\-ly~closed. }
-\prop_put:Nnn \l__ghsystem_p_prop { 234 } { Keep~only~in~ori\-gi\-nal~con\-tai\-ner. }
-\prop_put:Nnn \l__ghsystem_p_prop { 235 } { Keep~cool. }
-\prop_put:Nnn \l__ghsystem_p_prop { 240 } { Ground/bond~con\-tai\-ner~and~re\-cei\-ving~equip\-ment. }
-\prop_put:Nnn \l__ghsystem_p_prop { 241 } { Use~ex\-plo\-sion-proof~elec\-tri\-cal/ven\-ti\-la\-ting/ligh\-ting / \l__ghsystem_dots_tl\ e\-quip\-ment. }
-\prop_put:Nnn \l__ghsystem_p_prop { 242 } { Use~on\-ly~non-spar\-king~tools. }
-\prop_put:Nnn \l__ghsystem_p_prop { 243 } { Take~pre\-cau\-tionary~mea\-sures~against~sta\-tic~dis\-charge. }
-\prop_put:Nnn \l__ghsystem_p_prop { 244 } { Keep~re\-duc\-tion~valves~free~from~grease~and~oil. }
-\prop_put:Nnn \l__ghsystem_p_prop { 250 } { Do~not~sub\-ject~to~grin\-ding/shock / \l__ghsystem_dots_tl / fric\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 251 } { Pressu\-rized~con\-tai\-ner : ~ Do~not~pierce~or~burn,~even~after~use. }
-\prop_put:Nnn \l__ghsystem_p_prop { 260 } { Do~not~breathe~dust/fume/gas/mist/va\-pours/spray. }
-\prop_put:Nnn \l__ghsystem_p_prop { 261 } { Avoid~brea\-thing~dust/fume/gas/mist/va\-pours/spray. }
-\prop_put:Nnn \l__ghsystem_p_prop { 262 } { Do~not~get~in~eyes,~on~skin,~or~on~clothing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 263 } { Avoid~con\-tact~du\-ring~preg\-nan\-cy/while~nur\-sing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 264 } { Wash ~ \l__ghsystem_dots_tl\ tho\-rough\-ly~after~hand\-ling. }
-\prop_put:Nnn \l__ghsystem_p_prop { 270 } { Do~not~eat,~drink~or~smoke~when~using~this~pro\-duct. }
-\prop_put:Nnn \l__ghsystem_p_prop { 271 } { Use~on\-ly~out\-doors~or~in~a~well-ven\-ti\-la\-ted~area. }
-\prop_put:Nnn \l__ghsystem_p_prop { 272 } { Con\-ta\-mi\-na\-ted~work~clo\-thing~should~not~be~allowed~out~of~the~work\-place. }
-\prop_put:Nnn \l__ghsystem_p_prop { 273 } { Avoid~re\-lease~to~the~en\-vi\-ron\-ment. }
-\prop_put:Nnn \l__ghsystem_p_prop { 280 } { Wear~pro\-tec\-tive~gloves/pro\-tec\-tive~clo\-thing/eye~pro\-tec\-tion/face~pro\-tec\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 281 } { Use~per\-so\-nal~pro\-tec\-tive~equip\-ment~as~re\-quired. }
-\prop_put:Nnn \l__ghsystem_p_prop { 282 } { Wear~cold~in\-su\-la\-ting~gloves/face~shield/eye~pro\-tec\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 283 } { Wear~fire/flame~re\-sis\-tant/re\-tar\-dant~clo\-thing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 284 } { Wear~res\-pi\-ra\-to\-ry~pro\-tec\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 285 } { In~case~of~in\-ade\-quate~ven\-ti\-la\-tion~wear~res\-pi\-ra\-to\-ry~pro\-tec\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 231 + 232 } { Handle~un\-der~inert~gas.~Pro\-tect~from~mois\-ture. }
-\prop_put:Nnn \l__ghsystem_p_prop { 235 + 410 } { Keep~cool.~Pro\-tect~from~sun\-light. }
+\prop_put:Nnn \l__ghsystem_p_prop { 201 }
+ { Obtain~ special~ instructions~ before~ use. }
+\prop_put:Nnn \l__ghsystem_p_prop { 202 }
+ {
+ Do~ not~ handle~ until~ all~ safety~ precautions~ have~ been~ read~ and~
+ understood.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 210 }
+ {
+ Keep~ away~ from~ heat\slash sparks\slash open~ flames\slash hot~
+ surfaces.~ \textemdash\ No~ smoking.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 211 }
+ { Do~ not~ spray~ on~ an~ open~ flame~ or~ other~ ignition~ source. }
+\prop_put:Nnn \l__ghsystem_p_prop { 220 }
+ {
+ Keep\slash Store~ away~ from~ clothing\slash \l__ghsystem_dots_tl \slash
+ combustible~ materials.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 221 }
+ {
+ Take~ any~ precaution~ to~ avoid~ mixing~ with~ combustibles~
+ \l__ghsystem_dots_tl
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 222 }
+ { Do~ not~ allow~ contact~ with~ air. }
+\prop_put:Nnn \l__ghsystem_p_prop { 223 }
+ {
+ Keep~ away~ from~ any~ possible~ contact~ with~ water,~ because~ of~
+ violent~ reaction~ and~ possible~ flash~ fire.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 230 }
+ { Keep~ wetted~ with~ \l__ghsystem_dots_tl }
+\prop_put:Nnn \l__ghsystem_p_prop { 231 }
+ { Handle~ under~ inert~ gas. }
+\prop_put:Nnn \l__ghsystem_p_prop { 232 }
+ { Protect~ from~ moisture. }
+\prop_put:Nnn \l__ghsystem_p_prop { 233 }
+ { Keep~ container~ tightly~ closed. }
+\prop_put:Nnn \l__ghsystem_p_prop { 234 }
+ { Keep~ only~ in~ original~ container. }
+\prop_put:Nnn \l__ghsystem_p_prop { 235 }
+ { Keep~ cool. }
+\prop_put:Nnn \l__ghsystem_p_prop { 240 }
+ { Ground\slash bond~ container~ and~ receiving~ equipment. }
+\prop_put:Nnn \l__ghsystem_p_prop { 241 }
+ {
+ Use~ explosion-proof~ electrical\slash ventilating\slash lighting \slash
+ \l__ghsystem_dots_tl\ equipment.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 242 }
+ { Use~ only~ non-sparking~ tools. }
+\prop_put:Nnn \l__ghsystem_p_prop { 243 }
+ { Take~ precautionary~ measures~ against~ static~ discharge. }
+\prop_put:Nnn \l__ghsystem_p_prop { 244 }
+ { Keep~ reduction~ valves~ free~ from~ grease~ and~ oil. }
+\prop_put:Nnn \l__ghsystem_p_prop { 250 }
+ {
+ Do~ not~ subject~ to~ grinding\slash shock \slash \l__ghsystem_dots_tl
+ \slash friction.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 251 }
+ { Pressurized~ container:~ Do~ not~ pierce~ or~ burn,~ even~ after~ use. }
+\prop_put:Nnn \l__ghsystem_p_prop { 260 }
+ {
+ Do~ not~ breathe~ dust\slash fume\slash gas\slash mist\slash vapours\slash
+ spray.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 261 }
+ {
+ Avoid~ breathing~ dust\slash fume\slash gas\slash mist\slash vapours\slash
+ spray.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 262 }
+ { Do~ not~ get~ in~ eyes,~ on~ skin,~ or~ on~ clothing. }
+\prop_put:Nnn \l__ghsystem_p_prop { 263 }
+ { Avoid~ contact~ during~ pregnancy\slash while~ nursing. }
+\prop_put:Nnn \l__ghsystem_p_prop { 264 }
+ { Wash~ \l__ghsystem_dots_tl\ thoroughly~ after~ handling. }
+\prop_put:Nnn \l__ghsystem_p_prop { 270 }
+ { Do~ not~ eat,~ drink~ or~ smoke~ when~ using~ this~ product. }
+\prop_put:Nnn \l__ghsystem_p_prop { 271 }
+ { Use~ only~ outdoors~ or~ in~ a~ well-ventilated~ area. }
+\prop_put:Nnn \l__ghsystem_p_prop { 272 }
+ {
+ Contaminated~ work~ clothing~ should~ not~ be~ allowed~ out~ of~ the~
+ workplace.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 273 }
+ { Avoid~ release~ to~ the~ environment. }
+\prop_put:Nnn \l__ghsystem_p_prop { 280 }
+ {
+ Wear~ protective~ gloves\slash protective~ clothing\slash eye~
+ protection\slash face~ protection.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 281 }
+ { Use~ personal~ protective~ equipment~ as~ required. }
+\prop_put:Nnn \l__ghsystem_p_prop { 282 }
+ { Wear~ cold~ insulating~ gloves\slash face~ shield\slash eye~ protection. }
+\prop_put:Nnn \l__ghsystem_p_prop { 283 }
+ { Wear~ fire\slash flame~ resistant\slash retardant~ clothing. }
+\prop_put:Nnn \l__ghsystem_p_prop { 284 }
+ { Wear~ respiratory~ protection. }
+\prop_put:Nnn \l__ghsystem_p_prop { 285 }
+ { In~ case~ of~ inadequate~ ventilation~ wear~ respiratory~ protection. }
+\prop_put:Nnn \l__ghsystem_p_prop { 231 + 232 }
+ { Handle~ under~ inert~ gas.~ Protect~ from~ moisture. }
+\prop_put:Nnn \l__ghsystem_p_prop { 235 + 410 }
+ { Keep~ cool.~ Protect~ from~ sunlight. }
% 3.3 Precautionary Statements — Response
-\prop_put:Nnn \l__ghsystem_p_prop { 301 } { IF~SWALLOWED : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 302 } { IF~ON~SKIN : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 303 } { IF~ON~SKIN~(or~hair) : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 304 } { IF~IN\-HALED : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 305 } { IF~IN~EYES : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 306 } { IF~ON~CLO\-THING : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 307 } { IF~ex\-po\-sed : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 308 } { IF~ex\-po\-sed~or~con\-cerned : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 309 } { IF~ex\-po\-sed~or~if~you~feel~un\-well : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 310 } { Imme\-diate\-ly~call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian. }
-\prop_put:Nnn \l__ghsystem_p_prop { 311 } { Call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian. }
-\prop_put:Nnn \l__ghsystem_p_prop { 312 } { Call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian~if~you~feel~un\-well. }
-\prop_put:Nnn \l__ghsystem_p_prop { 313 } { Get~me\-di\-cal~ad\-vice/atten\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 314 } { Get~me\-di\-cal~ad\-vice/atten\-tion~if~you~feel~un\-well. }
-\prop_put:Nnn \l__ghsystem_p_prop { 315 } { Get~imme\-diate~me\-di\-cal~ad\-vice/atten\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 320 } { Spe~ci\-fic~treat\-ment~is~ur\-gent~(see ~ \l__ghsystem_dots_tl\ on~this~la\-bel). }
-\prop_put:Nnn \l__ghsystem_p_prop { 321 } { Spe~ci\-fic~treat\-ment~(see ~ \l__ghsystem_dots_tl\ on~this~la\-bel). }
-\prop_put:Nnn \l__ghsystem_p_prop { 322 } { Spe~ci\-fic~mea\-sures~(see ~ \l__ghsystem_dots_tl\ on~this~la\-bel). }
-\prop_put:Nnn \l__ghsystem_p_prop { 330 } { Rinse~mouth. }
-\prop_put:Nnn \l__ghsystem_p_prop { 331 } { Do~NOT~in\-duce~vo\-mitting. }
-\prop_put:Nnn \l__ghsystem_p_prop { 332 } { If~skin~irri\-tation~occurs : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 333 } { If~skin~irri\-tation~or~rash~occurs : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 334 } { Immerse~in~cool~wa\-ter/wrap~in~wet~ban\-da\-ges. }
-\prop_put:Nnn \l__ghsystem_p_prop { 335 } { Brush~off~loose~par\-ticles~from~skin. }
-\prop_put:Nnn \l__ghsystem_p_prop { 336 } { Thaw~frosted~parts~with~luke\-warm~wa\-ter.~Do~not~rub~affec\-ted~area. }
-\prop_put:Nnn \l__ghsystem_p_prop { 337 } { If~eye~irri\-ta\-tion~per\-sists : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 338 } { Re\-move~con\-tact~lenses,~if~present~and~easy~to~do.~Con\-tinue~rin\-sing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 340 } { Re\-move~vic\-tim~to~fresh~air~and~keep~at~rest~in~a~po\-si\-tion~com\-for\-table~for~breathing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 341 } { If~brea\-thing~is~diffi\-cult,~re\-move~vic\-tim~to~fresh~air~and~keep~at~rest~in~a~po\-si\-tion~com\-for\-table~for~brea\-thing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 342 } { If~ex\-pe\-rien\-cing~res\-pi\-ra\-to\-ry~symp\-toms : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 350 } { Gently~wash~with~plen\-ty~of~soap~and~wa\-ter. }
-\prop_put:Nnn \l__ghsystem_p_prop { 351 } { Rinse~cau\-tious\-ly~with~water~for~se\-ve\-ral~mi\-nutes. }
-\prop_put:Nnn \l__ghsystem_p_prop { 352 } { Wash~with~plen\-ty~of~soap~and~wa\-ter. }
-\prop_put:Nnn \l__ghsystem_p_prop { 353 } { Rinse~skin~with~wa\-ter/shower. }
-\prop_put:Nnn \l__ghsystem_p_prop { 360 } { Rinse~imme\-diate\-ly~con\-ta\-mi\-na\-ted~clo\-thing~and~skin~with~plen\-ty~of~wa\-ter~be\-fore~re\-moving~clothes. }
-\prop_put:Nnn \l__ghsystem_p_prop { 361 } { Re\-move/Take~off~imme\-diate\-ly~all~con\-ta\-mi\-na\-ted~clo\-thing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 362 } { Take~off~con\-ta\-mi\-na\-ted~clo\-thing~and~wash~be\-fore~r\-euse. }
-\prop_put:Nnn \l__ghsystem_p_prop { 363 } { Wash~con\-ta\-mi\-na\-ted~clo\-thing~be\-fore~re\-use. }
-\prop_put:Nnn \l__ghsystem_p_prop { 370 } { In~case~of~fire : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 371 } { In~case~of~ma\-jor~fire~and~large~quan\-ti\-ties : \ghsystem_text: }
-\prop_put:Nnn \l__ghsystem_p_prop { 372 } { Ex\-plo\-sion~risk~in~case~of~fire. }
-\prop_put:Nnn \l__ghsystem_p_prop { 373 } { DO~NOT~fight~fire~when~fire~reaches~ex\-plo\-sives. }
-\prop_put:Nnn \l__ghsystem_p_prop { 374 } { Fight~fire~with~nor\-mal~pre\-cau\-tions~from~a~reasonable~dis\-tance. }
-\prop_put:Nnn \l__ghsystem_p_prop { 375 } { Fight~fire~re\-mote\-ly~due~to~the~risk~of~ex\-plo\-sion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 376 } { Stop~leak~if~safe~to~do~so. }
-\prop_put:Nnn \l__ghsystem_p_prop { 377 } { Lea\-king~gas~fire : \ghsystem_text:\ Do~not~ex\-tin\-guish,~un\-less~leak~can~be~stopped~safe\-ly. }
-\prop_put:Nnn \l__ghsystem_p_prop { 378 } { Use ~ \l__ghsystem_dots_tl\ for~ex\-tinc\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 380 } { Eva\-cu\-ate~area. }
-\prop_put:Nnn \l__ghsystem_p_prop { 381 } { Eli\-mi\-nate~all~igni\-tion~sources~if~safe~to~do~so. }
-\prop_put:Nnn \l__ghsystem_p_prop { 390 } { Ab\-sorb~spillage~to~pre\-vent~ma\-te\-rial~da\-mage. }
-\prop_put:Nnn \l__ghsystem_p_prop { 391 } { Collect~spillage. }
-\prop_put:Nnn \l__ghsystem_p_prop { 301 + 310 } { IF~SWALLOWED : ~ Imme\-diate\-ly~call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian. }
-\prop_put:Nnn \l__ghsystem_p_prop { 301 + 312 } { IF~SWALLOWED : ~ Call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian~if~you~feel~un\-well. }
-\prop_put:Nnn \l__ghsystem_p_prop { 301 + 330 + 331 } { IF~SWALLOWED : ~ rinse~mouth.~Do~NOT~in\-duce~vo\-mitting. }
-\prop_put:Nnn \l__ghsystem_p_prop { 302 + 334 } { IF~ON~SKIN : ~ Immerse~in~cool~wa\-ter/wrap~in~wet~ban\-dages. }
-\prop_put:Nnn \l__ghsystem_p_prop { 302 + 350 } { IF~ON~SKIN : ~ Gent\-ly~wash~with~plen\-ty~of~soap~and~wa\-ter. }
-\prop_put:Nnn \l__ghsystem_p_prop { 302 + 352 } { IF~ON~SKIN : ~ Wash~with~plen\-ty~of~soap~and~wa\-ter. }
-\prop_put:Nnn \l__ghsystem_p_prop { 303 + 361 + 353 } { IF~ON~SKIN~(or~hair) : ~ Re\-move/Take~off~imme\-diate\-ly~all~con\-ta\-mi\-na\-ted~clo\-thing.~Rinse~skin~with~wa\-ter/shower. }
-\prop_put:Nnn \l__ghsystem_p_prop { 304 + 340 } { IF~IN\-HALED : ~ Re\-move~vic\-tim~to~fresh~air~and~keep~at~rest~in~a~po\-si\-tion~com\-for\-table~for~brea\-thing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 304 + 341 } { IF~IN\-HALED : ~ If~brea\-thing~is~diffi\-cult,~re\-move~vic\-tim~to~fresh~air~and~keep~at~rest~in~a~po\-si\-tion~com\-for\-table~for~brea\-thing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 305 + 351 + 338 } { IF~IN~EYES : ~ Rinse~cau\-tious\-ly~with~water~for~se\-ve\-ral~mi\-nutes.~Re\-move~con\-tact~lenses,~if~pre\-sent~and~easy~to~do.~Con\-tinue~rin\-sing. }
-\prop_put:Nnn \l__ghsystem_p_prop { 306 + 360 } { IF~ON~CLO\-THING : ~ Rinse~imme\-diate\-ly~con\-ta\-mi\-na\-ted~clo\-thing~and~skin~with~plen\-ty~of~wa\-ter~be\-fore~re\-moving~clothes. }
-\prop_put:Nnn \l__ghsystem_p_prop { 307 + 311 } { IF~ex\-po\-sed : ~ Call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian. }
-\prop_put:Nnn \l__ghsystem_p_prop { 308 + 313 } { IF~ex\-po\-sed~or~con\-cerned : ~ Get~me\-di\-cal~ad\-vice/atten\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 309 + 311 } { IF~ex\-po\-sed~or~if~you~feel~un\-well : ~ Call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian. }
-\prop_put:Nnn \l__ghsystem_p_prop { 332 + 313 } { If~skin~irri\-ta\-tion~occurs : ~ Get~me\-di\-cal~ad\-vice/atten\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 333 + 313 } { If~skin~irri\-ta\-tion~or~rash~occurs : ~ Get~me\-di\-cal~ad\-vice/atten\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 335 + 334 } { Brush~off~loose~par\-ticles~from~skin.~Immerse~in~cool~wa\-ter/wrap~in~wet~ban\-dages. }
-\prop_put:Nnn \l__ghsystem_p_prop { 337 + 313 } { If~eye~irri\-ta\-tion~per\-sists : ~ Get~me\-di\-cal~ad\-vice/atten\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 342 + 311 } { If~ex\-pe\-rien\-cing~res\-pi\-ra\-to\-ry~symp\-toms : ~ Call~a~POI\-SON~CEN\-TER~or~doc\-tor/phy\-si\-cian. }
-\prop_put:Nnn \l__ghsystem_p_prop { 370 + 376 } { In~case~of~fire : ~ Stop~leak~if~safe~to~do~so. }
-\prop_put:Nnn \l__ghsystem_p_prop { 370 + 378 } { In~case~of~fire : ~ Use ~ \l__ghsystem_dots_tl\ for~ex\-tinc\-tion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 370 + 380 } { In~case~of~fire : ~ Eva\-cuate~area. }
-\prop_put:Nnn \l__ghsystem_p_prop { 370 + 380 + 375 } { In~case~of~fire : ~ Eva\-cuate~area.~Fight~fire~re\-mote\-ly~due~to~the~risk~of~ex\-plo\-sion. }
-\prop_put:Nnn \l__ghsystem_p_prop { 371 + 380 + 375 } { In~case~of~ma\-jor~fire~and~large~quan\-ti\-ties : ~ Eva\-cuate~area.~Fight~fire~re\-mote\-ly~due~to~the~risk~of~ex\-plo\-sion. }
+\prop_put:Nnn \l__ghsystem_p_prop { 301 }
+ { IF~ SWALLOWED: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 302 }
+ { IF~ ON~ SKIN: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 303 }
+ { IF~ ON~ SKIN~ (or~ hair): \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 304 }
+ { IF~ INHALED: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 305 }
+ { IF~ IN~ EYES: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 306 }
+ { IF~ ON~ CLOTHING: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 307 }
+ { IF~ exposed: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 308 }
+ { IF~ exposed~ or~ concerned: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 309 }
+ { IF~ exposed~ or~ if~ you~ feel~ unwell : \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 310 }
+ { Immediately~ call~ a~ POISON~ CENTER~ or~ doctor\slash physician. }
+\prop_put:Nnn \l__ghsystem_p_prop { 311 }
+ { Call~ a~ POISON~ CENTER~ or~ doctor\slash physician. }
+\prop_put:Nnn \l__ghsystem_p_prop { 312 }
+ {
+ Call~ a~ POISON~ CENTER~ or~ doctor\slash physician~ if~ you~ feel~
+ unwell.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 313 }
+ { Get~ medical~ advice\slash attention. }
+\prop_put:Nnn \l__ghsystem_p_prop { 314 }
+ { Get~ medical~ advice\slash attention~ if~ you~ feel~ unwell. }
+\prop_put:Nnn \l__ghsystem_p_prop { 315 }
+ { Get~ immediate~ medical~ advice\slash attention. }
+\prop_put:Nnn \l__ghsystem_p_prop { 320 }
+ {
+ Specific~ treatment~ is~ urgent~ (see~ \l__ghsystem_dots_tl\ on~ this~
+ label).
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 321 }
+ { Specific~ treatment~ (see~ \l__ghsystem_dots_tl\ on~ this~ label). }
+\prop_put:Nnn \l__ghsystem_p_prop { 322 }
+ { Specific~ measures~ (see~ \l__ghsystem_dots_tl\ on~ this~ label). }
+\prop_put:Nnn \l__ghsystem_p_prop { 330 }
+ { Rinse~ mouth. }
+\prop_put:Nnn \l__ghsystem_p_prop { 331 }
+ { Do~ NOT~ induce~ vomitting. }
+\prop_put:Nnn \l__ghsystem_p_prop { 332 }
+ { If~ skin~ irritation~ occurs : \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 333 }
+ { If~ skin~ irritation~ or~ rash~ occurs : \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 334 }
+ { Immerse~ in~ cool~ water\slash wrap~ in~ wet~ bandages. }
+\prop_put:Nnn \l__ghsystem_p_prop { 335 }
+ { Brush~ off~ loose~ particles~ from~ skin. }
+\prop_put:Nnn \l__ghsystem_p_prop { 336 }
+ {
+ Thaw~ frosted~ parts~ with~ lukewarm~ water.~ Do~ not~ rub~ affected~
+ area.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 337 }
+ { If~ eye~ irritation~ persists: \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 338 }
+ {
+ Remove~ contact~ lenses,~ if~ present~ and~ easy~ to~ do.~ Continue~
+ rinsing.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 340 }
+ {
+ Remove~ victim~ to~ fresh~ air~ and~ keep~ at~ rest~ in~ a~ position~
+ comfortable~ for~ breathing.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 341 }
+ {
+ If~ breathing~ is~ difficult,~ remove~ victim~ to~ fresh~ air~ and~ keep~
+ at~ rest~ in~ a~ position~ comfortable~ for~ breathing.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 342 }
+ { If~ experiencing~ respiratory~ symptoms : \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 350 }
+ { Gently~ wash~ with~ plenty~ of~ soap~ and~ water. }
+\prop_put:Nnn \l__ghsystem_p_prop { 351 }
+ { Rinse~ cautiously~ with~ water~ for~ several~ minutes. }
+\prop_put:Nnn \l__ghsystem_p_prop { 352 }
+ { Wash~ with~ plenty~ of~ soap~ and~ water. }
+\prop_put:Nnn \l__ghsystem_p_prop { 353 }
+ { Rinse~ skin~ with~ water\slash shower. }
+\prop_put:Nnn \l__ghsystem_p_prop { 360 }
+ {
+ Rinse~ immediately~ contaminated~ clothing~ and~ skin~ with~ plenty~ of~
+ water~ before~ removing~ clothes.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 361 }
+ { Remove\slash Take~ off~ immediately~ all~ contaminated~ clothing. }
+\prop_put:Nnn \l__ghsystem_p_prop { 362 }
+ { Take~ off~ contaminated~ clothing~ and~ wash~ before~ reuse. }
+\prop_put:Nnn \l__ghsystem_p_prop { 363 }
+ { Wash~ contaminated~ clothing~ before~ reuse. }
+\prop_put:Nnn \l__ghsystem_p_prop { 370 }
+ { In~ case~ of~ fire : \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 371 }
+ { In~ case~ of~ major~ fire~ and~ large~ quantities : \ghsystem_text: }
+\prop_put:Nnn \l__ghsystem_p_prop { 372 }
+ { Explosion~ risk~ in~ case~ of~ fire. }
+\prop_put:Nnn \l__ghsystem_p_prop { 373 }
+ { DO~ NOT~ fight~ fire~ when~ fire~ reaches~ explosives. }
+\prop_put:Nnn \l__ghsystem_p_prop { 374 }
+ { Fight~ fire~ with~ normal~ precautions~ from~ a~ reasonable~ distance. }
+\prop_put:Nnn \l__ghsystem_p_prop { 375 }
+ { Fight~ fire~ remotely~ due~ to~ the~ risk~ of~ explosion. }
+\prop_put:Nnn \l__ghsystem_p_prop { 376 }
+ { Stop~ leak~ if~ safe~ to~ do~ so. }
+\prop_put:Nnn \l__ghsystem_p_prop { 377 }
+ {
+ Leaking~ gas~ fire: \ghsystem_text:\ Do~ not~ extinguish,~ unless~ leak~
+ can~ be~ stopped~ safely.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 378 }
+ { Use~ \l__ghsystem_dots_tl\ for~ extinction. }
+\prop_put:Nnn \l__ghsystem_p_prop { 380 }
+ { Evacuate~ area. }
+\prop_put:Nnn \l__ghsystem_p_prop { 381 }
+ { Eliminate~ all~ ignition~ sources~ if~ safe~ to~ do~ so. }
+\prop_put:Nnn \l__ghsystem_p_prop { 390 }
+ { Absorb~ spillage~ to~ prevent~ material~ damage. }
+\prop_put:Nnn \l__ghsystem_p_prop { 391 }
+ { Collect~ spillage. }
+\prop_put:Nnn \l__ghsystem_p_prop { 301 + 310 }
+ {
+ IF~ SWALLOWED:~ Immediately~ call~ a~ POISON~ CENTER~ or~ doctor\slash
+ physician.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 301 + 312 }
+ {
+ IF~ SWALLOWED:~ Call~ a~ POISON~ CENTER~ or~ doctor\slash physician~ if~
+ you~ feel~ unwell.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 301 + 330 + 331 }
+ { IF~ SWALLOWED:~ rinse~ mouth.~ Do~ NOT~ induce~ vomitting. }
+\prop_put:Nnn \l__ghsystem_p_prop { 302 + 334 }
+ { IF~ ON~ SKIN:~ Immerse~ in~ cool~ water\slash wrap~ in~ wet~ bandages. }
+\prop_put:Nnn \l__ghsystem_p_prop { 302 + 350 }
+ { IF~ ON~ SKIN:~ Gently~ wash~ with~ plenty~ of~ soap~ and~ water. }
+\prop_put:Nnn \l__ghsystem_p_prop { 302 + 352 }
+ { IF~ ON~ SKIN:~ Wash~ with~ plenty~ of~ soap~ and~ water. }
+\prop_put:Nnn \l__ghsystem_p_prop { 303 + 361 + 353 }
+ {
+ IF~ ON~ SKIN~ (or~ hair):~ Remove\slash Take~ off~ immediately~ all~
+ contaminated~ clothing.~ Rinse~ skin~ with~ water\slash shower.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 304 + 340 }
+ {
+ IF~ INHALED:~ Remove~ victim~ to~ fresh~ air~ and~ keep~ at~ rest~ in~ a~
+ position~ comfortable~ for~ breathing.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 304 + 341 }
+ {
+ IF~ INHALED:~ If~ breathing~ is~ difficult,~ remove~ victim~ to~ fresh~
+ air~ and~ keep~ at~ rest~ in~ a~ position~ comfortable~ for~ breathing.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 305 + 351 + 338 }
+ {
+ IF~ IN~ EYES:~ Rinse~ cautiously~ with~ water~ for~ several~ minutes.~
+ Remove~ contact~ lenses,~ if~ present~ and~ easy~ to~ do.~ Continue~
+ rinsing.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 306 + 360 }
+ {
+ IF~ ON~ CLOTHING:~ Rinse~ immediately~ contaminated~ clothing~ and~ skin~
+ with~ plenty~ of~ water~ before~ removing~ clothes.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 307 + 311 }
+ { IF~ exposed:~ Call~ a~ POISON~ CENTER~ or~ doctor\slash physician. }
+\prop_put:Nnn \l__ghsystem_p_prop { 308 + 313 }
+ { IF~ exposed~ or~ concerned:~ Get~ medical~ advice\slash attention. }
+\prop_put:Nnn \l__ghsystem_p_prop { 309 + 311 }
+ {
+ IF~ exposed~ or~ if~ you~ feel~ unwell:~ Call~ a~ POISON~ CENTER~ or~
+ doctor\slash physician.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 332 + 313 }
+ { If~ skin~ irritation~ occurs:~ Get~ medical~ advice\slash attention. }
+\prop_put:Nnn \l__ghsystem_p_prop { 333 + 313 }
+ {
+ If~ skin~ irritation~ or~ rash~ occurs:~ Get~ medical~ advice\slash
+ attention.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 335 + 334 }
+ {
+ Brush~ off~ loose~ particles~ from~ skin.~ Immerse~ in~ cool~ water\slash
+ wrap~ in~ wet~ bandages.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 337 + 313 }
+ { If~ eye~ irritation~ persists:~ Get~ medical~ advice\slash attention. }
+\prop_put:Nnn \l__ghsystem_p_prop { 342 + 311 }
+ {
+ If~ experiencing~ respiratory~ symptoms:~ Call~ a~ POISON~ CENTER~ or~
+ doctor\slash physician.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 370 + 376 }
+ { In~ case~ of~ fire:~ Stop~ leak~ if~ safe~ to~ do~ so. }
+\prop_put:Nnn \l__ghsystem_p_prop { 370 + 378 }
+ { In~ case~ of~ fire:~ Use~ \l__ghsystem_dots_tl\ for~ extinction. }
+\prop_put:Nnn \l__ghsystem_p_prop { 370 + 380 }
+ { In~ case~ of~ fire:~ Evacuate~ area. }
+\prop_put:Nnn \l__ghsystem_p_prop { 370 + 380 + 375 }
+ {
+ In~ case~ of~ fire:~ Evacuate~ area.~ Fight~ fire~ remotely~ due~ to~ the~
+ risk~ of~ explosion.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 371 + 380 + 375 }
+ {
+ In~ case~ of~ major~ fire~ and~ large~ quantities:~ Evacuate~ area.~
+ Fight~ fire~ remotely~ due~ to~ the~ risk~ of~ explosion.
+ }
% 3.4 Precautionary Statements — Storage
-\prop_put:Nnn \l__ghsystem_p_prop { 401 } { Store ~ \l__ghsystem_dots_tl }
-\prop_put:Nnn \l__ghsystem_p_prop { 402 } { Store~in~a~dry~place. }
-\prop_put:Nnn \l__ghsystem_p_prop { 403 } { Store~in~a~well-ven\-ti\-lated~place. }
-\prop_put:Nnn \l__ghsystem_p_prop { 404 } { Store~in~a~closed~con\-tainer. }
-\prop_put:Nnn \l__ghsystem_p_prop { 405 } { Store~locked~up. }
-\prop_put:Nnn \l__ghsystem_p_prop { 406 } { Store~in~cor\-ro\-sive~re\-sis\-tant / \l__ghsystem_dots_tl\ con\-tai\-ner~with~a~re\-sis\-tant~in\-ner~liner. }
-\prop_put:Nnn \l__ghsystem_p_prop { 407 } { Main\-tain~air~gap~bet\-ween~stacks/pallets. }
-\prop_put:Nnn \l__ghsystem_p_prop { 410 } { Pro\-tect~from~sun\-light. }
-\prop_put:Nnn \l__ghsystem_p_prop { 411 } { Store~at~tem\-pera\-tures~not~ex\-cee\-ding ~ \exp_args:No \SI { \l__ghsystem_celsius_temperature_tl }{ \GHScelsius } / \exp_args:No \SI { \l__ghsystem_fahrenheit_temperature_tl } { \GHSfahrenheit } . }
-\prop_put:Nnn \l__ghsystem_p_prop { 412 } { Store~at~tem\-pera\-tures~not~ex\-cee\-ding ~ \SI { 50 } { \GHScelsius } / \SI { 122 } { \GHSfahrenheit } . }
-\prop_put:Nnn \l__ghsystem_p_prop { 413 } { Store~bulk~masses~greater~than ~ \exp_args:No \SI { \l__ghsystem_kg_mass_tl } { \GHSkilogram } / \exp_args:No \SI { \l__ghsystem_lbs_mass_tl } { \GHSpounds } ~ at~tem\-pera\-tures~not~ex\-cee\-ding ~ \exp_args:No \SI { \l__ghsystem_celsius_temperature_tl } { \GHScelsius } / \exp_args:No \SI { \l__ghsystem_fahrenheit_temperature_tl } { \GHSfahrenheit } . }
-\prop_put:Nnn \l__ghsystem_p_prop { 420 } { Store~away~from~other~ma\-te\-rials. }
-\prop_put:Nnn \l__ghsystem_p_prop { 422 } { Store~con\-tents~un\-der ~ \l__ghsystem_dots_tl }
-\prop_put:Nnn \l__ghsystem_p_prop { 402 + 404 } { Store~in~a~dry~place.~Store~in~a~closed~con\-tai\-ner. }
-\prop_put:Nnn \l__ghsystem_p_prop { 403 + 233 } { Store~in~a~well-ven\-ti\-la\-ted~place.~Keep~con\-tainer~tight\-ly~closed. }
-\prop_put:Nnn \l__ghsystem_p_prop { 403 + 235 } { Store~in~a~well-ven\-ti\-la\-ted~place.~Keep~cool. }
-\prop_put:Nnn \l__ghsystem_p_prop { 410 + 403 } { Pro\-tect~from~sun\-light.~Store~in~a~well-ven\-ti\-la\-ted~place. }
-\prop_put:Nnn \l__ghsystem_p_prop { 410 + 412 } { Pro\-tect~from~sun\-light.~Do~not~ex\-pose~to~tem\-pera\-tures~ex\-cee\-ding ~ \SI { 50 } { \GHScelsius } / \SI { 122 } { \GHSfahrenheit } . }
-\prop_put:Nnn \l__ghsystem_p_prop { 411 + 235 } { Store~at~tem\-pera\-tures~not~ex\-cee\-ding ~ \exp_args:No \SI { \l__ghsystem_celsius_temperature_tl }{ \GHScelsius } / \exp_args:No \SI { \l__ghsystem_fahrenheit_temperature_tl } { \GHSfahrenheit } ~ . ~ Keep~cool. }
+\prop_put:Nnn \l__ghsystem_p_prop { 401 }
+ { Store~ \l__ghsystem_dots_tl }
+\prop_put:Nnn \l__ghsystem_p_prop { 402 }
+ { Store~ in~ a~ dry~ place. }
+\prop_put:Nnn \l__ghsystem_p_prop { 403 }
+ { Store~ in~ a~ well-ventilated~ place. }
+\prop_put:Nnn \l__ghsystem_p_prop { 404 }
+ { Store~ in~ a~ closed~ container. }
+\prop_put:Nnn \l__ghsystem_p_prop { 405 }
+ { Store~ locked~ up. }
+\prop_put:Nnn \l__ghsystem_p_prop { 406 }
+ {
+ Store~ in~ corrosive~ resistant\slash \l__ghsystem_dots_tl\ container~
+ with~ a~ resistant~ inner~ liner.
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 407 }
+ { Maintain~ air~ gap~ between~ stacks\slash pallets. }
+\prop_put:Nnn \l__ghsystem_p_prop { 410 }
+ { Protect~ from~ sunlight. }
+\prop_put:Nnn \l__ghsystem_p_prop { 411 }
+ {
+ Store~ at~ temperatures~ not~ exceeding~
+ \exp_args:No
+ \SI { \l__ghsystem_celsius_temperature_tl }{ \GHScelsius }
+ \slash
+ \exp_args:No
+ \SI { \l__ghsystem_fahrenheit_temperature_tl } { \GHSfahrenheit } .
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 412 }
+ {
+ Store~at~temperatures~not~exceeding ~ \SI { 50 } { \GHScelsius } \slash
+ \SI { 122 } { \GHSfahrenheit } .
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 413 }
+ {
+ Store~bulk~masses~greater~than ~
+ \exp_args:No \SI { \l__ghsystem_kg_mass_tl } { \GHSkilogram } \slash
+ \exp_args:No \SI { \l__ghsystem_lbs_mass_tl } { \GHSpounds } ~
+ at~ temperatures~ not~ exceeding ~
+ \exp_args:No \SI { \l__ghsystem_celsius_temperature_tl } { \GHScelsius } \slash
+ \exp_args:No \SI { \l__ghsystem_fahrenheit_temperature_tl } { \GHSfahrenheit } .
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 420 }
+ { Store~ away~ from~ other~ materials. }
+\prop_put:Nnn \l__ghsystem_p_prop { 422 }
+ { Store~ contents~ under~ \l__ghsystem_dots_tl }
+\prop_put:Nnn \l__ghsystem_p_prop { 402 + 404 }
+ { Store~ in~ a~ dry~ place.~ Store~ in~ a~ closed~ container. }
+\prop_put:Nnn \l__ghsystem_p_prop { 403 + 233 }
+ { Store~ in~ a~ well-ventilated~ place.~ Keep~ container~ tightly~ closed. }
+\prop_put:Nnn \l__ghsystem_p_prop { 403 + 235 }
+ { Store~ in~ a~ well-ventilated~ place.~ Keep~ cool. }
+\prop_put:Nnn \l__ghsystem_p_prop { 410 + 403 }
+ { Protect~ from~ sunlight.~ Store~ in~ a~ well-ventilated~ place. }
+\prop_put:Nnn \l__ghsystem_p_prop { 410 + 412 }
+ {
+ Protect~ from~ sunlight.~ Do~ not~ expose~ to~ temperatures~ exceeding~
+ \SI { 50 } { \GHScelsius } \slash \SI { 122 } { \GHSfahrenheit } .
+ }
+\prop_put:Nnn \l__ghsystem_p_prop { 411 + 235 }
+ {
+ Store~at~temperatures~not~exceeding ~
+ \exp_args:No \SI { \l__ghsystem_celsius_temperature_tl }{ \GHScelsius } \slash
+ \exp_args:No \SI { \l__ghsystem_fahrenheit_temperature_tl } { \GHSfahrenheit }
+ ~ . ~ Keep~ cool.
+ }
% 3.5 Precautionary Statements — Disposal
-\prop_put:Nnn \l__ghsystem_p_prop { 501 } { Dis\-pose~of~con\-tents/con\-tainer~to ~ \l__ghsystem_dots_tl }
+\prop_put:Nnn \l__ghsystem_p_prop { 501 }
+ { Dispose~ of~ contents\slash container~ to~ \l__ghsystem_dots_tl }
% 4 Hazard Statement Codes (Annex 6 page 4f)
-\prop_put:Nnn \l__ghsystem_h_prop { 350i } { May~cause~can\-cer~by~in\-ha\-la\-tion. }
-\prop_put:Nnn \l__ghsystem_h_prop { 360F } { May~da\-mage~fer\-ti\-li\-ty. }
-\prop_put:Nnn \l__ghsystem_h_prop { 360D } { May~da\-mage~the~un\-born~child. }
-\prop_put:Nnn \l__ghsystem_h_prop { 361f } { Sus\-pec\-ted~of~da\-ma\-ging~fer\-ti\-li\-ty. }
-\prop_put:Nnn \l__ghsystem_h_prop { 361d } { Sus\-pec\-ted~of~da\-ma\-ging~the~un\-born~child. }
-\prop_put:Nnn \l__ghsystem_h_prop { 360FD } { May~da\-mage~fer\-ti\-li\-ty.~May~da\-mage~the~un\-born~child. }
-\prop_put:Nnn \l__ghsystem_h_prop { 361fd } { Suspected~of~damaging~fer\-ti\-li\-ty.~Sus\-pec\-ted~of~da\-ma\-ging~the~un\-born~child. }
-\prop_put:Nnn \l__ghsystem_h_prop { 360Fd } { May~da\-mage~fer\-ti\-li\-ty.~Sus\-pec\-ted~of~da\-ma\-ging~the~un\-born~child. }
-\prop_put:Nnn \l__ghsystem_h_prop { 360Df } { May~da\-mage~the~un\-born~child.~Sus\-pec\-ted~of~da\-ma\-ging~fer\-ti\-li\-ty. }
+\prop_put:Nnn \l__ghsystem_h_prop { 350i }
+ { May~ cause~ cancer~ by~ inhalation. }
+\prop_put:Nnn \l__ghsystem_h_prop { 360F }
+ { May~ damage~ fertility. }
+\prop_put:Nnn \l__ghsystem_h_prop { 360D }
+ { May~ damage~ the~ unborn~ child. }
+\prop_put:Nnn \l__ghsystem_h_prop { 361f }
+ { Suspected~ of~ damaging~ fertility. }
+\prop_put:Nnn \l__ghsystem_h_prop { 361d }
+ { Suspected~ of~ damaging~ the~ unborn~ child. }
+\prop_put:Nnn \l__ghsystem_h_prop { 360FD }
+ { May~ damage~ fertility.~ May~ damage~ the~ unborn~ child. }
+\prop_put:Nnn \l__ghsystem_h_prop { 361fd }
+ {
+ Suspected~ of~ damaging~ fertility.~ Suspected~ of~ damaging~ the~ unborn~
+ child.
+ }
+\prop_put:Nnn \l__ghsystem_h_prop { 360Fd }
+ { May~ damage~ fertility.~ Suspected~ of~ damaging~ the~ unborn~ child. }
+\prop_put:Nnn \l__ghsystem_h_prop { 360Df }
+ { May~ damage~ the~ unborn~ child.~ Suspected~ of~ damaging~ fertility. }
-\ExplSyntaxOff \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_german.def b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_german.def
index 07c2491bf17..50ac02c3a6e 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_german.def
+++ b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_german.def
@@ -27,7 +27,6 @@
% - - %
% - The Current Maintainer of this work is Clemens Niederberger. - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ExplSyntaxOn
% GERMAN DEFINITIONS
\prop_clear:N \l__ghsystem_h_prop
\prop_clear:N \l__ghsystem_euh_prop
@@ -189,7 +188,7 @@
\prop_put:Nnn \l__ghsystem_euh_prop { 201 } { Ent\-h\"alt~Blei.~Nicht~f\"ur~den~An\-strich~von~Ge\-gen\-st\"an\-den~ver\-wen\-den,~die~von~Kin\-dern~ge\-kaut~oder~ge\-lutscht~wer\-den~k\"onn\-ten. }
\prop_put:Nnn \l__ghsystem_euh_prop { 201A } { Ach\-tung!~Ent\-h\"alt~Blei. }
\prop_put:Nnn \l__ghsystem_euh_prop { 202 } { \iupac{Cyan\|acryl\|at}.~Ge\-fahr.~Klebt~inner\-halb~von~Se\-kun\-den~Haut~und~Au\-gen\-li\-der~zu\-sam\-men.~Darf~nicht~in~die~H\"an\-de~von~Kin\-dern~ge\-lan\-gen. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { Ent\-h\"alt~\ox[pos=side]{6,Chrom}.~Kann~aller\-gi\-sche~Re\-ak\-tio\-nen~her\-vor\-ru\-fen. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { Ent\-h\"alt~Chrom\,(VI).~Kann~aller\-gi\-sche~Re\-ak\-tio\-nen~her\-vor\-ru\-fen. }
\prop_put:Nnn \l__ghsystem_euh_prop { 204 } { Ent\-h\"alt~\iupac{Iso\|cyan\|ate}.~Kann~aller\-gi\-sche~Re\-ak\-tio\-nen~her\-vor\-ru\-fen. }
\prop_put:Nnn \l__ghsystem_euh_prop { 205 } { Ent\-h\"alt~epoxid\-halti\-ge~Ver\-bin\-dun\-gen.~Kann~aller\-gi\-sche~Re\-ak\-tio\-nen~her\-vor\-ru\-fen. }
\prop_put:Nnn \l__ghsystem_euh_prop { 206 } { Ach\-tung!~Nicht~zu\-sam\-men~mit~an\-de\-ren~Pro\-duk\-ten~ver\-wen\-den,~da~ge\-f\"ahr\-liche~Ga\-se~(Chlor)~frei\-ge\-setzt~wer\-den~k\"on\-nen. }
@@ -359,4 +358,3 @@
\prop_put:Nnn \l__ghsystem_h_prop { 360Fd } { Kann~die~Frucht\-bar\-keit~be\-ein\-tr\"ach\-ti\-gen.~Kann~ver\-mut\-lich~das~Kind~im~Mut\-ter\-leib~sch\"a\-di\-gen. }
\prop_put:Nnn \l__ghsystem_h_prop { 360Df } { Kann~das~Kind~im~Mut\-ter\-leib~sch\"a\-di\-gen.~Kann~ver\-mut\-lich~die~Frucht\-bar\-keit~be\-ein\-tr\"ach\-ti\-gen. }
-\ExplSyntaxOff \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_italian.def b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_italian.def
index 55fa18aba7e..7780caa36ab 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_italian.def
+++ b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_italian.def
@@ -29,7 +29,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - the Italian translation was kindly provided by Jonas Rivetti. Many thanks!
-\ExplSyntaxOn
% ITALIAN DEFINITIONS
\prop_clear:N \l__ghsystem_h_prop
\prop_clear:N \l__ghsystem_euh_prop
@@ -191,7 +190,7 @@
\prop_put:Nnn \l__ghsystem_euh_prop { 201 } { Con\-tie\-ne~piom\-bo.~Non~u\-ti\-liz\-za\-re~su~og\-get\-ti~che~pos\-so\-no~es\-se\-re~ma\-sti\-ca\-ti~o~suc\-chia\-ti~dai~bam\-bi\-ni. }
\prop_put:Nnn \l__ghsystem_euh_prop { 201A } { At\-ten\-zio\-ne!~Con\-tie\-ne~piom\-bo. }
\prop_put:Nnn \l__ghsystem_euh_prop { 202 } { Ciano\-acrilato.~Pe\-ri\-co\-lo.~In\-col\-la~la~pel\-le~e~gli~oc\-chi~in~po\-chi~se\-con\-di.~Te\-ne\-re~fuo\-ri~dal\-la~por\-ta\-ta~dei~bam\-bi\-ni. }
-\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { Con\-tie\-ne~\ox[pos=side]{6,cromo}.~Pu\`o~pro\-vo\-ca\-re~u\-na~re\-a\-zio\-ne~al\-ler\-gi\-ca. }
+\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { Con\-tie\-ne~cromo\,(VI).~Pu\`o~pro\-vo\-ca\-re~u\-na~re\-a\-zio\-ne~al\-ler\-gi\-ca. }
\prop_put:Nnn \l__ghsystem_euh_prop { 204 } { Con\-tie\-ne~iso\-cianati.~Pu\`o~pro\-vo\-ca\-re~u\-na~re\-a\-zio\-ne~al\-ler\-gi\-ca. }
\prop_put:Nnn \l__ghsystem_euh_prop { 205 } { Con\-tie\-ne~com\-po\-nen\-ti~epossi\-di\-ci.~Pu\`o~pro\-vo\-ca\-re~u\-na~re\-a\-zio\-ne~al\-ler\-gi\-ca. }
\prop_put:Nnn \l__ghsystem_euh_prop { 206 } { At\-ten\-zio\-ne!~Non~u\-ti\-liz\-za\-re~in~com\-bi\-na\-zio\-ne~con~al\-tri~pro\-dot\-ti.~Pos\-so\-no~li\-be\-rar\-si~gas~pe\-ri\-co\-lo\-si~(cloro). }
@@ -361,4 +360,3 @@
\prop_put:Nnn \l__ghsystem_h_prop { 360Fd } { Pu\`o~nuo\-ce\-re~al\-la~fer\-ti\-li\-t\`a.~So\-spet\-ta\-to~di~nuo\-ce\-re~al~fe\-to. }
\prop_put:Nnn \l__ghsystem_h_prop { 360Df } { Pu\`o~nuo\-ce\-re~al~fe\-to.~So\-spet\-ta\-to~di~nuo\-ce\-re~al\-la~fer\-ti\-li\-t\`a. }
-\ExplSyntaxOff \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_langtemplate.def b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_langtemplate.def
index 28863950bca..a7455f844d5 100644
--- a/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_langtemplate.def
+++ b/Master/texmf-dist/tex/latex/chemmacros/language/ghsystem_langtemplate.def
@@ -28,7 +28,7 @@
% - The Current Maintainer of this work is Clemens Niederberger. - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% A few informations how to use this template:
+% Some information how to use this template:
%
% The H, EUH, and P statements are stored in a property list, respectively.
% The commands for adding a respective entry are pre-typed so you only have to
@@ -72,7 +72,6 @@
% \end{document}
% -----------------------------------------------------------------------------
%
-\ExplSyntaxOn
% <LANGUAGE> DEFINITIONS
\prop_clear:N \l__ghsystem_h_prop
\prop_clear:N \l__ghsystem_euh_prop
@@ -214,7 +213,7 @@
\prop_put:Nnn \l__ghsystem_euh_prop { 201 } { ... }
\prop_put:Nnn \l__ghsystem_euh_prop { 201A } { ... }
\prop_put:Nnn \l__ghsystem_euh_prop { 202 } { \iupac { ... } . ~ ... }
-\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { ... ~ \ox[pos=side]{ 6 , ... } . ~ ... }
+\prop_put:Nnn \l__ghsystem_euh_prop { 203 } { ... ~ ... \,(VI) . ~ ... }
\prop_put:Nnn \l__ghsystem_euh_prop { 204 } { ... ~ \iupac { ... } . ~ ... }
\prop_put:Nnn \l__ghsystem_euh_prop { 205 } { ... }
\prop_put:Nnn \l__ghsystem_euh_prop { 206 } { ... }
@@ -384,4 +383,3 @@
\prop_put:Nnn \l__ghsystem_h_prop { 360Fd } { ... }
\prop_put:Nnn \l__ghsystem_h_prop { 360Df } { ... }
-\ExplSyntaxOff \ No newline at end of file