summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-02-02 21:54:50 +0000
committerKarl Berry <karl@freefriends.org>2014-02-02 21:54:50 +0000
commit854f058d812a95468e75e7e8f722c2fa29a18305 (patch)
tree2edee8d02b0d310e227a9a900c2637e82ae9e8e8
parent02a4fc71679895429385a94acdbd1f9f37a23b13 (diff)
mhchem (2feb14)
git-svn-id: svn://tug.org/texlive/trunk@32850 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/mhchem/README8
-rw-r--r--Master/texmf-dist/doc/latex/mhchem/mhchem.pdfbin251304 -> 200638 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mhchem/mhchem.tex25
-rw-r--r--Master/texmf-dist/tex/latex/mhchem/hpstatement.sty596
-rw-r--r--Master/texmf-dist/tex/latex/mhchem/mhchem.sty2143
5 files changed, 1227 insertions, 1545 deletions
diff --git a/Master/texmf-dist/doc/latex/mhchem/README b/Master/texmf-dist/doc/latex/mhchem/README
index 9a85872a4c2..459a989f95d 100644
--- a/Master/texmf-dist/doc/latex/mhchem/README
+++ b/Master/texmf-dist/doc/latex/mhchem/README
@@ -1,8 +1,8 @@
-The mhchem Bundle 2013-07-02
+The mhchem Bundle 2014-02-01
containing
-- mhchem v3.13
-- hpstatement v1.01
+- mhchem v3.15
+- hpstatement v1.00
- rsphrase v3.11
The mhchem package provides commands for typesetting
@@ -17,7 +17,7 @@ Risk and Safety (R and S) Phrases that are used to label
chemicals.
-Copyright 2004-2013 Martin Hensel
+Copyright 2004-2014 Martin Hensel
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License version 1.3c
diff --git a/Master/texmf-dist/doc/latex/mhchem/mhchem.pdf b/Master/texmf-dist/doc/latex/mhchem/mhchem.pdf
index 742fcff64d4..80bf7eaa935 100644
--- a/Master/texmf-dist/doc/latex/mhchem/mhchem.pdf
+++ b/Master/texmf-dist/doc/latex/mhchem/mhchem.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mhchem/mhchem.tex b/Master/texmf-dist/doc/latex/mhchem/mhchem.tex
index 34a1500a3ab..970ec7f0603 100644
--- a/Master/texmf-dist/doc/latex/mhchem/mhchem.tex
+++ b/Master/texmf-dist/doc/latex/mhchem/mhchem.tex
@@ -1,5 +1,5 @@
%% mhchem.tex
-%% Copyright 2004-2013 Martin Hensel
+%% Copyright 2004-2014 Martin Hensel
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c
@@ -62,7 +62,7 @@
The mhchem Bundle\\[0.3em]
\Large\textmd{%
Documentation for the Packages\\
- mhchem v3.13,\\% check
+ mhchem v3.15,\\% check
hpstatement v1.01 and\\
rsphrase v3.11}%
}
@@ -71,7 +71,7 @@
mhchem\makebox[0pt][l]{\textcolor{white}{NOSPAM}}@MartinHensel\makebox[1pt][l]{\textcolor{white}{.}}.de%
}
\date{%
- 2013-07-02% check
+ 2014-02-01% check
}
\maketitle
@@ -383,6 +383,12 @@ The \macro{bond} \fromversion{3} command allows you to typeset special bonds.
\medskip
\begin{SideBySideExample}[xrightmargin=5cm]
+ \ce{A\bond{1}B\bond{2}C\bond{3}D}
+\end{SideBySideExample}
+\fromversion{3.15}
+
+\medskip
+\begin{SideBySideExample}[xrightmargin=5cm]
\ce{A\bond{~}B\bond{~-}C}
\end{SideBySideExample}
@@ -509,7 +515,7 @@ Similarly, there is a shortcut for using \macro{ce} with reaction arrows:
\noindent Use \verb|v| or \verb|(v)| for precipitate (arrow down) and \verb|^| or \verb|(^)| for gas (arrow up), all of them separated by spaces.
\medskip
-\begin{SideBySideExample}[xrightmargin=5cm]
+\begin{SideBySideExample}[xrightmargin=7cm]
\ce{SO4^2- + Ba^2+ -> BaSO4 v}
\end{SideBySideExample}
@@ -807,10 +813,17 @@ Meaning and usage of \macro{bond} changed.
\section{Most Recent Changes}% check
+\minisec{2014-02-01 mhchem v3.15}
+\begin{compactitem}
+\item follow the IUPAC Red Book more closely (staggered superscripts, \ce{NO3-})
+\item rewrote large parts using \LaTeX3, needs package expl3
+\item added: \verb|\bond{1}|, \verb|\bond{2}|, \verb|\bond{3}| (because \verb|#| cannot be used in all contexts)
+\end{compactitem}
+
\minisec{2013-06-23 mhchem v3.13}
\begin{compactitem}
\item compatibility with many more babel languages
-\item fraction possible in amounts (\verb|0.5H2O|)
+\item fraction possible in amounts (\verb|\ce{0.5H2O}|)
\end{compactitem}
\minisec{2013-06-17 mhchem v3.12}
@@ -1618,7 +1631,7 @@ I adapted the German R and S Phrases to the current (`new') spelling. Therefore,
\subsection{Italian}
Italian phrases implemented by Lorenzo Vagnarelli. Copy-and-paste-ready. Thanks a lot.
\selectlanguage{italian}
-\allrsphrases
+\allrsphrases[alt42]
\selectlanguage{UKenglish}
\subsection{Spanish}
diff --git a/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty b/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty
index 0f58459ecfa..b800b17782b 100644
--- a/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty
+++ b/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty
@@ -49,8 +49,7 @@
% The statements themselves therefore are not subject to the LPPL.
%
%
-\ProvidesPackage{hpstatement}[2013/07/02 v1.01 H and P statements (mhchem bundle)]
-\RequirePackage{babel}
+\ProvidesPackage{hpstatement}[2013/06/17 v1.00 H and P statements (mhchem bundle)]
\RequirePackage{twoopt}
\RequirePackage{ifthen}
\RequirePackage{textcomp}
@@ -135,13 +134,7 @@
\mhchem@hp@iflanguagename{american}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
\mhchem@hp@iflanguagename{UKenglish}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
\mhchem@hp@iflanguagename{british}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
- \mhchem@hp@iflanguagename{canadian}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
- \mhchem@hp@iflanguagename{australian}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
- \mhchem@hp@iflanguagename{newzealand}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
- %
- \mhchem@hp@iflanguagename{ngerman}{\mhchem@hp@data@ngerman{#1}{#2}{#3}}{%
- \mhchem@hp@iflanguagename{naustrian}{\mhchem@hp@data@ngerman{#1}{#2}{#3}}{%
- }}}}}}}}}}%
+ }}}}}%
}
\newcommand*\mhchem@hp@ii[4]{%
@@ -236,24 +229,24 @@
\mhchem@hp@ii{#3}{H340.0-0}{H340}{May cause genetic defects \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H340-error}{H340}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
\mhchem@hp@ii{#3}{H340-0}{H340}{May cause genetic defects.}%
-\mhchem@hp@ii{#3}{H340-1}{H340}{May cause genetic defects#1.}%
+\mhchem@hp@ii{#3}{H340-1}{H340}{May cause genetic defects #1.}%
\mhchem@hp@ii{#3}{H341.0-0}{H341}{Suspected of causing genetic defects \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H341-error}{H341}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
\mhchem@hp@ii{#3}{H341-0}{H341}{Suspected of causing genetic defects.}%
-\mhchem@hp@ii{#3}{H341-1}{H341}{Suspected of causing genetic defects#1.}%
+\mhchem@hp@ii{#3}{H341-1}{H341}{Suspected of causing genetic defects #1.}%
\mhchem@hp@ii{#3}{H350.0-0}{H350}{May cause cancer \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H350-error}{H350}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
\mhchem@hp@ii{#3}{H350-0}{H350}{May cause cancer.}%
-\mhchem@hp@ii{#3}{H350-1}{H350}{May cause cancer#1.}%
+\mhchem@hp@ii{#3}{H350-1}{H350}{May cause cancer #1.}%
\mhchem@hp@ii{#3}{H350i-0}{H350i}{May cause cancer by inhalation.}%
\mhchem@hp@ii{#3}{H351.0-0}{H351}{Suspected of causing cancer \textless{}state route of exposure if it is conclusively proven that no other routs of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H351-error}{H351}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
\mhchem@hp@ii{#3}{H351-0}{H351}{Suspected of causing cancer.}%
-\mhchem@hp@ii{#3}{H351-1}{H351}{Suspected of causing cancer#1.}%
+\mhchem@hp@ii{#3}{H351-1}{H351}{Suspected of causing cancer #1.}%
\mhchem@hp@ii{#3}{H360.0-0}{H360}{May damage fertility or the unborn child \textless{}state specific effect if known \textgreater{} \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H360-error}{H360}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
\mhchem@hp@ii{#3}{H360-0}{H360}{May damage fertility or the unborn child.}%
-\mhchem@hp@ii{#3}{H360-1}{H360}{May damage fertility or the unborn child#1.}%
+\mhchem@hp@ii{#3}{H360-1}{H360}{May damage fertility or the unborn child #1.}%
\mhchem@hp@ii{#3}{H360F-0}{H360F}{May damage fertility.}%
\mhchem@hp@ii{#3}{H360D-0}{H360D}{May damage the unborn child.}%
\mhchem@hp@ii{#3}{H360f-0}{H360f}{Suspected of damaging fertility.}%
@@ -265,46 +258,46 @@
\mhchem@hp@ii{#3}{H361.0-0}{H361}{Suspected of damaging fertility or the unborn child \textless{}state specific effect if known\textgreater{} \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H361-error}{H361}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
\mhchem@hp@ii{#3}{H361-0}{H361}{Suspected of damaging fertility or the unborn child.}%
-\mhchem@hp@ii{#3}{H361-1}{H361}{Suspected of damaging fertility or the unborn child#1.}%
+\mhchem@hp@ii{#3}{H361-1}{H361}{Suspected of damaging fertility or the unborn child #1.}%
\mhchem@hp@ii{#3}{H362-0}{H362}{May cause harm to breast-fed children.}%
\mhchem@hp@ii{#3}{H370.0-0}{H370}{Causes damage to organs \textless{}or state all organs affected, if known\textgreater{} \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H370-error}{H370}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
\mhchem@hp@ii{#3}{H370-0}{H370}{Causes damage to organs.}%
\mhchem@hp@ii{#3}{H370-1}{H370}{Causes damage to #1.}%
-\mhchem@hp@ii{#3}{H370-2}{H370}{Causes damage to #1#2.}%
+\mhchem@hp@ii{#3}{H370-2}{H370}{Causes damage to #1 #2.}%
\mhchem@hp@ii{#3}{H371.0-0}{H371}{May cause damage to organs \textless{}or state all organs affected, if known\textgreater{} \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H371-error}{H371}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
\mhchem@hp@ii{#3}{H371-0}{H371}{May cause damage to organs.}%
\mhchem@hp@ii{#3}{H371-1}{H371}{May cause damage to #1.}%
-\mhchem@hp@ii{#3}{H371-2}{H371}{May cause damage to #1#2.}%
+\mhchem@hp@ii{#3}{H371-2}{H371}{May cause damage to #1 #2.}%
\mhchem@hp@ii{#3}{H372.0-0}{H372}{Causes damage to organs \textless{}or state all organs affected, if known\textgreater{} through prolonged or repeated exposure \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H372-error}{H372}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
\mhchem@hp@ii{#3}{H372-0}{H372}{Causes damage to organs through prolonged or repeated exposure.}%
\mhchem@hp@ii{#3}{H372-1}{H372}{Causes damage to #1 through prolonged or repeated exposure.}%
-\mhchem@hp@ii{#3}{H372-2}{H372}{Causes damage to #1 through prolonged or repeated exposure#2.}%
+\mhchem@hp@ii{#3}{H372-2}{H372}{Causes damage to #1 through prolonged or repeated exposure #2.}%
\mhchem@hp@ii{#3}{H373.0-0}{H373}{May cause damage to organs \textless{}or state all organs affected, if known\textgreater{} through prolonged or repeated exposure \textless{}state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard\textgreater{}.}%
\mhchem@hp@ii{#3}{H373-error}{H373}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
\mhchem@hp@ii{#3}{H373-0}{H373}{May cause damage to organs through prolonged or repeated exposure.}%
\mhchem@hp@ii{#3}{H373-1}{H373}{May cause damage to #1 through prolonged or repeated exposure.}%
-\mhchem@hp@ii{#3}{H373-2}{H373}{May cause damage to #1 through prolonged or repeated exposure#2.}%
-\mhchem@hp@ii{#3}{H300+H310-0}{H300\,+\,\hskip\z@skip{}H310}{Fatal if swallowed or in contact with skin}%
-\mhchem@hp@ii{#3}{H300+H330-0}{H300\,+\,\hskip\z@skip{}H330}{Fatal if swallowed or if inhaled}%
-\mhchem@hp@ii{#3}{H310+H330-0}{H310\,+\,\hskip\z@skip{}H330}{Fatal in contact with skin or if inhaled}%
-\mhchem@hp@ii{#3}{H300+H310+H330-0}{H300\,+\,\hskip\z@skip{}H310\,+\,\hskip\z@skip{}H330}{Fatal if swallowed, in contact with skin or if inhaled}%
-\mhchem@hp@ii{#3}{H301+H311-0}{H301\,+\,\hskip\z@skip{}H311}{Toxic if swallowed or in contact with skin}%
-\mhchem@hp@ii{#3}{H301+H331-0}{H301\,+\,\hskip\z@skip{}H331}{Toxic if swallowed or if inhaled}%
-\mhchem@hp@ii{#3}{H311+H331-0}{H311\,+\,\hskip\z@skip{}H331}{Toxic in contact with skin or if inhaled}%
-\mhchem@hp@ii{#3}{H301+H311+H331-0}{H301\,+\,\hskip\z@skip{}H311\,+\,\hskip\z@skip{}H331}{Toxic if swallowed, in contact with skin or if inhaled}%
-\mhchem@hp@ii{#3}{H302+H312-0}{H302\,+\,\hskip\z@skip{}H312}{Harmful if swallowed or in contact with skin}%
-\mhchem@hp@ii{#3}{H302+H332-0}{H302\,+\,\hskip\z@skip{}H332}{Harmful if swallowed or if inhaled}%
-\mhchem@hp@ii{#3}{H312+H332-0}{H312\,+\,\hskip\z@skip{}H332}{Harmful in contact with skin or if inhaled}%
-\mhchem@hp@ii{#3}{H301+H312+H332-0}{H301\,+\,\hskip\z@skip{}H312\,+\,\hskip\z@skip{}H332}{Harmful if swallowed, in contact with skin or if inhaled}%
+\mhchem@hp@ii{#3}{H373-2}{H373}{May cause damage to #1 through prolonged or repeated exposure #2.}%
+\mhchem@hp@ii{#3}{H300+H310-0}{H300\,+\,H310}{Fatal if swallowed or in contact with skin}%
+\mhchem@hp@ii{#3}{H300+H330-0}{H300\,+\,H330}{Fatal if swallowed or if inhaled}%
+\mhchem@hp@ii{#3}{H310+H330-0}{H310\,+\,H330}{Fatal in contact with skin or if inhaled}%
+\mhchem@hp@ii{#3}{H300+H310+H330-0}{H300\,+\,H310\,+\,H330}{Fatal if swallowed, in contact with skin or if inhaled}%
+\mhchem@hp@ii{#3}{H301+H311-0}{H301\,+\,H311}{Toxic if swallowed or in contact with skin}%
+\mhchem@hp@ii{#3}{H301+H331-0}{H301\,+\,H331}{Toxic if swallowed or if inhaled}%
+\mhchem@hp@ii{#3}{H311+H331-0}{H311\,+\,H331}{Toxic in contact with skin or if inhaled}%
+\mhchem@hp@ii{#3}{H301+H311+H331-0}{H301\,+\,H311\,+\,H331}{Toxic if swallowed, in contact with skin or if inhaled}%
+\mhchem@hp@ii{#3}{H302+H312-0}{H302\,+\,H312}{Harmful if swallowed or in contact with skin}%
+\mhchem@hp@ii{#3}{H302+H332-0}{H302\,+\,H332}{Harmful if swallowed or if inhaled}%
+\mhchem@hp@ii{#3}{H312+H332-0}{H312\,+\,H332}{Harmful in contact with skin or if inhaled}%
+\mhchem@hp@ii{#3}{H301+H312+H332-0}{H301\,+\,H312\,+\,H332}{Harmful if swallowed, in contact with skin or if inhaled}%
\mhchem@hp@ii{#3}{H400-0}{H400}{Very toxic to aquatic life.}%
\mhchem@hp@ii{#3}{H410-0}{H410}{Very toxic to aquatic life with long lasting effects.}%
\mhchem@hp@ii{#3}{H411-0}{H411}{Toxic to aquatic life with long lasting effects.}%
\mhchem@hp@ii{#3}{H412-0}{H412}{Harmful to aquatic life with long lasting effects.}%
\mhchem@hp@ii{#3}{H413-0}{H413}{May cause long lasting harmful effects to aquatic life.}%
-\mhchem@hp@ii{#3}{H420-0}{H420}{Harms public health and the environment by destroying ozone in the upper atmosphere.}%
+\mhchem@hp@ii{#3}{H420-0}{H420}{+++}%
\mhchem@hp@ii{#3}{P101-0}{P101}{If medical advice is needed, have product container or label at hand.}%
\mhchem@hp@ii{#3}{P101.nolabel-error}{P101}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P101.nolabel-1}{P101}{If medical advice is needed, have product container or #1 at hand.}%
@@ -322,40 +315,36 @@
\mhchem@hp@ii{#3}{P210.3-0}{P210}{Keep away from open flames. -- No smoking.}%
\mhchem@hp@ii{#3}{P210.4-0}{P210}{Keep away from hot surfaces. -- No smoking.}%
\mhchem@hp@ii{#3}{P211-0}{P211}{Do not spray on an open flame or other ignition source.}%
-\mhchem@hp@ii{#3}{P220.0.0-0}{P220}{Keep/Store away from clothing/\textellipsis{}/combustible materials.}%
+\mhchem@hp@ii{#3}{P220.0-0}{P220}{Keep/Store away from clothing/\textellipsis/combustible materials.}%
\mhchem@hp@ii{#3}{P220-error}{P220}{\PackageError{hpstatement}{Selection and selection/argument missing.\MessageBreak This statement has 1) a mandatory selection\MessageBreak and 2) a selection or text-argument.\MessageBreak Please append .1.1, ... to the number to make a\MessageBreak selection. Or append .1 or .2 with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P220.0-error}{P220}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P220.0.1-1}{P220}{Keep/Store away from #1 materials.}%
-\mhchem@hp@ii{#3}{P220.0.2-0}{P220}{Keep/Store away from clothing materials.}%
-\mhchem@hp@ii{#3}{P220.0.3-0}{P220}{Keep/Store away from combustible materials.}%
-\mhchem@hp@ii{#3}{P220.1.0-0}{P220}{Keep away from clothing/\textellipsis{}/combustible materials.}%
+\mhchem@hp@ii{#3}{P220.1.0-0}{P220}{Keep away from clothing/\textellipsis/combustible materials.}%
\mhchem@hp@ii{#3}{P220.1-error}{P220}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P220.1-1}{P220}{Keep away from #1.}%
\mhchem@hp@ii{#3}{P220.1.1-0}{P220}{Keep away from clothing.}%
\mhchem@hp@ii{#3}{P220.1.2-0}{P220}{Keep away from combustible materials.}%
-\mhchem@hp@ii{#3}{P220.2.0-0}{P220}{Store away from clothing/\textellipsis{}/combustible materials.}%
+\mhchem@hp@ii{#3}{P220.2.0-0}{P220}{Store away from clothing/\textellipsis/combustible materials.}%
\mhchem@hp@ii{#3}{P220.2-error}{P220}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P220.2-1}{P220}{Store away from #1.}%
\mhchem@hp@ii{#3}{P220.2.1-0}{P220}{Store away from clothing.}%
\mhchem@hp@ii{#3}{P220.2.2-0}{P220}{Store away from combustible materials.}%
-\mhchem@hp@ii{#3}{P221.0-0}{P221}{Take any precaution to avoid mixing with combustibles\textellipsis{}}%
+\mhchem@hp@ii{#3}{P221.0-0}{P221}{Take any precaution to avoid mixing with combustibles\textellipsis}%
\mhchem@hp@ii{#3}{P221-error}{P221}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P221-1}{P221}{Take any precaution to avoid mixing with #1.}%
\mhchem@hp@ii{#3}{P221.1-0}{P221}{Take any precaution to avoid mixing with combustibles.}%
\mhchem@hp@ii{#3}{P222-0}{P222}{Do not allow contact with air.}%
\mhchem@hp@ii{#3}{P223-0}{P223}{Keep away from any possible contact with water, because of violent reaction and possible flash fire.}%
-\mhchem@hp@ii{#3}{P230.0-0}{P230}{Keep wetted with\textellipsis{}}%
+\mhchem@hp@ii{#3}{P230.0-0}{P230}{Keep wetted with\textellipsis}%
\mhchem@hp@ii{#3}{P230-error}{P230}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P230-1}{P230}{Keep wetted with #1.}%
\mhchem@hp@ii{#3}{P231-0}{P231}{Handle under inert gas.}%
-\mhchem@hp@ii{#3}{P231+P232-0}{P231\,+\,\hskip\z@skip{}P232}{Handle under inert gas. Protect from moisture.}%
+\mhchem@hp@ii{#3}{P231+P232-0}{P231\,+\,P232}{Handle under inert gas. Protect from moisture.}%
\mhchem@hp@ii{#3}{P232-0}{P232}{Protect from moisture.}%
\mhchem@hp@ii{#3}{P233-0}{P233}{Keep container tightly closed.}%
\mhchem@hp@ii{#3}{P234-0}{P234}{Keep only in original container.}%
\mhchem@hp@ii{#3}{P235-0}{P235}{Keep cool.}%
-\mhchem@hp@ii{#3}{P235+P410-0}{P235\,+\,\hskip\z@skip{}P410}{Keep cool. Protect from sunlight.}%
+\mhchem@hp@ii{#3}{P235+P410-0}{P235\,+\,P410}{Keep cool. Protect from sunlight.}%
\mhchem@hp@ii{#3}{P240-0}{P240}{Ground/bond container and receiving equipment.}%
-\mhchem@hp@ii{#3}{P241.0-0}{P241}{Use explosion-proof electrical/ventilating/lighting/\textellipsis{}/equipment.}%
+\mhchem@hp@ii{#3}{P241.0-0}{P241}{Use explosion-proof electrical/ventilating/lighting/\textellipsis/equipment.}%
\mhchem@hp@ii{#3}{P241-error}{P241}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P241-1}{P241}{Use explosion-proof #1.}%
\mhchem@hp@ii{#3}{P241.1-0}{P241}{Use explosion-proof electrical equipment.}%
@@ -364,7 +353,7 @@
\mhchem@hp@ii{#3}{P242-0}{P242}{Use only non-sparking tools.}%
\mhchem@hp@ii{#3}{P243-0}{P243}{Take precautionary measures against static discharge.}%
\mhchem@hp@ii{#3}{P244-0}{P244}{Keep reduction valves free from grease and oil.}%
-\mhchem@hp@ii{#3}{P250.0-0}{P250}{Do not subject to grinding/shock/\textellipsis{}/friction.}%
+\mhchem@hp@ii{#3}{P250.0-0}{P250}{Do not subject to grinding/shock/\textellipsis/friction.}%
\mhchem@hp@ii{#3}{P250-error}{P250}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P250-1}{P250}{Do not subject to #1.}%
\mhchem@hp@ii{#3}{P250.1-0}{P250}{Do not subject to grinding.}%
@@ -387,7 +376,7 @@
\mhchem@hp@ii{#3}{P263-1}{P263}{Avoid contact #1.}%
\mhchem@hp@ii{#3}{P263.1-0}{P263}{Avoid contact during pregnancy.}%
\mhchem@hp@ii{#3}{P263.2-0}{P263}{Avoid contact while nursing.}%
-\mhchem@hp@ii{#3}{P264.0-0}{P264}{Wash \textellipsis{} thoroughly after handling.}%
+\mhchem@hp@ii{#3}{P264.0-0}{P264}{Wash \textellipsis thoroughly after handling.}%
\mhchem@hp@ii{#3}{P264-error}{P264}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P264-1}{P264}{Wash #1 thoroughly after handling.}%
\mhchem@hp@ii{#3}{P270-0}{P270}{Do no eat, drink or smoke when using this product.}%
@@ -414,49 +403,49 @@
\mhchem@hp@ii{#3}{P284-0}{P284}{Wear respiratory protection.}%
\mhchem@hp@ii{#3}{P285-0}{P285}{In case of inadequate ventilation wear respiratory protection.}%
\mhchem@hp@ii{#3}{P301-0}{P301}{IF SWALLOWED:}%
-\mhchem@hp@ii{#3}{P301+P310-0}{P301\,+\,\hskip\z@skip{}P310}{IF SWALLOWED: Immediately call a POISON CENTER or doctor/physician.}%
-\mhchem@hp@ii{#3}{P301+P312-0}{P301\,+\,\hskip\z@skip{}P312}{IF SWALLOWED: Call a POISON CENTER or doctor/physician if you feel unwell.}%
-\mhchem@hp@ii{#3}{P301+P330+P331-0}{P301\,+\,\hskip\z@skip{}P330\,+\,\hskip\z@skip{}P331}{IF SWALLOWED: rinse mouth. Do NOT induce vomiting.}%
+\mhchem@hp@ii{#3}{P301+P310-0}{P301\,+\,P310}{IF SWALLOWED: Immediately call a POISON CENTER or doctor/physician.}%
+\mhchem@hp@ii{#3}{P301+P312-0}{P301\,+\,P312}{IF SWALLOWED: Call a POISON CENTER or doctor/physician if you feel unwell.}%
+\mhchem@hp@ii{#3}{P301+P330+P331-0}{P301\,+\,P330\,+\,P331}{IF SWALLOWED: rinse mouth. Do NOT induce vomiting.}%
\mhchem@hp@ii{#3}{P302-0}{P302}{IF ON SKIN:}%
-\mhchem@hp@ii{#3}{P302+P334.0-0}{P302\,+\,\hskip\z@skip{}P334}{IF ON SKIN: Immerse in cool water/wrap in wet bandages.}%
-\mhchem@hp@ii{#3}{P302+P334-error}{P302\,+\,\hskip\z@skip{}P334}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P302+P334-1}{P302\,+\,\hskip\z@skip{}P334}{IF ON SKIN: #1.}%
-\mhchem@hp@ii{#3}{P302+P334.1-0}{P302\,+\,\hskip\z@skip{}P334}{IF ON SKIN: Immerse in cool water.}%
-\mhchem@hp@ii{#3}{P302+P334.2-0}{P302\,+\,\hskip\z@skip{}P334}{IF ON SKIN: Wrap in wet bandages.}%
-\mhchem@hp@ii{#3}{P302+P350-0}{P302\,+\,\hskip\z@skip{}P350}{IF ON SKIN: Gently wash with plenty of soap and water.}%
-\mhchem@hp@ii{#3}{P302+P352-0}{P302\,+\,\hskip\z@skip{}P352}{IF ON SKIN: Wash with plenty of soap and water.}%
+\mhchem@hp@ii{#3}{P302+P334.0-0}{P302\,+\,P334}{IF ON SKIN: Immerse in cool water/wrap in wet bandages.}%
+\mhchem@hp@ii{#3}{P302+P334-error}{P302\,+\,P334}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
+\mhchem@hp@ii{#3}{P302+P334-1}{P302\,+\,P334}{IF ON SKIN: #1.}%
+\mhchem@hp@ii{#3}{P302+P334.1-0}{P302\,+\,P334}{IF ON SKIN: Immerse in cool water.}%
+\mhchem@hp@ii{#3}{P302+P334.2-0}{P302\,+\,P334}{IF ON SKIN: Wrap in wet bandages.}%
+\mhchem@hp@ii{#3}{P302+P350-0}{P302\,+\,P350}{IF ON SKIN: Gently wash with plenty of soap and water.}%
+\mhchem@hp@ii{#3}{P302+P352-0}{P302\,+\,P352}{IF ON SKIN: Wash with plenty of soap and water.}%
\mhchem@hp@ii{#3}{P303-0}{P303}{IF ON SKIN (or hair):}%
-\mhchem@hp@ii{#3}{P303+P361+P353-0}{P303\,+\,\hskip\z@skip{}P361\,+\,\hskip\z@skip{}P353}{IF ON SKIN (or hair): Remove/Take off immediately all contaminated clothing. Rinse skin with water/shower.}%
+\mhchem@hp@ii{#3}{P303+P361+P353-0}{P303\,+\,P361\,+\,P353}{IF ON SKIN (or hair): Remove/Take off immediately all contaminated clothing. Rinse skin with water/shower.}%
\mhchem@hp@ii{#3}{P304-0}{P304}{IF INHALED:}%
-\mhchem@hp@ii{#3}{P304+P340-0}{P304\,+\,\hskip\z@skip{}P340}{IF INHALED: Remove victim to fresh air and keep at rest in a position comfortable for breathing.}%
-\mhchem@hp@ii{#3}{P304+P341-0}{P304\,+\,\hskip\z@skip{}P341}{IF INHALED: If breathing is difficult, remove victim to fresh air and keep at rest in a position comfortable for breathing.}%
+\mhchem@hp@ii{#3}{P304+P340-0}{P304\,+\,P340}{IF INHALED: Remove victim to fresh air and keep at rest in a position comfortable for breathing.}%
+\mhchem@hp@ii{#3}{P304+P341-0}{P304\,+\,P341}{IF INHALED: If breathing is difficult, remove victim to fresh air and keep at rest in a position comfortable for breathing.}%
\mhchem@hp@ii{#3}{P305-0}{P305}{IF IN EYES:}%
-\mhchem@hp@ii{#3}{P305+P351+P338-0}{P305\,+\,\hskip\z@skip{}P351\,+\,\hskip\z@skip{}P338}{IF IN EYES: Rinse cautiously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing.}%
+\mhchem@hp@ii{#3}{P305+P351+P338-0}{P305\,+\,P351\,+\,P338}{IF IN EYES: Rinse cautiously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing.}%
\mhchem@hp@ii{#3}{P306-0}{P306}{IF ON CLOTHING:}%
-\mhchem@hp@ii{#3}{P306+P360-0}{P306\,+\,\hskip\z@skip{}P360}{IF ON CLOTHING: rinse immediately contaminated clothing and skin with plenty of water before removing clothes.}%
+\mhchem@hp@ii{#3}{P306+P360-0}{P306\,+\,P360}{IF ON CLOTHING: rinse immediately contaminated clothing and skin with plenty of water before removing clothes.}%
\mhchem@hp@ii{#3}{P307-0}{P307}{IF exposed:}%
-\mhchem@hp@ii{#3}{P307+P311-0}{P307\,+\,\hskip\z@skip{}P311}{IF exposed: Call a POISON CENTER or doctor/physician.}%
+\mhchem@hp@ii{#3}{P307+P311-0}{P307\,+\,P311}{IF exposed: Call a POISON CENTER or doctor/physician.}%
\mhchem@hp@ii{#3}{P308-0}{P308}{IF exposed or concerned:}%
-\mhchem@hp@ii{#3}{P308+P313-0}{P308\,+\,\hskip\z@skip{}P313}{IF exposed or concerned: Get medical advice/attention.}%
+\mhchem@hp@ii{#3}{P308+P313-0}{P308\,+\,P313}{IF exposed or concerned: Get medical advice/attention.}%
\mhchem@hp@ii{#3}{P309-0}{P309}{IF exposed or if you feel unwell:}%
-\mhchem@hp@ii{#3}{P309+P311-0}{P309\,+\,\hskip\z@skip{}P311}{IF exposed or if you feel unwell: Call a POISON CENTER or doctor/physician.}%
+\mhchem@hp@ii{#3}{P309+P311-0}{P309\,+\,P311}{IF exposed or if you feel unwell: Call a POISON CENTER or doctor/physician.}%
\mhchem@hp@ii{#3}{P310-0}{P310}{Immediately call a POISON CENTER or doctor/physician.}%
\mhchem@hp@ii{#3}{P311-0}{P311}{Call a POISON CENTER or doctor/physician.}%
\mhchem@hp@ii{#3}{P312-0}{P312}{Call a POISON CENTER or doctor/physician if you feel unwell.}%
\mhchem@hp@ii{#3}{P313-0}{P313}{Get medical advice/attention.}%
\mhchem@hp@ii{#3}{P314-0}{P314}{Get medical advice/attention if you feel unwell.}%
\mhchem@hp@ii{#3}{P315-0}{P315}{Get immediate medical advice/attention.}%
-\mhchem@hp@ii{#3}{P320.0-0}{P320}{Specific treatment is urgent (see \textellipsis{} on this label).}%
+\mhchem@hp@ii{#3}{P320.0-0}{P320}{Specific treatment is urgent (see \textellipsis on this label).}%
\mhchem@hp@ii{#3}{P320-error}{P320}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P320-1}{P320}{Specific treatment is urgent (see #1 on this label).}%
\mhchem@hp@ii{#3}{P320.nolabel-error}{P320}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P320.nolabel-1}{P320}{Specific treatment is urgent (see #1).}%
-\mhchem@hp@ii{#3}{P321.0-0}{P321}{Specific treatment (see \textellipsis{} on this label).}%
+\mhchem@hp@ii{#3}{P321.0-0}{P321}{Specific treatment (see \textellipsis on this label).}%
\mhchem@hp@ii{#3}{P321-error}{P321}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P321-1}{P321}{Specific treatment (see #1 on this label).}%
\mhchem@hp@ii{#3}{P321.nolabel-error}{P321}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P321.nolabel-1}{P321}{Specific treatment (see #1).}%
-\mhchem@hp@ii{#3}{P322.0-0}{P322}{Specific measures (see \textellipsis{} on this label).}%
+\mhchem@hp@ii{#3}{P322.0-0}{P322}{Specific measures (see \textellipsis on this label).}%
\mhchem@hp@ii{#3}{P322-error}{P322}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P322-1}{P322}{Specific measures (see #1 on this label).}%
\mhchem@hp@ii{#3}{P322.nolabel-error}{P322}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
@@ -464,26 +453,26 @@
\mhchem@hp@ii{#3}{P330-0}{P330}{Rinse mouth.}%
\mhchem@hp@ii{#3}{P331-0}{P331}{Do NOT induce vomiting.}%
\mhchem@hp@ii{#3}{P332-0}{P332}{If skin irritation occurs:}%
-\mhchem@hp@ii{#3}{P332+P313-0}{P332\,+\,\hskip\z@skip{}P313}{If skin irritation occurs: Get medical advice/attention.}%
+\mhchem@hp@ii{#3}{P332+P313-0}{P332\,+\,P313}{If skin irritation occurs: Get medical advice/attention.}%
\mhchem@hp@ii{#3}{P333-0}{P333}{If skin irritation or rash occurs:}%
-\mhchem@hp@ii{#3}{P333+P313-0}{P333\,+\,\hskip\z@skip{}P313}{If skin irritation or rash occurs: Get medical advice/attention.}%
+\mhchem@hp@ii{#3}{P333+P313-0}{P333\,+\,P313}{If skin irritation or rash occurs: Get medical advice/attention.}%
\mhchem@hp@ii{#3}{P334.0-0}{P334}{Immerse in cool water/wrap in wet bandages.}%
\mhchem@hp@ii{#3}{P334-error}{P334}{\PackageError{hpstatement}{Selection missing.\MessageBreak This statement requires a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P334.1-0}{P334}{Immerse in cool water.}%
\mhchem@hp@ii{#3}{P334.2-0}{P334}{Wrap in wet bandages.}%
\mhchem@hp@ii{#3}{P335-0}{P335}{Brush off loose particles from skin.}%
-\mhchem@hp@ii{#3}{P335+P334.0-0}{P335\,+\,\hskip\z@skip{}P334}{Brush off loose particles from skin. Immerse in cool water/wrap in wet bandages.}%
-\mhchem@hp@ii{#3}{P335+P334-error}{P335\,+\,\hskip\z@skip{}P334}{\PackageError{hpstatement}{Selection missing.\MessageBreak This statement requires a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P335+P334.1-0}{P335\,+\,\hskip\z@skip{}P334}{Brush off loose particles from skin. Immerse in cool water.}%
-\mhchem@hp@ii{#3}{P335+P334.2-0}{P335\,+\,\hskip\z@skip{}P334}{Brush off loose particles from skin. Wrap in wet bandages.}%
+\mhchem@hp@ii{#3}{P335+P334.0-0}{P335\,+\,P334}{Brush off loose particles from skin. Immerse in cool water/wrap in wet bandages.}%
+\mhchem@hp@ii{#3}{P335+P334-error}{P335\,+\,P334}{\PackageError{hpstatement}{Selection missing.\MessageBreak This statement requires a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or use .0 for the original form}{}}%
+\mhchem@hp@ii{#3}{P335+P334.1-0}{P335\,+\,P334}{Brush off loose particles from skin. Immerse in cool water.}%
+\mhchem@hp@ii{#3}{P335+P334.2-0}{P335\,+\,P334}{Brush off loose particles from skin. Wrap in wet bandages.}%
\mhchem@hp@ii{#3}{P336-0}{P336}{Thaw frosted parts with lukewarm water. Do no rub affected area.}%
\mhchem@hp@ii{#3}{P337-0}{P337}{If eye irritation persists:}%
-\mhchem@hp@ii{#3}{P337+P313-0}{P337\,+\,\hskip\z@skip{}P313}{If eye irritation persists: Get medical advice/attention.}%
+\mhchem@hp@ii{#3}{P337+P313-0}{P337\,+\,P313}{If eye irritation persists: Get medical advice/attention.}%
\mhchem@hp@ii{#3}{P338-0}{P338}{Remove contact lenses, if present and easy to do. Continue rinsing.}%
\mhchem@hp@ii{#3}{P340-0}{P340}{Remove victim to fresh air and keep at rest in a position comfortable for breathing.}%
\mhchem@hp@ii{#3}{P341-0}{P341}{If breathing is difficult, remove victim to fresh air and keep at rest in a position comfortable for breathing.}%
\mhchem@hp@ii{#3}{P342-0}{P342}{If experiencing respiratory symptoms:}%
-\mhchem@hp@ii{#3}{P342+P311-0}{P342\,+\,\hskip\z@skip{}P311}{If experiencing respiratory symptoms: Call a POISON CENTER or doctor/physician.}%
+\mhchem@hp@ii{#3}{P342+P311-0}{P342\,+\,P311}{If experiencing respiratory symptoms: Call a POISON CENTER or doctor/physician.}%
\mhchem@hp@ii{#3}{P350-0}{P350}{Gently wash with plenty of soap and water.}%
\mhchem@hp@ii{#3}{P351-0}{P351}{Rinse cautiously with water for several minutes.}%
\mhchem@hp@ii{#3}{P352-0}{P352}{Wash with plenty of soap and water.}%
@@ -493,469 +482,66 @@
\mhchem@hp@ii{#3}{P362-0}{P362}{Take off contaminated clothing and wash before reuse.}%
\mhchem@hp@ii{#3}{P363-0}{P363}{Wash contaminated clothing before reuse.}%
\mhchem@hp@ii{#3}{P370-0}{P370}{In case of fire:}%
-\mhchem@hp@ii{#3}{P370+P376-0}{P370\,+\,\hskip\z@skip{}P376}{In case of fire: Stop leak if safe to do so.}%
-\mhchem@hp@ii{#3}{P370+P378.0-0}{P370\,+\,\hskip\z@skip{}P378}{In case of fire: Use \textellipsis{} for extinction.}%
-\mhchem@hp@ii{#3}{P370+P378-error}{P370\,+\,\hskip\z@skip{}P378}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P370+P378-1}{P370\,+\,\hskip\z@skip{}P378}{In case of fire: Use #1 for extinction.}%
-\mhchem@hp@ii{#3}{P370+P380-0}{P370\,+\,\hskip\z@skip{}P380}{In case of fire: Evacuate area.}%
-\mhchem@hp@ii{#3}{P370+P380+P375-0}{P370\,+\,\hskip\z@skip{}P380\,+\,\hskip\z@skip{}P375}{In case of fire: Evacuate area. Fight fire remotely due to the risk of explosion.}%
+\mhchem@hp@ii{#3}{P370+P376-0}{P370\,+\,P376}{In case of fire: Stop leak if safe to do so.}%
+\mhchem@hp@ii{#3}{P370+P378.0-0}{P370\,+\,P378}{In case of fire: Use \textellipsis for extinction.}%
+\mhchem@hp@ii{#3}{P370+P378-error}{P370\,+\,P378}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
+\mhchem@hp@ii{#3}{P370+P378-1}{P370\,+\,P378}{In case of fire: Use #1 for extinction.}%
+\mhchem@hp@ii{#3}{P370+P380-0}{P370\,+\,P380}{In case of fire: Evacuate area.}%
+\mhchem@hp@ii{#3}{P370+P380+P375-0}{P370\,+\,P380\,+\,P375}{In case of fire: Evacuate area. Fight fire remotely due to the risk of explosion.}%
\mhchem@hp@ii{#3}{P371-0}{P371}{In case of major fire and large quantities:}%
-\mhchem@hp@ii{#3}{P371+P380+P375-0}{P371\,+\,\hskip\z@skip{}P380\,+\,\hskip\z@skip{}P375}{In case of major fire and large quantities: Evacuate area. Fight fire remotely due to the risk of explosion.}%
+\mhchem@hp@ii{#3}{P371+P380+P375-0}{P371\,+\,P380\,+\,P375}{In case of major fire and large quantities: Evacuate area. Fight fire remotely due to the risk of explosion.}%
\mhchem@hp@ii{#3}{P372-0}{P372}{Explosion risk in case of fire.}%
\mhchem@hp@ii{#3}{P373-0}{P373}{DO NOT fight fire when fire reaches explosives.}%
\mhchem@hp@ii{#3}{P374-0}{P374}{Fight fire with normal precautions from a reasonable distance.}%
\mhchem@hp@ii{#3}{P375-0}{P375}{Fight fire remotely due to the risk of explosion.}%
\mhchem@hp@ii{#3}{P376-0}{P376}{Stop leak if safe to do so.}%
\mhchem@hp@ii{#3}{P377-0}{P377}{Leaking gas fire: Do not extinguish, unless leak can be stopped safely.}%
-\mhchem@hp@ii{#3}{P378.0-0}{P378}{Use \textellipsis{} for extinction.}%
+\mhchem@hp@ii{#3}{P378.0-0}{P378}{Use \textellipsis for extinction.}%
\mhchem@hp@ii{#3}{P378-error}{P378}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P378-1}{P378}{Use #1 for extinction.}%
\mhchem@hp@ii{#3}{P380-0}{P380}{Evacuate area.}%
\mhchem@hp@ii{#3}{P381-0}{P381}{Eliminate all ignition sources if safe to do so.}%
\mhchem@hp@ii{#3}{P390-0}{P390}{Absorb spillage to prevent material damage.}%
\mhchem@hp@ii{#3}{P391-0}{P391}{Collect spillage.}%
-\mhchem@hp@ii{#3}{P401.0-0}{P401}{Store \textellipsis{}}%
+\mhchem@hp@ii{#3}{P401.0-0}{P401}{Store \textellipsis}%
\mhchem@hp@ii{#3}{P401-error}{P401}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P401-1}{P401}{Store #1.}%
\mhchem@hp@ii{#3}{P402-0}{P402}{Store in a dry place.}%
-\mhchem@hp@ii{#3}{P402+P404-0}{P402\,+\,\hskip\z@skip{}P404}{Store in a dry place. Store in a closed container.}%
+\mhchem@hp@ii{#3}{P402+P404-0}{P402\,+\,P404}{Store in a dry place. Store in a closed container.}%
\mhchem@hp@ii{#3}{P403-0}{P403}{Store in a well-ventilated place.}%
-\mhchem@hp@ii{#3}{P403+P233-0}{P403\,+\,\hskip\z@skip{}P233}{Store in a well-ventilated place. Keep container tightly closed.}%
-\mhchem@hp@ii{#3}{P403+P235-0}{P403\,+\,\hskip\z@skip{}P235}{Store in a well-ventilated place. Keep cool.}%
+\mhchem@hp@ii{#3}{P403+P233-0}{P403\,+\,P233}{Store in a well-ventilated place. Keep container tightly closed.}%
+\mhchem@hp@ii{#3}{P403+P235-0}{P403\,+\,P235}{Store in a well-ventilated place. Keep cool.}%
\mhchem@hp@ii{#3}{P404-0}{P404}{Store in a closed container.}%
\mhchem@hp@ii{#3}{P405-0}{P405}{Store locked up.}%
-\mhchem@hp@ii{#3}{P406.0-0}{P406}{Store in corrosive resistant/\textellipsis{} container with a resistant inner liner.}%
+\mhchem@hp@ii{#3}{P406.0-0}{P406}{Store in corrosive resistant/\textellipsis container with a resistant inner liner.}%
\mhchem@hp@ii{#3}{P406-error}{P406}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
\mhchem@hp@ii{#3}{P406-1}{P406}{Store in #1 container with a resistant inner liner.}%
\mhchem@hp@ii{#3}{P406.1-0}{P406}{Store in corrosive resistant container with a resistant inner liner.}%
\mhchem@hp@ii{#3}{P407-0}{P407}{Maintain air gap between stacks/pallets.}%
\mhchem@hp@ii{#3}{P410-0}{P410}{Protect from sunlight.}%
-\mhchem@hp@ii{#3}{P410+P403-0}{P410\,+\,\hskip\z@skip{}P403}{Protect from sunlight. Store in a well-ventilated place.}%
-\mhchem@hp@ii{#3}{P410+P412-0}{P410\,+\,\hskip\z@skip{}P412}{Protect from sunlight. Do no expose to temperatures exceeding 50\textdegree{}C/122\textdegree{}F.}%
-\mhchem@hp@ii{#3}{P411.0-0}{P411}{Store at temperatures not exceeding \textellipsis{}\textdegree{}C/\textellipsis{}\textdegree{}F.}%
-\mhchem@hp@ii{#3}{P411-error}{P411}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P411-1}{P411}{Store at temperatures not exceeding #1.}%
-\mhchem@hp@ii{#3}{P411+P235.0-0}{P411\,+\,\hskip\z@skip{}P235}{Store at temperatures not exceeding \textellipsis{}\textdegree{}C/\textellipsis{}\textdegree{}F. Keep cool.}%
-\mhchem@hp@ii{#3}{P411+P235-error}{P411\,+\,\hskip\z@skip{}P235}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P411+P235-1}{P411\,+\,\hskip\z@skip{}P235}{Store at temperatures not exceeding #1. Keep cool.}%
+\mhchem@hp@ii{#3}{P410+P403-0}{P410\,+\,P403}{Protect from sunlight. Store in a well-ventilated place.}%
+\mhchem@hp@ii{#3}{P410+P412-0}{P410\,+\,P412}{Protect from sunlight. Do no expose to temperatures exceeding 50\textdegree{}C/122\textdegree{}F.}%
+\mhchem@hp@ii{#3}{P411-0}{P411}{Store at temperatures not exceeding \textellipsis\textdegree{}C/\textellipsis\textdegree{}F.}%
+\mhchem@hp@ii{#3}{P411+P235-0}{P411\,+\,P235}{Store at temperatures not exceeding \textellipsis\textdegree{}C/\textellipsis\textdegree{}F. Keep cool.}%
\mhchem@hp@ii{#3}{P412-0}{P412}{Do not expose to temperatures exceeding 50\textdegree{}C/122\textdegree{}F.}%
-\mhchem@hp@ii{#3}{P413.0-0}{P413}{Store bulk masses greater than \textellipsis{}\,kg/\textellipsis{}\,lbs at temperatures not exceeding \textellipsis{}\textdegree{}C/\textellipsis{}\textdegree{}F.}%
-\mhchem@hp@ii{#3}{P413-error}{P413}{\PackageError{hpstatement}{This statement has two mandatory text arguments.\MessageBreak Please specify them with [][]}{}}%
-\mhchem@hp@ii{#3}{P413-2}{P413}{Store bulk masses greater than #1 at temperatures not exceeding #2.}%
+\mhchem@hp@ii{#3}{P413.0-0}{P413}{Store bulk masses greater than \textellipsis\,kg/\textellipsis\,lbs at temperatures not exceeding \textellipsis\textdegree{}C/\textellipsis\textdegree{}F.}%
+\mhchem@hp@ii{#3}{P413-error}{P413}{\PackageError{hpstatement}{Selection and mandatory arguments missing.\MessageBreak This statement has a mandatory selection. Please\MessageBreak append .1 or .2 to the number (or use .0 for the\MessageBreak original form). Also, supply two arguments with\MessageBreak [][]}{}}%
+\mhchem@hp@ii{#3}{P413.1-error}{P413}{\PackageError{hpstatement}{This statement has two mandatory text arguments.\MessageBreak Please specify them with [][]}{}}%
+\mhchem@hp@ii{#3}{P413.1-2}{P413}{Store bulk masses greater than #1\,kg at temperatures not exceeding #2\textdegree{}C.}%
+\mhchem@hp@ii{#3}{P413.2-error}{P413}{\PackageError{hpstatement}{This statement has two mandatory text arguments.\MessageBreak Please specify them with [][]}{}}%
+\mhchem@hp@ii{#3}{P413.2-2}{P413}{Store bulk masses greater than #1\,lbs at temperatures not exceeding #2\textdegree{}F.}%
\mhchem@hp@ii{#3}{P420-0}{P420}{Store away from other materials.}%
-\mhchem@hp@ii{#3}{P422.0-0}{P422}{Store contents under \textellipsis{}}%
+\mhchem@hp@ii{#3}{P422.0-0}{P422}{Store contents under \textellipsis}%
\mhchem@hp@ii{#3}{P422-error}{P422}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P422-1}{P422}{Store contents under #1.}%
-\mhchem@hp@ii{#3}{P501.0.0-0}{P501}{Dispose of contents/container to \textellipsis{}}%
+\mhchem@hp@ii{#3}{P501.0.0-0}{P501}{Dispose of contents/container to \textellipsis}%
\mhchem@hp@ii{#3}{P501.0-error}{P501}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P501.0-1}{P501}{Dispose of contents/container to #1.}%
\mhchem@hp@ii{#3}{P501-error}{P501}{\PackageError{hpstatement}{Selection and mandatory argument missing.\MessageBreak This statement has a mandatory selection. Please\MessageBreak append .1 or .2 to the number (or use .0 for the\MessageBreak original form). Also, supply an argument with []\MessageBreak (or use an additional .0 for the original\MessageBreak form)}{}}%
-\mhchem@hp@ii{#3}{P501.1.0-0}{P501}{Dispose of contents to \textellipsis{}}%
+\mhchem@hp@ii{#3}{P501.1.0-0}{P501}{Dispose of contents to \textellipsis}%
\mhchem@hp@ii{#3}{P501.1-error}{P501}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P501.1-1}{P501}{Dispose of contents to #1.}%
-\mhchem@hp@ii{#3}{P501.2.0-0}{P501}{Dispose of container to \textellipsis{}}%
+\mhchem@hp@ii{#3}{P501.2.0-0}{P501}{Dispose of container to \textellipsis}%
\mhchem@hp@ii{#3}{P501.2-error}{P501}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
\mhchem@hp@ii{#3}{P501.2-1}{P501}{Dispose of container to #1.}%
}
-\newcommand*\mhchem@hp@data@ngerman[3]{%
-\mhchem@hp@ii{#3}{EUH001-0}{EUH001}{In trockenem Zustand explosionsgef\"a\allowhyphens{}hrlich.}%
-\mhchem@hp@ii{#3}{EUH006-0}{EUH006}{Mit und ohne Luft explosionsf\"a\allowhyphens{}hig.}%
-\mhchem@hp@ii{#3}{EUH014-0}{EUH014}{Reagiert heftig mit Wasser.}%
-\mhchem@hp@ii{#3}{EUH018.0-0}{EUH018}{Kann bei Verwendung explosionsf\"a\allowhyphens{}hige/\hskip\z@skip{}entz\"u\allowhyphens{}ndbare Dampf/\hskip\z@skip{}Luft-Gemische bilden.}%
-\mhchem@hp@ii{#3}{EUH018-error}{EUH018}{\PackageError{hpstatement}{Selection missing.\MessageBreak This statement requires a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{EUH018.1-0}{EUH018}{Kann bei Verwendung explosionsf\"a\allowhyphens{}hige Dampf/\hskip\z@skip{}Luft-Gemische bilden.}%
-\mhchem@hp@ii{#3}{EUH018.2-0}{EUH018}{Kann bei Verwendung entz\"u\allowhyphens{}ndbare Dampf/\hskip\z@skip{}Luft-Gemische bilden.}%
-\mhchem@hp@ii{#3}{EUH019-0}{EUH019}{Kann explosionsf\"a\allowhyphens{}hige Peroxide bilden.}%
-\mhchem@hp@ii{#3}{EUH029-0}{EUH029}{Entwickelt bei Ber\"u\allowhyphens{}hrung mit Wasser giftige Gase.}%
-\mhchem@hp@ii{#3}{EUH031-0}{EUH031}{Entwickelt bei Ber\"u\allowhyphens{}hrung mit S\"a\allowhyphens{}ure giftige Gase.}%
-\mhchem@hp@ii{#3}{EUH032-0}{EUH032}{Entwickelt bei Ber\"u\allowhyphens{}hrung mit S\"a\allowhyphens{}ure sehr giftige Gase.}%
-\mhchem@hp@ii{#3}{EUH044-0}{EUH044}{Explosionsgefahr bei Erhitzen unter Einschluss.}%
-\mhchem@hp@ii{#3}{EUH059-0}{EUH059}{Die Ozonschicht sch\"a\allowhyphens{}digend.}%
-\mhchem@hp@ii{#3}{EUH066-0}{EUH066}{Wiederholter Kontakt kann zu spr\"o\allowhyphens{}der oder rissiger Haut f\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{EUH070-0}{EUH070}{Giftig bei Ber\"u\allowhyphens{}hrung mit den Augen.}%
-\mhchem@hp@ii{#3}{EUH071-0}{EUH071}{Wirkt \"a\allowhyphens{}tzend auf die Atemwege.}%
-\mhchem@hp@ii{#3}{EUH201-0}{EUH201}{Enth\"a\allowhyphens{}lt Blei. Nicht f\"u\allowhyphens{}r den Anstrich von Gegenst\"a\allowhyphens{}nden verwenden, die von Kindern gekaut oder gelutscht werden k\"o\allowhyphens{}nnten.}%
-\mhchem@hp@ii{#3}{EUH201A-0}{EUH201A}{Achtung! Enth\"a\allowhyphens{}lt Blei.}%
-\mhchem@hp@ii{#3}{EUH202-0}{EUH202}{Cyanacrylat. Gefahr. Klebt innerhalb von Sekunden Haut und Augenlider zusammen. Darf nicht in die H\"a\allowhyphens{}nde von Kindern gelangen.}%
-\mhchem@hp@ii{#3}{EUH203-0}{EUH203}{Enth\"a\allowhyphens{}lt Chrom (VI). Kann allergische Reaktionen hervorrufen.}%
-\mhchem@hp@ii{#3}{EUH204-0}{EUH204}{Enth\"a\allowhyphens{}lt Isocyanate. Kann allergische Reaktionen hervorrufen.}%
-\mhchem@hp@ii{#3}{EUH205-0}{EUH205}{Enth\"a\allowhyphens{}lt epoxidhaltige Verbindungen. Kann allergische Reaktionen hervorrufen.}%
-\mhchem@hp@ii{#3}{EUH206-0}{EUH206}{Achtung! Nicht zusammen mit anderen Produkten verwenden, da gef\"a\allowhyphens{}hrliche Gase (Chlor) freigesetzt werden k\"o\allowhyphens{}nnen.}%
-\mhchem@hp@ii{#3}{EUH207-0}{EUH207}{Achtung! Enth\"a\allowhyphens{}lt Cadmium. Bei der Verwendung entstehen gef\"a\allowhyphens{}hrliche D\"a\allowhyphens{}mpfe. Hinweise des Herstellers beachten. Sicherheitsanweisungen einhalten.}%
-\mhchem@hp@ii{#3}{EUH208.0-0}{EUH208}{Enth\"a\allowhyphens{}lt \textless{}Name des sensibilisierenden Stoffes\textgreater{}. Kann allergische Reaktionen hervorrufen.}%
-\mhchem@hp@ii{#3}{EUH208-error}{EUH208}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{EUH208-1}{EUH208}{Enth\"a\allowhyphens{}lt #1. Kann allergische Reaktionen hervorrufen.}%
-\mhchem@hp@ii{#3}{EUH209-0}{EUH209}{Kann bei Verwendung leicht entz\"u\allowhyphens{}ndbar werden.}%
-\mhchem@hp@ii{#3}{EUH209A-0}{EUH209A}{Kann bei Verwendung entz\"u\allowhyphens{}ndbar werden.}%
-\mhchem@hp@ii{#3}{EUH210-0}{EUH210}{Sicherheitsdatenblatt auf Anfrage erh\"a\allowhyphens{}ltlich.}%
-\mhchem@hp@ii{#3}{EUH401-0}{EUH401}{Zur Vermeidung von Risiken f\"u\allowhyphens{}r Mensch und Umwelt die Gebrauchsanleitung einhalten.}%
-\mhchem@hp@ii{#3}{H200-0}{H200}{Instabil, explosiv.}%
-\mhchem@hp@ii{#3}{H201-0}{H201}{Explosiv, Gefahr der Massenexplosion.}%
-\mhchem@hp@ii{#3}{H202-0}{H202}{Explosiv; gro\ss{}e Gefahr durch Splitter, Spreng- und Wurfst\"u\allowhyphens{}cke.}%
-\mhchem@hp@ii{#3}{H203-0}{H203}{Explosiv; Gefahr durch Feuer, Luftdruck oder Splitter, Spreng- und Wurfst\"u\allowhyphens{}cke.}%
-\mhchem@hp@ii{#3}{H204-0}{H204}{Gefahr durch Feuer oder Splitter, Spreng- und Wurfst\"u\allowhyphens{}cke.}%
-\mhchem@hp@ii{#3}{H205-0}{H205}{Gefahr der Massenexplosion bei Feuer.}%
-\mhchem@hp@ii{#3}{H220-0}{H220}{Extrem entz\"u\allowhyphens{}ndbares Gas.}%
-\mhchem@hp@ii{#3}{H221-0}{H221}{Entz\"u\allowhyphens{}ndbares Gas.}%
-\mhchem@hp@ii{#3}{H222-0}{H222}{Extrem entz\"u\allowhyphens{}ndbares Aerosol.}%
-\mhchem@hp@ii{#3}{H223-0}{H223}{Entz\"u\allowhyphens{}ndbares Aerosol.}%
-\mhchem@hp@ii{#3}{H224-0}{H224}{Fl\"u\allowhyphens{}ssigkeit und Dampf extrem entz\"u\allowhyphens{}ndbar.}%
-\mhchem@hp@ii{#3}{H225-0}{H225}{Fl\"u\allowhyphens{}ssigkeit und Dampf leicht entz\"u\allowhyphens{}ndbar.}%
-\mhchem@hp@ii{#3}{H226-0}{H226}{Fl\"u\allowhyphens{}ssigkeit und Dampf entz\"u\allowhyphens{}ndbar.}%
-\mhchem@hp@ii{#3}{H228-0}{H228}{Entz\"u\allowhyphens{}ndbarer Feststoff.}%
-\mhchem@hp@ii{#3}{H240-0}{H240}{Erw\"a\allowhyphens{}rmung kann Explosion verursachen.}%
-\mhchem@hp@ii{#3}{H241-0}{H241}{Erw\"a\allowhyphens{}rmung kann Brand oder Explosion verursachen.}%
-\mhchem@hp@ii{#3}{H242-0}{H242}{Erw\"a\allowhyphens{}rmung kann Brand verursachen.}%
-\mhchem@hp@ii{#3}{H250-0}{H250}{Entz\"u\allowhyphens{}ndet sich in Ber\"u\allowhyphens{}hrung mit Luft von selbst.}%
-\mhchem@hp@ii{#3}{H251-0}{H251}{Selbsterhitzungsf\"a\allowhyphens{}hig; kann in Brand geraten.}%
-\mhchem@hp@ii{#3}{H252-0}{H252}{In gro\ss{}en Mengen selbsterhitzungsf\"a\allowhyphens{}hig; kann in Brand geraten.}%
-\mhchem@hp@ii{#3}{H260-0}{H260}{In Ber\"u\allowhyphens{}hrung mit Wasser entstehen entz\"u\allowhyphens{}ndbare Gase, die sich spontan entz\"u\allowhyphens{}nden k\"o\allowhyphens{}nnen.}%
-\mhchem@hp@ii{#3}{H261-0}{H261}{In Ber\"u\allowhyphens{}hrung mit Wasser entstehen entz\"u\allowhyphens{}ndbare Gase.}%
-\mhchem@hp@ii{#3}{H270-0}{H270}{Kann Brand verursachen oder verst\"a\allowhyphens{}rken; Oxidationsmittel.}%
-\mhchem@hp@ii{#3}{H271-0}{H271}{Kann Brand oder Explosion verursachen; starkes Oxidationsmittel.}%
-\mhchem@hp@ii{#3}{H272-0}{H272}{Kann Brand verst\"a\allowhyphens{}rken; Oxidationsmittel.}%
-\mhchem@hp@ii{#3}{H280-0}{H280}{Enth\"a\allowhyphens{}lt Gas unter Druck; kann bei Erw\"a\allowhyphens{}rmung explodieren.}%
-\mhchem@hp@ii{#3}{H281-0}{H281}{Enth\"a\allowhyphens{}lt tiefkaltes Gas; kann K\"a\allowhyphens{}lteverbrennungen oder -Verletzungen verursachen.}%
-\mhchem@hp@ii{#3}{H290-0}{H290}{Kann gegen\"u\allowhyphens{}ber Metallen korrosiv sein.}%
-\mhchem@hp@ii{#3}{H300-0}{H300}{Lebensgefahr bei Verschlucken.}%
-\mhchem@hp@ii{#3}{H301-0}{H301}{Giftig bei Verschlucken.}%
-\mhchem@hp@ii{#3}{H302-0}{H302}{Gesundheitssch\"a\allowhyphens{}dlich bei Verschlucken.}%
-\mhchem@hp@ii{#3}{H304-0}{H304}{Kann bei Verschlucken und Eindringen in die Atemwege t\"o\allowhyphens{}dlich sein.}%
-\mhchem@hp@ii{#3}{H310-0}{H310}{Lebensgefahr bei Hautkontakt.}%
-\mhchem@hp@ii{#3}{H311-0}{H311}{Giftig bei Hautkontakt.}%
-\mhchem@hp@ii{#3}{H312-0}{H312}{Gesundheitssch\"a\allowhyphens{}dlich bei Hautkontakt.}%
-\mhchem@hp@ii{#3}{H314-0}{H314}{Verursacht schwere Ver\"a\allowhyphens{}tzungen der Haut und schwere Augensch\"a\allowhyphens{}den.}%
-\mhchem@hp@ii{#3}{H315-0}{H315}{Verursacht Hautreizungen.}%
-\mhchem@hp@ii{#3}{H317-0}{H317}{Kann allergische Hautreaktionen verursachen.}%
-\mhchem@hp@ii{#3}{H318-0}{H318}{Verursacht schwere Augensch\"a\allowhyphens{}den.}%
-\mhchem@hp@ii{#3}{H319-0}{H319}{Verursacht schwere Augenreizung.}%
-\mhchem@hp@ii{#3}{H330-0}{H330}{Lebensgefahr bei Einatmen.}%
-\mhchem@hp@ii{#3}{H331-0}{H331}{Giftig bei Einatmen.}%
-\mhchem@hp@ii{#3}{H332-0}{H332}{Gesundheitssch\"a\allowhyphens{}dlich bei Einatmen.}%
-\mhchem@hp@ii{#3}{H334-0}{H334}{Kann bei Einatmen Allergie, asthmaartige Symptome oder Atembeschwerden verursachen.}%
-\mhchem@hp@ii{#3}{H335-0}{H335}{Kann die Atemwege reizen.}%
-\mhchem@hp@ii{#3}{H336-0}{H336}{Kann Schl\"a\allowhyphens{}frigkeit und Benommenheit verursachen.}%
-\mhchem@hp@ii{#3}{H340.0-0}{H340}{Kann genetische Defekte verursachen \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H340-error}{H340}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
-\mhchem@hp@ii{#3}{H340-0}{H340}{Kann genetische Defekte verursachen.}%
-\mhchem@hp@ii{#3}{H340-1}{H340}{Kann genetische Defekte verursachen#1.}%
-\mhchem@hp@ii{#3}{H341.0-0}{H341}{Kann vermutlich genetische Defekte verursachen \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H341-error}{H341}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
-\mhchem@hp@ii{#3}{H341-0}{H341}{Kann vermutlich genetische Defekte verursachen.}%
-\mhchem@hp@ii{#3}{H341-1}{H341}{Kann vermutlich genetische Defekte verursachen#1.}%
-\mhchem@hp@ii{#3}{H350.0-0}{H350}{Kann Krebs erzeugen \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H350-error}{H350}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
-\mhchem@hp@ii{#3}{H350-0}{H350}{Kann Krebs erzeugen.}%
-\mhchem@hp@ii{#3}{H350-1}{H350}{Kann Krebs erzeugen#1.}%
-\mhchem@hp@ii{#3}{H350i-0}{H350i}{Kann bei Einatmen Krebs erzeugen.}%
-\mhchem@hp@ii{#3}{H351.0-0}{H351}{Kann vermutlich Krebs erzeugen \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H351-error}{H351}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
-\mhchem@hp@ii{#3}{H351-0}{H351}{Kann vermutlich Krebs erzeugen.}%
-\mhchem@hp@ii{#3}{H351-1}{H351}{Kann vermutlich Krebs erzeugen#1.}%
-\mhchem@hp@ii{#3}{H360.0-0}{H360}{Kann die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen oder das Kind im Mutterleib sch\"a\allowhyphens{}digen \textless{}konkrete Wirkung angeben, sofern bekannt\textgreater{} \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass die Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H360-error}{H360}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
-\mhchem@hp@ii{#3}{H360-0}{H360}{Kann die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen oder das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H360-1}{H360}{Kann die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen oder das Kind im Mutterleib sch\"a\allowhyphens{}digen#1.}%
-\mhchem@hp@ii{#3}{H360F-0}{H360F}{Kann die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen.}%
-\mhchem@hp@ii{#3}{H360D-0}{H360D}{Kann das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H360f-0}{H360f}{Kann vermutlich die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen.}%
-\mhchem@hp@ii{#3}{H360d-0}{H360d}{Kann vermutlich das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H360FD-0}{H360FD}{Kann die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen. Kann das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H360fd-0}{H360fd}{Kann vermutlich die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen. Kann vermutlich das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H360Fd-0}{H360Fd}{Kann die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen. Kann vermutlich das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H360Df-0}{H360Df}{Kann das Kind im Mutterleib sch\"a\allowhyphens{}digen. Kann vermutlich die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen.}%
-\mhchem@hp@ii{#3}{H361.0-0}{H361}{Kann vermutlich die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen oder das Kind im Mutterleib sch\"a\allowhyphens{}digen \textless{} konkrete Wirkung angebe, n sofern bekannt \textgreater{} \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass die Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H361-error}{H361}{\PackageError{hpstatement}{Too many arguments.\MessageBreak This statement has an optional text argument.\MessageBreak Please use no argument or exactly one with [].\MessageBreak Or use <number>.0 for the original form}{}}%
-\mhchem@hp@ii{#3}{H361-0}{H361}{Kann vermutlich die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen oder das Kind im Mutterleib sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H361-1}{H361}{Kann vermutlich die Fruchtbarkeit beeintr\"a\allowhyphens{}chtigen oder das Kind im Mutterleib sch\"a\allowhyphens{}digen#1}%
-\mhchem@hp@ii{#3}{H362-0}{H362}{Kann S\"a\allowhyphens{}uglinge \"u\allowhyphens{}ber die Muttermilch sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H370.0-0}{H370}{Sch\"a\allowhyphens{}digt die Organe \textless{}oder alle betroffenen Organe nennen, sofern bekannt\textgreater{} \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H370-error}{H370}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
-\mhchem@hp@ii{#3}{H370-0}{H370}{Sch\"a\allowhyphens{}digt die Organe.}%
-\mhchem@hp@ii{#3}{H370-1}{H370}{Sch\"a\allowhyphens{}digt #1.}%
-\mhchem@hp@ii{#3}{H370-2}{H370}{Sch\"a\allowhyphens{}digt #1#2..}%
-\mhchem@hp@ii{#3}{H371.0-0}{H371}{Kann die Organe sch\"a\allowhyphens{}digen \textless{}oder alle betroffenen Organe nennen, sofern bekann\textgreater{} \textless{}Expositionsweg angeben, sofern schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H371-error}{H371}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
-\mhchem@hp@ii{#3}{H371-0}{H371}{Kann die Organe sch\"a\allowhyphens{}digen.}%
-\mhchem@hp@ii{#3}{H371-1}{H371}{Kann die Organe sch\"a\allowhyphens{}digen #1.}%
-\mhchem@hp@ii{#3}{H371-2}{H371}{Kann die Organe sch\"a\allowhyphens{}digen #1#2.}%
-\mhchem@hp@ii{#3}{H372.0-0}{H372}{Sch\"a\allowhyphens{}digt die Organe \textless{}alle betroffenen Organe nennen\textgreater{} bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition \textless{}Expositionsweg angeben, wenn schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H372-error}{H372}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
-\mhchem@hp@ii{#3}{H372-0}{H372}{Sch\"a\allowhyphens{}digt die Organe bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition.}%
-\mhchem@hp@ii{#3}{H372-1}{H372}{Sch\"a\allowhyphens{}digt #1 bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition.}%
-\mhchem@hp@ii{#3}{H372-2}{H372}{Sch\"a\allowhyphens{}digt #1 bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition#2.}%
-\mhchem@hp@ii{#3}{H373.0-0}{H373}{Kann die Organe sch\"a\allowhyphens{}digen \textless{}alle betroffenen Organe nennen, sofern bekannt\textgreater{} bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition \textless{}Expositionsweg angeben, wenn schl\"u\allowhyphens{}ssig belegt ist, dass diese Gefahr bei keinem anderen Expositionsweg besteht\textgreater{}.}%
-\mhchem@hp@ii{#3}{H373-error}{H373}{\PackageError{hpstatement}{This statement has two optional text arguments.\MessageBreak Please specify them with [][]. Or append .0\MessageBreak to the number for the original form}{}}%
-\mhchem@hp@ii{#3}{H373-0}{H373}{Kann die Organe sch\"a\allowhyphens{}digen bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition.}%
-\mhchem@hp@ii{#3}{H373-1}{H373}{Kann #1 sch\"a\allowhyphens{}digen bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition.}%
-\mhchem@hp@ii{#3}{H373-2}{H373}{Kann #1 sch\"a\allowhyphens{}digen bei l\"a\allowhyphens{}ngerer oder wiederholter Exposition#2.}%
-\mhchem@hp@ii{#3}{H300+H310-0}{H300\,+\,\hskip\z@skip{}H310}{Lebensgefahr bei Verschlucken oder Hautkontakt}%
-\mhchem@hp@ii{#3}{H300+H330-0}{H300\,+\,\hskip\z@skip{}H330}{Lebensgefahr bei Verschlucken oder Einatmen}%
-\mhchem@hp@ii{#3}{H310+H330-0}{H310\,+\,\hskip\z@skip{}H330}{Lebensgefahr bei Hautkontakt oder Einatmen}%
-\mhchem@hp@ii{#3}{H300+H310+H330-0}{H300\,+\,\hskip\z@skip{}H310\,+\,\hskip\z@skip{}H330}{Lebensgefahr bei Verschlucken, Hautkontakt oder Einatmen}%
-\mhchem@hp@ii{#3}{H301+H311-0}{H301\,+\,\hskip\z@skip{}H311}{Giftig bei Verschlucken oder Hautkontakt}%
-\mhchem@hp@ii{#3}{H301+H331-0}{H301\,+\,\hskip\z@skip{}H331}{Giftig bei Verschlucken oder Einatmen}%
-\mhchem@hp@ii{#3}{H311+H331-0}{H311\,+\,\hskip\z@skip{}H331}{Giftig bei Hautkontakt oder Einatmen}%
-\mhchem@hp@ii{#3}{H301+H311+H331-0}{H301\,+\,\hskip\z@skip{}H311\,+\,\hskip\z@skip{}H331}{Giftig bei Verschlucken, Hautkontakt oder Einatmen}%
-\mhchem@hp@ii{#3}{H302+H312-0}{H302\,+\,\hskip\z@skip{}H312}{Gesundheitssch\"a\allowhyphens{}dlich bei Verschlucken oder Hautkontakt}%
-\mhchem@hp@ii{#3}{H302+H332-0}{H302\,+\,\hskip\z@skip{}H332}{Gesundheitssch\"a\allowhyphens{}dlich bei Verschlucken oder Einatmen}%
-\mhchem@hp@ii{#3}{H312+H332-0}{H312\,+\,\hskip\z@skip{}H332}{Gesundheitssch\"a\allowhyphens{}dlich bei Hautkontakt oder Einatmen}%
-\mhchem@hp@ii{#3}{H301+H312+H332-0}{H301\,+\,\hskip\z@skip{}H312\,+\,\hskip\z@skip{}H332}{Gesundheitssch\"a\allowhyphens{}dlich bei Verschlucken, Hautkontakt oder Einatmen}%
-\mhchem@hp@ii{#3}{H400-0}{H400}{Sehr giftig f\"u\allowhyphens{}r Wasserorganismen.}%
-\mhchem@hp@ii{#3}{H410-0}{H410}{Sehr giftig f\"u\allowhyphens{}r Wasserorganismen mit langfristiger Wirkung.}%
-\mhchem@hp@ii{#3}{H411-0}{H411}{Giftig f\"u\allowhyphens{}r Wasserorganismen, mit langfristiger Wirkung.}%
-\mhchem@hp@ii{#3}{H412-0}{H412}{Sch\"a\allowhyphens{}dlich f\"u\allowhyphens{}r Wasserorganismen, mit langfristiger Wirkung.}%
-\mhchem@hp@ii{#3}{H413-0}{H413}{Kann f\"u\allowhyphens{}r Wasserorganismen sch\"a\allowhyphens{}dlich sein, mit langfristiger Wirkung.}%
-\mhchem@hp@ii{#3}{H420-0}{H420}{Sch\"a\allowhyphens{}digt die \"o\allowhyphens{}ffentliche Gesundheit und die Umwelt durch Ozonabbau in der \"a\allowhyphens{}u\ss{}eren Atmosph\"a\allowhyphens{}re.}%
-\mhchem@hp@ii{#3}{P101-0}{P101}{Ist \"a\allowhyphens{}rztlicher Rat erforderlich, Verpackung oder Kennzeichnungsetikett bereithalten.}%
-\mhchem@hp@ii{#3}{P101.nolabel-error}{P101}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P101.nolabel-1}{P101}{Ist \"a\allowhyphens{}rztlicher Rat erforderlich, Verpackung oder #1 bereithalten.}%
-\mhchem@hp@ii{#3}{P102-0}{P102}{Darf nicht in die H\"a\allowhyphens{}nde von Kindern gelangen.}%
-\mhchem@hp@ii{#3}{P103-0}{P103}{Vor Gebrauch Kennzeichnungsetikett lesen.}%
-\mhchem@hp@ii{#3}{P103.nolabel-error}{P103}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P103.nolabel-1}{P103}{Vor Gebrauch #1 lesen.}%
-\mhchem@hp@ii{#3}{P201-0}{P201}{Vor Gebrauch besondere Anweisungen einholen.}%
-\mhchem@hp@ii{#3}{P202-0}{P202}{Vor Gebrauch alle Sicherheitshinweise lesen und verstehen.}%
-\mhchem@hp@ii{#3}{P210.0-0}{P210}{Von Hitze/\hskip\z@skip{}Funken/\hskip\z@skip{}offener Flamme/\hskip\z@skip{}hei\ss{}en Oberfl\"a\allowhyphens{}chen fernhalten. Nicht rauchen.}%
-\mhchem@hp@ii{#3}{P210-error}{P210}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P210-1}{P210}{Von #1 fernhalten. Nicht rauchen.}%
-\mhchem@hp@ii{#3}{P210.1-0}{P210}{Von Hitze fernhalten. Nicht rauchen.}%
-\mhchem@hp@ii{#3}{P210.2-0}{P210}{Von Funken fernhalten. Nicht rauchen.}%
-\mhchem@hp@ii{#3}{P210.3-0}{P210}{Von offener Flamme fernhalten. Nicht rauchen.}%
-\mhchem@hp@ii{#3}{P210.4-0}{P210}{Von hei\ss{}en Oberfl\"a\allowhyphens{}chen fernhalten. Nicht rauchen.}%
-\mhchem@hp@ii{#3}{P211-0}{P211}{Nicht gegen offene Flamme oder andere Z\"u\allowhyphens{}ndquelle spr\"u\allowhyphens{}hen.}%
-\mhchem@hp@ii{#3}{P220.0.0-0}{P220}{Von Kleidung/\hskip\z@skip{}\textellipsis{}/\hskip\z@skip{}brennbaren Materialien fernhalten/\hskip\z@skip{}entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220-error}{P220}{\PackageError{hpstatement}{Selection and selection/argument missing.\MessageBreak This statement has 1) a mandatory selection\MessageBreak and 2) a selection or text-argument.\MessageBreak Please append .1.1, ... to the number to make a\MessageBreak selection. Or append .1 or .2 with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P220.0-error}{P220}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P220.0.1-1}{P220}{Von #1 fernhalten/\hskip\z@skip{}entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220.0.2-0}{P220}{Von Kleidung fernhalten/\hskip\z@skip{}entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220.0.3-0}{P220}{Von brennbaren Materialien fernhalten/\hskip\z@skip{}entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220.1.0-0}{P220}{Von Kleidung/\hskip\z@skip{}\textellipsis{}/\hskip\z@skip{}brennbaren Materialien fernhalten.}%
-\mhchem@hp@ii{#3}{P220.1-error}{P220}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P220.1-1}{P220}{Von #1 fernhalten.}%
-\mhchem@hp@ii{#3}{P220.1.1-0}{P220}{Von Kleidung fernhalten.}%
-\mhchem@hp@ii{#3}{P220.1.2-0}{P220}{Von brennbaren Materialien fernhalten.}%
-\mhchem@hp@ii{#3}{P220.2.0-0}{P220}{Von Kleidung/\hskip\z@skip{}\textellipsis{}/\hskip\z@skip{}brennbaren Materialien entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220.2-error}{P220}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P220.2-1}{P220}{Von #1 entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220.2.1-0}{P220}{Von Kleidung entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P220.2.2-0}{P220}{Von brennbaren Materialien entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P221.0-0}{P221}{Mischen mit brennbaren Stoffen/\hskip\z@skip{}\textellipsis{} unbedingt verhindern.}%
-\mhchem@hp@ii{#3}{P221-error}{P221}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P221-1}{P221}{Mischen mit #1 unbedingt verhindern.}%
-\mhchem@hp@ii{#3}{P221.1-0}{P221}{Mischen mit brennbaren Stoffen unbedingt verhindern.}%
-\mhchem@hp@ii{#3}{P222-0}{P222}{Kontakt mit Luft nicht zulassen.}%
-\mhchem@hp@ii{#3}{P223-0}{P223}{Kontakt mit Wasser wegen heftiger Reaktion und m\"o\allowhyphens{}glichem Aufflammen unbedingt verhindern.}%
-\mhchem@hp@ii{#3}{P230.0-0}{P230}{Feucht halten mit \textellipsis{}}%
-\mhchem@hp@ii{#3}{P230-error}{P230}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P230-1}{P230}{Feucht halten mit #1.}%
-\mhchem@hp@ii{#3}{P231-0}{P231}{Unter inertem Gas handhaben.}%
-\mhchem@hp@ii{#3}{P231+P232-0}{P231\,+\,\hskip\z@skip{}P232}{Unter inertem Gas handhaben. Vor Feuchtigkeit sch\"u\allowhyphens{}tzen.}%
-\mhchem@hp@ii{#3}{P232-0}{P232}{Vor Feuchtigkeit sch\"u\allowhyphens{}tzen.}%
-\mhchem@hp@ii{#3}{P233-0}{P233}{Beh\"a\allowhyphens{}lter dicht verschlossen halten.}%
-\mhchem@hp@ii{#3}{P234-0}{P234}{Nur im Originalbeh\"a\allowhyphens{}lter aufbewahren.}%
-\mhchem@hp@ii{#3}{P235-0}{P235}{K\"u\allowhyphens{}hl halten.}%
-\mhchem@hp@ii{#3}{P235+P410-0}{P235\,+\,\hskip\z@skip{}P410}{K\"u\allowhyphens{}hl halten. Vor Sonnenbestrahlung sch\"u\allowhyphens{}tzen.}%
-\mhchem@hp@ii{#3}{P240-0}{P240}{Beh\"a\allowhyphens{}lter und zu bef\"u\allowhyphens{}llende Anlage erden.}%
-\mhchem@hp@ii{#3}{P241.0-0}{P241}{Explosionsgesch\"u\allowhyphens{}tzte elektrische Betriebsmittel/\hskip\z@skip{}L\"u\allowhyphens{}ftungsanlagen/\hskip\z@skip{}Beleuchtung/\hskip\z@skip{}\textellipsis{} verwenden.}%
-\mhchem@hp@ii{#3}{P241-error}{P241}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P241-1}{P241}{Explosionsgesch\"u\allowhyphens{}tzte #1 verwenden.}%
-\mhchem@hp@ii{#3}{P241.1-0}{P241}{Explosionsgesch\"u\allowhyphens{}tzte elektrische Betriebsmittel verwenden.}%
-\mhchem@hp@ii{#3}{P241.2-0}{P241}{Explosionsgesch\"u\allowhyphens{}tzte L\"u\allowhyphens{}ftungsanlagen verwenden.}%
-\mhchem@hp@ii{#3}{P241.3-0}{P241}{Explosionsgesch\"u\allowhyphens{}tzte Beleuchtung verwenden.}%
-\mhchem@hp@ii{#3}{P242-0}{P242}{Nur funkenfreies Werkzeug verwenden.}%
-\mhchem@hp@ii{#3}{P243-0}{P243}{Ma\ss{}nahmen gegen elektrostatische Auf{}ladungen treffen.}%
-\mhchem@hp@ii{#3}{P244-0}{P244}{Druckminderer frei von Fett und \"O\allowhyphens{}l halten.}%
-\mhchem@hp@ii{#3}{P250.0-0}{P250}{Nicht schleifen/\hskip\z@skip{}sto\ss{}en/\hskip\z@skip{}\textellipsis{}/\hskip\z@skip{}reiben.}%
-\mhchem@hp@ii{#3}{P250-error}{P250}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P250-1}{P250}{Nicht #1.}%
-\mhchem@hp@ii{#3}{P250.1-0}{P250}{Nicht schleifen.}%
-\mhchem@hp@ii{#3}{P250.2-0}{P250}{Nicht sto\ss{}en.}%
-\mhchem@hp@ii{#3}{P250.3-0}{P250}{Nicht reiben.}%
-\mhchem@hp@ii{#3}{P251-0}{P251}{Beh\"a\allowhyphens{}lter steht unter Druck: Nicht durchstechen oder verbrennen, auch nicht nach der Verwendung.}%
-\mhchem@hp@ii{#3}{P260.0-0}{P260}{Staub/\hskip\z@skip{}Rauch/\hskip\z@skip{}Gas/\hskip\z@skip{}Nebel/\hskip\z@skip{}Dampf/\hskip\z@skip{}Aerosol nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260-error}{P260}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P260-1}{P260}{#1 nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260.1-0}{P260}{Staub nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260.2-0}{P260}{Rauch nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260.3-0}{P260}{Gas nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260.4-0}{P260}{Nebel nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260.5-0}{P260}{Dampf nicht einatmen.}%
-\mhchem@hp@ii{#3}{P260.6-0}{P260}{Aerosol nicht einatmen.}%
-\mhchem@hp@ii{#3}{P261-0}{P261}{Einatmen von Staub/\hskip\z@skip{}Rauch/\hskip\z@skip{}Gas/\hskip\z@skip{}Nebel/\hskip\z@skip{}Dampf/\hskip\z@skip{}Aerosol vermeiden.}%
-\mhchem@hp@ii{#3}{P262-0}{P262}{Nicht in die Augen, auf die Haut oder auf die Kleidung gelangen lassen.}%
-\mhchem@hp@ii{#3}{P263.0-0}{P263}{Kontakt w\"a\allowhyphens{}hrend der Schwangerschaft/\hskip\z@skip{}und der Stillzeit vermeiden.}%
-\mhchem@hp@ii{#3}{P263-error}{P263}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P263-1}{P263}{Kontakt w\"a\allowhyphens{}hrend #1 vermeiden.}%
-\mhchem@hp@ii{#3}{P263.1-0}{P263}{Kontakt w\"a\allowhyphens{}hrend der Schwangerschaft vermeiden.}%
-\mhchem@hp@ii{#3}{P263.2-0}{P263}{P263}%
-\mhchem@hp@ii{#3}{P264.0-0}{P264}{Nach Gebrauch \textellipsis{} gr\"u\allowhyphens{}ndlich waschen.}%
-\mhchem@hp@ii{#3}{P264-error}{P264}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P264-1}{P264}{Nach Gebrauch #1 gr\"u\allowhyphens{}ndlich waschen.}%
-\mhchem@hp@ii{#3}{P270-0}{P270}{Bei Gebrauch nicht essen, trinken oder rauchen.}%
-\mhchem@hp@ii{#3}{P271-0}{P271}{Nur im Freien oder in gut bel\"u\allowhyphens{}fteten R\"a\allowhyphens{}umen verwenden.}%
-\mhchem@hp@ii{#3}{P272-0}{P272}{Kontaminierte Arbeitskleidung nicht au\ss{}erhalb des Arbeitsplatzes tragen.}%
-\mhchem@hp@ii{#3}{P273-0}{P273}{Freisetzung in die Umwelt vermeiden.}%
-\mhchem@hp@ii{#3}{P280.0-0}{P280}{Schutzhandschuhe/\hskip\z@skip{}Schutzkleidung/\hskip\z@skip{}Augenschutz/\hskip\z@skip{}Gesichtsschutz tragen.}%
-\mhchem@hp@ii{#3}{P280-error}{P280}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P280-1}{P280}{#1 tragen.}%
-\mhchem@hp@ii{#3}{P280.1-0}{P280}{Schutzhandschuhe tragen.}%
-\mhchem@hp@ii{#3}{P280.2-0}{P280}{Schutzkleidung tragen.}%
-\mhchem@hp@ii{#3}{P280.3-0}{P280}{Augenschutz tragen.}%
-\mhchem@hp@ii{#3}{P280.4-0}{P280}{Gesichtsschutz tragen.}%
-\mhchem@hp@ii{#3}{P281-0}{P281}{Vorgeschriebene pers\"o\allowhyphens{}nliche Schutzausr\"u\allowhyphens{}stung verwenden.}%
-\mhchem@hp@ii{#3}{P282.0-0}{P282}{Schutzhandschuhe/\hskip\z@skip{}Gesichtsschild/\hskip\z@skip{}Augenschutz mit K\"a\allowhyphens{}lteisolierung tragen.}%
-\mhchem@hp@ii{#3}{P282-error}{P282}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P282-1}{P282}{#1 tragen.}%
-\mhchem@hp@ii{#3}{P282.1-0}{P282}{Schutzhandschuhe mit K\"a\allowhyphens{}lteisolierung tragen.}%
-\mhchem@hp@ii{#3}{P282.2-0}{P282}{Gesichtsschild mit K\"a\allowhyphens{}lteisolierung tragen.}%
-\mhchem@hp@ii{#3}{P282.3-0}{P282}{Augenschutz mit K\"a\allowhyphens{}lteisolierung tragen.}%
-\mhchem@hp@ii{#3}{P283.0-0}{P283}{Schwer entflammbare/\hskip\z@skip{}flammhemmende Kleidung tragen.}%
-\mhchem@hp@ii{#3}{P283-error}{P283}{\PackageError{hpstatement}{Language-dependent argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak However, translations differ so much that you\MessageBreak have to state your selection as text argument [].\MessageBreak Read the manual for possible values.\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P283-1}{P283}{#1 tragen.}%
-\mhchem@hp@ii{#3}{P284-0}{P284}{Atemschutz tragen.}%
-\mhchem@hp@ii{#3}{P285-0}{P285}{Bei unzureichender Bel\"u\allowhyphens{}fung Atemschutz tragen.}%
-\mhchem@hp@ii{#3}{P301-0}{P301}{BEI VERSCHLUCKEN:}%
-\mhchem@hp@ii{#3}{P301+P310-0}{P301\,+\,\hskip\z@skip{}P310}{BEI VERSCHLUCKEN: Sofort GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P301+P312-0}{P301\,+\,\hskip\z@skip{}P312}{BEI VERSCHLUCKEN: Bei Unwohlsein GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P301+P330+P331-0}{P301\,+\,\hskip\z@skip{}P330\,+\,\hskip\z@skip{}P331}{BEI VERSCHLUCKEN: Mund aussp\"u\allowhyphens{}len. KEIN Erbrechen herbeif\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P302-0}{P302}{BEI BER\"U\allowhyphens{}HRUNG MIT DER HAUT:}%
-\mhchem@hp@ii{#3}{P302+P334.0-0}{P302\,+\,\hskip\z@skip{}P334}{BEI KONTAKT MIT DER HAUT: In kaltes Wasser tauchen/\hskip\z@skip{}nassen Verband anlegen.}%
-\mhchem@hp@ii{#3}{P302+P334-error}{P302\,+\,\hskip\z@skip{}P334}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P302+P334-1}{P302\,+\,\hskip\z@skip{}P334}{BEI KONTAKT MIT DER HAUT: #1.}%
-\mhchem@hp@ii{#3}{P302+P334.1-0}{P302\,+\,\hskip\z@skip{}P334}{BEI KONTAKT MIT DER HAUT: In kaltes Wasser tauchen.}%
-\mhchem@hp@ii{#3}{P302+P334.2-0}{P302\,+\,\hskip\z@skip{}P334}{BEI KONTAKT MIT DER HAUT: Nassen Verband anlegen.}%
-\mhchem@hp@ii{#3}{P302+P350-0}{P302\,+\,\hskip\z@skip{}P350}{BEI KONTAKT MIT DER HAUT: Behutsam mit viel Wasser und Seife waschen.}%
-\mhchem@hp@ii{#3}{P302+P352-0}{P302\,+\,\hskip\z@skip{}P352}{BEI KONTAKT MIT DER HAUT: Mit viel Wasser und Seife waschen.}%
-\mhchem@hp@ii{#3}{P303-0}{P303}{BEI BER\"U\allowhyphens{}HRUNG MIT DER HAUT (oder dem Haar):}%
-\mhchem@hp@ii{#3}{P303+P361+P353-0}{P303\,+\,\hskip\z@skip{}P361\,+\,\hskip\z@skip{}P353}{BEI KONTAKT MIT DER HAUT (oder dem Haar): Alle beschmutzten, getr\"a\allowhyphens{}nkten Kleidungsst\"u\allowhyphens{}cke sofort ausziehen. Haut mit Wasser abwaschen/\hskip\z@skip{}duschen.}%
-\mhchem@hp@ii{#3}{P304-0}{P304}{BEI EINATMEN:}%
-\mhchem@hp@ii{#3}{P304+P340-0}{P304\,+\,\hskip\z@skip{}P340}{BEI EINATMEN: An die frische Luft bringen und in einer Position ruhigstellen, die das Atmen erleichtert.}%
-\mhchem@hp@ii{#3}{P304+P341-0}{P304\,+\,\hskip\z@skip{}P341}{BEI EINATMEN: Bei Atembeschwerden an die frische Luft bringen und in einer Position ruhigstellen, die das Atmen erleichtert.}%
-\mhchem@hp@ii{#3}{P305-0}{P305}{BEI KONTAKT MIT DEN AUGEN:}%
-\mhchem@hp@ii{#3}{P305+P351+P338-0}{P305\,+\,\hskip\z@skip{}P351\,+\,\hskip\z@skip{}P338}{BEI KONTAKT MIT DEN AUGEN: Einige Minuten lang behutsam mit Wasser sp\"u\allowhyphens{}len. Vorhandene Kontaktlinsen nach M\"o\allowhyphens{}glichkeit entfernen. Weiter sp\"u\allowhyphens{}len.}%
-\mhchem@hp@ii{#3}{P306-0}{P306}{BEI KONTAMINIERTER KLEIDUNG:}%
-\mhchem@hp@ii{#3}{P306+P360-0}{P306\,+\,\hskip\z@skip{}P360}{BEI KONTAKT MIT DER KLEIDUNG: Kontaminierte Kleidung und Haut sofort mit viel Wasser abwaschen und danach Kleidung ausziehen.}%
-\mhchem@hp@ii{#3}{P307-0}{P307}{BEI Exposition:}%
-\mhchem@hp@ii{#3}{P307+P311-0}{P307\,+\,\hskip\z@skip{}P311}{BEI Exposition: GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P308-0}{P308}{BEI Exposition oder falls betroffen}%
-\mhchem@hp@ii{#3}{P308+P313-0}{P308\,+\,\hskip\z@skip{}P313}{BEI Exposition oder falls betroffen: \"A\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P309-0}{P309}{BEI Exposition oder Unwohlsein:}%
-\mhchem@hp@ii{#3}{P309+P311-0}{P309\,+\,\hskip\z@skip{}P311}{BEI Exposition oder Unwohlsein: GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P310-0}{P310}{Sofort GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P311-0}{P311}{GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P312-0}{P312}{Bei Unwohlsein GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P313-0}{P313}{\"A\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P314-0}{P314}{Bei Unwohlsein \"a\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P315-0}{P315}{Sofort \"a\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P320.0-0}{P320}{Besondere Behandlung dringend erforderlich (siehe \textellipsis{} auf diesem Kennzeichnungsetikett).}%
-\mhchem@hp@ii{#3}{P320-error}{P320}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P320-1}{P320}{Besondere Behandlung dringend erforderlich (siehe #1 auf diesem Kennzeichnungsetikett).}%
-\mhchem@hp@ii{#3}{P320.nolabel-error}{P320}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P320.nolabel-1}{P320}{Besondere Behandlung dringend erforderlich (siehe #1).}%
-\mhchem@hp@ii{#3}{P321.0-0}{P321}{Besondere Behandlung (siehe \textellipsis{} auf diesem Kennzeichnungsetikett).}%
-\mhchem@hp@ii{#3}{P321-error}{P321}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P321-1}{P321}{Besondere Behandlung (siehe #1 auf diesem Kennzeichnungsetikett).}%
-\mhchem@hp@ii{#3}{P321.nolabel-error}{P321}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P321.nolabel-1}{P321}{Besondere Behandlung (siehe #1).}%
-\mhchem@hp@ii{#3}{P322.0-0}{P322}{Gezielte Ma\ss{}nahmen (siehe \textellipsis{} auf diesem Kennzeichnungsetikett).}%
-\mhchem@hp@ii{#3}{P322-error}{P322}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P322-1}{P322}{Gezielte Ma\ss{}nahmen (siehe #1 auf diesem Kennzeichnungsetikett).}%
-\mhchem@hp@ii{#3}{P322.nolabel-error}{P322}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P322.nolabel-1}{P322}{Gezielte Ma\ss{}nahmen (siehe #1).}%
-\mhchem@hp@ii{#3}{P330-0}{P330}{Mund aussp\"u\allowhyphens{}len.}%
-\mhchem@hp@ii{#3}{P331-0}{P331}{KEIN Erbrechen herbeif\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P332-0}{P332}{Bei Hautreizung:}%
-\mhchem@hp@ii{#3}{P332+P313-0}{P332\,+\,\hskip\z@skip{}P313}{Bei Hautreizung: \"A\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P333-0}{P333}{Bei Hautreizung oder \leavevmode\hbox{-}ausschlag:}%
-\mhchem@hp@ii{#3}{P333+P313-0}{P333\,+\,\hskip\z@skip{}P313}{Bei Hautreizung oder \leavevmode\hbox{-}ausschlag: \"A\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P334.0-0}{P334}{In kaltes Wasser tauchen/\hskip\z@skip{}nassen Verband anlegen.}%
-\mhchem@hp@ii{#3}{P334-error}{P334}{\PackageError{hpstatement}{Selection missing.\MessageBreak This statement requires a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P334.1-0}{P334}{In kaltes Wasser tauchen.}%
-\mhchem@hp@ii{#3}{P334.2-0}{P334}{Nassen Verband anlegen.}%
-\mhchem@hp@ii{#3}{P335-0}{P335}{Lose Partikel von der Haut abb\"u\allowhyphens{}rsten.}%
-\mhchem@hp@ii{#3}{P335+P334.0-0}{P335\,+\,\hskip\z@skip{}P334}{Lose Partikel von der Haut abb\"u\allowhyphens{}rsten. In kaltes Wasser tauchen/\hskip\z@skip{}nassen Verband anlegen.}%
-\mhchem@hp@ii{#3}{P335+P334-error}{P335\,+\,\hskip\z@skip{}P334}{\PackageError{hpstatement}{Selection missing.\MessageBreak This statement requires a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P335+P334.1-0}{P335\,+\,\hskip\z@skip{}P334}{Lose Partikel von der Haut abb\"u\allowhyphens{}rsten. In kaltes Wasser tauchen.}%
-\mhchem@hp@ii{#3}{P335+P334.2-0}{P335\,+\,\hskip\z@skip{}P334}{Lose Partikel von der Haut abb\"u\allowhyphens{}rsten. Nassen Verband anlegen.}%
-\mhchem@hp@ii{#3}{P336-0}{P336}{Vereiste Bereiche mit lauwarmem Wasser auftauen. Betroffenen Bereich nicht reiben.}%
-\mhchem@hp@ii{#3}{P337-0}{P337}{Bei anhaltender Augenreizung:}%
-\mhchem@hp@ii{#3}{P337+P313-0}{P337\,+\,\hskip\z@skip{}P313}{Bei anhaltender Augenreizung: \"A\allowhyphens{}rztlichen Rat einholen/\hskip\z@skip{}\"a\allowhyphens{}rztliche Hilfe hinzuziehen.}%
-\mhchem@hp@ii{#3}{P338-0}{P338}{Eventuell Vorhandene Kontaktlinsen nach M\"o\allowhyphens{}glichkeit entfernen. Weiter aussp\"u\allowhyphens{}len.}%
-\mhchem@hp@ii{#3}{P340-0}{P340}{Die betroffene Person an die frische Luft bringen und in einer Position ruhigstellen, die das Atmen erleichtert.}%
-\mhchem@hp@ii{#3}{P341-0}{P341}{Bei Atembeschwerden an die frische Luft bringen und in einer Position ruhigstellen, die das Atmen erleichtert.}%
-\mhchem@hp@ii{#3}{P342-0}{P342}{Bei Symptomen der Atemwege:}%
-\mhchem@hp@ii{#3}{P342+P311-0}{P342\,+\,\hskip\z@skip{}P311}{Bei Symptomen der Atemwege: GIFTINFORMATIONSZENTRUM oder Arzt anrufen.}%
-\mhchem@hp@ii{#3}{P350-0}{P350}{Behutsam mit viel Wasser und Seife waschen.}%
-\mhchem@hp@ii{#3}{P351-0}{P351}{Einige Minuten lang behutsam mit Wasser aussp\"u\allowhyphens{}len.}%
-\mhchem@hp@ii{#3}{P352-0}{P352}{Mit viel Wasser und Seife waschen.}%
-\mhchem@hp@ii{#3}{P353-0}{P353}{Haut mit Wasser abwaschen/\hskip\z@skip{}duschen.}%
-\mhchem@hp@ii{#3}{P360-0}{P360}{Kontaminierte Kleidung und Haut sofort mit viel Wasser abwaschen und danach Kleidung ausziehen.}%
-\mhchem@hp@ii{#3}{P361-0}{P361}{Alle kontaminierten Kleidungsst\"u\allowhyphens{}cke sofort ausziehen.}%
-\mhchem@hp@ii{#3}{P362-0}{P362}{Kontaminierte Kleidung ausziehen und vor erneutem Tragen waschen.}%
-\mhchem@hp@ii{#3}{P363-0}{P363}{Kontaminierte Kleidung vor erneutem Tragen waschen.}%
-\mhchem@hp@ii{#3}{P370-0}{P370}{Bei Brand:}%
-\mhchem@hp@ii{#3}{P370+P376-0}{P370\,+\,\hskip\z@skip{}P376}{Bei Brand: Undichtigkeit beseitigen, wenn gefahrlos m\"o\allowhyphens{}glich.}%
-\mhchem@hp@ii{#3}{P370+P378.0-0}{P370\,+\,\hskip\z@skip{}P378}{Bei Brand: \textellipsis{} zum L\"o\allowhyphens{}schen verwenden.}%
-\mhchem@hp@ii{#3}{P370+P378-error}{P370\,+\,\hskip\z@skip{}P378}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P370+P378-1}{P370\,+\,\hskip\z@skip{}P378}{Bei Brand: #1 zum L\"o\allowhyphens{}schen verwenden.}%
-\mhchem@hp@ii{#3}{P370+P380-0}{P370\,+\,\hskip\z@skip{}P380}{Bei Brand: Umgebung r\"a\allowhyphens{}umen.}%
-\mhchem@hp@ii{#3}{P370+P380+P375-0}{P370\,+\,\hskip\z@skip{}P380\,+\,\hskip\z@skip{}P375}{Bei Brand: Umgebung r\"a\allowhyphens{}umen. Wegen Explosionsgefahr Brand aus der Entfernung bek\"a\allowhyphens{}mpfen.}%
-\mhchem@hp@ii{#3}{P371-0}{P371}{Bei Gro\ss{}brand und gro\ss{}en Mengen:}%
-\mhchem@hp@ii{#3}{P371+P380+P375-0}{P371\,+\,\hskip\z@skip{}P380\,+\,\hskip\z@skip{}P375}{Bei Gro\ss{}brand und gro\ss{}en Mengen: Umgebung r\"a\allowhyphens{}umen. Wegen Explosionsgefahr Brand aus der Entfernung bek\"a\allowhyphens{}mpfen.}%
-\mhchem@hp@ii{#3}{P372-0}{P372}{Explosionsgefahr bei Brand.}%
-\mhchem@hp@ii{#3}{P373-0}{P373}{KEINE Brandbek\"a\allowhyphens{}mpfung, wenn das Feuer explosive Stoffe/\hskip\z@skip{}Gemische/\hskip\z@skip{}Erzeugnisse erreicht.}%
-\mhchem@hp@ii{#3}{P374-0}{P374}{Brandbek\"a\allowhyphens{}mpfung mit \"u\allowhyphens{}blichen Vorsichtsma\ss{}nahmen aus angemessener Entfernung.}%
-\mhchem@hp@ii{#3}{P375-0}{P375}{Wegen Explosionsgefahr Brand aus der Entfernung bek\"a\allowhyphens{}mpfen.}%
-\mhchem@hp@ii{#3}{P376-0}{P376}{Undichtigkeit beseitigen, wenn gefahrlos m\"o\allowhyphens{}glich.}%
-\mhchem@hp@ii{#3}{P377-0}{P377}{Brand von ausstr\"o\allowhyphens{}mendem Gas: Nicht l\"o\allowhyphens{}schen, bis Undichtigkeit gefahrlos beseitigt werden kann.}%
-\mhchem@hp@ii{#3}{P378.0-0}{P378}{\textellipsis{} zum L\"o\allowhyphens{}schen verwenden.}%
-\mhchem@hp@ii{#3}{P378-error}{P378}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P378-1}{P378}{#1 zum L\"o\allowhyphens{}schen verwenden.}%
-\mhchem@hp@ii{#3}{P380-0}{P380}{Umgebung r\"a\allowhyphens{}umen.}%
-\mhchem@hp@ii{#3}{P381-0}{P381}{Alle Z\"u\allowhyphens{}ndquellen entfernen, wenn gefahrlos m\"o\allowhyphens{}glich.}%
-\mhchem@hp@ii{#3}{P390-0}{P390}{Versch\"u\allowhyphens{}ttete Mengen aufnehmen, um Materialsch\"a\allowhyphens{}den zu vermeiden.}%
-\mhchem@hp@ii{#3}{P391-0}{P391}{Versch\"u\allowhyphens{}ttete Mengen aufnehmen.}%
-\mhchem@hp@ii{#3}{P401.0-0}{P401}{\textellipsis{} aufbewahren.}%
-\mhchem@hp@ii{#3}{P401-error}{P401}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P401-1}{P401}{#1 aufbewahren.}%
-\mhchem@hp@ii{#3}{P402-0}{P402}{An einem trockenen Ort aufbewahren.}%
-\mhchem@hp@ii{#3}{P402+P404-0}{P402\,+\,\hskip\z@skip{}P404}{In einem geschlossenen Beh\"a\allowhyphens{}lter an einem trockenen Ort aufbewahren.}%
-\mhchem@hp@ii{#3}{P403-0}{P403}{An einem gut bel\"u\allowhyphens{}fteten Ort aufbewahren.}%
-\mhchem@hp@ii{#3}{P403+P233-0}{P403\,+\,\hskip\z@skip{}P233}{Beh\"a\allowhyphens{}lter dicht verschlossen an einem gut bel\"u\allowhyphens{}fteten Ort aufbewahren.}%
-\mhchem@hp@ii{#3}{P403+P235-0}{P403\,+\,\hskip\z@skip{}P235}{K\"u\allowhyphens{}hl an einem gut bel\"u\allowhyphens{}fteten Ort aufgewahren.}%
-\mhchem@hp@ii{#3}{P404-0}{P404}{In einem geschlossenen Beh\"a\allowhyphens{}lter aufbewahren.}%
-\mhchem@hp@ii{#3}{P405-0}{P405}{Unter Verschluss aufbewahren.}%
-\mhchem@hp@ii{#3}{P406.0-0}{P406}{In korrosionsbest\"a\allowhyphens{}ndigem/\hskip\z@skip{}\textellipsis{} Beh\"a\allowhyphens{}lter mit korrosionsbest\"a\allowhyphens{}ndiger Auskleidung aufbewah- ren.}%
-\mhchem@hp@ii{#3}{P406-error}{P406}{\PackageError{hpstatement}{Selection or argument missing.\MessageBreak This statement has a mandatory selection.\MessageBreak Please append .1, .2, ... to the number to make a\MessageBreak selection. Or supply a text as argument with [].\MessageBreak Or use .0 for the original form}{}}%
-\mhchem@hp@ii{#3}{P406-1}{P406}{In #1 Beh\"a\allowhyphens{}lter mit korrosionsbest\"a\allowhyphens{}ndiger Auskleidung aufbewah- ren.}%
-\mhchem@hp@ii{#3}{P406.1-0}{P406}{In korrosionsbest\"a\allowhyphens{}ndigem Beh\"a\allowhyphens{}lter mit korrosionsbest\"a\allowhyphens{}ndiger Auskleidung aufbewah- ren.}%
-\mhchem@hp@ii{#3}{P407-0}{P407}{Luftspalt zwischen Stapeln/\hskip\z@skip{}Paletten lassen.}%
-\mhchem@hp@ii{#3}{P410-0}{P410}{Vor Sonnenbestrahlung sch\"u\allowhyphens{}tzen.}%
-\mhchem@hp@ii{#3}{P410+P403-0}{P410\,+\,\hskip\z@skip{}P403}{Vor Sonnenbestrahlung gesch\"u\allowhyphens{}tzt an einem gut bel\"u\allowhyphens{}fteten Ort aufbewahren.}%
-\mhchem@hp@ii{#3}{P410+P412-0}{P410\,+\,\hskip\z@skip{}P412}{Vor Sonnenbestrahlung sch\"u\allowhyphens{}tzen und nicht Temperaturen von mehr als 50\textdegree{}C aussetzen.}%
-\mhchem@hp@ii{#3}{P411.0-0}{P411}{Bei Temperaturen von nicht mehr als \textellipsis{}\textdegree{}C/\hskip\z@skip{}\textellipsis{}aufbewahren.}%
-\mhchem@hp@ii{#3}{P411-error}{P411}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P411-1}{P411}{Bei Temperaturen von nicht mehr als #1 aufbewahren.}%
-\mhchem@hp@ii{#3}{P411+P235.0-0}{P411\,+\,\hskip\z@skip{}P235}{K\"u\allowhyphens{}hl und bei Temperaturen von nicht mehr als \textellipsis{}\textdegree{}C aufbewahren.}%
-\mhchem@hp@ii{#3}{P411+P235-error}{P411\,+\,\hskip\z@skip{}P235}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P411+P235-1}{P411\,+\,\hskip\z@skip{}P235}{K\"u\allowhyphens{}hl und bei Temperaturen von nicht mehr als #1 aufbewahren.}%
-\mhchem@hp@ii{#3}{P412-0}{P412}{Nicht Temperaturen von mehr als 50\textdegree{}C aussetzen.}%
-\mhchem@hp@ii{#3}{P413.0-0}{P413}{Sch\"u\allowhyphens{}ttgut in Mengen von mehr als \textellipsis{}\,kg bei Temperaturen von nicht mehr als \textellipsis{}\textdegree{}C aufbewahren.}%
-\mhchem@hp@ii{#3}{P413-error}{P413}{\PackageError{hpstatement}{This statement has two mandatory text arguments.\MessageBreak Please specify them with [][]}{}}%
-\mhchem@hp@ii{#3}{P413-2}{P413}{Sch\"u\allowhyphens{}ttgut in Mengen von mehr als #1 bei Temperaturen von nicht mehr als #2 aufbewahren.}%
-\mhchem@hp@ii{#3}{P420-0}{P420}{Von anderen Materialien entfernt aufbewahren.}%
-\mhchem@hp@ii{#3}{P422.0-0}{P422}{Inhalt in/\hskip\z@skip{}unter \textellipsis{} aufbewahren}%
-\mhchem@hp@ii{#3}{P422-error}{P422}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P422-1}{P422}{Inhalt #1 aufbewahren}%
-\mhchem@hp@ii{#3}{P501.0.0-0}{P501}{Inhalt/\hskip\z@skip{}Beh\"a\allowhyphens{}lter \textellipsis{} zuf\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P501.0-error}{P501}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P501.0-1}{P501}{Inhalt/\hskip\z@skip{}Beh\"a\allowhyphens{}lter #1 zuf\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P501-error}{P501}{\PackageError{hpstatement}{Selection and mandatory argument missing.\MessageBreak This statement has a mandatory selection. Please\MessageBreak append .1 or .2 to the number (or use .0 for the\MessageBreak original form). Also, supply an argument with []\MessageBreak (or use an additional .0 for the original\MessageBreak form)}{}}%
-\mhchem@hp@ii{#3}{P501.1.0-0}{P501}{Inhalt \textellipsis{} zuf\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P501.1-error}{P501}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P501.1-1}{P501}{Inhalt #1 zuf\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P501.2.0-0}{P501}{Beh\"a\allowhyphens{}lter \textellipsis{} zuf\"u\allowhyphens{}hren.}%
-\mhchem@hp@ii{#3}{P501.2-error}{P501}{\PackageError{hpstatement}{One argument required.\MessageBreak This statement has a mandatory text argument.\MessageBreak Please specify one with []. Or use .0 for the\MessageBreak original form}{}}%
-\mhchem@hp@ii{#3}{P501.2-1}{P501}{Beh\"a\allowhyphens{}lter #1 zuf\"u\allowhyphens{}hren.}%
-}
diff --git a/Master/texmf-dist/tex/latex/mhchem/mhchem.sty b/Master/texmf-dist/tex/latex/mhchem/mhchem.sty
index 9f8d8f2fc34..949bd97f148 100644
--- a/Master/texmf-dist/tex/latex/mhchem/mhchem.sty
+++ b/Master/texmf-dist/tex/latex/mhchem/mhchem.sty
@@ -1,5 +1,5 @@
%% mhchem.sty
-%% Copyright 2004-2013 Martin Hensel
+%% Copyright 2004-2014 Martin Hensel
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c
@@ -27,7 +27,7 @@
% This work consists of all files listed in manifest.txt.
%
%
-\ProvidesPackage{mhchem}[2013/06/17 v3.12 for typesetting chemical formulae]
+\ProvidesPackage{mhchem}[2014/02/01 v3.15 for typesetting chemical formulae]
\RequirePackage{ifthen}
\RequirePackage{calc}[1998/07/07]
\RequirePackage{twoopt}
@@ -35,6 +35,7 @@
\RequirePackage{keyval}
\RequirePackage{graphics}
\RequirePackage{pdftexcmds}
+\RequirePackage{expl3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% misc %%%%%%%%%%
@@ -52,7 +53,7 @@
\newcommand*{\cee}[1]{%
\def\mhchem@ce@out{}%
- {\mhchem@cee@i#1\mhchem@empty\\\mhchem@END\mhchem@ENDEND}%
+ {\mhchem@cee@i#1\\\mhchem@END\mhchem@ENDEND}%
\ensuremath{%
\mhchem@ce@out%
}%
@@ -793,10 +794,16 @@
\def\mhchem@bond#1{%
\ifnum\pdf@strcmp{#1}{-}=0%
\sbond%
+ \else\ifnum\pdf@strcmp{#1}{1}=0%
+ \sbond%
\else\ifnum\pdf@strcmp{#1}{=}=0%
\dbond%
+ \else\ifnum\pdf@strcmp{#1}{2}=0%
+ \dbond%
\else\ifnum\pdf@strcmp{#1}{##}=0%
\tbond%
+ \else\ifnum\pdf@strcmp{#1}{3}=0%
+ \tbond%
\else\ifnum\pdf@strcmp{#1}{~}=0%
\mhchem@setbondwidth%
\mhchem@halfbond%
@@ -829,944 +836,1039 @@
{\leftarrow}%
\else
\PackageError{mhchem}{Unknown bond type in \string\bond (#1)}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% loop helper %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ExplSyntaxOn
+
+\msg_new:nnn { mhchem } { cf / unexpected-input } { Assertion~failed:~Unexpected~input~character.~You~found~a~bug.~Please~contact~the~author. }
+\msg_new:nnn { mhchem } { cf / unexpected-state } { Assertion~failed:~Unexpected~internal~state~'#1'.~You~found~a~bug.~Please~contact~the~author. }
+\msg_new:nnn { mhchem } { cf / unexpected-two-superscripts } { Assertion~failed:~Two~superscripts.~You~entered~an~invalid~formula.~Or~you~found~a~bug,~in~which~case~you~should~contact~the~author. }
+
+\cs_generate_variant:Nn \peek_catcode_remove:NTF { oTF }
+\cs_generate_variant:Nn \peek_catcode:NTF { oTF }
+\cs_generate_variant:Nn \str_case:nnn { Vnn }
+
+\cs_new:Npn \__mhchem_loopHelper_appendNextToken:NNn #1#2#3
+ {
+ \tl_put_right:Nn #1 { #3 }
+ #2
+ }
+\cs_new:Npn \__mhchem_loopHelper_appendNextGroup:NNn #1#2#3
+ {
+ \tl_put_right:Nn #1 { { #3 } }
+ #2
+ }
+\cs_new:Npn \__mhchem_loopHelper_appendMath:NNw #1#2#3$
+ {
+ \tl_put_right:Nn #1 { \text { \ensuremath { #3 } } }
+ #2
+ }
+\cs_new:Npn \__mhchem_loopHelper_appendMathAsGroup:NNw #1#2#3$
+ {
+ \tl_put_right:Nn #1 { \text { \ensuremath { #3 } } }
+ #2
+ }
+\cs_new:Npn \__mhchem_loopHelper_appendNextTokenAsMathrm:NNn #1#2#3
+ {
+ \tl_put_right:Nn #1 { \ensuremath { \mathrm{ #3 } } }
+ #2
+ }
+\cs_new:Npn \__mhchem_loopHelper_useNone:Nn #1#2
+ {
+ #1
+ }
+\cs_new:Npn \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn #1#2#3
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_put_right:Nn \__mhchem_cf_result_tl { \mhchem@mathOrText{#3} }
+ \tl_set:Nn \__mhchem_cf_state_tl { #1 }
+ #2
+ }
+\cs_new:Npn \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn #1#2#3#4
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_put_right:Nn \__mhchem_cf_result_tl { #1 }
+ \tl_set:Nn \__mhchem_cf_state_tl { #2 }
+ #3
+ }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% \cf %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newtoks\mhchem@cf@result%
\newcommand*\mhchem@cf[2][]{%
- \bgroup%
- \def\sbond{{\ensuremath{-}}}%
- \ifnum 2=\mhchem@option@version%
- \let\bond\sbond%
- \else\ifnum 2<\mhchem@option@version%
- \DeclareRobustCommand*\bond{\mhchem@bond}%
- \fi\fi%
- \DeclareRobustCommand\dbond{\rlap{\protect\raisebox{.2ex}{\sbond}}\protect\raisebox{-.2ex}{\sbond}}%
- \DeclareRobustCommand\tbond{\rlap{\protect\raisebox{.4ex}{\sbond}}%
- \rlap{\sbond}\protect\raisebox{-.4ex}{\sbond}}%
- \def\hyphen{\mhchem@hyphen}%
- \ifmmode\else\def\mhchem@option@alwaystextmode{1}\fi%
- \if 1\mhchem@option@alwaystextmode%
- \edef\mhchem@mathOrText##1{\noexpand\text{##1}}%
- \edef\mhchem@mathOrText@ii##1##2{##2}%
- \else%
- \ifnum 1<\mhchem@option@version%
- \edef\mhchem@mathOrText##1{\ifmmode\noexpand\mhchem@option@mathFont{##1}\else\noexpand\text{##1}\fi}%
- \edef\mhchem@mathOrText@ii##1##2{\ifmmode\noexpand\mhchem@option@mathFont{##1}\else ##2\fi}%
- \else%
- \edef\mhchem@mathOrText##1{\ifmmode ##1\else\noexpand\text{##1}\fi}%
- \edef\mhchem@mathOrText@ii##1##2{\ifmmode ##1\else ##2\fi}%
- \fi%
- \fi%
- \ifmmode\else\mhchem@option@textFont\fi%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@startedWithBond{0}%
- \mhchem@cf@outputReset%
- \mhchem@cf@result={}%
- \mhchem@cf@continue#2\mhchem@END%
- \ifthenelse{\equal{#1}{}}%
- {%
- \ensuremath{\the\mhchem@cf@result}%
- }{%
- \ensuremath{\overset{#1}{\the\mhchem@cf@result}}%
- }%
- \egroup%
-}%
-\def\mhchem@cf@i{%
- \ifx\mhchem@END\mhchem@cf@lookahead%
- \if -\mhchem@cf@state%
- \ifnum 4>\mhchem@option@version%
- \mhchem@appendToks{\mhchem@cf@sup}{-}%
- \else%
- \if 0\mhchem@cf@startedWithBond%
- \mhchem@appendToks{\mhchem@cf@sup}{-}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\sbond}%
- \fi%
- \fi%
- \else\if 1\mhchem@cf@state%
- \def\mhchem@cf@state{9}%
- \fi\fi%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \let\mhchem@cf@action\mhchem@gobble%
- \else\ifx\relax\mhchem@cf@lookahead%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\ifx\protect\mhchem@cf@lookahead%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \if -\mhchem@cf@state%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\sbond}%
- \def\mhchem@cf@state{+}%
- \fi%
- \if s\mhchem@cf@state%
- \ifx \{\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx \}\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@equal@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\tbond}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@super\mhchem@cf@lookahead%
- \def\mhchem@cf@state{p}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@active\mhchem@cf@lookahead%
- \def\mhchem@cf@state{p}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if _\mhchem@cf@lookahead%
- \def\mhchem@cf@state{q}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if `\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{P}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if ,\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{Q}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{1}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{{,}}}%
- \fi%
- \else\if .\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else%
- \def\mhchem@cf@state{1}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \fi%
- \else\if +\mhchem@cf@lookahead%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\expandafter\ifx\mhchem@char@hyphen@other\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \def\mhchem@cf@startedWithBond{1}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \def\mhchem@cf@startedWithBond{1}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\if |\mhchem@cf@lookahead%
- \let\mhchem@cf@action\mhchem@cf@switchState%
- \else\if (\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if )\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if [\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if ]\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if *\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifcat a\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifcat 1\mhchem@cf@lookahead%
- \def\mhchem@cf@state{1}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{1}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@amount}}%
- \fi%
- \else\if $\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
- \else%
- \def\mhchem@cf@state{1}%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@amount}}%
- \fi%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \else\if C\mhchem@cf@state%
- \if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi%
- \def\mhchem@cf@state{c}%
- \else\if c\mhchem@cf@state%
- \if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@continue}%
- \fi%
- \else\if 1\mhchem@cf@state%
- \ifx \{\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx \}\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@equal@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@super\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{p}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{p}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if _\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{q}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if `\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{E}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \fi%
- \else\if ,\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{{,}}}%
- \else\if .\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \else\if |\mhchem@cf@lookahead%
- \PackageWarning{mhchem}{The symbol | is not allowed here}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if (\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if )\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if [\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if ]\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if *\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifcat a\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifcat 1\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@amount}}%
- \fi%
- \else\if $\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@amount}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \else\if a\mhchem@cf@state%
- \ifx \{\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx \}\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@equal@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@super\mhchem@cf@lookahead%
- \def\mhchem@cf@state{e}%
- \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
- \mhchem@appendToks{\mhchem@cf@sup}{,}%
- \fi%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@active\mhchem@cf@lookahead%
- \def\mhchem@cf@state{e}%
- \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
- \mhchem@appendToks{\mhchem@cf@sup}{,}%
- \fi%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if _\mhchem@cf@lookahead%
- \def\mhchem@cf@state{f}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if `\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{E}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if ,\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@element}{,}}%
- \fi%
- \else\if .\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if +\mhchem@cf@lookahead%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\expandafter\ifx\mhchem@char@hyphen@other\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\if |\mhchem@cf@lookahead%
- \PackageWarning{mhchem}{The symbol | is not allowed here}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if (\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if )\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if [\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if ]\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if *\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifcat a\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifcat 1\mhchem@cf@lookahead%
- \def\mhchem@cf@state{2}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroupAsMath{%
- \mhchem@cf@element}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
- \fi%
- \else\if $\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \else\if 2\mhchem@cf@state%
- \ifx \{\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx \}\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@equal@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@super\mhchem@cf@lookahead%
- \def\mhchem@cf@state{e}%
- \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
- \mhchem@appendToks{\mhchem@cf@sup}{,}%
- \fi%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@active\mhchem@cf@lookahead%
- \def\mhchem@cf@state{e}%
- \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
- \mhchem@appendToks{\mhchem@cf@sup}{,}%
- \fi%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if _\mhchem@cf@lookahead%
- \def\mhchem@cf@state{f}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if `\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{E}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \fi%
- \else\if ,\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{F}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{,}}%
- \fi%
- \else\if .\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \fi%
- \else\if +\mhchem@cf@lookahead%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\expandafter\ifx\mhchem@char@hyphen@other\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\if |\mhchem@cf@lookahead%
- \PackageWarning{mhchem}{The symbol | is not allowed here}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if (\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if )\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if [\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if ]\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if *\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifcat a\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifcat 1\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
- \fi%
- \else\if $\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \else\if e\mhchem@cf@state%
- \def\mhchem@cf@state{+}%
- \if $\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@sup}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \fi%
- \else\if f\mhchem@cf@state%
- \def\mhchem@cf@state{+}%
- \if $\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@amount}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \fi%
- \else\if p\mhchem@cf@state%
- \def\mhchem@cf@state{*}%
- \if $\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@presup}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@presup}}%
- \fi%
- \else\if q\mhchem@cf@state%
- \def\mhchem@cf@state{*}%
- \if $\mhchem@cf@lookahead%
- \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@presub}}%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@presub}}%
- \fi%
- \else\if E\mhchem@cf@state%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{%
- \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@sup}}%
- \else\if F\mhchem@cf@state%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{%
- \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@amount}}%
- \else\if P\mhchem@cf@state%
- \def\mhchem@cf@state{*}%
- \def\mhchem@cf@action{%
- \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@presup}}%
- \else\if Q\mhchem@cf@state%
- \def\mhchem@cf@state{*}%
- \def\mhchem@cf@action{%
- \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@presub}}%
- \else\if +\mhchem@cf@state%
- \ifx \{\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx \}\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@equal@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@super\mhchem@cf@lookahead%
- \def\mhchem@cf@state{e}%
- \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
- \mhchem@appendToks{\mhchem@cf@sup}{,}%
- \fi%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@active\mhchem@cf@lookahead%
- \def\mhchem@cf@state{e}%
- \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
- \mhchem@appendToks{\mhchem@cf@sup}{,}%
- \fi%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if _\mhchem@cf@lookahead%
- \def\mhchem@cf@state{f}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if `\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{E}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if ,\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{F}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@element}{,}}%
- \fi%
- \else\if .\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if +\mhchem@cf@lookahead%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\expandafter\ifx\mhchem@char@hyphen@other\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@cf@lookahead%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@cf@state{-}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{+}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
- \fi%
- \else\if |\mhchem@cf@lookahead%
- \PackageWarning{mhchem}{The symbol | is not allowed here}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if (\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if )\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if [\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if ]\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if *\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifcat a\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifcat 1\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
- \fi%
- \else\if $\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \else\if *\mhchem@cf@state%
- \ifx \{\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifx \}\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@equal@active\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\dbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@appendToks{\mhchem@cf@result}{\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@super\mhchem@cf@lookahead%
- \def\mhchem@cf@state{p}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\expandafter\ifx\mhchem@char@caret@active\mhchem@cf@lookahead%
- \def\mhchem@cf@state{p}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if _\mhchem@cf@lookahead%
- \def\mhchem@cf@state{q}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if `\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{P}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if ,\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \def\mhchem@cf@state{Q}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@element}{,}}%
- \fi%
- \else\if .\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \fi%
- \else\if |\mhchem@cf@lookahead%
- \PackageWarning{mhchem}{The symbol | is not allowed here}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if (\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if )\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if [\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if ]\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if *\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
- {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifcat a\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifcat 1\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{1}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
- \else\if $\mhchem@cf@lookahead%
- \def\mhchem@cf@state{a}%
- \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
- \else%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{s}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \else%
- \PackageWarning{mhchem}{Assertion failed: unknown internal state \mhchem@cf@state}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
- \fi\fi\fi%
- \mhchem@cf@action%
-}%
-\def\mhchem@cf@continue{%
- \futurelet\mhchem@cf@lookahead\mhchem@cf@i%
-}%
-\def\mhchem@cf@gobbleNextToken#1{%
- \mhchem@cf@continue%
-}%
-\def\mhchem@cf@appendNextToken#1#2{%
- \mhchem@appendToks{#1}{#2}%
- \mhchem@cf@continue%
+ \__mhchem_cf{#1}{#2}%
}
-\def\mhchem@cf@appendNextTokenAsMathrm#1#2{%
- \mhchem@appendToks{#1}{\ensuremath{\mathrm{#2}}}%
- \mhchem@cf@continue%
-}
-\def\mhchem@cf@appendNextGroup#1#2{%
- \mhchem@appendToks{#1}{{#2}}%
- \mhchem@cf@continue%
-}
-\def\mhchem@cf@appendNextGroupAsMath#1#2{%
- \mhchem@appendToks{#1}{\text{\ensuremath{#2}}}%
- \mhchem@cf@continue%
-}
-\def\mhchem@cf@append#1#2#3{%
- \mhchem@appendToks{#1}{#2}%
- \mhchem@cf@continue%
-}%
-\def\mhchem@cf@appendMath#1#2#3${%
- \mhchem@appendToks{#1}{\text{\ensuremath{#3}}}%
- \mhchem@cf@continue%
-}%
-\def\mhchem@cf@appendMathAsGroup#1#2#3${%
- \mhchem@appendToks{#1}{{\text{\ensuremath{#3}}}}%
- \mhchem@cf@continue%
-}%
+\tl_new:N \__mhchem_cf_state_tl
+\bool_new:N \__mhchem_cf_startedWithBond_bool
+\bool_new:N \__mhchem_cf_cfActive_bool
+\bool_set_false:N \__mhchem_cf_cfActive_bool
+\int_new:N \__mhchem_option_version_int
+\cs_new:Npn \__mhchem_cf #1#2
+ {
+ \group_begin:
+ \int_set:Nn \__mhchem_option_version_int { \mhchem@option@version }
+ \def\sbond{{\ensuremath{-}}}%
+ \ifnum 2=\mhchem@option@version%
+ \let\bond\sbond%
+ \else\ifnum 2<\mhchem@option@version%
+ \DeclareRobustCommand*\bond{\mhchem@bond}%
+ \fi\fi%
+ \DeclareRobustCommand\dbond{\rlap{\protect\raisebox{.2ex}{\sbond}}\protect\raisebox{-.2ex}{\sbond}}%
+ \DeclareRobustCommand\tbond{\rlap{\protect\raisebox{.4ex}{\sbond}}%
+ \rlap{\sbond}\protect\raisebox{-.4ex}{\sbond}}%
+ \def\hyphen{\mhchem@hyphen}%
+ \bool_if:NF \__mhchem_cf_cfActive_bool
+ {
+ \bool_set_true:N \__mhchem_cf_cfActive_bool
+ \mode_if_math:F
+ {
+ \def\mhchem@option@alwaystextmode{1}
+ \mhchem@option@textFont
+ }
+ \str_if_eq:nnTF { 1 } { \mhchem@option@alwaystextmode }
+ {
+ \cs_set:Npx \mhchem@mathOrText ##1 { \exp_not:N \text{##1} }
+ \cs_set:Npx \mhchem@mathOrText@ii ##1##2 { ##2 }
+ }
+ {
+ \int_compare:nTF { 1 < \mhchem@option@version }
+ {
+ \cs_set:Npx \mhchem@mathOrText ##1
+ {
+ \mode_if_math:TF { \exp_not:N \mhchem@option@mathFont{##1} } { \exp_not:N \text{##1} }
+ }
+ \cs_set:Npx \mhchem@mathOrText@ii ##1##2
+ {
+ \mode_if_math:TF { \exp_not:N \mhchem@option@mathFont{##1} } { ##2 }
+ }
+ }
+ {
+ \cs_set:Npx \mhchem@mathOrText ##1
+ {
+ \mode_if_math:TF { ##1 } { \exp_not:N \text{##1} }
+ }
+ \cs_set:Npx \mhchem@mathOrText@ii ##1##2
+ {
+ \mode_if_math:TF { ##1 } { ##2 }
+ }
+ }
+ }
+ }
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \bool_set_false:N \__mhchem_cf_startedWithBond_bool
+ \__mhchem_cf_resetOutput:
+ \tl_clear_new:N \__mhchem_cf_result_tl
+ \__mhchem_cf_loop: #2 \q_recursion_stop
+ \str_if_eq:nnTF {#1} {}
+ { \ensuremath{\tl_use:N \__mhchem_cf_result_tl} }
+ { \ensuremath{\overset{#1}{\tl_use:N \__mhchem_cf_result_tl}} }
+ \bool_set_false:N \__mhchem_cf_cfActive_bool
+ \group_end:
+ }
+\cs_new:Nn \__mhchem_cf_loop:
+ {
+ \peek_meaning_remove:NTF \q_recursion_stop
+ {
+ \str_case:Vnn { \__mhchem_cf_state_tl }
+ {
+ { - }
+ {
+ \bool_if:NTF \__mhchem_cf_startedWithBond_bool
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_put_right:Nn \__mhchem_cf_result_tl {\sbond}
+ }
+ { \tl_put_right:Nn \__mhchem_cf_sup_tl {-} }
+ }
+ { 1 }
+ { \tl_set:Nn \__mhchem_cf_state_tl {9} }
+ }
+ {}
+ \__mhchem_cf_outputAndReset:
+ }{
+ \peek_meaning:NTF \relax
+ { \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop: }{
+ \peek_meaning:NTF \protect
+ { \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop: }{
+ \str_case:Vnn { \__mhchem_cf_state_tl }
+ {
+ { - }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_put_right:Nn \__mhchem_cf_result_tl {\sbond}
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_cf_loop:
+ }
+ { s }
+ {
+ \peek_charcode:NTF -
+ {
+ \int_compare:nTF { 1 < \__mhchem_option_version_int }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { - }
+ \bool_set_true:N \__mhchem_cf_startedWithBond_bool
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \tl_put_right:Nn \__mhchem_cf_sup_tl { - }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF =
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \dbond }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ##
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \tbond }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ^
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { p }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF _
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { q }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF `
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { P }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF ,
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { Q }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { 1 }
+ \tl_put_right:Nn \__mhchem_cf_sub_tl { {,} }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF .
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF *
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF +
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF |
+ {
+ \let\mhchem@cf@action\mhchem@cf@switchState
+ }{
+ \peek_charcode:NTF (
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF )
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF [
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ]
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF \mhchem@macro
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { c }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF a
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn
+ \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF 1
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { 1 }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:oTF \c_group_begin_token
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { 1 }
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { 1 }
+ \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }
+ {
+ \msg_error:nnn { mhchem } { cf/unexpected-input }
+ }
+ }}}}}}}}}}}}}}}}}}}
+ }
+ { C }
+ {
+ \peek_catcode:oTF \c_group_begin_token
+ {
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ \tl_set:Nn \__mhchem_cf_state_tl { c }
+ }
+ { c }
+ {
+ \peek_catcode:oTF \c_group_begin_token
+ {
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_cf_loop:
+ }
+ }
+ { 1 }
+ {
+ \peek_charcode:NTF 1
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 2
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 3
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 4
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 5
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 6
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 7
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 8
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 9
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF 0
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF .
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \peek_charcode:NTF ,
+ {
+ \tl_put_right:Nn \__mhchem_cf_element_tl { {,} }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \peek_charcode:NTF /
+ { \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop: }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_cf_loop:
+ }}}}}}}}}}}}}
+ }
+ { a }
+ {
+ \peek_charcode:NTF -
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { - }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF =
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \dbond }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ##
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \tbond }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ^
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { k }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF _
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { f }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF `
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { E }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF ,
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { F }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { 1 }
+ \tl_put_right:Nn \__mhchem_cf_sub_tl { , }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF .
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF *
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF +
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF |
+ {
+ \PackageWarning{mhchem}{The symbol | is not allowed here}
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF (
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF )
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF [
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ]
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF \mhchem@macro
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { c }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF a
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF 1
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { 2 }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:oTF \c_group_begin_token
+ {
+ \__mhchem_cf_outputAndReset:
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \msg_error:nnn { mhchem } { cf/unexpected-input }
+ }}}}}}}}}}}}}}}}}}}}
+ }
+ { 2 }
+ {
+ \peek_charcode:NTF -
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { - }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF =
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_put_right:Nn \__mhchem_cf_result_tl {\dbond}
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ##
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_put_right:Nn \__mhchem_cf_result_tl {\tbond}
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ^
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { e }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF _
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { f }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF `
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { E }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF ,
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { F }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_put_right:Nn \__mhchem_cf_sub_tl { , }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF .
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF *
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF +
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF |
+ {
+ \PackageWarning{mhchem}{The symbol | is not allowed here}
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF (
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF )
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF [
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ]
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF \mhchem@macro
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { c }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF a
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF 1
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:oTF \c_group_begin_token
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }}}}}}}}}}}}}}}}}}}}
+ }
+ { e }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_loopHelper_appendMathAsGroup:NNw \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }
+ }
+ { k }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_loopHelper_appendMathAsGroup:NNw \__mhchem_cf_supA_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_supA_tl \__mhchem_cf_loop:
+ }
+ }
+ { f }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_loopHelper_appendMathAsGroup:NNw \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }
+ }
+ { p }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { * }
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_loopHelper_appendMathAsGroup:NNw \__mhchem_cf_presup_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_presup_tl \__mhchem_cf_loop:
+ }
+ }
+ { q }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { * }
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_loopHelper_appendMathAsGroup:NNw \__mhchem_cf_presub_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_presub_tl \__mhchem_cf_loop:
+ }
+ }
+ { E }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_loopHelper_appendNextTokenAsMathrm:NNn \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }
+ { F }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_loopHelper_appendNextTokenAsMathrm:NNn \__mhchem_cf_sub_tl \__mhchem_cf_loop:
+ }
+ { P }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { * }
+ \__mhchem_loopHelper_appendNextTokenAsMathrm:NNn \__mhchem_cf_presup_tl \__mhchem_cf_loop:
+ }
+ { Q }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { * }
+ \__mhchem_loopHelper_appendNextTokenAsMathrm:NNn \__mhchem_cf_presub_tl \__mhchem_cf_loop:
+ }
+ { + }
+ {
+ \peek_charcode:NTF -
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { - }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF =
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \dbond }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ##
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \tbond }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ^
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { e }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF _
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { f }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF `
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { E }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF ,
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { F }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \tl_put_right:Nn \__mhchem_cf_element_tl { , }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF .
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF *
+ {
+ \__mhchem_loopHelper_outputAndReset_appendToResult_setState_useNone:NNn
+ { \mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot} }
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF +
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { + }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_sup_tl \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF |
+ {
+ \PackageWarning{mhchem}{The symbol | is not allowed here}
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF (
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF )
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF [
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { s }
+ \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF ]
+ {
+ \__mhchem_loopHelper_outputAndReset_appendNextTokenToResult_setState:NNn
+ { a }
+ \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF \mhchem@macro
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { c }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF a
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:NTF 1
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }{
+ \peek_catcode:oTF \c_group_begin_token
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_catcode_remove:oTF \c_math_toggle_token
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }}}}}}}}}}}}}}}}}}}}
+ }
+ { * }
+ {
+ \peek_charcode:NTF ^
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { p }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF _
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { q }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }{
+ \peek_charcode:NTF `
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { P }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_element_tl \__mhchem_cf_loop:
+ }
+ }{
+ \peek_charcode:NTF ,
+ {
+ \int_compare:nTF { 4 > \mhchem@option@version }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { Q }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ {
+ \tl_set:Nn \__mhchem_cf_state_tl { a }
+ \tl_put_right:Nn \__mhchem_cf_element_tl { , }
+ \__mhchem_loopHelper_useNone:Nn \__mhchem_cf_loop:
+ }
+ }
+ {
+ \__mhchem_cf_outputAndReset:
+ \tl_set:Nn \__mhchem_cf_state_tl { s }
+ \__mhchem_cf_loop:
+ }}}}
+ }
+ }
+ {
+ \msg_error:nnx { mhchem } { cf / unexpected-state } { \__mhchem_cf_state_tl }
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_result_tl \__mhchem_cf_loop:
+ }
+ }}}
+ }
\def\mhchem@cf@switchState#1#2|{%
\ifthenelse{\equal{1}{#2}}{%
- \def\mhchem@cf@state{a}%
+ \tl_set:Nn \__mhchem_cf_state_tl { a }%
}{%
\PackageWarning{mhchem}{Command |#2| unknown}%
}%
\mhchem@cf@continue%
}%
-\newtoks\mhchem@cf@element%
-\newtoks\mhchem@cf@amount%
-\newtoks\mhchem@cf@sup%
-\newtoks\mhchem@cf@presub%
-\newtoks\mhchem@cf@presup%
-\def\mhchem@cf@output{%
- \if s\mhchem@cf@state%
- \else\if 1\mhchem@cf@state%
- \noexpand\mhchem@mathOrText{\noexpand\mhchem@cf@frac\the\mhchem@cf@amount/\noexpand\mhchem@END{\mhchem@option@skipAfterFracAmount}}%
- \else\if 9\mhchem@cf@state%
- \noexpand\mhchem@mathOrText{\noexpand\mhchem@cf@frac\the\mhchem@cf@amount/\noexpand\mhchem@END{}}%
- \else%
- \if\mhchem@option@usenonsimultaneoussubsuperscripts 0\relax%
- \noexpand\mhchem@chemfive%
- {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presup}}%
- {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presub}}%
- {\the\mhchem@cf@element}%
- {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@amount}}%
- {\noexpand\mhchem@cf@replaceMathMinusDot{\the\mhchem@cf@sup}}%
- {}%
- \else%
- \noexpand\mhchem@chemfive%
- {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presup}}%
- {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presub}}%
- {\the\mhchem@cf@element}%
- {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@amount}}%
- {}%
- {\noexpand\mhchem@cf@replaceMathMinusDot{\the\mhchem@cf@sup}}%
- \fi%
- \fi\fi\fi%
+\tl_new:N \__mhchem_cf_presup_tl
+\tl_new:N \__mhchem_cf_presub_tl
+\tl_new:N \__mhchem_cf_element_tl
+\tl_new:N \__mhchem_cf_supA_tl
+\tl_new:N \__mhchem_cf_sub_tl
+\tl_new:N \__mhchem_cf_sup_tl
+\cs_new:Nn \__mhchem_cf_output:
+ {
+ \str_case:Vnn { \__mhchem_cf_state_tl }
+ {
+ { s } { }
+ { 1 }
+ {
+ \tl_put_right:Nx \__mhchem_cf_result_tl
+ { \exp_not:N \mhchem@mathOrText { \exp_not:N \mhchem@cf@frac \exp_not:V \__mhchem_cf_element_tl / \exp_not:N \mhchem@END { \mhchem@option@skipAfterFracAmount } } } }
+ { 9 }
+ {
+ \tl_put_right:Nx \__mhchem_cf_result_tl
+ { \exp_not:N \mhchem@mathOrText { \exp_not:N \mhchem@cf@frac \exp_not:V \__mhchem_cf_element_tl / \exp_not:N \mhchem@END {} } }
+ }
+ }
+ {
+ \tl_if_empty:NTF \__mhchem_cf_sub_tl
+ {
+ \tl_put_right:NV \__mhchem_cf_supA_tl \__mhchem_cf_sup_tl
+ \tl_clear:N \__mhchem_cf_sup_tl
+ }
+ {
+ \tl_if_empty:NTF \__mhchem_cf_sup_tl
+ { }
+ {
+ \tl_if_empty:NTF \__mhchem_cf_supA_tl
+ { }
+ {
+ \msg_error:nnn { mhchem } { cf/unexpected-two-superscripts }
+ }
+ }
+ }
+ \tl_put_right:Nx \__mhchem_cf_result_tl
+ {
+ \exp_not:N \__mhchem_chemfive:nnnnnn
+ { \exp_not:N \__mhchem_cf_replaceMath:n { \exp_not:V \__mhchem_cf_presup_tl } }
+ { \exp_not:N \__mhchem_cf_replaceMath:n { \exp_not:V \__mhchem_cf_presub_tl } }
+ { \exp_not:V \__mhchem_cf_element_tl }
+ { \exp_not:N \__mhchem_cf_replaceMathMinusDot:n { \exp_not:V \__mhchem_cf_supA_tl } }
+ { \exp_not:N \__mhchem_cf_replaceMath:n { \exp_not:V \__mhchem_cf_sub_tl } }
+ { \exp_not:N \__mhchem_cf_replaceMathMinusDot:n { \exp_not:V \__mhchem_cf_sup_tl } }
+ }
+ }
+ }
+\cs_new:Npn \__mhchem_cf_output_aux:NV #1#2 {
+ #1 { #2 }
}
-\def\mhchem@cf@outputReset{%
- \mhchem@cf@element={}%
- \mhchem@cf@amount={}%
- \mhchem@cf@sup={}%
- \mhchem@cf@presub={}%
- \mhchem@cf@presup={}%
-}
-\def\mhchem@cf@outputAndReset#1{%
- \edef\mhchem@cf@outputAndReset@i{#1={\the#1\mhchem@cf@output}}%
- \mhchem@cf@outputAndReset@i%
- \mhchem@cf@outputReset%
-}
-
-
+\cs_new:Nn \__mhchem_cf_resetOutput:
+ {
+ \tl_clear:N \__mhchem_cf_presup_tl
+ \tl_clear:N \__mhchem_cf_presub_tl
+ \tl_clear:N \__mhchem_cf_element_tl
+ \tl_clear:N \__mhchem_cf_supA_tl
+ \tl_clear:N \__mhchem_cf_sub_tl
+ \tl_clear:N \__mhchem_cf_sup_tl
+ }
+\cs_new:Nn \__mhchem_cf_outputAndReset:
+ {
+ \__mhchem_cf_output:
+ \__mhchem_cf_resetOutput:
+ }
%%% frac
\def\mhchem@cf@frac#1/#2\mhchem@END#3{%
@@ -1786,152 +1888,137 @@
\def\mhchem@getlastchars#1#2\mhchem@ENDgetlastchars{#2}
%%% replaceMath
-\newtoks\mhchem@cf@replaceMath@result
-\newcommand\mhchem@cf@replaceMath[1]{%
- \mhchem@cf@replaceMath@result={}%
- \mhchem@cf@replaceMath@continue#1\mhchem@END%
- \the\mhchem@cf@replaceMath@result%
-}
-\def\mhchem@cf@replaceMath@i{%
- \ifx\mhchem@END\mhchem@cf@replaceMath@lookahead%
- \let\mhchem@cf@replaceMath@action\mhchem@gobble%
- \else\if\mhchem@char@lbrace\mhchem@cf@replaceMath@lookahead%
- \let\mhchem@cf@replaceMath@action\mhchem@cf@replaceMath@appendNextGroup%
- \else\if $\mhchem@cf@replaceMath@lookahead%
- \let\mhchem@cf@replaceMath@action\mhchem@cf@replaceMath@appendMath%
- \else%
- \let\mhchem@cf@replaceMath@action\mhchem@cf@replaceMath@appendNextToken%
- \fi\fi\fi%
- \mhchem@cf@replaceMath@action%
-}
-\def\mhchem@cf@replaceMath@continue{%
- \futurelet\mhchem@cf@replaceMath@lookahead\mhchem@cf@replaceMath@i%
-}
-\def\mhchem@cf@replaceMath@appendNextGroup#1{%
- \mhchem@appendToks{\mhchem@cf@replaceMath@result}{{#1}}%
- \mhchem@cf@replaceMath@continue%
-}
-\def\mhchem@cf@replaceMath@appendNextToken#1{%
- \mhchem@appendToks{\mhchem@cf@replaceMath@result}{#1}%
- \mhchem@cf@replaceMath@continue%
-}
-\def\mhchem@cf@replaceMath@appendMath#1#2${%
- \mhchem@appendToks{\mhchem@cf@replaceMath@result}{\text{\ensuremath{#2}}}%
- \mhchem@cf@replaceMath@continue%
-}
+\tl_new:N \__mhchem_cf_replaceMath_result_tl
+\cs_new:Npn \__mhchem_cf_replaceMath:n #1
+ {
+ \tl_clear:N \__mhchem_cf_replaceMath_result_tl
+ \__mhchem_cf_replaceMath_loop: #1 \q_recursion_stop
+ \__mhchem_cf_replaceMath_result_tl
+ }
+\cs_new:Nn \__mhchem_cf_replaceMath_loop:
+ {
+ \peek_meaning:NTF \q_recursion_stop
+ { \use_none:n }
+ {
+ \peek_catcode_remove:oTF \c_math_toggle_token % math $
+ { \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_replaceMath_result_tl \__mhchem_cf_replaceMath_loop: }
+ {
+ \peek_catcode:oTF \c_group_begin_token
+ { \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_replaceMath_result_tl \__mhchem_cf_replaceMath_loop: }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_replaceMath_result_tl \__mhchem_cf_replaceMath_loop:
+ }}}
+ }
%%% replaceMathMinusDot
-\newtoks\mhchem@cf@replaceMathMinusDot@result
-\newcommand\mhchem@cf@replaceMathMinusDot[1]{%
- \mhchem@cf@replaceMathMinusDot@result={}%
- \mhchem@cf@replaceMathMinusDot@continue#1\mhchem@END%
- \the\mhchem@cf@replaceMathMinusDot@result%
-}
-\def\mhchem@cf@replaceMathMinusDot@i{%
- \ifx\mhchem@END\mhchem@cf@replaceMathMinusDot@lookahead%
- \let\mhchem@cf@replaceMathMinusDot@action\mhchem@gobble%
- \else\expandafter\ifx\mhchem@char@hyphen@other\mhchem@cf@replaceMathMinusDot@lookahead\relax%
- \def\mhchem@cf@replaceMathMinusDot@action{\mhchem@cf@replaceMathMinusDot@append{\mhchem@mathOrText@ii{-}{\mhchem@option@textminus}}}%
- \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@cf@replaceMathMinusDot@lookahead\relax%
- \def\mhchem@cf@replaceMathMinusDot@action{\mhchem@cf@replaceMathMinusDot@append{\mhchem@mathOrText@ii{-}{\mhchem@option@textminus}}}%
- \else\if .\mhchem@cf@replaceMathMinusDot@lookahead\relax%
- \def\mhchem@cf@replaceMathMinusDot@action{\mhchem@cf@replaceMathMinusDot@append{\ensuremath{\textbf{\fontfamily{cmr}\selectfont\textperiodcentered}}}}%
- \else\if\mhchem@char@lbrace\mhchem@cf@replaceMathMinusDot@lookahead%
- \let\mhchem@cf@replaceMathMinusDot@action\mhchem@cf@replaceMathMinusDot@appendNextGroup%
- \else\if $\mhchem@cf@replaceMathMinusDot@lookahead%
- \let\mhchem@cf@replaceMathMinusDot@action\mhchem@cf@replaceMathMinusDot@appendMath%
- \else%
- \let\mhchem@cf@replaceMathMinusDot@action\mhchem@cf@replaceMathMinusDot@appendNextToken%
- \fi\fi\fi\fi\fi\fi%
- \mhchem@cf@replaceMathMinusDot@action%
-}
-\def\mhchem@cf@replaceMathMinusDot@continue{%
- \futurelet\mhchem@cf@replaceMathMinusDot@lookahead\mhchem@cf@replaceMathMinusDot@i%
-}
-\def\mhchem@cf@replaceMathMinusDot@append#1#2{%
- \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{#1}%
- \mhchem@cf@replaceMathMinusDot@continue%
-}
-\def\mhchem@cf@replaceMathMinusDot@appendNextGroup#1{%
- \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{{#1}}%
- \mhchem@cf@replaceMathMinusDot@continue%
-}
-\def\mhchem@cf@replaceMathMinusDot@appendNextToken#1{%
- \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{#1}%
- \mhchem@cf@replaceMathMinusDot@continue%
-}
-\def\mhchem@cf@replaceMathMinusDot@appendMath#1#2${%
- \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{\text{\ensuremath{#2}}}%
- \mhchem@cf@replaceMathMinusDot@continue%
-}%
+\tl_new:N \__mhchem_cf_replaceMathMinusDot_result_tl
+\cs_new:Npn \__mhchem_cf_replaceMathMinusDot:n #1
+ {
+ \tl_clear:N \__mhchem_cf_replaceMathMinusDot_result_tl
+ \__mhchem_cf_replaceMathMinusDot_loop: #1 \q_recursion_stop
+ \__mhchem_cf_replaceMathMinusDot_result_tl
+ }
+\cs_new:Nn \__mhchem_cf_replaceMathMinusDot_loop:
+ {
+ \peek_meaning:NTF \q_recursion_stop
+ { \use_none:n }
+ {
+ \peek_charcode_remove:NTF -
+ {
+ \tl_put_right:Nn \__mhchem_cf_replaceMathMinusDot_result_tl
+ { \mhchem@mathOrText@ii{-}{\mhchem@option@textminus} }
+ \__mhchem_cf_replaceMathMinusDot_loop:
+ }{
+ \peek_charcode_remove:NTF .
+ {
+ \tl_put_right:Nn \__mhchem_cf_replaceMathMinusDot_result_tl
+ { \ensuremath{\textbf{\fontfamily{cmr}\selectfont\textperiodcentered}} }
+ \__mhchem_cf_replaceMathMinusDot_loop:
+ }{
+ \peek_catcode_remove:oTF \c_math_toggle_token % math $
+ { \__mhchem_loopHelper_appendMath:NNw \__mhchem_cf_replaceMathMinusDot_result_tl \__mhchem_cf_replaceMathMinusDot_loop: }
+ {
+ \peek_catcode:oTF \c_group_begin_token
+ { \__mhchem_loopHelper_appendNextGroup:NNn \__mhchem_cf_replaceMathMinusDot_result_tl \__mhchem_cf_replaceMathMinusDot_loop: }
+ {
+ \__mhchem_loopHelper_appendNextToken:NNn \__mhchem_cf_replaceMathMinusDot_result_tl \__mhchem_cf_replaceMathMinusDot_loop:
+ }}}}}
+ }
%%%%%%%%%%%%%%%%%%%%%
%%% @chemfive %%%
%%%%%%%%%%%%%%%%%%%%%
-\newcommand*\mhchem@chemfive[6]{%
- {%
+\cs_new:Npn \__mhchem_chemfive:nnnnnn #1#2#3#4#5#6
+ {
\mhchem@prepostscript%
- [\mhchem@mathOrText{\smash[t]{2+}}]%
+ {\mhchem@mathOrText{\smash[t]{2+}}}%
+ {\mhchem@mathOrText{\smash[t]{2}}}%
{\mhchem@mathOrText{#1}}%
{\mhchem@mathOrText{#2}}%
{\mhchem@mathOrText@ii{\mhchem@option@mathFont{#3}}{\text{#3}}}%
{\mhchem@mathOrText{#4}}%
{\mhchem@mathOrText{#5}}%
{\mhchem@mathOrText{#6}}%
- }%
-}
+ }
+\ExplSyntaxOff
+
%%% @prepostscript
\newlength\mhchem@prepostscript@tmp@i%
\newlength\mhchem@prepostscript@tmp@ii%
-\newcommand*\mhchem@prepostscript[7][]{%
+\newcommand*\mhchem@prepostscript[8]{%
\m@th%
\ensuremath{%
- \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#2#3$}}%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#3#4$}}%
\ifdim\mhchem@prepostscript@tmp@i>0pt%
- \setlength{\mhchem@prepostscript@tmp@i}{\widthof{${}^{#2}$}}%
- \setlength{\mhchem@prepostscript@tmp@ii}{\widthof{${}_{#3}$}}%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{${}^{#3}$}}%
+ \setlength{\mhchem@prepostscript@tmp@ii}{\widthof{${}_{#4}$}}%
\ifdim\mhchem@prepostscript@tmp@i<\mhchem@prepostscript@tmp@ii%
\setlength{\mhchem@prepostscript@tmp@i}{\mhchem@prepostscript@tmp@ii}\fi%
- \vphantom{#4}%
+ \vphantom{#5}%
{}%
^{%
\mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{%
- \vphantom{#6#7}%
+ \vphantom{#6#8}%
\vphantom{#1}%
- #2%
+ #3%
}%
}%
_{%
\mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{%
- \vphantom{#5}%
- #3%
+ \vphantom{#7}%
+ \vphantom{#2}%
+ #4%
}%
}%
\mhchem@minispace%
\fi%
- #4%
- \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#5#6$}}%
+ #5%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#7#6$}}%
\ifdim\mhchem@prepostscript@tmp@i>0pt%
_{%
- \vphantom{#3}%
- #5%
+ \vphantom{#4}%
+ \vphantom{#2}%
+ #7%
}%
^{%
- \vphantom{#2#7}%
+ \vphantom{#3#8}%
\vphantom{#1}%
#6%
}%
\fi%
- \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#7$}}%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#8$}}%
\ifdim\mhchem@prepostscript@tmp@i>0pt%
\mhchem@minispace%
{}%
- _{\vphantom{#3#5}}%
+ _{%
+ \vphantom{#4#7}%
+ \vphantom{#2}%
+ }%
^{%
- \vphantom{#2#6}%
+ \vphantom{#3#6}%
\vphantom{#1}%
- #7%
+ #8%
}%
\fi%
}%
@@ -2009,10 +2096,6 @@
\define@key{mhchem}{minus-sidebearing-right}{\setlength\mhchem@option@minussidebearingright{#1}}
-% Replicate layout of MS Word (superscript after subscript, not over)
-\def\mhchem@option@usenonsimultaneoussubsuperscripts{0}%
-% There is no key defined for this option, as to promote good typographic conventions.
-
\mhchem@definearrows{font}
\define@key{mhchem}{arrows}{%
\ifthenelse{\equal{pgf}{#1} \or \equal{pgf-filled}{#1}}{%
@@ -2072,7 +2155,7 @@
\def\mhchem@option@version{3}%
\else\ifnum 4=\mhchem@option@version%
\PackageWarningNoLine{mhchem}{%
- You are using version 3.09 of mhchem. You entered\MessageBreak
+ You are using version 3.xx of mhchem. You entered\MessageBreak
the parameter version=4. This means, you are using\MessageBreak
some beta features of mhchem that are subject\MessageBreak
to change without notice}%
@@ -2086,4 +2169,4 @@
\newcommand*\mhchem@cmath[1]{\ensuremath{\text{\ensuremath{#1}}}}%
\newcommand*\cmath[1]{\mhchem@cmath{#1}}
\DeclareRobustCommand\cf[2][]{\mhchem@cf[#1]{#2}}
-\fi
+\fi \ No newline at end of file