diff options
author | Karl Berry <karl@freefriends.org> | 2013-07-09 22:44:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-07-09 22:44:28 +0000 |
commit | e125f261f3433bb88672b645160d97b4ac2ea3f6 (patch) | |
tree | 1bd4b6e1451dc821f7178ebafe235826a1a8e0e8 /Master/texmf-dist/doc/latex/chemmacros | |
parent | 20abcceaa3fb6a4c4417a871772b4edc49bab39d (diff) |
upmethodology (7jul13)
git-svn-id: svn://tug.org/texlive/trunk@31148 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/chemmacros')
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/README | 42 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemformula_en.pdf | bin | 0 -> 288581 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemformula_en.tex | 1377 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.pdf | bin | 0 -> 87351 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.tex | 497 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.pdf | bin | 848597 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.tex | 3544 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf | bin | 836231 -> 338120 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex | 3271 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.pdf | bin | 841281 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.tex | 3465 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.pdf | bin | 0 -> 365205 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.tex | 663 |
13 files changed, 3624 insertions, 9235 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 Binary files differnew file mode 100644 index 00000000000..d998e09c4b7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/chemmacros/chemformula_en.pdf 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 Binary files differnew file mode 100644 index 00000000000..c049a7d9937 --- /dev/null +++ b/Master/texmf-dist/doc/latex/chemmacros/chemgreek_en.pdf 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 Binary files differdeleted file mode 100644 index d1f6d89a1db..00000000000 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_de.pdf +++ /dev/null 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 Binary files differindex 9bef3059b5e..9d5ce9ef37d 100644 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf +++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf 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 Binary files differdeleted file mode 100644 index 58bb3daf1c9..00000000000 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_it.pdf +++ /dev/null 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 Binary files differnew file mode 100644 index 00000000000..eefcfbf083a --- /dev/null +++ b/Master/texmf-dist/doc/latex/chemmacros/ghsystem_en.pdf 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} |