diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex | 3271 |
1 files changed, 1062 insertions, 2209 deletions
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} |