summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/mhchem
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-06-24 23:45:09 +0000
committerKarl Berry <karl@freefriends.org>2013-06-24 23:45:09 +0000
commitcbcdf6683e607495b67f3ff5798ac79be73758a5 (patch)
tree1c0c485421ead5cca7dd0de66afdf39f416ed200 /Master/texmf-dist/tex/latex/mhchem
parent1aeba500ea40082474f38f3ec6d3fee4fd69de5e (diff)
mhchem (24jun13)
git-svn-id: svn://tug.org/texlive/trunk@30910 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/mhchem')
-rw-r--r--Master/texmf-dist/tex/latex/mhchem/hpstatement.sty547
-rw-r--r--Master/texmf-dist/tex/latex/mhchem/mhchem.sty1815
-rw-r--r--Master/texmf-dist/tex/latex/mhchem/rsphrase.sty78
3 files changed, 1484 insertions, 956 deletions
diff --git a/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty b/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty
new file mode 100644
index 00000000000..b800b17782b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/mhchem/hpstatement.sty
@@ -0,0 +1,547 @@
+%% hpstatement.sty
+%% Copyright 2004-2013 Martin Hensel
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c
+% which is included as lppl-1-3c.txt.
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is Martin Hensel.
+%
+% ( In order to fight spam, the maintainer's contact )
+% ( information is "encrypted" with ROT13. )
+% ( If you do not know ROT13 yet and have no tool for )
+% ( decryption, simply do an Internet search for "ROT13". )
+%
+% ,---[ ROT 13 ]---
+% | Gur Pheerag Znvagnvare bs guvf jbex vf Znegva Urafry
+% | jub pna or pbagnpgrq ivn
+% | zupurz@ZnegvaUrafry.qr
+% | be ivn znvy
+% | Znegva Urafry
+% | Cbfgfge. 20
+% | 09232 Unegznaafqbes
+% | Treznal
+% `----------
+%
+% This work consists of all files listed in manifest.txt.
+%
+%
+% Sources for the H and P statements are:
+%
+% - Regulation (EC) No 1272/2008 of the European Parliament and of the
+% Council of 16 December 2008 on classification, labelling and
+% packaging of substances and mixtures, amending and repealing
+% Directives 67/548/EEC and 1999/45/EC, and amending Regulation (EC)
+% No 1907/2006
+% http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2008:353:0001:1355:EN:PDF
+%
+% - a database with the extracted phrases, kindly provided by the author
+% of http://schoolscout24.de/cgi-bin/hpp/hppinput.cgi
+%
+% - Commission Regulation (EU) No 286/2011 of 10 March 2011 amending,
+% for the purposes of its adaptation to technical and scientific
+% progress, Regulation (EC) No 1272/2008 of the European Parliament
+% and of the Council on classification, labelling and packaging of
+% substances and mixtures
+% http://new.eur-lex.europa.eu/legal-content/EN/TXT/?qid=1369907325497\&uri=CELEX:32011R0286
+%
+% The statements themselves therefore are not subject to the LPPL.
+%
+%
+\ProvidesPackage{hpstatement}[2013/06/17 v1.00 H and P statements (mhchem bundle)]
+\RequirePackage{twoopt}
+\RequirePackage{ifthen}
+\RequirePackage{textcomp}
+
+\def\mhchem@hp@number{\PackageError{hpstatement}{%
+ You have to specify an H or P statement number\MessageBreak%
+ when you use \string\hpnumber\space for the first time\MessageBreak%
+ (e.g. \string\hpnumber{H200})}{}}
+\def\mhchem@hp@statement{\PackageError{hpstatement}{%
+ You have to specify an H or P statement number\MessageBreak%
+ when you use \string\hpstatement\space for the first time\MessageBreak%
+ (e.g. \string\hpstatement{H200})}{}}
+
+\newcommand*\mhchem@hp@iflanguagename[1]{%- from Heiko Oberdiek and Markus Kohm in de.comp.text.tex
+ \begingroup
+ \edef\x{#1}%
+ \ifnum\language=0
+ \def\y{english}%
+ \else
+ \edef\y{\languagename}%
+ \fi
+ \@onelevel@sanitize\x
+ \@onelevel@sanitize\y
+ \expandafter\endgroup
+ \ifx\x\y
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+
+\newcommandtwoopt*\hpnumber[3][][]{% #1,#2 optional statement parameters, #3 statement number
+ \ifthenelse{\equal{#3}{}}{%
+ }{%
+ \mhchem@hp@main[{#1}][{#2}]{#3}%
+ }%
+ \mhchem@hp@number%
+}
+
+\newcommandtwoopt*\hpstatement[3][][]{% #1,#2 optional statement parameters, #3 statement number
+ \ifthenelse{\equal{#3}{}}{%
+ }{%
+ \mhchem@hp@main[{#1}][{#2}]{#3}%
+ }%
+ \mhchem@hp@statement%
+}
+
+% populates hp@statement and hp@number
+\newcommandtwoopt*\mhchem@hp@main[3][][]{% #1,#2 optional statement parameters, #3 statement number
+ \def\mhchem@hp@arguments{error}%
+ \ifthenelse{\equal{#1}{}}{%
+ \def\mhchem@hp@arguments{0}%
+ }{%
+ \ifthenelse{\equal{#2}{}}{%
+ \def\mhchem@hp@arguments{1}%
+ }{%
+ \def\mhchem@hp@arguments{2}%
+ }%
+ }%
+ %
+ \let\mhchem@hp@statement\relax%
+ \mhchem@hp@main@i{#1}{#2}{#3-\mhchem@hp@arguments}%
+ \ifx\relax\mhchem@hp@statement%
+ \mhchem@hp@main@i{#1}{#2}{#3-error}%
+ \ifx\relax\mhchem@hp@statement%
+ \gdef\mhchem@hp@statement{%
+ \PackageError{hpstatement}{H or P statement "#3"\MessageBreak%
+ is not defined}{}%
+ }%
+ \fi%
+ \fi%
+ \ifthenelse{\equal{\mhchem@hp@statement}{}}{%
+ \gdef\mhchem@hp@statement{%
+ \PackageError{hpstatement}{H or P statement "#3"\MessageBreak%
+ is not defined for your language}{}%
+ }%
+ }{}%
+}
+\newcommand*\mhchem@hp@main@i[3]{%
+ \mhchem@hp@iflanguagename{english}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
+ \mhchem@hp@iflanguagename{USenglish}{\mhchem@hp@data@english{#1}{#2}{#3}}{%
+ \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}}{%
+ }}}}}%
+}
+
+\newcommand*\mhchem@hp@ii[4]{%
+% #1 number to look for, entered by USER + arguments
+% #2 number to compare to, e.g. P230.1-1
+% #3 formatted number to output
+% #4 text (or error message)
+ \ifthenelse{\equal{#1}{#2}}{% if input number corresponds to entry
+ \gdef\mhchem@hp@number{#3}% set number
+ \gdef\mhchem@hp@statement{#4}% set statement
+ }{}%
+}
+
+\newcommand*\mhchem@hp@data@english[3]{%
+\mhchem@hp@ii{#3}{EUH001-0}{EUH001}{Explosive when dry.}%
+\mhchem@hp@ii{#3}{EUH006-0}{EUH006}{Explosive with or without contact with air.}%
+\mhchem@hp@ii{#3}{EUH014-0}{EUH014}{Reacts violently with water.}%
+\mhchem@hp@ii{#3}{EUH018.0-0}{EUH018}{In use may form flammable/explosive vapour-air mixture.}%
+\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}{In use may form flammable vapour-air mixture.}%
+\mhchem@hp@ii{#3}{EUH018.2-0}{EUH018}{In use may form explosive vapour-air mixture.}%
+\mhchem@hp@ii{#3}{EUH019-0}{EUH019}{May form explosive peroxides.}%
+\mhchem@hp@ii{#3}{EUH029-0}{EUH029}{Contact with water liberates toxic gas.}%
+\mhchem@hp@ii{#3}{EUH031-0}{EUH031}{Contact with acids liberates toxic gas.}%
+\mhchem@hp@ii{#3}{EUH032-0}{EUH032}{Contact with acids liberates very toxic gas.}%
+\mhchem@hp@ii{#3}{EUH044-0}{EUH044}{Risk of explosion if heated under confinement.}%
+\mhchem@hp@ii{#3}{EUH059-0}{EUH059}{Hazardous to the ozone layer.}%
+\mhchem@hp@ii{#3}{EUH066-0}{EUH066}{Repeated exposure may cause skin dryness or cracking.}%
+\mhchem@hp@ii{#3}{EUH070-0}{EUH070}{Toxic by eye contact.}%
+\mhchem@hp@ii{#3}{EUH071-0}{EUH071}{Corrosive to the respiratory tract.}%
+\mhchem@hp@ii{#3}{EUH201-0}{EUH201}{Contains lead. Should not be used on surfaces liable to be chewed or sucked by children.}%
+\mhchem@hp@ii{#3}{EUH201A-0}{EUH201A}{Warning! Contains lead.}%
+\mhchem@hp@ii{#3}{EUH202-0}{EUH202}{Cyanoacrylate. Danger. Bonds skin and eyes in seconds. Keep out of the reach of children.}%
+\mhchem@hp@ii{#3}{EUH203-0}{EUH203}{Contains chromium (VI). May produce an allergic reaction.}%
+\mhchem@hp@ii{#3}{EUH204-0}{EUH204}{Contains isocyanates. May produce an allergic reaction.}%
+\mhchem@hp@ii{#3}{EUH205-0}{EUH205}{Contains epoxy constituents. May produce an allergic reaction.}%
+\mhchem@hp@ii{#3}{EUH206-0}{EUH206}{Warning! Do not use together with other products. May release dangerous gases (chlorine).}%
+\mhchem@hp@ii{#3}{EUH207-0}{EUH207}{Warning! Contains cadmium. Dangerous fumes are formed during use. See information supplied by the manufacturer. Comply with the safety instructions.}%
+\mhchem@hp@ii{#3}{EUH208.0-0}{EUH208}{Contains \textless{}name of sensitising substance\textgreater{}. May produce an allergic reaction.}%
+\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}{Contains #1. May produce an allergic reaction.}%
+\mhchem@hp@ii{#3}{EUH209-0}{EUH209}{Can become highly flammable in use.}%
+\mhchem@hp@ii{#3}{EUH209A-0}{EUH209A}{Can become flammable in use.}%
+\mhchem@hp@ii{#3}{EUH210-0}{EUH210}{Safety data sheet available on request.}%
+\mhchem@hp@ii{#3}{EUH401-0}{EUH401}{To avoid risks to human health and the environment, comply with the instructions for use.}%
+\mhchem@hp@ii{#3}{H200-0}{H200}{Unstable explosives.}%
+\mhchem@hp@ii{#3}{H201-0}{H201}{Explosive; mass explosion hazard.}%
+\mhchem@hp@ii{#3}{H202-0}{H202}{Explosive, severe projection hazard.}%
+\mhchem@hp@ii{#3}{H203-0}{H203}{Explosive; fire, blast or projection hazard.}%
+\mhchem@hp@ii{#3}{H204-0}{H204}{Fire or projection hazard.}%
+\mhchem@hp@ii{#3}{H205-0}{H205}{May mass explode in fire.}%
+\mhchem@hp@ii{#3}{H220-0}{H220}{Extremely flammable gas.}%
+\mhchem@hp@ii{#3}{H221-0}{H221}{Flammable gas.}%
+\mhchem@hp@ii{#3}{H222-0}{H222}{Extremely flammable aerosol.}%
+\mhchem@hp@ii{#3}{H223-0}{H223}{Flammable aerosol.}%
+\mhchem@hp@ii{#3}{H224-0}{H224}{Extremely flammable liquid and vapour.}%
+\mhchem@hp@ii{#3}{H225-0}{H225}{Highly flammable liquid and vapour.}%
+\mhchem@hp@ii{#3}{H226-0}{H226}{Flammable liquid and vapour.}%
+\mhchem@hp@ii{#3}{H228-0}{H228}{Flammable solid.}%
+\mhchem@hp@ii{#3}{H240-0}{H240}{Heating may cause an explosion.}%
+\mhchem@hp@ii{#3}{H241-0}{H241}{Heating may cause a fire or explosion.}%
+\mhchem@hp@ii{#3}{H242-0}{H242}{Heating may cause a fire.}%
+\mhchem@hp@ii{#3}{H250-0}{H250}{Catches fire spontaneously if exposed to air.}%
+\mhchem@hp@ii{#3}{H251-0}{H251}{Self-heating: may catch fire.}%
+\mhchem@hp@ii{#3}{H252-0}{H252}{Self-heating in large quantities; may catch fire.}%
+\mhchem@hp@ii{#3}{H260-0}{H260}{In contact with water releases flammable gases which may ignite spontaneously.}%
+\mhchem@hp@ii{#3}{H261-0}{H261}{In contact with water releases flammable gases.}%
+\mhchem@hp@ii{#3}{H270-0}{H270}{May cause or intensify fire; oxidiser.}%
+\mhchem@hp@ii{#3}{H271-0}{H271}{May cause fire or explosion; strong oxidiser.}%
+\mhchem@hp@ii{#3}{H272-0}{H272}{May intensify fire; oxidiser.}%
+\mhchem@hp@ii{#3}{H280-0}{H280}{Contains gas under pressure; may explode if heated.}%
+\mhchem@hp@ii{#3}{H281-0}{H281}{Contains refrigerated gas; may cause cryogenic burns or injury.}%
+\mhchem@hp@ii{#3}{H290-0}{H290}{May be corrosive to metals.}%
+\mhchem@hp@ii{#3}{H300-0}{H300}{Fatal if swallowed.}%
+\mhchem@hp@ii{#3}{H301-0}{H301}{Toxic if swallowed.}%
+\mhchem@hp@ii{#3}{H302-0}{H302}{Harmful if swallowed.}%
+\mhchem@hp@ii{#3}{H304-0}{H304}{May be fatal if swallowed and enters airways.}%
+\mhchem@hp@ii{#3}{H310-0}{H310}{Fatal in contact with skin.}%
+\mhchem@hp@ii{#3}{H311-0}{H311}{Toxic in contact with skin.}%
+\mhchem@hp@ii{#3}{H312-0}{H312}{Harmful in contact with skin.}%
+\mhchem@hp@ii{#3}{H314-0}{H314}{Causes severe skin burns and eye damage.}%
+\mhchem@hp@ii{#3}{H315-0}{H315}{Causes skin irritation.}%
+\mhchem@hp@ii{#3}{H317-0}{H317}{May cause an allergic skin reaction.}%
+\mhchem@hp@ii{#3}{H318-0}{H318}{Causes serious eye damage.}%
+\mhchem@hp@ii{#3}{H319-0}{H319}{Causes serious eye irritation.}%
+\mhchem@hp@ii{#3}{H330-0}{H330}{Fatal if inhaled.}%
+\mhchem@hp@ii{#3}{H331-0}{H331}{Toxic if inhaled.}%
+\mhchem@hp@ii{#3}{H332-0}{H332}{Harmful if inhaled.}%
+\mhchem@hp@ii{#3}{H334-0}{H334}{May cause allergy or asthma symptoms or breathing difficulties if inhaled.}%
+\mhchem@hp@ii{#3}{H335-0}{H335}{May cause respiratory irritation.}%
+\mhchem@hp@ii{#3}{H336-0}{H336}{May cause drowsiness or dizziness.}%
+\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}{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}{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}{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}{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}{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.}%
+\mhchem@hp@ii{#3}{H360d-0}{H360d}{Suspected of damaging the unborn child.}%
+\mhchem@hp@ii{#3}{H360FD-0}{H360FD}{May damage fertility. May damage the unborn child.}%
+\mhchem@hp@ii{#3}{H360fd-0}{H360fd}{Suspected of damaging fertility. Suspected of damaging the unborn child.}%
+\mhchem@hp@ii{#3}{H360Fd-0}{H360Fd}{May damage fertility. Suspected of damaging the unborn child.}%
+\mhchem@hp@ii{#3}{H360Df-0}{H360Df}{May damage the unborn child. Suspected of damaging fertility.}%
+\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}{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}{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}{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}{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\,+\,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}{+++}%
+\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.}%
+\mhchem@hp@ii{#3}{P102-0}{P102}{Keep out of reach of children.}%
+\mhchem@hp@ii{#3}{P103-0}{P103}{Read label before use.}%
+\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}{Read #1 before use.}%
+\mhchem@hp@ii{#3}{P201-0}{P201}{Obtain special instructions before use.}%
+\mhchem@hp@ii{#3}{P202-0}{P202}{Do not handle until all safety precautions have been read and understood.}%
+\mhchem@hp@ii{#3}{P210.0-0}{P210}{Keep away from heat/sparks/open flames/hot surfaces. -- No smoking.}%
+\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}{Keep away from #1. -- No smoking.}%
+\mhchem@hp@ii{#3}{P210.1-0}{P210}{Keep away from heat. -- No smoking.}%
+\mhchem@hp@ii{#3}{P210.2-0}{P210}{Keep away from sparks. -- No smoking.}%
+\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}{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.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-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-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-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\,+\,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\,+\,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-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.}%
+\mhchem@hp@ii{#3}{P241.2-0}{P241}{Use explosion-proof ventilating equipment.}%
+\mhchem@hp@ii{#3}{P241.3-0}{P241}{Use explosion-proof lighting equipment.}%
+\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-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.}%
+\mhchem@hp@ii{#3}{P250.2-0}{P250}{Do not subject to shock.}%
+\mhchem@hp@ii{#3}{P250.3-0}{P250}{Do not subject to friction.}%
+\mhchem@hp@ii{#3}{P251-0}{P251}{Pressurized container: Do not pierce or burn, even after use.}%
+\mhchem@hp@ii{#3}{P260.0-0}{P260}{Do not breathe dust/fume/gas/mist/vapours/spray.}%
+\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}{Do not breathe #1.}%
+\mhchem@hp@ii{#3}{P260.1-0}{P260}{Do not breathe dust.}%
+\mhchem@hp@ii{#3}{P260.2-0}{P260}{Do not breathe fume.}%
+\mhchem@hp@ii{#3}{P260.3-0}{P260}{Do not breathe gas.}%
+\mhchem@hp@ii{#3}{P260.4-0}{P260}{Do not breathe mist.}%
+\mhchem@hp@ii{#3}{P260.5-0}{P260}{Do not breathe vapours.}%
+\mhchem@hp@ii{#3}{P260.6-0}{P260}{Do not breathe spray.}%
+\mhchem@hp@ii{#3}{P261-0}{P261}{Avoid breathing dust/fume/gas/mist/vapours/spray.}%
+\mhchem@hp@ii{#3}{P262-0}{P262}{Do not get in eyes, on skin, or on clothing.}%
+\mhchem@hp@ii{#3}{P263.0-0}{P263}{Avoid contact during pregnancy/while nursing.}%
+\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}{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-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.}%
+\mhchem@hp@ii{#3}{P271-0}{P271}{Use only outdoors or in a well-ventilated area.}%
+\mhchem@hp@ii{#3}{P272-0}{P272}{Contaminated work clothing should not be allowed out of the workplace.}%
+\mhchem@hp@ii{#3}{P273-0}{P273}{Avoid release to the environment.}%
+\mhchem@hp@ii{#3}{P280.0-0}{P280}{Wear protective gloves/protective clothing/eye protection/face protection.}%
+\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}{Wear #1.}%
+\mhchem@hp@ii{#3}{P280.1-0}{P280}{Wear protective gloves.}%
+\mhchem@hp@ii{#3}{P280.2-0}{P280}{Wear protective clothing.}%
+\mhchem@hp@ii{#3}{P280.3-0}{P280}{Wear eye protection.}%
+\mhchem@hp@ii{#3}{P280.4-0}{P280}{Wear face protection.}%
+\mhchem@hp@ii{#3}{P281-0}{P281}{Use personal protective equipment as required.}%
+\mhchem@hp@ii{#3}{P282.0-0}{P282}{Wear cold insulating gloves/face shield/eye protection.}%
+\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}{Wear #1.}%
+\mhchem@hp@ii{#3}{P282.1-0}{P282}{Wear cold insulating gloves.}%
+\mhchem@hp@ii{#3}{P282.2-0}{P282}{Wear face shield.}%
+\mhchem@hp@ii{#3}{P282.3-0}{P282}{Wear eye protection.}%
+\mhchem@hp@ii{#3}{P283.0-0}{P283}{Wear fire/flame resistant/retardant clothing.}%
+\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}{Wear #1 clothing.}%
+\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\,+\,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\,+\,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\,+\,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\,+\,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\,+\,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\,+\,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\,+\,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\,+\,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\,+\,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-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-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-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}{}}%
+\mhchem@hp@ii{#3}{P322.nolabel-1}{P322}{Specific measures (see #1).}%
+\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\,+\,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\,+\,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\,+\,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\,+\,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\,+\,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.}%
+\mhchem@hp@ii{#3}{P353-0}{P353}{Rinse skin with water/shower.}%
+\mhchem@hp@ii{#3}{P360-0}{P360}{Rinse immediately contaminated clothing and skin with plenty of water before removing clothes.}%
+\mhchem@hp@ii{#3}{P361-0}{P361}{Remove/Take off immediately all contaminated clothing.}%
+\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\,+\,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\,+\,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-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-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\,+\,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\,+\,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-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\,+\,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}{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-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-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-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-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.}%
+}
diff --git a/Master/texmf-dist/tex/latex/mhchem/mhchem.sty b/Master/texmf-dist/tex/latex/mhchem/mhchem.sty
index 831a8cf29a6..9f8d8f2fc34 100644
--- a/Master/texmf-dist/tex/latex/mhchem/mhchem.sty
+++ b/Master/texmf-dist/tex/latex/mhchem/mhchem.sty
@@ -1,13 +1,12 @@
%% mhchem.sty
-%% Copyright 2004-2011 M.a-r.t-i.n H.e-n.s-e.l
+%% Copyright 2004-2013 Martin Hensel
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c
-% which can be found at
-% http://www.latex-project.org/lppl/lppl-1-3c.txt
+% which is included as lppl-1-3c.txt.
%
% This work has the LPPL maintenance status "maintained".
-% The Current Maintainer of this work is M.a-r.t-i.n H.e-n.s-e.l.
+% The Current Maintainer of this work is Martin Hensel.
%
% ( In order to fight spam, the maintainer's contact )
% ( information is "encrypted" with ROT13. )
@@ -25,319 +24,636 @@
% | Treznal
% `----------
%
-% This work consists of the files mhchem.sty, rsphrase.sty,
-% mhchem.pdf and legal.txt.
+% This work consists of all files listed in manifest.txt.
%
%
-\ProvidesPackage{mhchem}[2011/06/03 v3.11 for typesetting chemical formulae]
+\ProvidesPackage{mhchem}[2013/06/17 v3.12 for typesetting chemical formulae]
\RequirePackage{ifthen}
\RequirePackage{calc}[1998/07/07]
\RequirePackage{twoopt}
\RequirePackage{amsmath}
\RequirePackage{keyval}
\RequirePackage{graphics}
+\RequirePackage{pdftexcmds}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% misc %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareMathSymbol{\mhchem@hyphen}{0}{operators}{45}
+\def\mhchem@END{\mhchem@END}
+\def\mhchem@macro{}
+\def\mhchem@empty{}
+\def\mhchem@gobble#1{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% \cee %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*{\cee}[1]{%
- \ifnum 1<\mhchem@option@version%
- \def\mhchem@ce@out{}%
- {\mhchem@ce@v#1\mhchem@empty\\\mhchem@END\mhchem@ENDEND}%
- \ensuremath{%
- \mhchem@ce@out%
- }%
- \else%
- \PackageWarningNoLine{mhchem}{%
- The \string\cee{} command of mhchem is only available\MessageBreak
- when you secify [version=2] or greater}%
- \fi%
+ \def\mhchem@ce@out{}%
+ {\mhchem@cee@i#1\mhchem@empty\\\mhchem@END\mhchem@ENDEND}%
+ \ensuremath{%
+ \mhchem@ce@out%
+ }%
}%
-\def\mhchem@ce@v#1\\#2#3\mhchem@ENDEND{%
+\def\mhchem@cee@i#1\\#2#3\mhchem@ENDEND{%
\ifx\mhchem@END#2%
- \mhchem@ce@vii#1&\mhchem@END\mhchem@ENDEND%
+ \mhchem@cee@ii#1&\mhchem@END\mhchem@ENDEND%
\else%
- \mhchem@ce@vii#1&\mhchem@END\mhchem@ENDEND%
+ \mhchem@cee@ii#1&\mhchem@END\mhchem@ENDEND%
\g@addto@macro\mhchem@ce@out{\\}%
- \mhchem@ce@v#2#3\mhchem@ENDEND%
+ \mhchem@cee@i#2#3\mhchem@ENDEND%
\fi%
}
-\long\def\mhchem@ce@vii#1&#2#3\mhchem@ENDEND{%
+\long\def\mhchem@cee@ii#1&#2#3\mhchem@ENDEND{%
\ifx\mhchem@END#2%
- \g@addto@macro\mhchem@ce@out{\ce@main{#1}}%
+ \g@addto@macro\mhchem@ce@out{\ce{#1}}%
\else%
- \g@addto@macro\mhchem@ce@out{\ce@main{#1}}%
+ \g@addto@macro\mhchem@ce@out{\ce{#1}}%
\g@addto@macro\mhchem@ce@out{&}%
- \mhchem@ce@vii#2#3\mhchem@ENDEND%
- \fi%
+ \mhchem@cee@ii#2#3\mhchem@ENDEND%
+ \fi%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% global helpers %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\mhchem@appendToks#1#2{%
+ #1=\expandafter{\the#1#2}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% \ce %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%
-
-\def\mhchem@protect{\protect\noexpand\protect}%
-
-\newcommand\ce[1]{\mhchem@ce@xiii{\mhchem@ce@viii#1 \mhchem@END\mhchem@ENDEND}}%
-%
-%
-\def\mhchem@ce@viii#1 #2\mhchem@ENDEND{%
- \ifx\mhchem@END#2%
- \ifx\@empty#1\@empty
- \else
- \mhchem@ce@x#1\mhchem@END\mhchem@ENDEND%
- \fi
- \else%
- \mhchem@ce@x#1\mhchem@END\mhchem@ENDEND%
- \space\mhchem@ce@viii#2\mhchem@ENDEND%
- \fi
-}
-\def\mhchem@ce@x#1#2\mhchem@ENDEND{%
- \ifx\@empty#1\@empty%
- \mhchem@ce@xi{}\mhchem@END\mhchem@ENDEND%
- \else%\ifx\mhchem@END#1\else
- \mhchem@ce@xi#1\mhchem@END\mhchem@ENDEND%
- \fi%\fi%
- \ifx\mhchem@END#2%
+\DeclareRobustCommand\ce[1]{\mhchem@ce{#1}}
+
+\edef\mhchem@char@lbrace{\string{} %}
+\begingroup%
+ \catcode`\-=12%
+ \gdef\mhchem@char@hyphen@other{-}%
+ \catcode`\-=\active%
+ \gdef\mhchem@char@hyphen@active{-}%
+ \catcode`\<=12%
+ \gdef\mhchem@char@lt@other{<}%
+ \catcode`\<=\active%
+ \gdef\mhchem@char@lt@active{<}%
+ \catcode`\>=12%
+ \gdef\mhchem@char@gt@other{>}%
+ \catcode`\>=\active%
+ \gdef\mhchem@char@gt@active{>}%
+ \catcode`\^=7%
+ \gdef\mhchem@char@caret@super{^}%
+ \catcode`\^=\active%
+ \gdef\mhchem@char@caret@active{^}%
+ \catcode`\==12%
+ \gdef\mhchem@char@equal@other{=}%
+ \catcode`\==\active%
+ \gdef\mhchem@char@equal@active{=}%
+\endgroup%
+
+\newtoks\mhchem@ce@result%
+\newtoks\mhchem@ce@part%
+\newcommand*\mhchem@ce[1]{%
+ \bgroup%
+ \def\mhchem@ce@state{s}%
+ \chardef\mhchem@ce@substate=0\relax%
+ \mhchem@ce@result={}%
+ \mhchem@ce@part={}%
+ \mhchem@ce@continue#1\mhchem@END%
+ \ifnum 1<\mhchem@option@version%
+ \the\mhchem@ce@result%
\else%
- \mhchem@ce@x#2\mhchem@ENDEND%
+ \ensuremath{\the\mhchem@ce@result}%
\fi%
+ \egroup%
}
-\def\mhchem@ce@xi#1#2\mhchem@ENDEND{%
- \ifx\mhchem@END#2%
- \ifx\@empty#1\@empty%
- {}%
- \else\if\noexpand#1##%
- \mhchem@protect\tbond%
+\def\mhchem@ce@i{%
+ \ifx\mhchem@END\mhchem@ce@lookahead%
+ \mhchem@ce@output%
+ \let\mhchem@ce@action\mhchem@gobble%
+ \else\if\space\noexpand\mhchem@ce@lookahead%
+ \if s\mhchem@ce@state%
\else%
- \mhchem@protect#1%
- \fi\fi%
+ \mhchem@ce@output%
+ \mhchem@ce@part={}%
+ \def\mhchem@ce@state{s}%
+ \fi%
+ \let\mhchem@ce@action\mhchem@ce@gobbleNextSpace%
+ \else\if\mhchem@char@lbrace\noexpand\mhchem@ce@lookahead%
+ \if s\mhchem@ce@state%
+ \def\mhchem@ce@state{c}%
+ \fi%
+ \def\mhchem@ce@action{\mhchem@ce@appendNextGroup{\mhchem@ce@part}}%
\else%
- {\mhchem@ce@xii#1#2}%
- \fi%
+ \if s\mhchem@ce@state%
+ \expandafter\ifx\mhchem@char@hyphen@other\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=1\relax%
+ \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=1\relax%
+ \else\expandafter\ifx\mhchem@char@lt@other\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=7\relax%
+ \else\expandafter\ifx\mhchem@char@lt@active\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=7\relax%
+ \else\if +\noexpand\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=50\relax%
+ \else\if (\noexpand\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=101\relax%
+ \else\if v\noexpand\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=106\relax%
+ \else\expandafter\ifx\mhchem@char@caret@super\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=107\relax%
+ \else\expandafter\ifx\mhchem@char@caret@active\mhchem@ce@lookahead%
+ \def\mhchem@ce@state{a}%
+ \chardef\mhchem@ce@substate=107\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \def\mhchem@ce@action{\mhchem@ce@appendNextToken{\mhchem@ce@part}}%
+ \else\if c\mhchem@ce@state%
+ \def\mhchem@ce@action{\mhchem@ce@appendNextToken{\mhchem@ce@part}}%
+ \else\if a\mhchem@ce@state%
+ \def\mhchem@ce@action{\mhchem@ce@appendNextToken{\mhchem@ce@part}}%
+ \ifnum 1=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@gt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=2\relax%
+ \else\expandafter\ifx\mhchem@char@gt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=2\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi%
+ \else\ifnum 2=\mhchem@ce@substate\relax%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=3\relax%
+ \else\ifnum 7=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@hyphen@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=8\relax%
+ \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=8\relax%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=19\relax%
+ \else\expandafter\ifx\mhchem@char@equal@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=19\relax%
+ \else\expandafter\ifx\mhchem@char@lt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=24\relax%
+ \else\expandafter\ifx\mhchem@char@lt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=24\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi\fi\fi\fi\fi%
+ \else\ifnum 8=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@gt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=10\relax%
+ \else\expandafter\ifx\mhchem@char@gt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=10\relax%
+ \else\expandafter\ifx\mhchem@char@hyphen@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=12\relax%
+ \else\expandafter\ifx\mhchem@char@hyphen@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=12\relax%
+ \else%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=9\relax%
+ \fi\fi\fi\fi%
+ \else\ifnum 10=\mhchem@ce@substate\relax%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=11\relax%
+ \else\ifnum 12=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@gt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=13\relax%
+ \else\expandafter\ifx\mhchem@char@gt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=13\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi%
+ \else\ifnum 13=\mhchem@ce@substate\relax%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=14\relax%
+ \else\ifnum 19=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@gt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=20\relax%
+ \else\expandafter\ifx\mhchem@char@gt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=20\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi%
+ \else\ifnum 20=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@gt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=22\relax%
+ \else\expandafter\ifx\mhchem@char@gt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=22\relax%
+ \else%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=21\relax%
+ \fi\fi%
+ \else\ifnum 22=\mhchem@ce@substate\relax%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=23\relax%
+ \else\ifnum 24=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@equal@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=25\relax%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=25\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi%
+ \else\ifnum 25=\mhchem@ce@substate\relax%
+ \expandafter\ifx\mhchem@char@gt@other\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=26\relax%
+ \else\expandafter\ifx\mhchem@char@gt@active\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=26\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi%
+ \else\ifnum 26=\mhchem@ce@substate\relax%
+ \mhchem@ce@part={}%
+ \chardef\mhchem@ce@substate=27\relax%
+ \else\ifnum 50=\mhchem@ce@substate\relax%
+ \mhchem@ce@output%
+ \mhchem@ce@part={}%
+ \def\mhchem@ce@state{c}%
+ \else\ifnum 101=\mhchem@ce@substate\relax%
+ \if v\noexpand\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=102\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi%
+ \else\ifnum 102=\mhchem@ce@substate\relax%
+ \if )\noexpand\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=103\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi%
+ \else\ifnum 103=\mhchem@ce@substate\relax%
+ \def\mhchem@ce@state{c}%
+ \else\ifnum 104=\mhchem@ce@substate\relax%
+ \if )\noexpand\mhchem@ce@lookahead%
+ \chardef\mhchem@ce@substate=105\relax%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi%
+ \else\ifnum 105=\mhchem@ce@substate\relax%
+ \def\mhchem@ce@state{c}%
+ \else\ifnum 106=\mhchem@ce@substate\relax%
+ \def\mhchem@ce@state{c}%
+ \else\ifnum 107=\mhchem@ce@substate\relax%
+ \def\mhchem@ce@state{c}%
+ \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%
+ \mhchem@ce@action%
}
-\def\mhchem@ce@xii#1\mhchem@END{\mhchem@ce@viii#1 \mhchem@END\mhchem@ENDEND}%
-\DeclareRobustCommand\mhchem@ce@xiii[1]{%
- \bgroup%
- \ifnum 4>\mhchem@option@version%
- \def\hyphen{\mhchem@hyphen}%
+\def\mhchem@ce@continue{%
+ \futurelet\mhchem@ce@lookahead\mhchem@ce@i%
+}%
+\def\mhchem@ce@gobbleNextToken#1{%
+ \mhchem@ce@continue%
+}%
+\def\mhchem@ce@gobbleNextSpace{%
+ % thanks to de.comp.text.tex
+ \def\mhchem@ce@gobbleNextSpace@i{%
+ \mhchem@ce@continue}%
+ \afterassignment\mhchem@ce@gobbleNextSpace@i%
+ \let\mhchem@ce@gobbleNextSpace@ii= % The space is the trick!
+}
+\def\mhchem@ce@appendNextToken#1#2{%
+ \mhchem@appendToks{#1}{#2}%
+ \mhchem@ce@continue%
+}
+\def\mhchem@ce@appendNextGroup#1#2{%
+ \mhchem@appendToks{#1}{{#2}}%
+ \mhchem@ce@continue%
+}
+\def\mhchem@ce@output{%
+ \if a\mhchem@ce@state%
+ \ifnum 2=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@yields[][]}%
+ \else\ifnum 3=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@yields\the\mhchem@ce@part}%
+ \else\ifnum 8=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@yieldsLeft[][]}%
+ \else\ifnum 9=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@yieldsLeft\the\mhchem@ce@part}%
+ \else\ifnum 10=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@mesomerism[][]}%
+ \else\ifnum 11=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@mesomerism\the\mhchem@ce@part}%
+ \else\ifnum 13=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@yieldsLeftRight[][]}%
+ \else\ifnum 14=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@yieldsLeftRight\the\mhchem@ce@part}%
+ \else\ifnum 20=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@equilibrium[][]}%
+ \else\ifnum 21=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@equilibrium\the\mhchem@ce@part}%
+ \else\ifnum 22=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@equilibriumRight[][]}%
+ \else\ifnum 23=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@equilibriumRight\the\mhchem@ce@part}%
+ \else\ifnum 26=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\mhchem@arrow@equilibriumLeft[][]}%
+ \else\ifnum 27=\mhchem@ce@substate\relax%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@arrow@equilibriumLeft\the\mhchem@ce@part}%
+ \else\ifnum 50=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\ensuremath{{}+{}}}%
+ \else\ifnum 103=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\ensuremath{{}\mathop{\downarrow}{}}}%
+ \else\ifnum 105=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\ensuremath{{}\mathop{\uparrow}{}}}%
+ \else\ifnum 106=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\ensuremath{{}\mathop{\downarrow}{}}}%
+ \else\ifnum 107=\mhchem@ce@substate\relax%
+ \mhchem@appendToks{\mhchem@ce@result}{\ensuremath{{}\mathop{\uparrow}{}}}%
+ \else%
+ \def\mhchem@ce@state{c}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi%
+ \if c\mhchem@ce@state%
+ \expandafter\mhchem@appendToks\expandafter{\expandafter\mhchem@ce@result\expandafter}\expandafter{\expandafter\mhchem@cf\expandafter{\the\mhchem@ce@part}}%
\fi%
- \def\mhchem@protect{\noexpand}%
- \edef\mhchem@tmp{#1}%
- %
- \expandafter\ce@main\expandafter{\mhchem@tmp}%
- \egroup
}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% arrows %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%
-
-\DeclareRobustCommand*{\ce@main}[1]{%
- \bgroup%
- \ifnum 1<\mhchem@option@version%
- \ifmmode\else\def\mhchem@option@alwaystextmode{1}\fi%
- \fi%
- \def\bond{}\def\sbond{}\def\dbond{}\def\tbond{}%
- \ifx\@empty#1\@empty\else%
- \ifmmode\else\mhchem@option@textFont\fi%
- \ensuremath{%
- \mhchem@ce@xx#1 \mhchem@END\mhchem@ENDEND%
- }%
- \fi%
- \egroup%
-}%
+\def\mhchem@arrow@minlength{{2em}}%
-\def\mhchem@ce@xx#1 #2\mhchem@ENDEND{%
- \mhchem@ce@i#1\mhchem@empty\mhchem@ENDEND%
- \ifx\mhchem@END#2%
- \else%
- \mhchem@ce@xx#2 \mhchem@ENDEND%
- \fi%
-}
-\def\mhchem@ce@i#1#2\mhchem@ENDEND{%
- \ifcat a#1 {\mhchem@ce@ii{#1#2}}%
- \else\ifx 1#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 2#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 3#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 4#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 5#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 6#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 7#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 8#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 9#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx 0#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx (#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx [#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx \{#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx ^#1{\mhchem@ce@ii{#1#2}}%
- \else\if ^#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx _#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx $#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx -#1{\ifx\@empty#2\@empty#1\else\mhchem@ce@dash#2\mhchem@END\fi}%
- \else\if\noexpand#1<{\ifx\@empty#2\@empty#1\else\mhchem@ce@lt#2\mhchem@END\fi}%
- \else\ifx +#1+ \mhchem@ce@ii{#2}%
- \else\ifx \protect#1{\mhchem@ce@ii{#1#2}}%
- %
- \else\ifx\ce#1 \mhchem@ce@i #2 \mhchem@END%
- \else\ifx\cf#1 \mhchem@cf{#2}%
- \else\ifx\cmath#1 \mhchem@ce@cmath#2\mhchem@END%
- \else\ifx\bond#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx\sbond#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx\dbond#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx\tond#1{\mhchem@ce@ii{#1#2}}%
- \else\ifx\label#1 \mhchem@ce@label#2\mhchem@END%
- \else\ifx\tag#1 \mhchem@ce@tag#2\mhchem@END%
- %
- \else #1#2%
- \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\fi\fi\fi\fi%
-}
-
-%
-\def\mhchem@ce@dash#1#2\mhchem@END{%
- \if\noexpand#1>%
- {}\ifx\@empty#2\@empty\mhchem@gives#2%
- \else\mhchem@ce@deploycommand{mhchem@gives}#2{}\mhchem@END\fi{}%
- \else%
- -#1#2%
- \fi%
-}%
-\def\mhchem@ce@lt#1#2\mhchem@END{%
- \ifx =#1\mhchem@ce@equal#2\mhchem@END%
- \else\if\noexpand#1<\mhchem@ce@equiL#2\mhchem@END%
- \else\ifx-#1%
- \ifx\@empty#2\@empty%
- {}\mhchem@givesleft#2{}%
+%%% Deployment of arrow macros
+\newtoks\mhchem@arrow@deployType
+\def\mhchem@arrow@deploy#1{%
+ \if [#1%
+ \ifnum 3<\mhchem@option@version%
+ \edef\mhchem@arrow@deploy@action{\noexpand\csname mhchem@arrow@\the\mhchem@arrow@deployType T\endcsname[}%
\else%
- \mhchem@ce@dashtwo#2\mhchem@END%
+ \edef\mhchem@arrow@deploy@action{\noexpand\csname mhchem@arrow@\the\mhchem@arrow@deployType M\endcsname[}%
\fi%
+ \else\if T#1%
+ \edef\mhchem@arrow@deploy@action{\noexpand\csname mhchem@arrow@\the\mhchem@arrow@deployType T\endcsname}%
+ \else\if C#1%
+ \edef\mhchem@arrow@deploy@action{\noexpand\csname mhchem@arrow@\the\mhchem@arrow@deployType C\endcsname}%
\else%
- <#1#2%
+ \def\mhchem@arrow@deploy@action{}%
+ \PackageError{mhchem}{Arrow type not supported}%
\fi\fi\fi%
+ \mhchem@arrow@deploy@action%
}
-\def\mhchem@ce@equal#1#2\mhchem@END{%
- \if\noexpand#1>% (<=)>...
- \ifx\@empty#2\@empty{}\mhchem@equilibrium#2{}%
- \else%
- \mhchem@ce@equi#2\mhchem@END%
- \fi%
- \else%
- <=#1#2%
- \fi%
+\def\mhchem@arrow@yields{%
+ \mhchem@arrow@deployType={yields}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-\def\mhchem@ce@equi#1#2\mhchem@END{%
- \if\noexpand#1>%
- {}\ifx\@empty#2\@empty\mhchem@equilibriumRight#2%
- \else\mhchem@ce@deploycommand{mhchem@equilibriumRight}#2{}\mhchem@END\fi{}%
- \else%
- {}\mhchem@ce@deploycommand{mhchem@equilibrium}#1#2{}\mhchem@END{}%
- \fi%
+\def\mhchem@arrow@yieldsLeft{%
+ \mhchem@arrow@deployType={yieldsLeft}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-\def\mhchem@ce@equiL#1#2\mhchem@END{%
- \ifx =#1\mhchem@ce@equiLi#2\mhchem@END%
- \else<=#1#2%
- \fi%
+\def\mhchem@arrow@yieldsLeftRight{%
+ \mhchem@arrow@deployType={yieldsLeftRight}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-\def\mhchem@ce@equiLi#1#2\mhchem@END{%
- \if\noexpand#1>% (<<=)>
- {}\ifx\@empty#2\@empty\mhchem@equilibriumLeft#2%
- \else\mhchem@ce@deploycommand{mhchem@equilibriumLeft}#2{}\mhchem@END\fi{}%
- \else%
- <<=#1#2%
- \fi%
+\def\mhchem@arrow@mesomerism{%
+ \mhchem@arrow@deployType={mesomerism}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-\def\mhchem@ce@dashtwo#1#2\mhchem@END{%
- \if\noexpand#1>%
- {}\ifx\@empty#2\@empty\mhchem@mesomeric#2%
- \else\mhchem@ce@deploycommand{mhchem@mesomeric}#2{}\mhchem@END\fi{}%
- \else%
- {}\mhchem@ce@deploycommand{mhchem@givesleft}#1#2{}\mhchem@END{}%
- \fi%
+\def\mhchem@arrow@equilibrium{%
+ \mhchem@arrow@deployType={equilibrium}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-\def\mhchem@ce@deploycommand#1#2#3\mhchem@END{%
- \ifx T#2\csname#1T\endcsname#3%
- \else\ifx C#2\csname#1C\endcsname#3%
- \else\csname#1\endcsname#2#3\fi\fi%
+\def\mhchem@arrow@equilibriumRight{%
+ \mhchem@arrow@deployType={equilibriumRight}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-
-\def\mhchem@ce@ii#1{%
- \mhchem@ce@iii#1%
+\def\mhchem@arrow@equilibriumLeft{%
+ \mhchem@arrow@deployType={equilibriumLeft}%
+ \futurelet\lookahead\mhchem@arrow@deploy%
}
-\newtoks\tok@mhchem@ce@iii%
-\def\mhchem@ce@iii@tmp@i{}%
-\def\mhchem@ce@iii@tmp@ii{}%
-\def\mhchem@ce@iii#1\mhchem@empty{%
- \tok@mhchem@ce@iii{#1}%
- \edef\mhchem@ce@iii@tmp@i{\the\tok@mhchem@ce@iii}%
- %
- \def\mhchem@ce@iii@tmp@ii{(^)}%
- \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
- {}\mathop{\uparrow}{}%
- \else\def\mhchem@ce@iii@tmp@ii{^}%
- \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
- {}\mathop{\uparrow}{}%
- \else\def\mhchem@ce@iii@tmp@ii{(v)}%
- \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
- {}\mathop{\downarrow}{}%
- \else\def\mhchem@ce@iii@tmp@ii{v}%
- \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
- {}\mathop{\downarrow}{}%
- \else%
- \mhchem@cf{#1}%
- \fi\fi\fi\fi%
-}%
-
-\def\mhchem@ce@cmath#1#2\mhchem@END{\mhchem@cmath{#1}\mhchem@cf{#2}}
-\def\mhchem@ce@label#1#2\mhchem@END{\label{#1}\mhchem@cf{#2}}
-\def\mhchem@ce@tag#1#2\mhchem@END{\tag{#1}\mhchem@cf{#2}}
-%%%%%%%%%%%%%
-%%% arrows
-
-\newlength{\mhchem@arrowminlength}
-\setlength{\mhchem@arrowminlength}{1em}
-%TODO: adapt min length to each of the math modes
+%%% Definition of arrows (with math text) for font/pgf/pgf-filled
+\newcommandtwoopt*\mhchem@arrow@yieldsM[2][][]{}
+\newcommandtwoopt*\mhchem@arrow@yieldsLeftM[2][][]{}
+\newcommandtwoopt*\mhchem@arrow@yieldsLeftRightM[2][][]{}
+\newcommandtwoopt*\mhchem@arrow@mesomerismM[2][][]{}
+\newcommandtwoopt*\mhchem@arrow@equilibriumM[2][][]{}
+\newcommandtwoopt*\mhchem@arrow@equilibriumRightM[2][][]{}
+\newcommandtwoopt*\mhchem@arrow@equilibriumLeftM[2][][]{}
+\newcommand\mhchem@definearrows[1]{%
+ %%% font
+ \ifthenelse{\equal{#1}{font}}{%
+ \renewcommandtwoopt*\mhchem@arrow@yieldsM[2][][]{%
+ \ensuremath{{}\mhchem@ext@arrow{5}{9}{##1}{5}{9}{##2}{\mhchem@arrow@minlength}{\rightarrowfill@}{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@yieldsLeftM[2][][]{%
+ \ensuremath{{}\mhchem@ext@arrow{9}{5}{##1}{9}{5}{##2}{\mhchem@arrow@minlength}{\leftarrowfill@}{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@yieldsLeftRightM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##2}%
+ {\rlap{\raisebox{.44ex}{$\mhchem@ext@arrow{9}{9}{##1}{9}{9}{}{\mhchem@arrow@minlength}{\rightarrowfill@}$}}}%
+ {\rlap{\raisebox{.44ex}{$\mhchem@ext@arrow{9}{9}{##1}{9}{9}{\hphantom{##2}}{\mhchem@arrow@minlength}{\rightarrowfill@}$}}}%
+ \@ifempty{##1}%
+ {\raisebox{-.44ex}{$\mhchem@ext@arrow{9}{9}{}{9}{9}{##2}{\mhchem@arrow@minlength}{\leftarrowfill@}$}}%
+ {\raisebox{-.44ex}{$\mhchem@ext@arrow{9}{9}{\hphantom{##1}}{9}{9}{##2}{\mhchem@arrow@minlength}{\leftarrowfill@}$}}%
+ }{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@mesomerismM[2][][]{%
+ \ensuremath{{}\mhchem@ext@arrow{9}{9}{##1}{9}{9}{##2}{\mhchem@arrow@minlength}{\leftrightarrowfill@}{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@equilibriumM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##2}%
+ {\rlap{\raisebox{.22ex}{$\mhchem@ext@arrow{5}{9}{##1}{9}{9}{}{\mhchem@arrow@minlength}{\mhchem@rightharpoonupfill@}$}}}%
+ {\rlap{\raisebox{.22ex}{$\mhchem@ext@arrow{9}{9}{##1}{9}{5}{\hphantom{##2}}{\mhchem@arrow@minlength}{\mhchem@rightharpoonupfill@}$}}}%
+ \@ifempty{##1}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow{9}{9}{}{9}{5}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondownfill@}$}}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow{5}{9}{\hphantom{##1}}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondownfill@}$}}%
+ }{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@equilibriumRightM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##1}{% if only above, center optically; if above AND below, center exactly to avoid misalignment
+ \rlap{\raisebox{-.22ex}{$\kern0.5em\mhchem@ext@arrow{0}{0}{}{9}{5}{##2}{\mhchem@arrow@minlength-1em}{\mhchem@leftharpoondownfill@}$}}%
+ \@ifempty{##2}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow{0}{0}{}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@rightharpoonupfill@}$}}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow{0}{0}{}{9}{5}{\hphantom{##2}\kern1em}{\mhchem@arrow@minlength}{\mhchem@rightharpoonupfill@}$}}%
+ }{%
+ \rlap{\raisebox{-.22ex}{$\kern0.5em\mhchem@ext@arrow{5}{9}{\hphantom{##1}\kern-1em}{9}{9}{##2}{\mhchem@arrow@minlength-1em}{\mhchem@leftharpoondownfill@}$}}%
+ \@ifempty{##2}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow{5}{9}{##1}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@rightharpoonupfill@}$}}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow{9}{9}{##1}{9}{9}{\hphantom{##2}\kern1em}{\mhchem@arrow@minlength}{\mhchem@rightharpoonupfill@}$}}%
+ }%
+ }{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@equilibriumLeftM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##2}{%
+ \rlap{\raisebox{.22ex}{$\kern0.5em\mhchem@ext@arrow{5}{9}{##1}{0}{0}{}{\mhchem@arrow@minlength-1em}{\mhchem@rightharpoonupfill@}$}}%
+ \@ifempty{##1}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow{0}{0}{}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@leftharpoondownfill@}$}}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow{5}{9}{\hphantom{##1}\kern1em}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@leftharpoondownfill@}$}}%
+ }{%
+ \rlap{\raisebox{.22ex}{$\kern0.5em\mhchem@ext@arrow{9}{9}{##1}{5}{9}{\hphantom{##2}\kern-1em}{\mhchem@arrow@minlength-1em}{\mhchem@rightharpoonupfill@}$}}%
+ \@ifempty{##1}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow{0}{0}{}{9}{5}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondownfill@}$}}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow{9}{9}{\hphantom{##1}\kern1em}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondownfill@}$}}%
+ }%
+ }{}}}%
+ %%% pgf
+ }{\ifthenelse{\equal{#1}{pgf} \or \equal{#1}{pgf-filled}}{%
+ \renewcommandtwoopt*\mhchem@arrow@yieldsM[2][][]{%
+ \ensuremath{{}\mhchem@ext@arrow@pgf{5}{9}{##1}{5}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@rightarrow@pgf}{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@yieldsLeftM[2][][]{%
+ \ensuremath{{}\mhchem@ext@arrow@pgf{9}{5}{##1}{9}{5}{##2}{\mhchem@arrow@minlength}{\mhchem@leftarrow@pgf}{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@yieldsLeftRightM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##2}%
+ {\rlap{\raisebox{.44ex}{$\mhchem@ext@arrow@pgf{9}{9}{##1}{9}{9}{}{\mhchem@arrow@minlength}{\mhchem@rightarrow@pgf}$}}}%
+ {\rlap{\raisebox{.44ex}{$\mhchem@ext@arrow@pgf{9}{9}{##1}{9}{9}{\hphantom{##2}}{\mhchem@arrow@minlength}{\mhchem@rightarrow@pgf}$}}}%
+ \@ifempty{##1}%
+ {\raisebox{-.44ex}{$\mhchem@ext@arrow@pgf{9}{9}{}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftarrow@pgf}$}}%
+ {\raisebox{-.44ex}{$\mhchem@ext@arrow@pgf{9}{9}{\hphantom{##1}}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftarrow@pgf}$}}%
+ }{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@mesomerismM[2][][]{%
+ \ensuremath{{}\mhchem@ext@arrow@pgf{9}{9}{##1}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftrightarrow@pgf}{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@equilibriumM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##2}%
+ {\rlap{\raisebox{.22ex}{$\mhchem@ext@arrow@pgf{5}{9}{##1}{9}{9}{}{\mhchem@arrow@minlength}{\mhchem@rightharpoonup@pgf}$}}}%
+ {\rlap{\raisebox{.22ex}{$\mhchem@ext@arrow@pgf{9}{9}{##1}{9}{5}{\hphantom{##2}}{\mhchem@arrow@minlength}{\mhchem@rightharpoonup@pgf}$}}}%
+ \@ifempty{##1}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow@pgf{9}{9}{}{9}{5}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondown@pgf}$}}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow@pgf{5}{9}{\hphantom{##1}}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondown@pgf}$}}%
+ }{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@equilibriumRightM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##1}{% if only above, center optically; if above AND below, center exactly to avoid misalignment
+ \rlap{\raisebox{-.22ex}{$\kern0.5em\mhchem@ext@arrow@pgf{0}{0}{}{9}{5}{##2}{\mhchem@arrow@minlength-1em}{\mhchem@leftharpoondown@pgf}$}}%
+ \@ifempty{##2}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow@pgf{0}{0}{}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@rightharpoonup@pgf}$}}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow@pgf{0}{0}{}{9}{5}{\hphantom{##2}\kern1em}{\mhchem@arrow@minlength}{\mhchem@rightharpoonup@pgf}$}}%
+ }{%
+ \rlap{\raisebox{-.22ex}{$\kern0.5em\mhchem@ext@arrow@pgf{5}{9}{\hphantom{##1}\kern-1em}{9}{9}{##2}{\mhchem@arrow@minlength-1em}{\mhchem@leftharpoondown@pgf}$}}%
+ \@ifempty{##2}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow@pgf{5}{9}{##1}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@rightharpoonup@pgf}$}}%
+ {\raisebox{.22ex}{$\mhchem@ext@arrow@pgf{9}{9}{##1}{9}{9}{\hphantom{##2}\kern1em}{\mhchem@arrow@minlength}{\mhchem@rightharpoonup@pgf}$}}%
+ }%
+ }{}}}%
+ \renewcommandtwoopt*\mhchem@arrow@equilibriumLeftM[2][][]{%
+ \ensuremath{{}\mathrel{%
+ \@ifempty{##2}{%
+ \rlap{\raisebox{.22ex}{$\kern0.5em\mhchem@ext@arrow@pgf{5}{9}{##1}{0}{0}{}{\mhchem@arrow@minlength-1em}{\mhchem@rightharpoonup@pgf}$}}%
+ \@ifempty{##1}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow@pgf{0}{0}{}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@leftharpoondown@pgf}$}}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow@pgf{5}{9}{\hphantom{##1}\kern1em}{0}{0}{}{\mhchem@arrow@minlength}{\mhchem@leftharpoondown@pgf}$}}%
+ }{%
+ \rlap{\raisebox{.22ex}{$\kern0.5em\mhchem@ext@arrow@pgf{9}{9}{##1}{5}{9}{\hphantom{##2}\kern-1em}{\mhchem@arrow@minlength-1em}{\mhchem@rightharpoonup@pgf}$}}%
+ \@ifempty{##1}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow@pgf{0}{0}{}{9}{5}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondown@pgf}$}}%
+ {\raisebox{-.22ex}{$\mhchem@ext@arrow@pgf{9}{9}{\hphantom{##1}\kern1em}{9}{9}{##2}{\mhchem@arrow@minlength}{\mhchem@leftharpoondown@pgf}$}}%
+ }%
+ }{}}}%
+ \ifthenelse{\equal{#1}{pgf}}{%
+ \let\mhchem@rightarrow@pgf\mhchem@rightarrow@pgfopen%
+ \let\mhchem@leftarrow@pgf\mhchem@leftarrow@pgfopen%
+ \let\mhchem@leftrightarrow@pgf\mhchem@leftrightarrow@pgfopen%
+ \let\mhchem@rightharpoonup@pgf\mhchem@rightharpoonup@pgfopen%
+ \let\mhchem@leftharpoondown@pgf\mhchem@leftharpoondown@pgfopen%
+ }{%
+ \let\mhchem@rightarrow@pgf\mhchem@rightarrow@pgffilled%
+ \let\mhchem@leftarrow@pgf\mhchem@leftarrow@pgffilled%
+ \let\mhchem@leftrightarrow@pgf\mhchem@leftrightarrow@pgffilled%
+ \let\mhchem@rightharpoonup@pgf\mhchem@rightharpoonup@pgffilled%
+ \let\mhchem@leftharpoondown@pgf\mhchem@leftharpoondown@pgffilled%
+ }%
+ }{%
+ \PackageError{mhchem}{The option font=#1 is not supported}%
+ }}%
+}
-%%% for font arrows
-%%%%% idea taken from http://www.texnik.de/misc/harpoon.phtml
+%%% Arrow compositions with text or chemistry
+\newtoks\mhchem@arrow@params%
+\def\mhchem@arrow@setParamsT#1#2{%
+ \mhchem@arrow@params={}%
+ \@ifnotempty{#1}{\mhchem@appendToks{\mhchem@arrow@params}{[\text{#1}]}}%
+ \@ifnotempty{#2}{\mhchem@appendToks{\mhchem@arrow@params}{[\text{#2}]}}%
+}%
+\def\mhchem@arrow@setParamsC#1#2{%
+ \mhchem@arrow@params={}%
+ \@ifnotempty{#1}{\mhchem@appendToks{\mhchem@arrow@params}{[\ce{#1}]}}%
+ \@ifnotempty{#2}{\mhchem@appendToks{\mhchem@arrow@params}{[\ce{#2}]}}%
+}%
+\newcommandtwoopt*\mhchem@arrow@yieldsT[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@yieldsM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@yieldsC[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@yieldsM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@yieldsLeftT[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@yieldsLeftM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@yieldsLeftC[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@yieldsLeftM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@yieldsLeftRightT[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@yieldsLeftRightM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@yieldsLeftRightC[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@yieldsLeftRightM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@mesomerismT[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@mesomerismM\the\mhchem@arrow@params}%
+\newcommandtwoopt*\mhchem@arrow@mesomerismC[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@mesomerismM\the\mhchem@arrow@params}%
+\newcommandtwoopt*{\mhchem@arrow@equilibriumT}[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@equilibriumM\the\mhchem@arrow@params}%
+\newcommandtwoopt*{\mhchem@arrow@equilibriumC}[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@equilibriumM\the\mhchem@arrow@params}%
+\newcommandtwoopt*{\mhchem@arrow@equilibriumRightT}[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@equilibriumRightM\the\mhchem@arrow@params}%
+\newcommandtwoopt*{\mhchem@arrow@equilibriumRightC}[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@equilibriumRightM\the\mhchem@arrow@params}%
+\newcommandtwoopt*{\mhchem@arrow@equilibriumLeftT}[2][][]{%
+ \mhchem@arrow@setParamsT{#1}{#2}%
+ \expandafter\mhchem@arrow@equilibriumLeftM\the\mhchem@arrow@params}%
+\newcommandtwoopt*{\mhchem@arrow@equilibriumLeftC}[2][][]{%
+ \mhchem@arrow@setParamsC{#1}{#2}%
+ \expandafter\mhchem@arrow@equilibriumLeftM\the\mhchem@arrow@params}%
+
+%%% Font arrows
+\def\mhchem@ext@arrow#1#2#3#4#5#6#7#8{% adaption of amsmath's ext@arrow
+ \mathrel{%
+ \mathop{\makebox[#7]{#8\displaystyle}}%
+ \limits%
+ \@ifnotempty{#3}{^{\mkern#1mu#3\mkern#2mu}}%
+ \@ifnotempty{#6}{_{\mkern#4mu#6\mkern#5mu}}%
+ }%
+}
\def\mhchem@rightharpoonupfill@{\arrowfill@\relbar\relbar\rightharpoonup}
\def\mhchem@leftharpoondownfill@{\arrowfill@\leftharpoondown\relbar\relbar}
-\newcommand*\mhchem@xrightleftharpoons[2][]{%
+
+%%% pgf arrows
+\newlength{\mhchem@arrowlength@pgf}
+\def\mhchem@ext@arrow@pgf#1#2#3#4#5#6#7#8{%
+ \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
+ \mhchem@ext@arrow{#1}{#2}{#3}{#4}{#5}{#6}{#7}{\rightarrowfill@}%
+ }}}%
\mathrel{%
- \rlap{\protect\raisebox{.22ex}{$\ext@arrow 3399\mhchem@rightharpoonupfill@{}{\mhchem@mathbox[#1]{#2}}$}}%
- \raisebox{-.22ex}{$\ext@arrow 3399\mhchem@leftharpoondownfill@{#1}{\hphantom{#2}}$}}}%
-\newsavebox\mhchem@arrows@box%
-\newcommand*\mhchem@xlongrightshortleftharpoons[2][]{\mathrel{%
- \sbox{\mhchem@arrows@box}%
- {$\mkern9mu\ext@arrow 3399\mhchem@leftharpoondownfill@%
- {#1}{\hphantom{#2}\mkern-6mu\mkern-12mu}$}%
- \rlap{\protect\raisebox{-.22ex}{\usebox{\mhchem@arrows@box}}}%
- \protect\raisebox{.22ex}{$\ext@arrow 3399\mhchem@rightharpoonupfill@%
- {\hphantom{\usebox{\mhchem@arrows@box}}\mkern-6mu}{#2}$}%
- }}
-\newcommand*\mhchem@xshortrightlongleftharpoons[2][]{\mathrel{%
- \sbox{\mhchem@arrows@box}%
- {$\mkern9mu\ext@arrow 3399\mhchem@rightharpoonupfill@%
- {\hphantom{#1}\mkern-6mu\mkern-12mu}{#2}$}%
- \rlap{\protect\raisebox{.22ex}{\usebox{\mhchem@arrows@box}}}%
- \protect\raisebox{-.22ex}{$\ext@arrow 3399\mhchem@leftharpoondownfill@%
- {#1}{\hphantom{\usebox{\mhchem@arrows@box}}\mkern-6mu}$}%
- }}
-%\newcommand*\mhchem@xleftrightarrow[2][]{\ext@arrow 3095\leftrightarrowfill@{#1}{#2}}
-
-
-%%% for pgf arrows
-\newcommand*\mhchem@rightarrow@pgf[1]{%
+ \mathop{\kern0.7pt#8{\mhchem@arrowlength@pgf-1.8pt}\kern0.7pt}%
+ \limits%
+ \@ifnotempty{#3}{^{\mkern#1mu#3\mkern#2mu}}%
+ \@ifnotempty{#6}{_{\mkern#4mu#6\mkern#5mu}}%
+ }%
+}%
+\newcommand*\mhchem@rightarrow@pgfopen[1]{%
\begin{tikzpicture}[baseline]%
\draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex]
@@ -346,7 +662,7 @@
arc (110:162:0.6ex);
\end{tikzpicture}%
}%
-\newcommand*\mhchem@leftarrow@pgf[1]{%
+\newcommand*\mhchem@leftarrow@pgfopen[1]{%
\begin{tikzpicture}[baseline]%
\draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex]
@@ -355,47 +671,34 @@
arc (-70:-18:0.6ex);
\end{tikzpicture}%
}%
-\newcommand*\mhchem@leftrightarrow@pgf[1]{%
+\newcommand*\mhchem@leftrightarrow@pgfopen[1]{%
\begin{tikzpicture}[baseline]%
\draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex]
- (0cm,0.575ex)
- arc (70:18:0.6ex) arc (18:70:0.6ex)
- arc (-70:-18:0.6ex) arc (-18:-70:0.6ex)
- -- ++(#1,0cm)
- arc (250:198:0.6ex) arc (198:250:0.6ex)
- arc (110:162:0.6ex);
+ (0cm,0.575ex)
+ arc (70:18:0.6ex) arc (18:70:0.6ex)
+ arc (-70:-18:0.6ex) arc (-18:-70:0.6ex)
+ -- ++(#1,0cm)
+ arc (250:198:0.6ex) arc (198:250:0.6ex)
+ arc (110:162:0.6ex);
\end{tikzpicture}%
}%
-\newcommand*\mhchem@leftrightharpoon@pgf[1]{%
+\newcommand*\mhchem@rightharpoonup@pgfopen[1]{%
\begin{tikzpicture}[baseline]%
- \draw[use as bounding box] (0,0) (#1,1ex);
- \draw[cap=round, join=round, line width=0.09ex]
- (0cm,0.575ex+0.22ex) -- ++(#1,0cm) arc (250:198:0.9ex);
- \draw[cap=round, join=round, line width=0.09ex]
- (#1,0.575ex-0.22ex) -- ++(-#1,0cm) arc (70:18:0.9ex);
- \end{tikzpicture}%
-}%
-\newcommand*\mhchem@longrightshortleftharpoons@pgf[1]{%
- \begin{tikzpicture}[baseline]%
- \draw[use as bounding box] (0,0) (#1,1ex);
- \draw[cap=round, join=round, line width=0.09ex]
- (0.0cm,0.575ex+0.22ex) -- ++(#1,0cm) arc (250:198:0.9ex);
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex]
- (#1+0.5em-1em,0.575ex-0.22ex) -- (0.5em,0.575ex-0.22ex) arc (70:18:0.9ex);
+ (0cm,0.575ex) -- ++(#1,0cm) arc (250:198:0.6ex);
\end{tikzpicture}%
-}%
-\newcommand*\mhchem@shortrightlongleftharpoons@pgf[1]{%
+}%
+\newcommand*\mhchem@leftharpoondown@pgfopen[1]{%
\begin{tikzpicture}[baseline]%
- \draw[use as bounding box] (0,0) (#1,1ex);
- \draw[cap=round, join=round, line width=0.09ex]
- (0.5em,0.575ex+0.22ex) -- ++(#1-1em,0cm) arc (250:198:0.9ex);
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex]
- (#1,0.575ex-0.22ex) -- ++(-#1,0cm) arc (70:18:0.9ex);
+ (0cm,0.575ex) arc (70:18:0.6ex) arc (18:70:0.6ex)
+ -- ++(#1,0cm);
\end{tikzpicture}%
}%
-%%% for pgf-filled arrows
\newcommand*\mhchem@rightarrow@pgffilled[1]{%
\begin{tikzpicture}[baseline]%
\draw[use as bounding box] (0,0) (#1,0.85ex);
@@ -426,253 +729,45 @@
\draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
(0cm,0.575ex) -- ++(#1,0cm);
\filldraw[cap=round, join=round, line width=0.09ex]
- (#1,0.575ex)
- -- ++(-0.6ex,0.2ex) -- ++(0.15ex,-0.2ex)
- -- ++(-0.15ex,-0.2ex)
- -- cycle;
- \filldraw[cap=round, join=round, line width=0.09ex]
(0cm,0.575ex)
-- ++(0.6ex,0.2ex) -- ++(-0.15ex,-0.2ex)
-- ++(+0.15ex,-0.2ex)
- -- cycle;
- \end{tikzpicture}%
-}%
-\newcommand*\mhchem@leftrightharpoon@pgffilled[1]{%
- \begin{tikzpicture}[baseline]%
- \draw[use as bounding box] (0,0) (#1,1ex);
- \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
- (0cm,0.575ex+0.22ex) -- ++(#1,0cm);
- \filldraw[cap=round, join=round, line width=0.09ex]
- (#1,0.575ex+0.22ex)
- -- ++(-0.6ex,0.25ex) -- ++(0.15ex,-0.25ex)
-- cycle;
- \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
- (0cm,0.575ex-0.22ex) -- ++(#1,0cm);
\filldraw[cap=round, join=round, line width=0.09ex]
- (0cm,0.575ex-0.22ex)
- -- ++(0.6ex,-0.25ex) -- ++(-0.15ex,0.25ex)
+ (#1,0.575ex)
+ -- ++(-0.6ex,0.2ex) -- ++(0.15ex,-0.2ex)
+ -- ++(-0.15ex,-0.2ex)
-- cycle;
\end{tikzpicture}%
-}%
-\newcommand*\mhchem@longrightshortleftharpoons@pgffilled[1]{%
+}%
+\newcommand*\mhchem@rightharpoonup@pgffilled[1]{%
\begin{tikzpicture}[baseline]%
- \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
- (0cm,0.575ex+0.22ex) -- ++(#1,0cm);
+ (0cm,0.575ex) -- ++(#1,0cm);
\filldraw[cap=round, join=round, line width=0.09ex]
- (#1,0.575ex+0.22ex)
+ (#1,0.575ex)
-- ++(-0.6ex,0.25ex) -- ++(0.15ex,-0.25ex)
-- cycle;
- \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
- (0.5em,0.575ex-0.22ex) -- ++(#1-1em,0cm);
- \filldraw[cap=round, join=round, line width=0.09ex]
- (0.5em,0.575ex-0.22ex)
- -- ++(0.6ex,-0.25ex) -- ++(-0.15ex,0.25ex)
- -- cycle;
\end{tikzpicture}%
-}%
-\newcommand*\mhchem@shortrightlongleftharpoons@pgffilled[1]{%
+}%
+\newcommand*\mhchem@leftharpoondown@pgffilled[1]{%
\begin{tikzpicture}[baseline]%
- \draw[use as bounding box] (0,0) (#1,1ex);
- \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
- (0.5em,0.575ex+0.22ex) -- ++(#1-1em,0cm);
- \filldraw[cap=round, join=round, line width=0.09ex]
- (#1-0.5em,0.575ex+0.22ex)
- -- ++(-0.6ex,0.25ex) -- ++(0.15ex,-0.25ex)
- -- cycle;
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
\draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
- (0cm,0.575ex-0.22ex) -- ++(#1,0cm);
+ (0cm,0.575ex) -- ++(#1,0cm);
\filldraw[cap=round, join=round, line width=0.09ex]
- (0cm,0.575ex-0.22ex)
+ (0cm,0.575ex)
-- ++(0.6ex,-0.25ex) -- ++(-0.15ex,0.25ex)
-- cycle;
\end{tikzpicture}%
}%
-\newlength{\mhchem@arrowlength@pgf}
-\newlength{\mhchem@arrowminlength@pgf}
-%TODO: use \mhchem@arrowminlength
-\def\mhchem@labeledarrow@pgf#1#2#3#4#5#6#7{% 1-4 muskips 5 arrow 6 text above 7 below
- \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
- \mkern#3mu%
- \mathop{}%
- \limits%
- \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
- #7\if0#2\else\mkern#2mu\fi}}%
- \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
- #6\if0#2\else\mkern#2mu\fi}}%
- \mkern#4mu%
- }}}%
- %
- \setlength\mhchem@arrowminlength@pgf{10pt+0.5em}%
- \ifthenelse{\equal{mhchem@longrightshortleftharpoons@pgf}{#5}}{
- \setlength\mhchem@arrowminlength@pgf{1.85em}%
- \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
- \mkern#3mu%
- \mathop{}%
- \limits%
- \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
- #7\if0#2\else\mkern#2mu\fi}}%
- \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
- \hspace{1em}% %%
- #6\if0#2\else\mkern#2mu\fi}}%
- \mkern#4mu%
- }}}%
- }{}%
- \ifthenelse{\equal{mhchem@shortrightlongleftharpoons@pgf}{#5}}{
- \setlength\mhchem@arrowminlength@pgf{1.85em}%
- \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
- \mkern#3mu%
- \mathop{}%
- \limits%
- \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
- \hspace{1em}% %%
- #7\if0#2\else\mkern#2mu\fi}}%
- \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
- #6\if0#2\else\mkern#2mu\fi}}%
- \mkern#4mu%
- }}}%
- }{}%
- \ifthenelse{\equal{mhchem@longrightshortleftharpoons@pgffilled}{#5}}{
- \setlength\mhchem@arrowminlength@pgf{1.85em}%
- \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
- \mkern#3mu%
- \mathop{}%
- \limits%
- \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
- #7\if0#2\else\mkern#2mu\fi}}%
- \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
- \hspace{1em}% %%
- #6\if0#2\else\mkern#2mu\fi}}%
- \mkern#4mu%
- }}}%
- }{}%
- \ifthenelse{\equal{mhchem@shortrightlongleftharpoons@pgffilled}{#5}}{
- \setlength\mhchem@arrowminlength@pgf{1.85em}%
- \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
- \mkern#3mu%
- \mathop{}%
- \limits%
- \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
- \hspace{1em}% %%
- #7\if0#2\else\mkern#2mu\fi}}%
- \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
- #6\if0#2\else\mkern#2mu\fi}}%
- \mkern#4mu%
- }}}%
- }{}%
- %
- \ifdim\mhchem@arrowlength@pgf<\mhchem@arrowminlength@pgf%
- \setlength\mhchem@arrowlength@pgf{\mhchem@arrowminlength@pgf}%
- \fi%
- \mathrel{\mkern#3mu\mathop{\csname#5\endcsname{\mhchem@arrowlength@pgf}%
- }%
- \limits
- \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
- #7\if0#2\else\mkern#2mu\fi}}%
- \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
- #6\if0#2\else\mkern#2mu\fi}}%
- \mkern#4mu%
- }%}
-}%
-
-\newcommandtwoopt*\mhchem@gives[2][][]{}
-\newcommandtwoopt*\mhchem@givesleft[2][][]{}
-\newcommandtwoopt*\mhchem@mesomeric[2][][]{}
-\newcommandtwoopt*\mhchem@equilibrium[2][][]{}
-\newcommandtwoopt*\mhchem@equilibriumRight[2][][]{}
-\newcommandtwoopt*\mhchem@equilibriumLeft[2][][]{}
-
-\newcommand\mhchem@definearrows[1]{%
- %%% font
- \ifthenelse{\equal{#1}{font}}{%
- \renewcommandtwoopt*\mhchem@gives[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
- \xrightarrow%
- [{##2}]%
- {##1}}}%
- \renewcommandtwoopt*\mhchem@givesleft[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
- \xleftarrow%
- [{##2}]%
- {##1}}}%
- \renewcommandtwoopt*\mhchem@mesomeric[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
- \ext@arrow 3399\leftrightarrowfill@%
- {##2}%
- {##1}}}%
- \renewcommandtwoopt*{\mhchem@equilibrium}[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
- \mhchem@xrightleftharpoons%
- [{##2}]%
- {##1}}}%
- \renewcommandtwoopt*{\mhchem@equilibriumRight}[2][\hphantom{\makebox[\mhchem@arrowminlength]{}}][]{\ensuremath{%
- \mhchem@xlongrightshortleftharpoons%
- [{##2}]%
- {##1}}}%
- \renewcommandtwoopt*{\mhchem@equilibriumLeft}[2][][\hspace{\mhchem@arrowminlength}]{\ensuremath{%
- \mhchem@xshortrightlongleftharpoons%
- [{##2}]%
- {##1}}}%
- }{%%% pgf
- \ifthenelse{\equal{#1}{pgf}}{%
- \renewcommandtwoopt*\mhchem@gives[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{1.5}{5}{1.5}{1}{mhchem@rightarrow@pgf}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@givesleft[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{5}{1.5}{1}{1.5}{mhchem@leftarrow@pgf}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@mesomeric[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{5}{5}{1}{1}{mhchem@leftrightarrow@pgf}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@equilibrium[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{6}{6}{1}{1}{mhchem@leftrightharpoon@pgf}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@equilibriumRight[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{6}{6}{1}{1}{mhchem@longrightshortleftharpoons@pgf}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@equilibriumLeft[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{6}{6}{1}{1}{mhchem@shortrightlongleftharpoons@pgf}{##2}{##1}}}%
- }{%%% pgf-filled
- \ifthenelse{\equal{#1}{pgf-filled}}{%
- \renewcommandtwoopt*\mhchem@gives[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{1.5}{7}{1.5}{1}{mhchem@rightarrow@pgffilled}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@givesleft[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{7}{1.5}{1}{1.5}{mhchem@leftarrow@pgffilled}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@mesomeric[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@leftrightarrow@pgffilled}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@equilibrium[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@leftrightharpoon@pgffilled}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@equilibriumRight[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@longrightshortleftharpoons@pgffilled}{##2}{##1}}}%
- \renewcommandtwoopt*\mhchem@equilibriumLeft[2][][]%
- {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@shortrightlongleftharpoons@pgffilled}{##2}{##1}}}%
- }{%
- \PackageError{mhchem}{The option font=#1 is not supported}%
- }%
- }}%
-}
-
-\newcommandtwoopt*\mhchem@givesT[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@gives[\text{#1}][\text{#2}]}%
-\newcommandtwoopt*\mhchem@givesC[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@gives[\ce@main{#1}][\ce@main{#2}]}%
-\newcommandtwoopt*\mhchem@givesleftT[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@givesleft[\text{#1}][\text{#2}]}%
-\newcommandtwoopt*\mhchem@givesleftC[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@givesleft[\ce@main{#1}][\ce@main{#2}]}%
-\newcommandtwoopt*\mhchem@mesomericT[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@mesomeric[\text{#1}][\text{#2}]}%
-\newcommandtwoopt*\mhchem@mesomericC[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@mesomeric[\ce@main{#1}][\ce@main{#2}]}%
-\newcommandtwoopt*{\mhchem@equilibriumT}[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@equilibrium[\text{#1}][\text{#2}]}
-\newcommandtwoopt*{\mhchem@equilibriumC}[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@equilibrium[\ce@main{#1}][\ce@main{#2}]}
-\newcommandtwoopt*{\mhchem@equilibriumRightT}[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@equilibriumRight[\text{#1}][\text{#2}]}
-\newcommandtwoopt*{\mhchem@equilibriumRightC}[2][\hspace{\mhchem@arrowminlength}][]%
- {\mhchem@equilibriumRight[\ce@main{#1}][\ce@main{#2}]}
-\newcommandtwoopt*{\mhchem@equilibriumLeftT}[2][][\hspace{\mhchem@arrowminlength}]%
- {\mhchem@equilibriumLeft[\text{#1}][\text{#2}]}
-\newcommandtwoopt*{\mhchem@equilibriumLeftC}[2][][\hspace{\mhchem@arrowminlength}]%
- {\mhchem@equilibriumLeft[\ce@main{#1}][\ce@main{#2}]}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% bonds %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%
-%%% bonds %%%
-%
\newlength\mhchem@bondwidth%
\newlength\mhchem@bondheight%
\newlength\mhchem@smallbondwidth@tmpA%
@@ -694,46 +789,47 @@
\resizebox{\mhchem@smallbondwidth}{\mhchem@bondheight}{\sbond}\unskip%
\resizebox{\mhchem@smallbondwidth}{\mhchem@bondheight}{\sbond}%
\resizebox{\mhchem@smallbondwidth}{\mhchem@bondheight}{\sbond}}%
- \phantom{\sbond}}
+ \phantom{\sbond}}%
\def\mhchem@bond#1{%
- %
- \if ##\noexpand#1%
- \tbond%
- \else\ifx \tbond#1%
+ \ifnum\pdf@strcmp{#1}{-}=0%
+ \sbond%
+ \else\ifnum\pdf@strcmp{#1}{=}=0%
+ \dbond%
+ \else\ifnum\pdf@strcmp{#1}{##}=0%
\tbond%
- \else%
- \ifthenelse{\equal{#1}{-}}{\sbond}{%
- \ifthenelse{\equal{#1}{=}}{\dbond}{%
- \ifthenelse{\equal{#1}{~}}{%
+ \else\ifnum\pdf@strcmp{#1}{~}=0%
\mhchem@setbondwidth%
- \mhchem@halfbond}{%
- \ifthenelse{\equal{#1}{~-}}{%
+ \mhchem@halfbond%
+ \else\ifnum\pdf@strcmp{#1}{~-}=0%
\mhchem@setbondwidth%
\rlap{\protect\raisebox{.2ex}{\mhchem@halfbond}}%
- \protect\raisebox{-.2ex}{\sbond}}{%
- \ifthenelse{\equal{#1}{~--}}{%
+ \protect\raisebox{-.2ex}{\sbond}%
+ \else\ifnum\pdf@strcmp{#1}{~--}=0%
\mhchem@setbondwidth%
\rlap{\protect\raisebox{.4ex}{\mhchem@halfbond}}%
\rlap{\sbond}%
- \protect\raisebox{-.4ex}{\sbond}}{%
- \ifthenelse{\equal{#1}{~=}}{%
+ \protect\raisebox{-.4ex}{\sbond}%
+ \else\ifnum\pdf@strcmp{#1}{~=}=0%
\mhchem@setbondwidth%
\rlap{\protect\raisebox{.4ex}{\mhchem@halfbond}}%
\rlap{\sbond}%
- \protect\raisebox{-.4ex}{\sbond}}{%
- \ifthenelse{\equal{#1}{-~-}}{%
+ \protect\raisebox{-.4ex}{\sbond}%
+ \else\ifnum\pdf@strcmp{#1}{-~-}=0%
\mhchem@setbondwidth%
\rlap{\protect\raisebox{.4ex}{\sbond}}%
\rlap{\mhchem@halfbond}%
- \protect\raisebox{-.4ex}{\sbond}}{%
- \ifthenelse{\equal{#1}{...}}{{\cdot}{\cdot}{\cdot}}{%
- \ifthenelse{\equal{#1}{....}}{{\cdot}{\cdot}{\cdot}{\cdot}}{%
- \ifthenelse{\equal{#1}{->}}{{\rightarrow}}{%
- \ifthenelse{\equal{#1}{<-}}{{\leftarrow}}{%
- %
- \PackageError{mhchem}{unknown bond type in \string\bond (#1)}%
- }}}}}}}}}}}%
- \fi\fi%
+ \protect\raisebox{-.4ex}{\sbond}%
+ \else\ifnum\pdf@strcmp{#1}{...}=0%
+ {\cdot}{\cdot}{\cdot}%
+ \else\ifnum\pdf@strcmp{#1}{....}=0%
+ {\cdot}{\cdot}{\cdot}{\cdot}%
+ \else\ifnum\pdf@strcmp{#1}{->}=0%
+ {\rightarrow}%
+ \else\ifnum\pdf@strcmp{#1}{<-}=0%
+ {\leftarrow}%
+ \else
+ \PackageError{mhchem}{Unknown bond type in \string\bond (#1)}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -742,7 +838,6 @@
\newtoks\mhchem@cf@result%
\newcommand*\mhchem@cf[2][]{%
\bgroup%
- %%%
\def\sbond{{\ensuremath{-}}}%
\ifnum 2=\mhchem@option@version%
\let\bond\sbond%
@@ -753,7 +848,6 @@
\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}}%
@@ -768,70 +862,45 @@
\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{\the\mhchem@cf@result}%
}{%
\ensuremath{\overset{#1}{\the\mhchem@cf@result}}%
}%
- %TODO: insert kerning if full stop (or similar) follows superscript
- %\@ifnextchar,{\kern-0.2em}{} ??%
\egroup%
}%
\def\mhchem@cf@i{%
- %
- %
- %%%
\ifx\mhchem@END\mhchem@cf@lookahead%
\if -\mhchem@cf@state%
\ifnum 4>\mhchem@option@version%
- \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup -}%
+ \mhchem@appendToks{\mhchem@cf@sup}{-}%
\else%
\if 0\mhchem@cf@startedWithBond%
- \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup -}%
+ \mhchem@appendToks{\mhchem@cf@sup}{-}%
\else%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\sbond}%
+ \mhchem@appendToks{\mhchem@cf@result}{\sbond}%
\fi%
\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@cf@result=\expandafter{\the\mhchem@cf@result\sbond}%
+ \mhchem@appendToks{\mhchem@cf@result}{\sbond}%
\def\mhchem@cf@state{+}%
\fi%
\if s\mhchem@cf@state%
@@ -841,25 +910,22 @@
\else\ifx \}\mhchem@cf@lookahead%
\def\mhchem@cf@state{a}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx\bond\mhchem@cf@lookahead%
- \ifnum 2=\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{C}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi%
- \else\if =\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\if ##\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \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\if ^\mhchem@cf@lookahead%
+ \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%
@@ -894,7 +960,16 @@
\else\if +\mhchem@cf@lookahead%
\def\mhchem@cf@state{+}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\if -\mhchem@cf@lookahead%
+ \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}%
@@ -920,13 +995,16 @@
\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@lbracechar\mhchem@cf@lookahead%
+ \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
\ifnum 4>\mhchem@option@version%
\def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
\else%
@@ -943,16 +1021,16 @@
\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\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@lbracechar\mhchem@cf@lookahead%
+ \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@lbracechar\mhchem@cf@lookahead%
+ \if\mhchem@char@lbrace\mhchem@cf@lookahead%
\def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
\else%
\def\mhchem@cf@state{s}%
@@ -967,29 +1045,26 @@
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{a}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx\bond\mhchem@cf@lookahead%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \ifnum 2=\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{C}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi%
- \else\if =\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\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@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \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}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if ^\mhchem@cf@lookahead%
+ \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%
@@ -1006,22 +1081,9 @@
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
\fi%
\else\if ,\mhchem@cf@lookahead%
- \ifnum 4>\mhchem@option@version%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \def\mhchem@cf@state{F}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else%
- \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{{,}}}%
- \fi%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{{,}}}%
\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%
+ \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%
@@ -1046,13 +1108,17 @@
\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@lbracechar\mhchem@cf@lookahead%
+ \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
\ifnum 4>\mhchem@option@version%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{s}%
@@ -1066,38 +1132,37 @@
\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\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\ifx\bond\mhchem@cf@lookahead%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \ifnum 2=\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{C}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\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%
- \else\if =\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\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@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \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\if ^\mhchem@cf@lookahead%
+ \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@cf@sup=\expandafter{\the\mhchem@cf@sup ,}%
+ \mhchem@appendToks{\mhchem@cf@sup}{,}%
\fi%
\let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
\else\if _\mhchem@cf@lookahead%
@@ -1128,7 +1193,15 @@
\else\if +\mhchem@cf@lookahead%
\def\mhchem@cf@state{+}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\if -\mhchem@cf@lookahead%
+ \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%
@@ -1152,12 +1225,16 @@
\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@lbracechar\mhchem@cf@lookahead%
+ \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
\ifnum 4>\mhchem@option@version%
\def\mhchem@cf@action{\mhchem@cf@appendNextGroupAsMath{%
\mhchem@cf@element}}%
@@ -1170,7 +1247,7 @@
\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\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}%
@@ -1180,32 +1257,31 @@
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{a}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx\bond\mhchem@cf@lookahead%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \ifnum 2=\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{C}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi%
- \else\if =\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\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@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \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}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if ^\mhchem@cf@lookahead%
+ \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@cf@sup=\expandafter{\the\mhchem@cf@sup ,}%
+ \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%
@@ -1237,7 +1313,15 @@
\else\if +\mhchem@cf@lookahead%
\def\mhchem@cf@state{+}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\if -\mhchem@cf@lookahead%
+ \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%
@@ -1269,13 +1353,17 @@
\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@lbracechar\mhchem@cf@lookahead%
+ \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
\ifnum 4>\mhchem@option@version%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{s}%
@@ -1293,7 +1381,7 @@
\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\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%
@@ -1347,32 +1435,31 @@
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{a}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
- \else\ifx\bond\mhchem@cf@lookahead%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \ifnum 2=\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{C}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi%
- \else\if =\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\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@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \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}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if ^\mhchem@cf@lookahead%
+ \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@cf@sup=\expandafter{\the\mhchem@cf@sup ,}%
+ \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%
@@ -1410,7 +1497,15 @@
\else\if +\mhchem@cf@lookahead%
\def\mhchem@cf@state{+}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
- \else\if -\mhchem@cf@lookahead%
+ \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%
@@ -1442,16 +1537,19 @@
\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@lbracechar\mhchem@cf@lookahead%
+ \else\if\mhchem@char@lbrace\mhchem@cf@lookahead%
\ifnum 4>\mhchem@option@version%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{s}%
@@ -1469,7 +1567,7 @@
\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\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}%
@@ -1479,29 +1577,25 @@
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
\def\mhchem@cf@state{s}%
\def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\ifx\bond\mhchem@cf@lookahead%
+ \else\expandafter\ifx\mhchem@char@equal@other\mhchem@cf@lookahead%
\mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \ifnum 2=\mhchem@option@version%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else%
- \def\mhchem@cf@state{C}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \fi%
- \else\if =\mhchem@cf@lookahead%
- \mhchem@cf@outputAndReset{\mhchem@cf@result}%
- \mhchem@cf@result=\expandafter{\the\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@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
- \def\mhchem@cf@state{+}%
- \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
- \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \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}%
- \def\mhchem@cf@state{c}%
- \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
- \else\if ^\mhchem@cf@lookahead%
+ \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%
@@ -1557,15 +1651,18 @@
\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@lbracechar\mhchem@cf@lookahead%
+ \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%
@@ -1575,86 +1672,67 @@
\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\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@append#1#2#3{%
- %\showthe#1%
- #1=\expandafter{\the#1#2}%
- %\showthe#1%
+\def\mhchem@cf@appendNextToken#1#2{%
+ \mhchem@appendToks{#1}{#2}%
\mhchem@cf@continue%
-}%
-\def\mhchem@cf@appendExpand#1#2#3{%
- \edef\mhchem@cf@appendExpand@i{\noexpand\mhchem@cf@append\noexpand{#1}{#2}}%
- \mhchem@cf@appendExpand@i%
-}%
-\def\mhchem@cf@appendAndExecute#1#2#3#4{%
- #1=\expandafter{\the#1#2}%
- #3%
+}
+\def\mhchem@cf@appendNextTokenAsMathrm#1#2{%
+ \mhchem@appendToks{#1}{\ensuremath{\mathrm{#2}}}%
\mhchem@cf@continue%
-}%
-\def\mhchem@cf@appendAndExecuteExpand#1#2#3#4{%
- \edef\mhchem@cf@appendExpand@i{\noexpand\mhchem@cf@appendAndExecute\noexpand{#1}{#2}{#3}}%
- \mhchem@cf@appendExpand@i%
-}%
+}
\def\mhchem@cf@appendNextGroup#1#2{%
- #1=\expandafter{\the#1{#2}}%
+ \mhchem@appendToks{#1}{{#2}}%
\mhchem@cf@continue%
}
\def\mhchem@cf@appendNextGroupAsMath#1#2{%
- #1=\expandafter{\the#1{\text{\ensuremath{#2}}}}%
- \mhchem@cf@continue%
-}
-\def\mhchem@cf@appendNextToken#1#2{%
- %\showthe#1%
- #1=\expandafter{\the#1#2}%
- %\showthe#1%
+ \mhchem@appendToks{#1}{\text{\ensuremath{#2}}}%
\mhchem@cf@continue%
}
-\def\mhchem@cf@appendNextTokenAsMathrm#1#2{%
- #1=\expandafter{\the#1{\ensuremath{\mathrm{#2}}}}%
+\def\mhchem@cf@append#1#2#3{%
+ \mhchem@appendToks{#1}{#2}%
\mhchem@cf@continue%
-}
+}%
\def\mhchem@cf@appendMath#1#2#3${%
- #1=\expandafter{\the#1\text{\ensuremath{#3}}}%
+ \mhchem@appendToks{#1}{\text{\ensuremath{#3}}}%
\mhchem@cf@continue%
}%
\def\mhchem@cf@appendMathAsGroup#1#2#3${%
- #1=\expandafter{\the#1{\text{\ensuremath{#3}}}}%
+ \mhchem@appendToks{#1}{{\text{\ensuremath{#3}}}}%
\mhchem@cf@continue%
}%
\def\mhchem@cf@switchState#1#2|{%
- \ifthenelse{\equal{1}{#2}}{% if 1
- \def\mhchem@cf@state{a}% switch to [a]element
+ \ifthenelse{\equal{1}{#2}}{%
+ \def\mhchem@cf@state{a}%
}{%
\PackageWarning{mhchem}{Command |#2| unknown}%
}%
\mhchem@cf@continue%
}%
-%%%%%
\newtoks\mhchem@cf@element%
\newtoks\mhchem@cf@amount%
-%\newtoks\mhchem@cf@sub%
\newtoks\mhchem@cf@sup%
\newtoks\mhchem@cf@presub%
\newtoks\mhchem@cf@presup%
\def\mhchem@cf@output{%
- %
- \if\mhchem@cf@state s%
- \else\if\mhchem@cf@state 1%
- \noexpand\mhchem@mathOrText{\noexpand\mhchem@cf@frac\the\mhchem@cf@amount/\noexpand\mhchem@END}%
+ \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%
@@ -1673,12 +1751,9 @@
{}%
{\noexpand\mhchem@cf@replaceMathMinusDot{\the\mhchem@cf@sup}}%
\fi%
- \fi\fi%\fi%
+ \fi\fi\fi%
}
\def\mhchem@cf@outputReset{%
- %\showthe\mhchem@cf@element%
- %\showthe\mhchem@cf@sup%
- %
\mhchem@cf@element={}%
\mhchem@cf@amount={}%
\mhchem@cf@sup={}%
@@ -1688,23 +1763,22 @@
\def\mhchem@cf@outputAndReset#1{%
\edef\mhchem@cf@outputAndReset@i{#1={\the#1\mhchem@cf@output}}%
\mhchem@cf@outputAndReset@i%
- %\showthe#1%
\mhchem@cf@outputReset%
}
%%% frac
-\def\mhchem@cf@frac#1/#2\mhchem@END{%
+\def\mhchem@cf@frac#1/#2\mhchem@END#3{%
\ifthenelse{\equal{#2}{}}{%
- #1\mhchem@option@skipAfterAmount%
+ #1#3%
}{%
\ensuremath{\mathchoice%
{\textstyle%
- \frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
- {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
- {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
- {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
+ \frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}#3}%
+ {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}#3}%
+ {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}#3}%
+ {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}#3}%
}%
}%
}%
@@ -1712,20 +1786,16 @@
\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@lbracechar\mhchem@cf@replaceMath@lookahead%
+ \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%
@@ -1734,69 +1804,63 @@
\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@cf@replaceMath@result=\expandafter{\the\mhchem@cf@replaceMath@result{#1}}%
+ \mhchem@appendToks{\mhchem@cf@replaceMath@result}{{#1}}%
\mhchem@cf@replaceMath@continue%
}
\def\mhchem@cf@replaceMath@appendNextToken#1{%
- \mhchem@cf@replaceMath@result=\expandafter{\the\mhchem@cf@replaceMath@result#1}%
+ \mhchem@appendToks{\mhchem@cf@replaceMath@result}{#1}%
\mhchem@cf@replaceMath@continue%
}
\def\mhchem@cf@replaceMath@appendMath#1#2${%
- \mhchem@cf@replaceMath@result=\expandafter{\the\mhchem@cf@replaceMath@result\text{\ensuremath{#2}}}%
+ \mhchem@appendToks{\mhchem@cf@replaceMath@result}{\text{\ensuremath{#2}}}%
\mhchem@cf@replaceMath@continue%
-}%
+}
%%% 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\if -\mhchem@cf@replaceMathMinusDot@lookahead\relax%
+ \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@lbracechar\mhchem@cf@replaceMathMinusDot@lookahead%
+ \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\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@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result#1}%
+ \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{#1}%
\mhchem@cf@replaceMathMinusDot@continue%
}
\def\mhchem@cf@replaceMathMinusDot@appendNextGroup#1{%
- \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result{#1}}%
+ \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{{#1}}%
\mhchem@cf@replaceMathMinusDot@continue%
}
\def\mhchem@cf@replaceMathMinusDot@appendNextToken#1{%
- \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result#1}%
+ \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{#1}%
\mhchem@cf@replaceMathMinusDot@continue%
}
\def\mhchem@cf@replaceMathMinusDot@appendMath#1#2${%
- \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result\text{\ensuremath{#2}}}%
+ \mhchem@appendToks{\mhchem@cf@replaceMathMinusDot@result}{\text{\ensuremath{#2}}}%
\mhchem@cf@replaceMathMinusDot@continue%
}%
@@ -1804,13 +1868,6 @@
%%%%%%%%%%%%%%%%%%%%%
%%% @chemfive %%%
%%%%%%%%%%%%%%%%%%%%%
-%%%
-%%%
-%%%
-%%%
-%%%
-%%%
-%%%
\newcommand*\mhchem@chemfive[6]{%
{%
\mhchem@prepostscript%
@@ -1825,13 +1882,6 @@
}
%%% @prepostscript
-%%%
-%%%
-%%%
-%%%
-%%%
-%%%
-%%%
\newlength\mhchem@prepostscript@tmp@i%
\newlength\mhchem@prepostscript@tmp@ii%
\newcommand*\mhchem@prepostscript[7][]{%
@@ -1839,64 +1889,55 @@
\ensuremath{%
\setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#2#3$}}%
\ifdim\mhchem@prepostscript@tmp@i>0pt%
- \setlength{\mhchem@prepostscript@tmp@i}{\widthof{${}^{#2}$}}% [1]
- \setlength{\mhchem@prepostscript@tmp@ii}{\widthof{${}_{#3}$}}% [1]
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{${}^{#2}$}}%
+ \setlength{\mhchem@prepostscript@tmp@ii}{\widthof{${}_{#3}$}}%
\ifdim\mhchem@prepostscript@tmp@i<\mhchem@prepostscript@tmp@ii%
- \setlength{\mhchem@prepostscript@tmp@i}{\mhchem@prepostscript@tmp@ii}\fi% [1]
- \vphantom{#4}% [2]
+ \setlength{\mhchem@prepostscript@tmp@i}{\mhchem@prepostscript@tmp@ii}\fi%
+ \vphantom{#4}%
{}%
^{%
- \mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{% [1]
- \vphantom{#6#7}% [2]
- \vphantom{#1}% [4]
+ \mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{%
+ \vphantom{#6#7}%
+ \vphantom{#1}%
#2%
- }% [1]
+ }%
}%
_{%
- \mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{% [1]
- \vphantom{#5}% [2]
+ \mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{%
+ \vphantom{#5}%
#3%
- }% [1]
+ }%
}%
- \mhchem@minispace% [3]
+ \mhchem@minispace%
\fi%
#4%
\setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#5#6$}}%
- \ifdim\mhchem@prepostscript@tmp@i>0pt%
+ \ifdim\mhchem@prepostscript@tmp@i>0pt%
_{%
- \vphantom{#3}% [2]
+ \vphantom{#3}%
#5%
}%
^{%
- \vphantom{#2#7}% [2]
- \vphantom{#1}% [4]
- #6
+ \vphantom{#2#7}%
+ \vphantom{#1}%
+ #6%
}%
\fi%
\setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#7$}}%
- \ifdim\mhchem@prepostscript@tmp@i>0pt%
- \mhchem@minispace% [3]
+ \ifdim\mhchem@prepostscript@tmp@i>0pt%
+ \mhchem@minispace%
{}%
- _{\vphantom{#3#5}}% [2]
+ _{\vphantom{#3#5}}%
^{%
- \vphantom{#2#6}% [2]
- \vphantom{#1}% [4]
+ \vphantom{#2#6}%
+ \vphantom{#1}%
#7%
}%
\fi%
}%
-%
-%
-%
-%
-%
-%
-%
}
%%% @mathbox
-%%%
-%%%
\newcommand*\mhchem@mathbox[2][]{%
\mathchoice%
{\mhchem@mathbox@ii{\displaystyle}{#1}{#2}}%
@@ -1905,7 +1946,7 @@
{\mhchem@mathbox@ii{\scriptscriptstyle}{#1}{#2}}}%
\newlength\mhchem@mathbox@tmp@i
\newlength\mhchem@mathbox@tmp@ii
-\newcommand*\mhchem@mathbox@ii[3]{%
+\newcommand*\mhchem@mathbox@ii[3]{%
\setlength{\mhchem@mathbox@tmp@i}{\widthof{\ensuremath{#1#2}}}%
\setlength{\mhchem@mathbox@tmp@ii}{\widthof{\ensuremath{#1#3}}}%
\ifdim\mhchem@mathbox@tmp@i<\mhchem@mathbox@tmp@ii%
@@ -1919,7 +1960,7 @@
{\mbox{\ensuremath{\scriptstyle#1}}}%
{\mbox{\ensuremath{\scriptscriptstyle#1}}}}
-%%% @mathboxright
+%%% @mathboxright
\newcommand*\mhchem@mathboxright[2]{\mathchoice%
{\makebox[#1][r]{\ensuremath{\displaystyle#2}}}%
{\makebox[#1][r]{\ensuremath{\textstyle#2}}}%
@@ -1927,12 +1968,10 @@
{\makebox[#1][r]{\ensuremath{\scriptscriptstyle#2}}}}
%%% @minispace
-%%%
-%%%
\newlength\mhchem@minispace@tmp
\newcommand*\mhchem@minispace{%
\setlength{\mhchem@minispace@tmp}{0pt-\widthof{${}^8_8$}+%
- \widthof{$\text{C}^8_8$}-\widthof{$\text{C}^{}_{}$}}% [3]
+ \widthof{$\text{C}^8_8$}-\widthof{$\text{C}^{}_{}$}}%
\kern\mhchem@minispace@tmp%
}
@@ -1960,7 +1999,6 @@
}{\PackageError{mhchem}{Font option `#1' unknown}}}%
}
-%
\def\mhchem@option@alwaystextmode{0}%
\newlength\mhchem@option@minussidebearingleft
@@ -1970,22 +2008,6 @@
\define@key{mhchem}{minus-sidebearing-left}{\setlength\mhchem@option@minussidebearingleft{#1}}
\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}%
@@ -1993,7 +2015,7 @@
\mhchem@definearrows{font}
\define@key{mhchem}{arrows}{%
- \ifthenelse{\equal{pgf}{#1} \or \equal{pgf-filled}{#1}}{%
+ \ifthenelse{\equal{pgf}{#1} \or \equal{pgf-filled}{#1}}{%
\RequirePackage{pgf}% for finding the tikz package more easily
\RequirePackage{tikz}%
}{}%
@@ -2004,17 +2026,14 @@
\define@key{mhchem}{skip-after-amount}{\def\mhchem@option@skipAfterAmount{#1}\def\mhchem@option@skipAfterFracAmount{#1}}
\def\mhchem@option@skipAfterFracAmount{\,}
\define@key{mhchem}{skip-after-frac-amount}{\def\mhchem@option@skipAfterFracAmount{#1}}
-%
\def\mhchem@option@textminus{--}
\define@key{mhchem}{textminus}{\def\mhchem@option@textminus{#1}}
-%
\def\mhchem@option@textcdot{\cdot}
\define@key{mhchem}{textcdot}{\def\mhchem@option@textcdot{#1}}
-%
-%%% begin: standard keyval handling as in many other packages
+%%% begin: standard keyval handling as in many other packages
\def\ProcessOptionsWithKV#1{%
\let\@tempc\relax%
\let\mhchem@tempa\@empty%
@@ -2047,8 +2066,9 @@
\PackageWarningNoLine{mhchem}{%
You did not specify a 'version' option for the mhchem\MessageBreak
package. If you are about to create a new document,\MessageBreak
- please write \string\usepackage[version=3]{mhchem} in your preamble in\MessageBreak
- order to use the most recent version of mhchem}%
+ please write \string\usepackage[version=3]{mhchem} in your\MessageBreak
+ preamble in order to use the most recent version of\MessageBreak
+ mhchem}%
\def\mhchem@option@version{3}%
\else\ifnum 4=\mhchem@option@version%
\PackageWarningNoLine{mhchem}{%
@@ -2058,47 +2078,12 @@
to change without notice}%
\fi\fi%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%% misc %%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% legacy %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifnum 4>\mhchem@option@version
\newcommand*\mhchem@cmath[1]{\ensuremath{\text{\ensuremath{#1}}}}%
\newcommand*\cmath[1]{\mhchem@cmath{#1}}
- \newcommand*\cf[2][]{\mhchem@cf[#1]{#2}}
+ \DeclareRobustCommand\cf[2][]{\mhchem@cf[#1]{#2}}
\fi
-
-
-
-
-
-
-
-
-
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-%
-
-%
-\def\mhchem@END{}
-\def\mhchem@macro{}
-\def\mhchem@empty{}
-%
-\edef\mhchem@lbracechar{\string{} %}
-\def\mhchem@gobble#1{}%
-%
-% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/mhchem/rsphrase.sty b/Master/texmf-dist/tex/latex/mhchem/rsphrase.sty
index 8bed392cf4d..6c4971dc202 100644
--- a/Master/texmf-dist/tex/latex/mhchem/rsphrase.sty
+++ b/Master/texmf-dist/tex/latex/mhchem/rsphrase.sty
@@ -1,37 +1,13 @@
%% rsphrase.sty
-%% Copyright 2004-2010 M.a-r.t-i.n H.e-n.s-e.l
-%
-% The original phrases are taken from
-% http://europa.eu.int/comm/environment/dansub/pdfs/annex3_en.pdf and
-% http://europa.eu.int/comm/environment/dansub/pdfs/annex4_en.pdf
-% which are linked from
-% http://europa.eu.int/comm/environment/dansub/main67_548/index_en.htm
-% The phrases themselves, therefore do not fall under the license
-% mentioned below.
-% See http://europa.eu.int/geninfo/disclaimer_en.htm
-%
-% Danish hyphenation and warning messages were kindly provided
-% by Rasmus Villemoes (burner -@- imf -.- au -.- dk).
-%
-% French hyphenation and warning messages were kindly provided
-% by Dominique Richard (dri -@- lobivia -.- cpe -.- fr).
-%
-% The Italian phrases were kindly provided by
-% Lorenzo Vagnarelli (lorenzo -.- vagnarelli -@- libero -.- it)
-%
-% The Spanish phrases were kindly provided by
-% Ignacio Fern\'{a}ndez Galv\'{a}n (jellby -@- yahoo -.- com).
-%
-%
+%% Copyright 2004-2011 Martin Hensel
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c
-% which can be found at
-% http://www.latex-project.org/lppl/lppl-1-3c.txt
+% which is included as lppl-1-3c.txt.
%
% This work has the LPPL maintenance status "maintained".
-% The Current Maintainer of this work is M.a-r.t-i.n H.e-n.s-e.l.
-%
+% The Current Maintainer of this work is Martin Hensel.
+%
% ( In order to fight spam, the maintainer's contact )
% ( information is "encrypted" with ROT13. )
% ( If you do not know ROT13 yet and have no tool for )
@@ -48,8 +24,28 @@
% | Treznal
% `----------
%
-% This work consists of the files mhchem.sty, rsphrase.sty,
-% mhchem.pdf and legal.txt.
+% This work consists of all files listed in manifest.txt.
+%
+%
+% The original phrases are taken from
+% http://europa.eu.int/comm/environment/dansub/pdfs/annex3_en.pdf and
+% http://europa.eu.int/comm/environment/dansub/pdfs/annex4_en.pdf
+% which are linked from
+% http://europa.eu.int/comm/environment/dansub/main67_548/index_en.htm
+% The phrases themselves therefore are not subject to the LPPL.
+% See http://europa.eu.int/geninfo/disclaimer_en.htm
+%
+% Danish hyphenation and warning messages were kindly provided
+% by Rasmus Villemoes (burner -@- imf -.- au -.- dk).
+%
+% French hyphenation and warning messages were kindly provided
+% by Dominique Richard (dri -@- lobivia -.- cpe -.- fr).
+%
+% The Italian phrases were kindly provided by
+% Lorenzo Vagnarelli (lorenzo -.- vagnarelli -@- libero -.- it)
+%
+% The Spanish phrases were kindly provided by
+% Ignacio Fern\'{a}ndez Galv\'{a}n (jellby -@- yahoo -.- com).
%
%
\ProvidesPackage{rsphrase}[2011/06/03 v3.11 Risk and Safety Phrases (mhchem bundle)]
@@ -67,7 +63,7 @@
% strict label phrases
\def\mhchem@rs@de@label{dieses Etikett}
\def\mhchem@rs@en@showlabel{show this container or label}%
- \def\mhchem@rs@dk@showlabel{denne beholder eller etiket}%
+ \def\mhchem@rs@dk@showlabel{denne beholder eller etiket}%
% original parts of German phrases (badly translated)
\def\mhchem@rs@de@r@dn{ernste Gefahr irreversiblen Schadens}%
\def\mhchem@rs@de@r@znzezz{Ge\-sund\-heits\-sch\"ad\-lich beim Einatmen, Verschlucken und Be\-r\"uh\-rung mit der Haut}%
@@ -81,7 +77,7 @@
\def\mhchem@rs@de@label{Etikett}%
\def\mhchem@rs@en@showlabel{show the container or label}%% +++ correct english?
\def\mhchem@rs@dk@showlabel{beholderen eller etiketten}%
- % adapted parts of German phrases (more precise translation)
+ % adapted parts of German phrases (more precise translation)
\def\mhchem@rs@de@r@dn{Gefahr sehr ernster irreversibler Sch\"a\-den}%
\def\mhchem@rs@de@r@znzezz{Ge\-sund\-heits\-sch\"ad\-lich beim Einatmen, Verschlucken und bei Be\-r\"uh\-rung mit der Haut}% "und _bei_" eingefuegt
\def\mhchem@rs@de@r@zdzvzf{Giftig beim Einatmen, Verschlucken und bei Be\-r\"uh\-rung mit der Haut}% "und _bei_" eingefuegt
@@ -152,21 +148,21 @@
%
\mhchem@iflanguagename{ngerman}{\mhchem@rs@data@ngerman[#1]{#2}}{% = naustrian
\mhchem@iflanguagename{naustrian}{\mhchem@rs@data@ngerman[#1]{#2}}{%
- \mhchem@iflanguagename{german}{% = austrian, germanb,
+ \mhchem@iflanguagename{german}{% = austrian, germanb,
\mhchem@rs@warning@german%
\gdef\mhchem@rs@warning@german{}%
\mhchem@rs@data@ngerman[#1]{#2}%
}{%
- \mhchem@iflanguagename{austrian}{%
+ \mhchem@iflanguagename{austrian}{%
\mhchem@rs@warning@german%
\gdef\mhchem@rs@warning@german{}%
\mhchem@rs@data@ngerman[#1]{#2}%
}{%
- \mhchem@iflanguagename{germanb}{%
+ \mhchem@iflanguagename{germanb}{%
\mhchem@rs@warning@german%
\gdef\mhchem@rs@warning@german{}%
\mhchem@rs@data@ngerman[#1]{#2}%
- }{%
+ }{%
%
\mhchem@iflanguagename{italian}{\mhchem@rs@data@italian[#1]{#2}}{%
%
@@ -205,21 +201,21 @@
%
\mhchem@iflanguagename{ngerman}{\mhchem@rs@data@ngerman[#1]{#2}}{% = naustrian
\mhchem@iflanguagename{naustrian}{\mhchem@rs@data@ngerman[#1]{#2}}{%
- \mhchem@iflanguagename{german}{% = austrian, germanb,
+ \mhchem@iflanguagename{german}{% = austrian, germanb,
\mhchem@rs@warning@german%
\gdef\mhchem@rs@warning@german{}%
\mhchem@rs@data@ngerman[#1]{#2}%
}{%
- \mhchem@iflanguagename{austrian}{%
+ \mhchem@iflanguagename{austrian}{%
\mhchem@rs@warning@german%
\gdef\mhchem@rs@warning@german{}%
\mhchem@rs@data@ngerman[#1]{#2}%
}{%
- \mhchem@iflanguagename{germanb}{%
+ \mhchem@iflanguagename{germanb}{%
\mhchem@rs@warning@german%
\gdef\mhchem@rs@warning@german{}%
\mhchem@rs@data@ngerman[#1]{#2}%
- }{%
+ }{%
%
\mhchem@iflanguagename{italian}{\mhchem@rs@data@italian[#1]{#2}}{%
%
@@ -1208,7 +1204,7 @@
\MessageBreak d'extinction a utiliser}}%
\mhchem@rs@ii[S43]{#2}{S43.1}{En cas d'incendie, utiliser #1. Ne jamais utiliser d'eau}%
{\mhchem@rs@check{#1}{S43.1}{Priere de preciser la nature exacte des moyens%
- \MessageBreak d'extinction a utiliser}}%
+ \MessageBreak d'extinction a utiliser}}%
\mhchem@rs@ii{#2}{S45}{En cas d'accident ou de malaise, consulter im\-m\'e\-dia\-te\-ment un m\'e\-de\-cin (si possible lui montrer l'\'e\-ti\-quet\-te)}{}%
\mhchem@rs@ii{#2}{S46}{En cas d'ingestion, consulter im\-m\'e\-dia\-te\-ment un m\'e\-de\-cin et lui montrer l'emballage ou l'\'e\-ti\-quette}{}%
\mhchem@rs@ii{#2}{S47}{Conserver \`a une tem\-p\'e\-ra\-tu\-re ne d\'e\-pas\-sant pas #1\textdegree C}%