summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg329
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg28
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg73
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg39
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg33
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg23
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg30
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg48
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg106
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg39
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg71
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg55
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg50
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg103
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg87
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg53
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg233
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/siunitx.sty3509
23 files changed, 5044 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg
new file mode 100644
index 00000000000..2f7b9d01d04
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-DE.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `DE')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-DE.cfg}
+ [\csname si@svn@version\endcsname siunitx: Germany locale]
+\sisetup{
+ unitsep=cdot,
+ valuesep=thin,
+ decimalsymbol=comma,
+ expproduct=cdot,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-DE.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg
new file mode 100644
index 00000000000..d6237983a9c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg
@@ -0,0 +1,329 @@
+%%
+%% This is file `si-SIunits.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `SIunits')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-SIunits.cfg}
+ [\csname si@svn@version\endcsname siunitx: Emulation of
+ SIunits]
+\si@emulating{SIunits}{2007/12/02 v1.36}
+\sisetup{
+ unitsep=thick,
+ valuesep=thick,
+ prefixproduct=\si@valuesep,
+ trapambigfrac=false,
+ stickyper}
+\requiresiconfigs{prefix,named,accepted,physical}
+\newcommand*{\reciprocal}{\sisetup{per=reciprocal}\si@per}
+\let\rp\reciprocal
+\renewcommand*{\per}{\sisetup{per=slash}\si@per}
+\newcommand*{\usk}{}
+\newcommand*{\power}[1]{#1\tothe}
+\newcommand*{\rpsquare}{\sisetup{per=reciprocal}\si@per\Square}
+\newcommand*{\rpcubic}{\sisetup{per=reciprocal}\si@per\cubic}
+\newpower{\fourth}{4}
+\newcommand*{\rpfourth}{\sisetup{per=reciprocal}\si@per\fourth}
+\newcommand*{\rpsquared}{%
+ \sisetup{per=reciprocal}\si@unt@pertrue\si@unt@perseentrue%
+ \squared}
+\newcommand*{\rpcubed}{%
+ \sisetup{per=reciprocal}\si@unt@pertrue\cubed}
+\newcommand*{\SIsetup}[1]{%
+ \@for\si@tempa:=#1\do{%
+ \@ifundefined{ifsi@old@#1}
+ {\si@log@warn{Unknown SIunits option `#1'}}
+ {\csname si@old@#1true\endcsname}}
+ \si@siu@setup}
+\newcommand*{\si@siu@setup}{%
+ \ifsi@old@cdot
+ \sisetup{unitsep=cdot}%
+ \fi
+ \ifsi@old@thickspace
+ \sisetup{unitsep=thick}%
+ \fi
+ \ifsi@old@mediumspace
+ \sisetup{unitsep=medium}%
+ \fi
+ \ifsi@old@thinspace
+ \sisetup{unitsep=thin}%
+ \fi
+ \ifsi@old@thickqspace
+ \sisetup{valuesep=thick}%
+ \fi
+ \ifsi@old@mediumqspace
+ \sisetup{valuesep=medium}%
+ \fi
+ \ifsi@old@thinqspace
+ \sisetup{valuesep=thin}%
+ \fi}
+\si@siu@setup
+\ifsi@old@squaren
+ \newpower{\squaren}{2}
+\fi
+\AtBeginDocument{%
+ \@ifundefined{square}
+ {\newpower{\square}{2}}
+ {\ifsi@old@amssymb
+ \renewpower{\square}{2}
+ \else
+ \ifsi@old@squaren\else
+ \si@log@warn{\string\square\space already
+ defined\MessageBreak SIunits mode may cause
+ errors}%
+ \fi
+ \fi}}
+\AtBeginDocument{
+ \@ifundefined{gray}
+ {\newunit{\gray}{Gy}}
+ {\ifsi@old@pstricks
+ \renewunit{\gray}{Gy}
+ \else
+ \ifsi@old@Gray\else
+ \si@log@warn{\string\gray\space already
+ defined\MessageBreak SIunits mode may cause
+ errors}%
+ \fi
+ \fi}}
+\ifsi@old@italian
+ \let\unita\SI
+\else
+ \let\unit\SI
+\fi
+\ifsi@old@textstyle
+ \sisetup{mode=text}
+\fi
+\ifsi@old@binary
+ \sisetup{alsoload=binary}
+\fi
+\ifsi@old@noams
+ \AtBeginDocument{%
+ \renewcommand*{\si@textmu}{\ensuremath\si@mathsmu}}
+\fi
+\newunit[valuesep=none]{\arcminute}{\si@sym@minute}
+\newunit[valuesep=none]{\arcsecond}{\si@sym@second}
+\newunit{\rperminute}{r/min}
+\newunit{\ton}{t}
+\newunit{\degreecelsius}{\celsius}
+\let\addunit\newunit
+\newcommand*{\addprefix}[2]{\newprefix{#1}{#2}}
+\newcommand*{\si@siu@newunit}[3][]{%
+ \renewcommand*{\si@tempa}{#1}%
+ \renewcommand*{\si@tempb}{square}%
+ \renewcommand*{\si@siu@power}{}%
+ \ifx\@empty\si@tempa\@empty\else
+ \ifx\si@tempa\si@tempb
+ \renewcommand*{\si@siu@power}{\ssquare}%
+ \else
+ \edef\si@siu@power{%
+ \expandafter\noexpand\csname #1\endcsname}%
+ \fi
+ \fi
+ \edef\si@tempa{%
+ \expandafter\noexpand\csname #2per#1#3\endcsname}%
+ \edef\si@tempb{%
+ \expandafter\noexpand\csname #2\endcsname\noexpand\per
+ \expandafter\noexpand\si@siu@power
+ \expandafter\noexpand\csname #3\endcsname}%
+ \expandafter\expandafter\expandafter\newunit\expandafter%
+ \expandafter\expandafter{\expandafter\si@tempa\expandafter}%
+ \expandafter{\si@tempb}
+ \edef\si@tempa{%
+ \expandafter\noexpand\csname #2per#1#3np\endcsname}%
+ \edef\si@tempb{%
+ \expandafter\noexpand\csname #2\endcsname\noexpand
+ \reciprocal\expandafter\noexpand\si@siu@power
+ \expandafter\noexpand\csname #3\endcsname}%
+ \expandafter\expandafter\expandafter\newunit\expandafter
+ \expandafter\expandafter{\expandafter\si@tempa\expandafter}%
+ \expandafter{\si@tempb}%
+ \si@siu@newunithook[#1]{#2}{#3}}
+\providecommand*{\si@siu@newunithook}[3][]{}
+\si@siu@newunit{gray}{second}
+\si@siu@newunit[square]{metre}{second}
+\si@siu@newunit{joule}{mole}
+\si@siu@newunit[cubic]{mole}{metre}
+\si@siu@newunit[square]{radian}{second}
+\si@siu@newunit{radian}{second}
+\si@siu@newunit[cubic]{squaremetre}{metre}
+\si@siu@newunit[cubic]{katal}{metre}
+\si@siu@newunit{coulomb}{mol}
+\si@siu@newunit[square]{ampere}{metre}
+\si@siu@newunit[cubic]{kilogram}{metre}
+\si@siu@newunit[cubic]{coulomb}{metre}
+\si@siu@newunit{volt}{metre}
+\si@siu@newunit[square]{coulomb}{squaremetre}
+\si@siu@newunit{farad}{metre}
+\si@siu@newunit[square]{watt}{metre}
+\si@siu@newunit[square]{joule}{metre}
+\si@siu@newunit[cubic]{newton}{metre}
+\si@siu@newunit{newton}{kilogram}
+\si@siu@newunit{joule}{kelvin}
+\si@siu@newunit{joule}{kilogram}
+\si@siu@newunit{coulomb}{kilogram}
+\si@siu@newunit{squaremetre}{second}
+\si@siu@newunit[square]{squaremetre}{second}
+\si@siu@newunit[square]{candela}{metre}
+\si@siu@newunit{ampere}{metre}
+\si@siu@newunit{joule}{tesla}
+\si@siu@newunit{henry}{metre}
+\si@siu@newunit{kilogram}{second}
+\si@siu@newunit[square]{kilogram}{metre}
+\si@siu@newunit{kilogram}{metre}
+\si@siu@newunit[square]{newton}{metre}
+\si@siu@newunit{watt}{kilogram}
+\si@siu@newunit[cubic]{watt}{metre}
+\si@siu@newunit{squaremetre}{kilogram}
+\si@siu@newunit{cubicmetre}{kilogram}
+\si@siu@newunit{newton}{metre}
+\si@siu@newunit[cubic]{squaremetre}{second}
+\si@siu@newunit{metre}{second}
+\si@siu@newunit[cubic]{joule}{metre}
+\si@siu@newunit{cubicmetre}{second}
+\newcommand*{\si@siu@newunitx}[4]{%
+ \expandafter\newunit\expandafter{\csname #1per#2\endcsname}
+ {#3\per#4}%
+ \expandafter\newunit\expandafter{\csname #1per#2np\endcsname}
+ {#3\reciprocal#4}
+ \si@siu@newunitxhook{#1}{#2}{#3}{#4}}
+\providecommand*{\si@siu@newunitxhook}[4]{}
+\si@siu@newunitx{kilogramsquaremetre}{second}
+ {\kilogram\squaremetre}{\second}
+\si@siu@newunitx{squaremetre}{newtonsecond}{\squaremetre}
+ {\newton\second}
+\si@siu@newunitx{kilogrammetre}{second}{\kilogram\metre}
+ {\second}
+\si@siu@newunitx{kilogram}{squaremetresecond}{\kilogram}
+ {\squaremetre\second}
+\si@siu@newunitx{joule}{molekelvin}{\joule}{\mole\kelvin}
+\si@siu@newunitx{kilogram}{kilomole}{\kilogram}{\kilo\mole}
+\si@siu@newunitx{kilogrammetre}{squaresecond}{\kilogram\metre}
+ {\second\squared}
+\si@siu@newunitx{watt}{squaremetresteradian}{\watt}
+ {\squaremetre\steradian}
+\si@siu@newunitx{joule}{kilogramkelvin}{\joule}
+ {\kilogram\kelvin}
+\si@siu@newunitx{watt}{metrekelvin}{\watt}{\metre\kelvin}
+\si@siu@newunitx{kilogram}{cubicmetrecoulomb}{\kilogram}
+ {\cubic\metre\coulomb}
+\si@siu@newunitx{kilogram}{secondcubicmetre}{\kilogram}
+ {\second\cubicmetre}
+\newunit{\si@siu@unity}{1}
+\si@siu@newunitx{}{squaremetresecond}{\si@siu@unity}
+ {\squaremetre\second}
+\newunit{\pascalsecond}{\pascal\second}
+\newunit{\amperemetresecond}{\ampere\metre\second}
+\newunit{\ohmmetre}{\ohm\metre}
+\newunit{\newtonmetre}{\newton\metre}
+\let\newtonmetrenp\newtonmetre
+\newunit{\kilogramsquaremetre}{\kilogram\squaremetre}
+\let\kilogramsquaremetrenp\kilogramsquaremetre
+\newcommand*{\si@siu@newprefix}[1]{%
+ \edef\si@tempa{\expandafter\noexpand\csname #1d\endcsname}%
+ \edef\si@tempb{\expandafter\noexpand\csname #1\endcsname}%
+ \expandafter\expandafter\expandafter\newcommand\expandafter
+ \expandafter\expandafter*\expandafter\expandafter
+ \expandafter{\expandafter\si@tempa\expandafter}\expandafter
+ {\expandafter\si@prefixsymbolicfalse\si@tempb}}
+\si@siu@newprefix{yocto}
+\si@siu@newprefix{zepto}
+\si@siu@newprefix{atto}
+\si@siu@newprefix{femto}
+\si@siu@newprefix{pico}
+\si@siu@newprefix{nano}
+\si@siu@newprefix{micro}
+\si@siu@newprefix{milli}
+\si@siu@newprefix{centi}
+\si@siu@newprefix{deca}
+\si@siu@newprefix{deka}
+\si@siu@newprefix{hecto}
+\si@siu@newprefix{kilo}
+\si@siu@newprefix{mega}
+\si@siu@newprefix{giga}
+\si@siu@newprefix{tera}
+\si@siu@newprefix{peta}
+\si@siu@newprefix{exa}
+\si@siu@newprefix{zetta}
+\si@siu@newprefix{yotta}
+\ifsi@old@binary
+ \si@siu@newprefix{kibi}
+ \si@siu@newprefix{mebi}
+ \si@siu@newprefix{gibi}
+ \si@siu@newprefix{tebi}
+ \si@siu@newprefix{pebi}
+ \si@siu@newprefix{exbi}
+\fi
+\ifsi@old@derived
+ \newunit{\derradian}{\metre\reciprocal\metre}
+ \newunit{\dersteradian}{\squaremetre\rpsquare\metre}
+ \newunit{\derhertz}{\reciprocal\second}
+ \newunit{\dernewton}{\metre\kilogram\second\rpsquared}
+ \newunit{\derpascal}{\newton\rpsquare\metre}
+ \newunit{\derjoule}{\newton\metre}
+ \newunit{\derwatt}{\joule\reciprocal\second}
+ \newunit{\dercoulomb}{\ampere\second}
+ \newunit{\dervolt}{\watt\reciprocal\ampere}
+ \newunit{\derfarad}{\coulomb\reciprocal\volt}
+ \newunit{\derohm}{\volt\reciprocal\ampere}
+ \newunit{\dersiemens}{\ampere\reciprocal\volt}
+ \newunit{\derweber}
+ {\squaremetre\kilogram\second\rpsquared\reciprocal\ampere}
+ \newunit{\dertesla}{\weber\rpsquare\metre}
+ \newunit{\derhenry}{\weber\reciprocal\ampere}
+ \newunit{\dercelsius}{\kelvin}
+ \newunit{\derlumen}{\candela\steradian}
+ \newunit{\derlux}{\lumen\rpsquare\metre}
+ \newunit{\derbecquerel}{\derhertz}
+ \newunit{\dergray}{\joule\reciprocal\kilogram}
+ \newunit{\dersievert}{\dergray}
+ \newunit{\derkatal}{\rp\second\usk\mole}
+\fi
+\ifsi@old@derivedinbase
+ \newunit{\radianbase}{\metre\reciprocal\metre}
+ \newunit{\steradianbase}{\squaremetre\rpsquare\metre}
+ \newunit{\hertzbase}{\reciprocal\second}
+ \newunit{\newtonbase}{\metre\kilogram\second\rpsquared}
+ \newunit{\pascalbase}{\reciprocal\metre\kilogram\second%
+ \rpsquared}
+ \newunit{\joulebase}{\squaremetre\kilogram\second\rpsquared}
+ \newunit{\wattbase}{\squaremetre\kilogram\rpcubic\second}
+ \newunit{\coulombbase}{\ampere\second}
+ \newunit{\voltbase}
+ {\squaremetre\kilogram\rpcubic\second\reciprocal\ampere}
+ \newunit{\faradbase}
+ {\rpsquare\metre\reciprocal\kilogram\fourth\second\ampere%
+ \squared}
+ \newunit{\ohmbase}
+ {\squaremetre\kilogram\rpcubic\second\rpsquare\ampere}
+ \newunit{\siemensbase}
+ {\rpsquare\metre\reciprocal\kilogram\cubic\second\ampere%
+ \squared}
+ \newunit{\weberbase}
+ {\squaremetre\kilogram\second\rpsquared\reciprocal\ampere}
+ \newunit{\teslabase}{\kilogram\second\rpsquared\reciprocal%
+ \ampere}
+ \newunit{\henrybase}
+ {\squaremetre\kilogram\second\rpsquared\rpsquare\ampere}
+ \newunit{\celsiusbase}{\kelvin}
+ \newunit{\lumenbase}{\candela\squaremetre\rpsquare\metre}
+ \newunit{\luxbase}{\candela\squaremetre\rpfourth\metre}
+ \newunit{\becquerelbase}{\hertzbase}
+ \newunit{\graybase}{\squaremetre\second\rpsquared}
+ \newunit{\sievertbase}{\graybase}
+ \newunit{\katalbase}{\rp\second\mole}
+\fi
+\InputIfFileExists{SIunits.cfg}
+ {\si@log@inf{SIunits config file loaded}}
+ {\si@log@inf{SIunits config file not found}}
+\endinput
+%%
+%% End of file `si-SIunits.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg
new file mode 100644
index 00000000000..98aff00edb6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-UK.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `UK')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-UK.cfg}
+ [\csname si@svn@version\endcsname siunitx: UK locale]
+\sisetup{
+ unitsep=thin,
+ expproduct=times,
+ valuesep=thin,
+ decimalsymbol=fullstop,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-UK.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg
new file mode 100644
index 00000000000..b8c5a064809
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-USA.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `USA')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-USA.cfg}
+ [\csname si@svn@version\endcsname siunitx: USA locale]
+\sisetup{
+ unitsep=thin,
+ expproduct=times,
+ valuesep=thin,
+ decimalsymbol=fullstop,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-USA.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg
new file mode 100644
index 00000000000..f2f0e09f749
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg
@@ -0,0 +1,28 @@
+%%
+%% This is file `si-ZA.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `ZA')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-ZA.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ South Africa locale]
+\sisetup{
+ unitsep=cdot,
+ valuesep=thin,
+ expproduct=times,
+ decimalsymbol=comma,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-ZA.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg
new file mode 100644
index 00000000000..bf409115351
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg
@@ -0,0 +1,73 @@
+%%
+%% This is file `si-abbr.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `abbr')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-abbr.cfg}
+ [\csname si@svn@version\endcsname siunitx: Abbreviated units]
+\requiresiconfigs{prefix,named,accepted,physical}
+\newunit{\pA}{\pico\ampere}
+\newunit{\nA}{\nano\ampere}
+\newunit{\micA}{\micro\ampere}
+\newunit{\mA}{\milli\ampere}
+\newunit{\kA}{\kilo\ampere}
+\newunit{\Hz}{\hertz}
+\newunit{\mHz}{\milli\hertz}
+\newunit{\kHz}{\kilo\hertz}
+\newunit{\MHz}{\mega\hertz}
+\newunit{\GHz}{\giga\hertz}
+\newunit{\THz}{\tera\hertz}
+\newunit{\fmol}{\femto\mole}
+\newunit{\pmol}{\pico\mole}
+\newunit{\nmol}{\nano\mole}
+\newunit{\micmol}{\micro\mole}
+\newunit{\mmol}{\milli\mole}
+\newunit{\kV}{\kilo\volt}
+\newunit{\mV}{\milli\volt}
+\provideunit{\ml}{\milli\litre}
+\provideunit{\micl}{\micro\litre}
+\newunit{\cmc}{\centi\metre\cubed}
+\newunit{\dmc}{\deci\metre\cubed}
+\newunit{\cms}{\centi\metre\squared}
+\newunit{\kg}{\kilo\gram}
+\provideunit{\fg}{\femto\gram}
+\newunit{\pg}{\pico\gram}
+\newunit{\nanog}{\nano\gram}
+\newunit{\micg}{\micro\gram}
+\newunit{\mg}{\milli\gram}
+\newunit{\amu}{\atomicmass}
+\newunit{\kJ}{\kilo\joule}
+\newunit{\eV}{\electronvolt}
+\newunit{\meV}{\milli\electronvolt}
+\newunit{\keV}{\kilo\electronvolt}
+\newunit{\MeV}{\mega\electronvolt}
+\newunit{\GeV}{\giga\electronvolt}
+\newunit{\TeV}{\tera\electronvolt}
+\newunit[unitsep=none]{\kWh}{\kilo\watt\hour}
+\newunit{\picom}{\pico\metre}
+\newunit{\nm}{\nano\metre}
+\newunit{\micm}{\micro\metre}
+\newunit{\mm}{\milli\metre}
+\newunit{\cm}{\centi\metre}
+\newunit{\dm}{\deci\metre}
+\newunit{\km}{\kilo\metre}
+\newunit{\Sec}{\second}
+\newunit{\as}{\atto\second}
+\newunit{\fs}{\femto\second}
+\provideunit{\ps}{\pico\second}
+\newunit{\ns}{\nano\second}
+\newunit{\mics}{\micro\second}
+\newunit{\ms}{\milli\second}
+\endinput
+%%
+%% End of file `si-abbr.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg
new file mode 100644
index 00000000000..ffe8a8ca0ab
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg
@@ -0,0 +1,39 @@
+%%
+%% This is file `si-accepted.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `accepted')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-accepted.cfg}
+ [\csname si@svn@version\endcsname siunitx: SI Accepted units]
+\newunit{\minute}{min}
+\newunit{\hour}{h}
+\newunit{\Day}{d}
+\newunit{\dday}{d}
+\ifsi@old@OHM
+ \newunit[valuesep=none]{\Degree}{\si@sym@degree}
+\else
+ \ifsi@gensymb\else
+ \newunit[valuesep=none]{\degree}{\si@sym@degree}
+ \fi
+\fi
+\newunit[valuesep=none]{\arcmin}{\si@sym@minute}
+\newunit[valuesep=none]{\arcsec}{\si@sym@second}
+\newunit{\litre}{l}
+\newunit{\liter}{L}
+\newunit{\tonne}{t}
+\newunit{\neper}{Np}
+\newunit{\bel}{B}
+\newunit{\percent}{\%}
+\endinput
+%%
+%% End of file `si-accepted.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg
new file mode 100644
index 00000000000..89dc4487117
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg
@@ -0,0 +1,33 @@
+%%
+%% This is file `si-addn.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `addn')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-addn.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ SI Additional units]
+\newunit{\angstrom}{\si@sym@ringA}
+\newunit{\are}{a}
+\newunit{\hectare}{\hecto\are}
+\newunit{\barn}{b}
+\newunit{\BAR}{bar}
+\newunit{\bbar}{bar}
+\newunit{\millibar}{\milli\BAR}
+\newunit{\gal}{Gal}
+\newunit{\curie}{Ci}
+\newunit{\roentgen}{R}
+\newunit{\rad}{rad}
+\newunit{\rem}{rem}
+\endinput
+%%
+%% End of file `si-addn.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg
new file mode 100644
index 00000000000..de516883511
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg
@@ -0,0 +1,23 @@
+%%
+%% This is file `si-astro.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `astro')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-astro.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ Units for astronomy]
+\newunit{\parsec}{pc}
+\newunit{\lightyear}{ly}
+\endinput
+%%
+%% End of file `si-astro.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg
new file mode 100644
index 00000000000..110791abbcc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg
@@ -0,0 +1,30 @@
+%%
+%% This is file `si-binary.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `binary')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-binary.cfg}
+ [\csname si@svn@version\endcsname siunitx: Binary units]
+\newprefix[binary]{\kibi}{10}{Ki}
+\newprefix[binary]{\mebi}{20}{Mi}
+\newprefix[binary]{\gibi}{30}{Gi}
+\newprefix[binary]{\tebi}{40}{Ti}
+\newprefix[binary]{\pebi}{50}{Pi}
+\newprefix[binary]{\exbi}{60}{Ei}
+\newprefix[binary]{\zebi}{70}{Zi}
+\newprefix[binary]{\yobi}{80}{Yi}
+\newunit{\bit}{bit}
+\newunit{\byte}{B}
+\endinput
+%%
+%% End of file `si-binary.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg
new file mode 100644
index 00000000000..b60266bbc01
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg
@@ -0,0 +1,48 @@
+%%
+%% This is file `si-fancynum.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `fancynum')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-fancynum.cfg}
+ [\csname si@svn@version\endcsname Emulation of siunitx:
+ fancynum]
+\si@emulating{fancynum}{2000/08/08 0.92}
+\sisetup{decimalsymbol=cdot,digitsep=comma}
+\let\fnum\num
+\newcommand*{\setfnumdsym}[1]{\sisetup{decimalsymbol={#1}}}
+\newcommand*{\setfnumgsym}[1]{\sisetup{digitsep={#1}}}
+\newcommand*{\setfnummsym}[1]{\sisetup{expproduct={#1}}}
+\ifsi@old@english
+ \sisetup{decimalsymbol=cdot,digitsep=comma}
+\fi
+\ifsi@old@french
+ \sisetup{decimalsymbol=comma,digitsep=fullstop}
+\fi
+\ifsi@old@tight
+ \sisetup{expproduct=tighttimes}
+\fi
+\ifsi@old@loose
+ \sisetup{expproduct=times}
+\fi
+\ifsi@old@thinspaces
+ \sisetup{digitsep=thin}
+\fi
+\ifsi@old@commas
+ \sisetup{digitsep=comma}
+\fi
+\ifsi@old@plain
+ \sisetup{digitsep=none}
+\fi
+\endinput
+%%
+%% End of file `si-fancynum.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg
new file mode 100644
index 00000000000..b784816341a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg
@@ -0,0 +1,106 @@
+%%
+%% This is file `si-fancyunits.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `fancyunits')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-fancyunits.cfg}
+ [\csname si@svn@version\endcsname Emulation of siunitx:
+ fancyunits]
+\si@emulating{fancyunits}{2007/02/01 v1.0.1}
+\si@ifloaded{SIunits}
+ {\si@log@err{SIunits emulation loaded\MessageBreak before
+ fancyunits emulation}{You need to load the fancyunits
+ emualtion\MessageBreak code before that for
+ SIunits.\MessageBreak Try emulate=fancyunits as the first
+ option when\MessageBreak loading siunitx}}{}
+\newcommand*{\si@siu@newunithook}[3][]{%
+ \edef\si@tempa{%
+ \expandafter\noexpand\csname #2per#1#3uf\endcsname}%
+ \renewcommand*{\si@tempb}{stickyper,per=fraction,
+ fraction=nice}%
+ \edef\si@tempc{%
+ \noexpand\sisetup{\si@tempb}%
+ \expandafter\noexpand\csname #2\endcsname\noexpand\si@per%
+ \expandafter\noexpand\si@siu@power%
+ \expandafter\noexpand\csname #3\endcsname}%
+ \expandafter\expandafter\expandafter\newunit\expandafter
+ \expandafter\expandafter{\expandafter\si@tempa\expandafter}%
+ \expandafter{\si@tempc}%
+ \edef\si@tempa{%
+ \expandafter\noexpand\csname #2per#1#3Uf\endcsname}%
+ \renewcommand*{\si@tempb}{stickyper,per=fraction,
+ fraction=frac}%
+ \edef\si@tempc{%
+ \noexpand\sisetup{\si@tempb}%
+ \noexpand\def\noexpand\si@frc@hook{\noexpand\textstyle}%
+ \expandafter\noexpand\csname #2\endcsname\noexpand\si@per%
+ \expandafter\noexpand\si@siu@power%
+ \expandafter\noexpand\csname #3\endcsname}%
+ \expandafter\expandafter\expandafter\newunit\expandafter
+ \expandafter\expandafter{\expandafter\si@tempa\expandafter}%
+ \expandafter{\si@tempc}%
+ \edef\si@tempa{%
+ \expandafter\noexpand\csname #2per#1#3UF\endcsname}%
+ \edef\si@tempc{%
+ \noexpand\sisetup{\si@tempb}%
+ \noexpand\def\noexpand\si@frc@hook{\noexpand\displaystyle}%
+ \expandafter\noexpand\csname #2\endcsname\noexpand\si@per%
+ \expandafter\noexpand\si@siu@power%
+ \expandafter\noexpand\csname #3\endcsname}%
+ \expandafter\expandafter\expandafter\newunit\expandafter
+ \expandafter\expandafter{\expandafter\si@tempa\expandafter}%
+ \expandafter{\si@tempc}}
+\newcommand*{\si@siu@newunitxhook}[4]{%
+ \expandafter\newunit\expandafter{\csname #1per#2uf\endcsname}
+ {\sisetup{stickyper,per=fraction,fraction=nice}%
+ #3\si@per#4}%
+ \expandafter\newunit\expandafter{\csname #1per#2Uf\endcsname}
+ {\sisetup{stickyper,per=fraction,fraction=frac}%
+ \renewcommand*{\si@frc@hook}{\textstyle}%
+ #3\si@per#4}%
+ \expandafter\newunit\expandafter{\csname #1per#2UF\endcsname}
+ {\sisetup{stickyper,per=fraction,fraction=frac}%
+ \renewcommand*{\si@frc@hook}{\displaystyle}%
+ #3\si@per#4}}
+\requiresiconfigs{SIunits,addn,astro}
+\sisetup{obeyall}
+\ifsi@old@spaceqspace
+ \sisetup{valuesep=space}
+\fi
+\newunit{\paminute}{'}
+\newunit{\parsecond}{''}
+\newunit{\AstroE}{AE}
+\newunit{\oersted}{OE}
+\provideunit{\ton}{t}
+\let\decaD\decad
+\newcommand*{\ufrac}[2]{%
+ \si[stickyper,per=fraction,fraction=nice]{#1\si@per#2}}
+\newcommand*{\Ufrac}[2]{%
+ \ensuremath{\textstyle{%
+ \si[stickyper,per=fraction,fraction=frac]{#1\si@per#2}}}}
+\newcommand*{\UFrac}[2]{%
+ \ensuremath{\displaystyle{%
+ \si[stickyper,per=fraction,fraction=frac]{#1\si@per#2}}}}
+\let\pow\power
+\let\Squaremetre\squaremetre
+\si@siu@newunit{Gray}{second}
+\si@siu@newunit[square]{Squaremetre}{metre}
+\si@siu@newunitx{Squaremetre}{newtonsecond}{\Square\metre}
+ {\newton\second}
+\si@siu@newunit{Squaremetre}{second}
+\si@siu@newunit[square]{Squaremetre}{squaresecond}
+\si@siu@newunit{Squaremetre}{kilogram}
+\si@siu@newunit[cubic]{Squaremetre}{second}
+\endinput
+%%
+%% End of file `si-fancyunits.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg
new file mode 100644
index 00000000000..4e33ed98e37
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg
@@ -0,0 +1,39 @@
+%%
+%% This is file `si-hep.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `hep')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-hep.cfg}
+ [\csname si@svn@version\endcsname siunitx: Units for
+ high-energy physics]
+\requiresiconfigs{prefix,named}
+\provideunit{\micron}{\micro\metre}
+\newunit{\mrad}{\milli\rad}
+\newunit{\gauss}{G}
+\newunit{\clight}{\ensuremath{\mathnormal{c}}}
+\newunit{\eVperc}{\eV\per\clight}
+\newunit{\nanobarn}{\nano\barn}
+\newunit{\picobarn}{\pico\barn}
+\newunit{\femtobarn}{\femto\barn}
+\newunit{\attobarn}{\atto\barn}
+\newunit{\zeptobarn}{\zepto\barn}
+\newunit{\yoctobarn}{\yocto\barn}
+\provideunit{\nb}{\nano\barn}
+\provideunit{\pb}{\pico\barn}
+\provideunit{\fb}{\femto\barn}
+\provideunit{\ab}{\atto\barn}
+\provideunit{\zb}{\zepto\barn}
+\provideunit{\yb}{\yocto\barn}
+\endinput
+%%
+%% End of file `si-hep.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg
new file mode 100644
index 00000000000..42b38b74b46
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg
@@ -0,0 +1,71 @@
+%%
+%% This is file `si-hepunits.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `hepunits')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-hepunits.cfg}
+ [\csname si@svn@version\endcsname Emulation of siunitx:
+ hepunits]
+\si@emulating{hepunits}{2007/09/27}
+\requiresiconfigs{SIunits,accepted,prefix,hep}
+\ifsi@old@noprefixcmds\else
+ \newunit{\invbarn}{\per\barn}
+ \newunit{\invnanobarn}{\per\nano\barn}
+ \newunit{\invpicobarn}{\per\pico\barn}
+ \newunit{\invfemtobarn}{\per\femto\barn}
+ \newunit{\invattobarn}{\per\atto\barn}
+ \newunit{\invzeptobarn}{\per\zepto\barn}
+ \newunit{\invyoctobarn}{\per\yocto\barn}
+ \newunit{\invnb}{\per\nano\barn}
+ \newunit{\invpb}{\per\pico\barn}
+ \newunit{\invfb}{\per\femto\barn}
+ \newunit{\invab}{\per\atto\barn}
+ \newunit{\invzb}{\per\zepto\barn}
+ \newunit{\invyb}{\per\yocto\barn}
+\fi
+\newunit{\invcmsqpersecond}{\per\Square\centi\metre\per\second}
+\newunit{\invcmsqpersec}{\per\Square\centi\metre\per\second}
+\newunit{\lumiunits}{\per\Square\centi\metre\per\second}
+\newunit{\inveV}{\per\electronvolt}
+\newunit{\minveV}{\per\milli\electronvolt}
+\newunit{\kinveV}{\per\kilo\electronvolt}
+\newunit{\MinveV}{\per\mega\electronvolt}
+\newunit{\GinveV}{\per\giga\electronvolt}
+\newunit{\TinveV}{\per\tera\electronvolt}
+\newunit[per=slash,eVcorrb=0.6ex]{\eVoverc}
+ {\electronvolt\per\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\eVovercsq}
+ {\electronvolt\per\Square\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\meVoverc}
+ {\milli\electronvolt\per\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\keVoverc}
+ {\kilo\electronvolt\per\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\MeVoverc}
+ {\mega\electronvolt\per\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\GeVoverc}
+ {\giga\electronvolt\per\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\TeVoverc}
+ {\tera\electronvolt\per\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\meVovercsq}
+ {\milli\electronvolt\per\Square\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\keVovercsq}
+ {\kilo\electronvolt\per\Square\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\MeVovercsq}
+ {\mega\electronvolt\per\Square\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\GeVovercsq}
+ {\giga\electronvolt\per\Square\clight}
+\newunit[per=slash,eVcorrb=0.6ex]{\TeVovercsq}
+ {\tera\electronvolt\per\Square\clight}
+\endinput
+%%
+%% End of file `si-hepunits.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg
new file mode 100644
index 00000000000..ef8fe1c3f06
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg
@@ -0,0 +1,55 @@
+%%
+%% This is file `si-named.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `named')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-named.cfg}
+ [\csname si@svn@version\endcsname siunitx: SI Named units]
+\newunit{\becquerel}{Bq}
+\newunit{\coulomb}{C}
+\newunit{\farad}{F}
+\newunit{\Gray}{Gy}
+\newunit{\ggray}{Gy}
+\newunit{\hertz}{Hz}
+\newunit{\henry}{H}
+\newunit{\joule}{J}
+\newunit{\katal}{kat}
+\newunit{\lumen}{lm}
+\newunit{\lux}{lx}
+\newunit{\newton}{N}
+\ifsi@old@OHM
+ \newunit{\Ohm}{\si@sym@Omega}
+\else
+ \ifsi@gensymb\else
+ \provideunit{\ohm}{\si@sym@Omega}
+ \fi
+\fi
+\newunit{\pascal}{Pa}
+\newunit{\siemens}{S}
+\newunit{\sievert}{Sv}
+\newunit{\tesla}{T}
+\newunit{\volt}{V}
+\newunit{\watt}{W}
+\newunit{\weber}{Wb}
+\ifsi@old@OHM
+ \newunit{\Celsius}{\si@sym@celsius}
+\else
+ \ifsi@gensymb\else
+ \newunit{\celsius}{\si@sym@celsius}
+ \fi
+\fi
+\newunit{\radian}{rad}
+\newunit{\steradian}{sr}
+\endinput
+%%
+%% End of file `si-named.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg
new file mode 100644
index 00000000000..f0f9b580d6e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-physical.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `physical')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-physical.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ SI Physically-measured units]
+\newcommand*{\si@eVspacea}{\text{\kern-\si@eVcorra}}%
+\newcommand*{\si@eVspaceb}{\text{\kern-\si@eVcorrb}}%
+\newunit{\electronvolt}{e\protect\si@eVspacea V\protect%
+ \si@eVspaceb}
+\newunit{\atomicmass}{u}
+\newunit{\atomicmassunit}{u}
+\endinput
+%%
+%% End of file `si-physical.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg
new file mode 100644
index 00000000000..882b6985870
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg
@@ -0,0 +1,50 @@
+%%
+%% This is file `si-prefix.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `prefix')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-prefix.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ SI Multiple prefixes]
+\newprefix{\yocto}{-24}{y}
+\newprefix{\zepto}{-21}{z}
+\newprefix{\atto}{-18}{a}
+\newprefix{\femto}{-15}{f}
+\newprefix{\pico}{-12}{p}
+\newprefix{\nano}{-9}{n}
+\ifsi@old@OHM
+ \newprefix{\Micro}{-6}{\si@sym@mu}
+\else
+ \ifsi@gensymb\else
+ \newprefix{\micro}{-6}{\si@sym@mu}
+ \fi
+\fi
+\newprefix{\milli}{-3}{m}
+\newprefix{\centi}{-2}{c}
+\newprefix{\deci}{-1}{d}
+\newprefix{\deca}{1}{da}
+\newprefix{\hecto}{2}{h}
+\newprefix{\kilo}{3}{k}
+\newprefix{\mega}{6}{M}
+\newprefix{\giga}{9}{G}
+\newprefix{\tera}{12}{T}
+\newprefix{\peta}{15}{P}
+\newprefix{\exa}{18}{E}
+\newprefix{\zetta}{21}{Z}
+\newprefix{\yotta}{24}{Y}
+\newprefix{\deka}{1}{da}
+\newunit{\gram}{g}
+\renewunit{\kilogram}{\kilo\gram}
+\endinput
+%%
+%% End of file `si-prefix.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg
new file mode 100644
index 00000000000..5dce06ba0c8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg
@@ -0,0 +1,103 @@
+%%
+%% This is file `si-prefixed.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `prefixed')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-prefixed.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ SI Prefixed units]
+\requiresiconfigs{prefix,named,accepted,physical}
+\newunit{\picometre}{\pico\metre}
+\newunit{\nanometre}{\nano\metre}
+\newunit{\micrometre}{\micro\metre}
+\newunit{\millimetre}{\milli\metre}
+\newunit{\centimetre}{\centi\metre}
+\newunit{\decimetre}{\deci\metre}
+\newunit{\kilometre}{\kilo\metre}
+\newunit{\femtogram}{\femto\gram}
+\newunit{\picogram}{\pico\gram}
+\newunit{\nanogram}{\nano\gram}
+\newunit{\microgram}{\micro\gram}
+\newunit{\milligram}{\milli\gram}
+\newunit{\femtomole}{\femto\mole}
+\newunit{\picomole}{\pico\mole}
+\newunit{\nanomole}{\nano\mole}
+\newunit{\micromole}{\micro\mole}
+\newunit{\millimole}{\milli\mole}
+\newunit{\attosecond}{\atto\second}
+\newunit{\femtosecond}{\femto\second}
+\newunit{\picosecond}{\pico\second}
+\newunit{\nanosecond}{\nano\second}
+\newunit{\microsecond}{\micro\second}
+\newunit{\millisecond}{\milli\second}
+\newunit{\picoampere}{\pico\ampere}
+\newunit{\nanoampere}{\nano\ampere}
+\newunit{\microampere}{\micro\ampere}
+\newunit{\milliampere}{\milli\ampere}
+\newunit{\kiloampere}{\kilo\ampere}
+\newunit{\millivolt}{\milli\volt}
+\newunit{\kilovolt}{\kilo\volt}
+\newunit{\milliwatt}{\milli\watt}
+\newunit{\kilowatt}{\kilo\watt}
+\newunit{\megawatt}{\mega\watt}
+\newunit{\femtofarad}{\femto\farad}
+\newunit{\picofarad}{\pico\farad}
+\newunit{\nanofarad}{\nano\farad}
+\newunit{\microfarad}{\micro\farad}
+\newunit{\millifarad}{\milli\farad}
+\newunit{\millisiemens}{\milli\siemens}
+\ifsi@old@OHM
+ \newunit{\kiloohm}{\kilo\Ohm}
+ \newunit{\megaohm}{\mega\Ohm}
+ \newunit{\gigaohm}{\giga\Ohm}
+\else
+ \ifsi@gensymb\else
+ \newunit{\kiloohm}{\kilo\ohm}
+ \newunit{\megaohm}{\mega\ohm}
+ \newunit{\gigaohm}{\giga\ohm}
+ \fi
+\fi
+\newunit{\microlitre}{\micro\litre}
+\newunit{\millilitre}{\milli\litre}
+\newunit{\cubicmetre}{\metre\cubed}
+\newunit{\cubiccentimetre}{\centi\metre\cubed}
+\newunit{\centimetrecubed}{\centi\metre\cubed}
+\newunit{\cubicmicrometre}{\micro\metre\cubed}
+\newunit{\cubicmillimetre}{\milli\metre\cubed}
+\newunit{\cubicdecimetre}{\cubic\deci\metre}
+\newunit{\squaremetre}{\Square\metre}
+\newunit{\squarecentimetre}{\Square\centi\metre}
+\newunit{\centimetresquared}{\centi\metre\squared}
+\newunit{\squarekilometre}{\Square\kilo\metre}
+\newunit{\millijoule}{\milli\joule}
+\newunit{\kilojoule}{\kilo\joule}
+\newunit{\megajoule}{\mega\joule}
+\newunit{\millielectronvolt}{\milli\electronvolt}
+\newunit{\kiloelectronvolt}{\kilo\electronvolt}
+\newunit{\megaelectronvolt}{\mega\electronvolt}
+\newunit{\gigaelectronvolt}{\giga\electronvolt}
+\newunit{\teraelectronvolt}{\tera\electronvolt}
+\newunit[unitsep=none]{\kilowatthour}{\kilo\watt\hour}
+\newunit{\millihertz}{\milli\hertz}
+\newunit{\kilohertz}{\kilo\hertz}
+\newunit{\megahertz}{\mega\hertz}
+\newunit{\gigahertz}{\giga\hertz}
+\newunit{\terahertz}{\tera\hertz}
+\newunit{\millinewton}{\milli\newton}
+\newunit{\kilonewton}{\kilo\newton}
+\newunit{\hectopascal}{\hecto\pascal}
+\newunit{\megabecquerel}{\mega\becquerel}
+\newunit{\millisievert}{\milli\sievert}
+\endinput
+%%
+%% End of file `si-prefixed.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg
new file mode 100644
index 00000000000..aca37d6e003
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg
@@ -0,0 +1,87 @@
+%%
+%% This is file `si-sistyle.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `sistyle')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-sistyle.cfg}
+ [\csname si@svn@version\endcsname siunitx: Emulation of
+ SIstyle]
+\si@emulating{sistyle}{2006/12/20 v2.3}
+\sisetup{%
+ sepfour=true,
+ obeyfamily,
+ obeyitalic=true,
+ numsign=+-,
+ strictarc=false,
+ unitsep=cdot}
+\newcommand*{\SIobeyboldtrue}{\sisetup{obeybold=true}}
+\newcommand*{\SIobeyboldfalse}{\sisetup{obeybold=false}}
+\let\num\relax
+\si@newrobustcmd*{\num}{%
+ \@ifstar
+ {\si@sis@numstar}
+ {\si@sis@num}}
+\newcommand*{\si@sis@num}[2][]{%
+ \begingroup%
+ \sisetup{#1}%
+ \expandafter\si@out@num\expandafter{\si@num{#2}}%
+ \endgroup}
+\newcommand*{\si@sis@numstar}[2][]{%
+ \begingroup%
+ \sisetup{mode=text,obeybold}%
+ \sisetup{#1}%
+ \expandafter\si@out@num\expandafter{\si@num{#2}}%
+ \endgroup}
+\newcommand*{\pnt}{\ensuremath{\si@decimalsymbol}}
+\newcommand*{\SIgroupfourtrue}{\sisetup{sepfour=true}}
+\newcommand*{\SIgroupfourfalse}{\sisetup{sepfour=false}}
+\newcommand*{\SIunitsep}[1]{\sisetup{valuesep={#1}}}
+\newcommand*{\SIunitspace}[1]{\sisetup{unitspace={#1}}}
+\newcommand*{\SIunitdot}[1]{\sisetup{unitsep={#1}}}
+\newcommand*{\SIdecimalsymbol}[1]{\sisetup{decimalsymbol={#1}}}
+\newcommand*{\SIthousandsep}[1]{\sisetup{digitsep={#1}}}
+\newcommand*{\SIproductsign}[1]{\sisetup{expproduct={#1}}}
+\newcommand*{\SIdecimalsign}[1]{\sisetup{decimalsymbol={#1}}}
+\newcommand*{\si@sis@savefont}[2]{%
+ \@namedef{si@sis@#1}{#2}%
+ \sisetup{#1=si@sis@#1}}
+\newcommand*{\SImathrm}[1]{\si@sis@savefont{mathrm}{#1}}
+\newcommand*{\SImathsf}[1]{\si@sis@savefont{mathsf}{#1}}
+\newcommand*{\SImathtt}[1]{\si@sis@savefont{mathtt}{#1}}
+\newcommand*{\SIdefaultMfam}[1]{\si@sis@savefont{mathrm}{#1}}
+\newcommand*{\SIdefaultNfam}[1]{\si@sis@savefont{mathnumrm}{#1}}
+\newcommand*{\SIdefaultTfam}[1]{\si@sis@savefont{textrm}{#1}}
+\si@newrobustcmd*{\ensureupmath}[1]{%
+ \begingroup
+ \sisetup{mode=maths,obeyitalic=false}%
+ \si@out{#1}%
+ \endgroup}
+\newcommand*{\degC}{\si@sym@celsius}
+\newcommand*{\arcdeg}{\si@sym@degree}
+\newcommand*{\degF}{\si@sym@degree F}
+\newcommand*{\SIstyle}[1]{\sisetup{locale=#1}}
+\newcommand*{\SIstyleToLang}[2]{\sisetup{loctolang=#1:#2}}
+\newcommand*{\AddToSIstyle}{%
+ \si@switchfalse
+ \@ifstar
+ {\si@switchtrue
+ \si@sis@addtolocale}
+ {\si@sis@addtolocale}}
+\newcommand*{\si@sis@addtolocale}[2]{%
+ \ifsi@switch
+ \expandafter\let\csname si@loc@#1@extra\endcsname\relax
+ \fi
+ \addtolocale{#1}{#2}}
+\endinput
+%%
+%% End of file `si-sistyle.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg
new file mode 100644
index 00000000000..05f3f96d111
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-synchem.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `synchem')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-synchem.cfg}
+ [\csname si@svn@version\endcsname siunitx: Units for
+ synthetic chemists]
+\requiresiconfigs{prefix}
+\newunit{\mmHg}{mmHg}
+\newunit{\molar}{\mole\per\cubic\deci\metre}
+\newunit{\Molar}{\textsc{m}}
+\newunit{\torr}{Torr}
+\newunit{\dalton}{Da}
+\endinput
+%%
+%% End of file `si-synchem.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg
new file mode 100644
index 00000000000..d1514fdc9e4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg
@@ -0,0 +1,53 @@
+%%
+%% This is file `si-units.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `units')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\si@ifloaded{units}{\endinput}{}
+\ProvidesFile{si-units.cfg}
+ [\csname si@svn@version\endcsname siunitx: Emulation of units]
+\si@emulating{units}{1998/08/04 v0.9b}
+\si@ifloaded{SIunits}
+ {\si@emclash{units}{SIunits}\endinput}{}
+\si@ifloaded{sistyle}
+ {\si@emclash{units}{sistyle}\endinput}{}
+\sisetup{per=fraction,fraction=nice,obeybold,inlinebold=maths,
+ ,obeymode}
+\ifsi@old@tight
+ \sisetup{valuesep=thin}
+\fi
+\ifsi@old@loose
+ \sisetup{valuesep=space}
+\fi
+\ifsi@old@ugly
+ \sisetup{fraction=ugly}
+\fi
+\si@newrobustcmd*{\unit}[2][]{%
+ \ifmmode
+ \SI{#1}{#2}%
+ \else
+ \SI[obeyfamily,obeyitalic]{#1}{#2}%
+ \fi}
+\si@newrobustcmd*{\unitfrac}[3][]{%
+ \begingroup
+ \si@fam@mode%
+ \ifmmode\else
+ \sisetup{obeyfamily,obeyitalic}%
+ \fi
+ \si@ifnotmtarg{#1}
+ {\num{#1}\ensuremath{\si@valuesep}}%
+ \si@frac{#2}{#3}
+ \endgroup}
+\endinput
+%%
+%% End of file `si-units.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg
new file mode 100644
index 00000000000..6d1575dd091
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg
@@ -0,0 +1,233 @@
+%%
+%% This is file `si-unitsdef.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `unitsdef')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\ProvidesFile{si-unitsdef.cfg}
+ [\csname si@svn@version\endcsname siunitx:
+ Emulation of unitsdef]
+\si@emulating{unitsdef}{2005/01/04 v0.2}
+\si@ifloaded{SIunits}
+ {\si@emclash{unitsdef}{SIunits}\endinput}{}
+\si@ifloaded{sistyle}
+ {\si@emclash{unitsdef}{sistyle}\endinput}{}
+\requiresiconfigs{units}
+\RequirePackage{textcomp}
+\RequirePackage[T1]{fontenc}
+\sisetup{mode=text,allowoptarg,prespace}
+\ifsi@old@noxspace
+ \sisetup{xspace=false}
+\fi
+\ifsi@old@noabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@nofrequncyabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@nomolabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@novoltageabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@novolumeabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@noweightabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@noenergyabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@nolengthabbr
+ \sisetup{noload=abbr}
+\fi
+\ifsi@old@notimeabbr
+ \sisetup{noload=abbr}
+\fi
+\newcommand*{\unitvaluesep}{\,}
+\renewcommand*{\si@valuesep}{\text{\unitvaluesep}}
+\define@choicekey*+[si]{key}{valuesep}[\si@tempa]
+ {space,thin,med,medium,thick,none}
+ {\renewcommand*\unitvaluesep\@nameuse{si@fix@##1}%
+ \si@log@debug{Option valuesep set to ##1}}
+ {\si@log@debug{Option valuesep set to ##1}%
+ \renewcommand*\unitvaluesep{##1}}
+\let\unitsignonly\si
+\si@newrobustcmd*{\ilu}[2][]{%
+ \begingroup
+ #1\unitvaluesep%
+ \unit{#2}%
+ \endgroup}
+\let\arc\ang
+\newcommand*{\unitSIdef}{\upshape}
+\newcommand*{\si@unitSIdef}{\unitSIdef\selectfont}
+\sisetup{textrm=si@unitSIdef}
+\let\per\relax
+\si@newrobustcmd*{\per}[2]{%
+ \begingroup
+ \si@xspacefalse
+ \renewcommand*{\unitvaluesep}{}%
+ \unitfrac{#1}{#2}%
+ \endgroup}
+\newcommand*{\unittimes}{\ensuremath{\cdot}}
+\newcommand*{\unitsep}{\,}
+\renewcommand*{\si@unt@unithook}{\si@unt@litouttrue}
+\sisetup{unitsep=none}
+\newcommand*{\unitsuperscript}{\tothe}
+\newcommand*{\newnosepunit}{\newunit[valuesep=none]}
+\newcommand*{\renewnosepunit}{\renewunit[valuesep=none]}
+\newcommand*{\setTextOmega}[2]{%
+ \renewcommand*{\si@textOmega}{%
+ \begingroup
+ \edef\si@tempa{\sfdefault}%
+ \ifx\f@family\si@tempa
+ \expandafter#2%
+ \else
+ \expandafter#1%
+ \fi
+ \endgroup}}
+\newcommand*{\setMathOmega}[1]{\sisetup{mathsOmega=#1}}
+\newcommand*{\setTextmu}[2]{%
+ \renewcommand*{\si@textmu}{%
+ \begingroup
+ \edef\si@tempa{\sfdefault}%
+ \ifx\f@family\si@tempa
+ \expandafter#2%
+ \else
+ \expandafter#1%
+ \fi
+ \endgroup}}
+\newcommand*{\setMathmu}[1]{\sisetup{mathsmu=#1}}
+\newcommand*{\setTextCelsius}[2]{%
+ \renewcommand*{\si@textcelsius}{%
+ \begingroup
+ \edef\si@tempa{\sfdefault}%
+ \ifx\f@family\si@tempa
+ \expandafter#2%
+ \else
+ \expandafter#1%
+ \fi
+ \endgroup}}
+\newcommand*{\setMathCelsius}[1]{\sisetup{mathscelsius=#1}}
+\newcommand*{\setMathDegree}[2]{%
+ \renewcommand*{\si@textdegree}{%
+ \begingroup%
+ \edef\si@tempa{\sfdefault}%
+ \ifx\f@family\si@tempa
+ \expandafter#2%
+ \else
+ \expandafter#1%
+ \fi
+ \endgroup}}
+\newcommand*{\setTextDegree}[1]{\sisetup{textdegree=#1}}
+\ifsi@old@OHM
+ \ifsi@old@ohm
+ \si@log@inf{Both `ohm' and `OHM' options given\MessageBreak
+ Using default behaviour for unitsdef}
+ \expandafter\expandafter\expandafter\si@old@OHMfalse
+ \fi
+\fi
+\ifsi@old@liter
+ \ifsi@old@LITER
+ \si@log@inf{Both `liter' and `LITER' options
+ given\MessageBreak Using default behaviour for unitsdef}
+ \else
+ \renewunit{\liter}{l}
+ \fi
+\fi
+\newunit{\ton}{t}
+\newunit{\days}{d}
+\newunit{\picometer}{\pico\meter}
+\newunit{\nanometer}{\nano\meter}
+\newunit{\micrometer}{\micro\meter}
+\newunit{\millimeter}{\milli\meter}
+\newunit{\centimeter}{\centi\meter}
+\newunit{\decimeter}{\deci\meter}
+\newunit{\kilometer}{\kilo\meter}
+\newunit{\femtoliter}{\femto\liter}
+\newunit{\picoliter}{\pico\liter}
+\newunit{\nanoliter}{\nano\liter}
+\newunit{\microliter}{\micro\liter}
+\newunit{\milliliter}{\milli\liter}
+\newunit{\centiliter}{\centi\liter}
+\newunit{\deciliter}{\deci\liter}
+\newunit{\hectoliter}{\hecto\liter}
+\newunit{\cubicmeter}{\meter\cubed}
+\newunit{\cubicmicrometer}{\micro\meter\cubed}
+\newunit{\cubicmillimeter}{\milli\meter\cubed}
+\newunit{\squaremeter}{\Square\meter}
+\newunit{\squarecentimeter}{\Square\centi\meter}
+\newunit{\squarekilometer}{\Square\kilo\meter}
+\newunit{\ar}{a}
+\newunit{\hectar}{\hecto\ar}
+\ifsi@old@noabbr
+\else
+ \ifsi@old@novoltageabbr\else
+ \newunit{\kv}{\kilo\volt}
+ \newunit{\mv}{\milli\volt}
+ \fi
+\fi
+\ifsi@old@noabbr\else
+ \ifsi@old@notimeabbr\else
+ \newunit{\sek}{\second}
+ \fi
+ \ifsi@old@noweightabbr\else
+ \newunit{\fg}{\femto\gram}
+ \fi
+ \ifsi@old@novolumeabbr\else
+ \newunit{\fl}{\femto\liter}
+ \newunit{\pl}{\pico\liter}
+ \newunit{\nl}{\nano\liter}
+ \newunit{\micl}{\micro\liter}
+ \newunit{\ml}{\milli\liter}
+ \newunit{\cl}{\centi\liter}
+ \newunit{\dl}{\deci\liter}
+ \newunit{\hl}{\hecto\liter}
+ \fi
+\fi
+\newunit{\calory}{cal}
+\newunit{\kilocalory}{\kilo\calory}
+\newunit{\uBar}{ba}
+\catcode`\-=11\relax
+\ifsi@old@redef-gensymb
+ \expandafter\si@gensymbtrue
+\fi
+\catcode`\-=12\relax
+\ifsi@gensymb
+ \RequirePackage{gensymb}
+ \AtBeginDocument{
+ \let\gensymbohm\ohm
+ \let\gensymbcelsius\celsius
+ \let\gensymbmicro\micro
+ \let\gensymbdegree\degree
+ \let\ohm\@undefined
+ \let\celsius\@undefined
+ \let\micro\@undefined
+ \let\degree\@undefined
+ \ifsi@old@OHM\else
+ \newunit{\ohm}{\si@sym@Omega}
+ \newunit{\celsius}{\si@sym@celsius}
+ \newprefix{\micro}{\si@sym@mu}{-6}
+ \newunit{\degree}{\si@sym@degree}
+ \fi}
+\fi
+\requiresiconfigs{prefix,named,addn,accepted}
+\ifsi@old@noconfig\else
+ \InputIfFileExists{unitsdef.cfg}
+ {\si@log@inf{unitsdef config file loaded}}
+ {\si@log@inf{unitsdef config file not found}}
+\fi
+\endinput
+%%
+%% End of file `si-unitsdef.cfg'.
diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
new file mode 100644
index 00000000000..a51067b4669
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
@@ -0,0 +1,3509 @@
+%%
+%% This is file `siunitx.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% siunitx.dtx (with options: `package')
+%% ----------------------------------------------------------------
+%% The siunitx package --- A comprehensive (SI) units package
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\NeedsTeXFormat{LaTeX2e}
+\newcommand*{\si@svn@ver}{v1.0}
+\def\si@svn@id$#1: #2.#3 #4 #5-#6-#7 #8 #9${%
+ \newcommand*{\si@svn@version}{%
+ #5/#6/#7\space\si@svn@ver\space}}
+\si@svn@id $Id: siunitx.dtx 76 2008-06-15 08:10:34Z joseph $
+\ProvidesPackage{siunitx}
+ [\si@svn@version A comprehensive (SI) units package]
+\begingroup
+ \@ifundefined{eTeXversion}
+ {\PackageError{siunitx}
+ {Not running under e-TeX}
+ {This package requires e-TeX. Try compiling the document
+ with\MessageBreak `elatex' instead of `latex'. When
+ using pdfTeX, try `pdfelatex'\MessageBreak instead of
+ `pdflatex'}%
+ \endgroup\endinput}
+ {\endgroup}
+\edef\si@catcodes{%
+ \catcode\string`\string ` \the\catcode\string`\`\relax
+ \catcode\string`\string = \the\catcode\string`\=\relax
+ \catcode\string`\string ^ \the\catcode\string`\^\relax
+ \catcode\string`\string ~ \the\catcode\string`\~\relax
+ \catcode\string`\string : \the\catcode\string`\:\relax
+ \catcode\string`\string - \the\catcode\string`\-\relax
+ \catcode\string`\string + \the\catcode\string`\+\relax
+ \catcode\string`\string ; \the\catcode\string`\;\relax
+ \catcode\string`\string , \the\catcode\string`\,\relax
+ \catcode\string`\string . \the\catcode\string`\.\relax}
+\catcode\string`\` 12\relax
+\catcode`\= 12\relax
+\catcode`\^ 7\relax
+\catcode`\~ \active\relax
+\@makeother{\:}
+\@makeother{\-}
+\@makeother{\+}
+\@makeother{\;}
+\@makeother{\,}
+\@makeother{\.}
+\RequirePackage{xkeyval}[2005/05/07]
+\RequirePackage{amstext,array,xspace}
+\newcommand*{\si@tempa}{}
+\newcommand*{\si@tempb}{}
+\newcommand*{\si@tempc}{}
+\newif\ifsi@switch
+\newbox\si@tempboxa
+\newbox\si@tempboxb
+\newbox\si@tempboxc
+\newbox\si@tempboxd
+\newcommand*{\si@blockpkgs}{SIunits,sistyle,siunits,SIstyle,%
+ unitsdef,fancyunits}
+\newcommand*{\si@checkpkgs}{units,hepunits,fancynum}
+\newcommand*{\si@packagecheck}{%
+ \begingroup
+ \@for\si@tempa:=\si@blockpkgs\do{
+ \@ifpackageloaded{\si@tempa}
+ {\PackageError{siunitx}
+ {Package `\si@tempa' incompatible}
+ {The \si@tempa\space package and siunitx are
+ incompatible.\MessageBreak Use the
+ `emulate=\si@tempa' package option when loading
+ siunitx}}
+ {}}
+ \@for\si@tempa:=\si@checkpkgs\do{%
+ \@ifpackageloaded{\si@tempa}
+ {\PackageWarning{siunitx}
+ {Consider loading the siunitx package
+ with\MessageBreak option `emulate=\si@tempa', rather
+ than\MessageBreak loading both \si@tempa\space and
+ siunitx}}
+ {}}
+ \endgroup}
+\si@packagecheck
+\AtBeginDocument{\si@packagecheck}
+\newcommand*{\si@ifdefinable}[1]{%
+ \expandafter\expandafter\expandafter\@ifundefined%
+ \expandafter\expandafter\expandafter%
+ {\expandafter\@gobble\string#1}}
+\newcommand*{\si@addtolist}[2]{%
+ \ifx\@empty#1\@empty
+ \edef#1{#2}%
+ \else
+ \edef#1{#1,#2}%
+ \fi}
+\newtoks{\si@temptoks}
+\newcommand*{\si@addtocsname}[2]{%
+ \@ifundefined{#1}
+ {\expandafter\gdef\csname #1\endcsname{#2}}
+ {\si@temptoks\expandafter\expandafter\expandafter{%
+ \csname #1\endcsname#2}%
+ \expandafter\xdef\csname #1\endcsname{\the\si@temptoks}}}
+\begingroup
+ \catcode`\Q=3
+ \long\gdef\si@ifmtarg#1{%
+ \si@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil}
+ \long\gdef\si@xifmtarg#1#2Q#3#4#5\@nil{#4}
+ \long\gdef\si@ifnotmtarg#1{%
+ \si@xifmtarg#1QQ\@firstofone\@gobble\@nil}
+\endgroup
+\@ifpackageloaded{etoolbox}
+ {\let\si@newrobustcmd\newrobustcmd}
+ {\protected\def\si@newrobustcmd{%
+ \@ifstar
+ {\let\l@ngrel@x\protected\si@newcommand}
+ {\def\l@ngrel@x{\protected\long}\si@newcommand}}
+ \newcommand*{\si@newcommand}[1]{\@testopt{\si@newcmd#1}0}
+ \def\si@newcmd#1[#2]{%
+ \@ifnextchar[%]
+ {\si@xargdef#1[#2]}
+ {\@argdef#1[#2]}}
+ \long\def\si@xargdef#1[#2][#3]#4{%
+ \@ifdefinable#1{%
+ \expandafter\protected
+ \expandafter\def
+ \expandafter#1%
+ \expandafter{%
+ \expandafter\@testopt
+ \csname\string#1\endcsname{#3}}%
+ \expandafter\@yargdef
+ \csname\string#1\endcsname\tw@{#2}{#4}}}}
+\newif\ifsi@debug
+\newif\ifsi@logmin
+\newif\ifsi@lognone
+\newcommand*{\si@log@err}[2]{%
+ \ifsi@lognone\else
+ \ifsi@logmin
+ \PackageWarning{siunitx}{#1}%
+ \else
+ \PackageError{siunitx}{#1}{#2}%
+ \fi
+ \fi}
+\newcommand*{\si@log@warn}[1]{%
+ \ifsi@lognone\else
+ \ifsi@logmin\else
+ \PackageWarning{siunitx}{#1}%
+ \fi
+ \fi}
+\newcommand*{\si@log@inf}[1]{%
+ \ifsi@lognone\else
+ \ifsi@logmin\else
+ \PackageInfo{siunitx}{#1}%
+ \fi
+ \fi}
+\newcommand*{\si@log@debug}[1]{%
+ \ifsi@lognone\else
+ \ifsi@debug
+ \PackageInfo{siunitx}{#1}%
+ \fi
+ \fi}
+\newcommand*{\si@str@ifchrstr}[2]{%
+ \begingroup
+ \si@switchfalse
+ \renewcommand*{\si@tempa}{#1}%
+ \protected@edef\si@tempb{#2}%
+ \expandafter\si@str@chrstr\si@tempb\@empty\@empty\@empty
+ \ifsi@switch
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+\def\si@str@chrstr#1#2\@empty{%
+ \renewcommand*{\si@tempc}{#1}%
+ \ifx\si@tempa\si@tempc
+ \expandafter\si@switchtrue
+ \else
+ \ifx\@empty#2\@empty\else
+ \si@str@chrstr#2\@empty\@empty
+ \fi
+ \fi}
+\newcommand*{\si@str@ifonlychrs}[2]{%
+ \begingroup
+ \si@switchtrue
+ \protected@edef\si@tempa{#1}%
+ \renewcommand*{\si@tempb}{#2}%
+ \expandafter\si@str@onlychrs\si@tempa\@empty\@empty\@empty
+ \ifsi@switch
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+\def\si@str@onlychrs#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@tempb}
+ {}{\si@switchfalse}%
+ \ifx\@empty#2\@empty\else
+ \si@str@onlychrs#2\@empty\@empty
+ \fi}
+\newcommand*{\sisetup}{\setkeys[si]{key}}
+\newcommand*{\si@opt@key}[2]{%
+ \define@key[si]{key}{#1}
+ {#2\si@log@debug{Option #1 set to ##1}}}
+\newcommand*{\si@opt@cmdkey}[3][]{%
+ \define@cmdkey[si]{key}[si@]{#2}[#1]{#3}}
+\newcommand*{\si@opt@cmdkeys}[2][]{%
+ \define@cmdkeys[si]{key}[si@]{#2}[#1]}
+\newcommand*{\si@opt@boolkey}[2][]{%
+ \define@boolkey[si]{key}[si@]{#2}[true]
+ {#1\si@log@debug{Option #2 set to ##1}}}
+\newcommand*{\si@opt@choicekey}[4][]{%
+ \define@choicekey*+[si]{key}{#2}[\si@tempa]{#3}[#1]
+ {#4\si@log@debug{Option #2 set to ##1}}
+ {\si@log@warn{Unknown value `##1' for option #2}}}
+\newcommand*{\si@opt@xchoicekey}[3]{%
+ \define@choicekey*+[si]{key}{#1}[\si@tempa]{#2}[#1]
+ {\si@log@debug{Option #1 set to ##1}%
+ \expandafter\renewcommand\expandafter*\expandafter{%
+ \csname si@#1\endcsname}{\@nameuse{si@fix@##1}}}
+ {\si@log@debug{Option #1 set to ##1}%
+ \expandafter\renewcommand\expandafter*\expandafter{%
+ \csname si@#1\endcsname}{##1}}
+ \expandafter\newcommand\expandafter*\expandafter{%
+ \csname si@#1\endcsname}%
+ {\@nameuse{si@fix@#3}}}
+\newcommand*{\si@opt@compatkey}[2]{%
+ \define@boolkey[si]{key}[si@old@]{#2}[true]
+ {\si@log@debug{Emulating #1 package option\MessageBreak #2}%
+ \sisetup{emulate=#1}%
+ \si@log@debug{Option #2 set to ##1}}
+ \AtEndOfPackage{\si@opt@disablekey{#2}
+ {Compatibility option #2 only\MessageBreak
+ available when loading siunitx package}}}
+\newcommand*{\si@opt@disablekey}[2]{%
+ \key@ifundefined[si]{key}{#1}
+ {}
+ {\si@log@debug{Disabling key #1}%
+ \si@opt@key{#1}{\si@log@warn{#2}}}}
+\si@opt@choicekey[normal]{log}{debug,verbose,normal,errors,none}
+ {\si@debugfalse
+ \si@logminfalse
+ \si@lognonefalse
+ \renewcommand*{\si@tempb}{none}%
+ \ifx\si@tempa\si@tempb
+ \si@lognonetrue
+ \fi
+ \renewcommand*{\si@tempb}{minimal}%
+ \ifx\si@tempa\si@tempb
+ \si@logmintrue
+ \fi
+ \renewcommand*{\si@tempb}{debug}%
+ \ifx\si@tempa\si@tempb
+ \si@debugtrue
+ \fi
+ \renewcommand*{\si@tempb}{verbose}%
+ \ifx\si@tempa\si@tempb
+ \si@debugtrue
+ \fi}
+\si@opt@boolkey{debug}
+\si@opt@boolkey[%
+ \ifsi@strict
+ \sisetup{
+ obeymode=false,
+ obeybold=false,
+ obeyitalic=false,
+ mode=maths,
+ repeatunits=true,
+ trapambigerr=true,
+ trapambigfrac=true}
+ \@for\si@tempa:=obeyall,obeymode,obeyitalic,mode,unitmode,%
+ valuemode,textmode,obeybold,repeatunits,trapambigerr,%
+ trapambigfrac\do{%
+ \begingroup
+ \edef\si@tempb{\endgroup
+ \noexpand\si@opt@disablekey{\si@tempa}
+ {Option `\si@tempa' forbidden in strict mode}}%
+ \si@tempb}
+ \fi]{strict}
+\AtEndOfPackage{
+ \si@opt@disablekey{strict}
+ {Option `strict' only available when\MessageBreak
+ loading package}}
+\newcommand*{\si@emulate}{}
+\si@opt@key{emulate}{\si@addtolist{\si@emulate}{#1}}
+\AtEndOfPackage{
+ \si@opt@disablekey{emulate}
+ {Option `emulate' only available when\MessageBreak
+ loading package}}
+\si@opt@xchoicekey{unitsep}
+ {thin,med,medium,thick,none,comma,stop,fullstop,period,
+ times,tighttimes,cdot,tightcdot}{thin}
+\si@opt@xchoicekey{unitspace}{space,thin,med,medium,thick,
+ none}{thin}
+\si@opt@xchoicekey{errspace}{space,thin,med,medium,thick,
+ none}{none}
+\si@opt@xchoicekey{valuesep}
+ {thin,med,medium,thick,none,comma,stop,fullstop,period,
+ times,tighttimes,cdot,tightcdot}{thin}
+\si@opt@xchoicekey{digitsep}
+ {thin,med,medium,thick,none,comma,stop,fullstop,period,
+ times,tighttimes,cdot,tightcdot}{thin}
+\si@opt@xchoicekey{decimalsymbol}{comma,stop,fullstop,period,
+ cdot,tightcdot}{fullstop}
+\si@opt@xchoicekey{anglesep}
+ {thin,med,medium,thick,none,comma,stop,fullstop,period,
+ times,tighttimes,cdot,tightcdot}{none}
+\si@opt@boolkey{obeymode}
+\newif\ifsi@numtextmode
+\newif\ifsi@unittextmode
+\si@opt@choicekey[true]{textmode}{true,false}
+ {\si@numtextmodefalse
+ \si@unittextmodefalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@numtextmodetrue
+ \si@unittextmodetrue
+ \fi}
+\si@opt@choicekey{mode}{math,maths,text}
+ {\si@numtextmodefalse
+ \si@unittextmodefalse
+ \renewcommand*{\si@tempb}{text}%
+ \ifx\si@tempa\si@tempb
+ \si@numtextmodetrue
+ \si@unittextmodetrue
+ \fi}
+\si@opt@choicekey{valuemode}{math,maths,text}
+ {\si@numtextmodefalse
+ \renewcommand*{\si@tempb}{text}%
+ \ifx\si@tempa\si@tempb
+ \si@numtextmodetrue
+ \fi}
+\si@opt@choicekey{unitmode}{math,maths,text}
+ {\si@unittextmodefalse
+ \renewcommand*{\si@tempb}{text}%
+ \ifx\si@tempa\si@tempb
+ \si@unittextmodetrue
+ \fi}
+\si@opt@boolkey{obeyfamily}
+\si@opt@boolkey{obeybold}
+\newif\ifsi@inlinebtext
+\si@opt@choicekey{inlinebold}{text,maths,math}
+ {\si@inlinebtextfalse
+ \renewcommand*{\si@tempb}{text}%
+ \ifx\si@tempa\si@tempb
+ \si@inlinebtexttrue
+ \fi}
+\si@opt@boolkey{obeyitalic}
+\si@opt@boolkey{detectdisplay}
+\si@opt@choicekey[true]{obeyall}{true,false}
+ {\si@obeyboldfalse
+ \si@obeyitalicfalse
+ \si@obeymodefalse
+ \si@obeyfamilyfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@obeyboldtrue
+ \si@obeyitalictrue
+ \si@obeymodetrue
+ \si@obeyfamilytrue
+ \fi}
+\si@opt@cmdkeys{valuemathsrm,valuemathssf,valuemathstt}
+\si@opt@cmdkeys{unitmathsrm,unitmathssf,unitmathstt}
+\si@opt@key{valuemathrm}{\sisetup{valuemathsrm=#1}}
+\si@opt@key{valuemathsf}{\sisetup{valuemathssf=#1}}
+\si@opt@key{valuemathtt}{\sisetup{valuemathstt=#1}}
+\si@opt@key{unitmathrm}{\sisetup{unitmathsrm=#1}}
+\si@opt@key{unitmathsf}{\sisetup{unitmathssf=#1}}
+\si@opt@key{unitmathtt}{\sisetup{unitmathstt=#1}}
+\si@opt@key{mathsrm}{\sisetup{valuemathsrm=#1,unitmathsrm=#1}}
+\si@opt@key{mathssf}{\sisetup{valuemathssf=#1,unitmathssf=#1}}
+\si@opt@key{mathstt}{\sisetup{valuemathstt=#1,unitmathstt=#1}}
+\si@opt@key{mathrm}{\sisetup{valuemathsrm=#1,unitmathsrm=#1}}
+\si@opt@key{mathsf}{\sisetup{valuemathssf=#1,unitmathssf=#1}}
+\si@opt@key{mathtt}{\sisetup{valuemathstt=#1,unitmathstt=#1}}
+\si@opt@cmdkeys{valuetextrm,valuetextsf,valuetexttt}
+\si@opt@cmdkeys{unittextrm,unittextsf,unittexttt}
+\si@opt@key{textrm}{\sisetup{unittextrm=#1,valuetextrm=#1}}
+\si@opt@key{textsf}{\sisetup{unittextsf=#1,valuetextsf=#1}}
+\si@opt@key{texttt}{\sisetup{unittexttt=#1,valuetexttt=#1}}
+\si@opt@cmdkeys{numdigits,numdecimal,numexp,numgobble,numsign,%
+ numcloseerr,numopenerr,numaddn,numprod}
+\newcommand*{\si@numextra}{%
+ \si@numopenerr\si@numcloseerr\si@numaddn}
+\newcommand*{\si@numvalid}{\si@numgobble\si@numexp\si@numsign
+ \si@numdecimal\si@numdigits\si@numextra\si@numprod}
+\si@opt@boolkey{seperr}
+\si@opt@boolkey{trapambigerr}
+\si@opt@cmdkeys{openerr,closeerr}
+\si@opt@boolkey{sepfour}
+\si@opt@boolkey{retainplus}
+\si@opt@xchoicekey{expproduct}{times,tighttimes,
+ cdot,tightcdot}{times}
+\si@opt@xchoicekey{expbase}{ten}{ten}
+\si@opt@boolkey{allowzeroexp}
+\si@opt@xchoicekey{prefixproduct}{times,tighttimes,cdot,
+ tightcdot,none}{times}
+\si@opt@xchoicekey{prefixbase}{ten,two}{ten}
+\si@opt@boolkey{prefixsymbolic}
+\newif\ifsi@num@padlead
+\newif\ifsi@num@padtrail
+\si@opt@choicekey[all]{padnumber}
+ {leading,lead,trailing,trail,all,both,true,none,false}
+ {\si@num@padleadfalse
+ \si@num@padtrailfalse
+ \renewcommand*{\si@tempb}{leading}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padleadtrue
+ \fi
+ \renewcommand*{\si@tempb}{lead}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padleadtrue
+ \fi
+ \renewcommand*{\si@tempb}{trailing}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padtrailtrue
+ \fi
+ \renewcommand*{\si@tempb}{trail}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padtrailtrue
+ \fi
+ \renewcommand*{\si@tempb}{all}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padleadtrue
+ \si@num@padtrailtrue
+ \fi
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padleadtrue
+ \si@num@padtrailtrue
+ \fi
+ \renewcommand*{\si@tempb}{both}%
+ \ifx\si@tempa\si@tempb
+ \si@num@padleadtrue
+ \si@num@padtrailtrue
+ \fi}
+\newif\ifsi@num@signmant
+\newif\ifsi@num@signexp
+\si@opt@xchoicekey{sign}{plus,minus,pm,mp}{plus}
+\si@opt@choicekey[all]{addsign}
+ {mantissa,exponent,mant,exp,all,both,true,none,false}
+ {\si@num@signmantfalse
+ \si@num@signexpfalse
+ \renewcommand*{\si@tempb}{mantissa}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signmanttrue
+ \fi
+ \renewcommand*{\si@tempb}{mant}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signmanttrue
+ \fi
+ \renewcommand*{\si@tempb}{exponent}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signexptrue
+ \fi
+ \renewcommand*{\si@tempb}{exp}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signexptrue
+ \fi
+ \renewcommand*{\si@tempb}{all}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signmanttrue
+ \si@num@signexptrue
+ \fi
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signmanttrue
+ \si@num@signexptrue
+ \fi
+ \renewcommand*{\si@tempb}{both}%
+ \ifx\si@tempa\si@tempb
+ \si@num@signmanttrue
+ \si@num@signexptrue
+ \fi}
+\si@opt@boolkey{tightpm}
+\newcommand*{\si@pm}{%
+ \ifsi@tightpm
+ \si@fix@tightpm
+ \else
+ \si@fix@pm
+ \fi}
+\newif\ifsi@ang@padsmall
+\newif\ifsi@ang@padlarge
+\si@opt@choicekey[all]{padangle}
+ {small,large,all,both,true,none,false}
+ {\si@ang@padsmallfalse
+ \si@ang@padlargefalse
+ \renewcommand*{\si@tempb}{small}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@padsmalltrue
+ \fi
+ \renewcommand*{\si@tempb}{large}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@padlargetrue
+ \fi
+ \renewcommand*{\si@tempb}{all}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@padsmalltrue
+ \si@ang@padlargetrue
+ \fi
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@padsmalltrue
+ \si@ang@padlargetrue
+ \fi
+ \renewcommand*{\si@tempb}{both}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@padsmalltrue
+ \si@ang@padlargetrue
+ \fi}
+\newif\ifsi@ang@toarc
+\newif\ifsi@ang@todec
+\si@opt@choicekey[all]{angformat}
+ {dec,decimal,arc,dms,unchanged,none}
+ {\si@ang@toarcfalse
+ \si@ang@todecfalse
+ \renewcommand*{\si@tempb}{dec}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@todectrue
+ \fi
+ \renewcommand*{\si@tempb}{decimal}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@todectrue
+ \fi
+ \renewcommand*{\si@tempb}{arc}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@toarctrue
+ \fi
+ \renewcommand*{\si@tempb}{dms}%
+ \ifx\si@tempa\si@tempb
+ \si@ang@toarctrue
+ \fi}
+\si@opt@boolkey{astroang}
+\si@opt@boolkey{strictarc}
+\newif\ifsi@tab@fixed
+\si@opt@choicekey{tabnumalign}
+ {centredecimal,centerdecimal,right,left,centre,center}
+ {\si@tab@fixedtrue
+ \let\si@tab@rfill@S\hfil
+ \let\si@tab@lfill@S\hfil
+ \renewcommand*{\si@tempb}{right}%
+ \ifx\si@tempa\si@tempb
+ \let\si@tab@lfill@S\hfill
+ \fi
+ \renewcommand*{\si@tempb}{left}%
+ \ifx\si@tempa\si@tempb
+ \let\si@tab@rfill@S\hfill
+ \fi
+ \renewcommand*{\si@tempb}{centredecimal}%
+ \ifx\si@tempa\si@tempb
+ \expandafter\si@tab@fixedfalse
+ \fi
+ \renewcommand*{\si@tempb}{centerdecimal}%
+ \ifx\si@tempa\si@tempb
+ \expandafter\si@tab@fixedfalse
+ \fi}
+\si@opt@key{tabalign}{\sisetup{tabnumalign=#1,tabtextalign=#1,
+ tabunitalign=#1}}
+\si@opt@boolkey{tabalignexp}
+\newcount\si@tab@mantprecnt
+\newcount\si@tab@mantpostcnt
+\newcount\si@tab@expprecnt
+\newcount\si@tab@exppostcnt
+\newif\ifsi@tab@mantsign
+\newif\ifsi@tab@expsign
+\si@opt@cmdkey{tabformat}
+ {\si@num@fixpm
+ \renewcommand*{\si@num@arg}{tabformat data}%
+ \renewcommand*{\si@num@exp}{}%
+ \renewcommand*{\si@num@mant}{}%
+ \si@tab@mantsignfalse
+ \si@tab@expsignfalse
+ \si@switchfalse
+ \si@num@sepmantexp{#1}%
+ \si@num@sepsign{mant}%
+ \ifx\@empty\si@num@mantsign\@empty
+ \ifsi@num@delplus
+ \expandafter\expandafter\expandafter\si@tab@mantsigntrue
+ \fi
+ \else
+ \expandafter\si@tab@mantsigntrue
+ \fi
+ \si@num@sepsign{exp}%
+ \ifx\@empty\si@num@expsign\@empty
+ \ifsi@num@delplus
+ \expandafter\expandafter\expandafter\si@tab@expsigntrue
+ \fi
+ \else
+ \expandafter\si@tab@expsigntrue
+ \fi
+ \si@opt@proctform{mant}%
+ \si@opt@proctform{exp}%
+ \ifnum\si@tab@mantpostcnt=\z@\relax
+ \ifnum\si@tab@mantprecnt=\z@\relax
+ \si@log@err{Empty mantissa argument for tabformat}
+ {The argument `#1' contains no valid entry for
+ a mantissa\MessageBreak It should be of the
+ form `m.n', where m and n are integers}%
+ \else
+ \si@log@warn{Argument of tabformat contains\MessageBreak
+ no decimal part}%
+ \fi
+ \else
+ \ifnum\si@tab@mantprecnt=\z@\relax
+ \si@log@warn{Argument of tabformat contains\MessageBreak
+ no integer part}%
+ \fi
+ \fi
+ \ifsi@tab@fixed\else
+ \sisetup{tabnumalign=centre}%
+ \fi
+ \let\pm\si@num@pm
+ \let\mp\si@num@mp}
+\newcommand*{\si@opt@proctform}[1]{%
+ \renewcommand*{\si@num@predec}{}%
+ \renewcommand*{\si@num@postdec}{}%
+ \si@switchfalse
+ \expandafter\si@ifnotmtarg\expandafter{%
+ \csname si@num@#1\endcsname}
+ {\expandafter\expandafter\expandafter\si@num@digits
+ \csname si@num@#1\endcsname\@empty\@empty}%
+ \csname si@tab@#1precnt\endcsname\z@\relax
+ \csname si@tab@#1postcnt\endcsname\z@\relax
+ \ifx\@empty\si@num@predec\@empty\else
+ \csname si@tab@#1precnt\endcsname\si@num@predec\relax
+ \fi
+ \ifx\@empty\si@num@postdec\@empty\else
+ \csname si@tab@#1postcnt\endcsname\si@num@postdec\relax
+ \fi}
+\si@opt@choicekey{tabtextalign}{left,right,centre,center}
+ {\let\si@tab@rfill@t\hfill
+ \let\si@tab@lfill@t\hfill
+ \renewcommand*{\si@tempb}{right}%
+ \ifx\si@tempa\si@tempb
+ \let\si@tab@rfill@t\relax
+ \fi
+ \renewcommand*{\si@tempb}{left}%
+ \ifx\si@tempa\si@tempb
+ \let\si@tab@lfill@t\relax
+ \fi}
+\si@opt@choicekey{tabunitalign}{left,right,centre,center}
+ {\let\si@tab@rfill@s\hfill
+ \let\si@tab@lfill@s\hfill
+ \renewcommand*{\si@tempb}{right}%
+ \ifx\si@tempa\si@tempb
+ \let\si@tab@rfill@s\relax
+ \fi
+ \renewcommand*{\si@tempb}{left}%
+ \ifx\si@tempa\si@tempb
+ \let\si@tab@lfill@s\relax
+ \fi}
+\si@opt@boolkey{fixdp}
+\newcount\si@num@dp
+\si@opt@key{dp}{%
+ \si@str@ifonlychrs{#1}{0123456789}
+ {}
+ {\si@log@err{Invalid input for dp option}
+ {The dp option must be given a positive integer}}%
+ \si@num@dp#1\relax
+ \si@fixdptrue}
+\si@opt@boolkey{tabautofit}
+\si@opt@boolkey{xspace}
+\si@opt@boolkey
+ [\si@unt@numfalse
+ \ifsi@prespace
+ \si@unt@numtrue
+ \fi]
+ {prespace}
+\si@opt@boolkey{allowoptarg}
+\newif\ifsi@slash
+\newif\ifsi@frac
+\si@opt@boolkey{stickyper}
+\si@opt@choicekey[reciprocal]{per}
+ {reciprocal,rp,power,slash,frac,fraction}
+ {\si@slashfalse
+ \si@fracfalse
+ \renewcommand*{\si@tempb}{slash}%
+ \ifx\si@tempa\si@tempb
+ \si@fractrue
+ \si@slashtrue
+ \let\si@frac\si@frc@slash
+ \fi
+ \renewcommand*{\si@tempb}{frac}%
+ \ifx\si@tempa\si@tempb
+ \si@fractrue
+ \fi
+ \renewcommand*{\si@tempb}{fraction}%
+ \ifx\si@tempa\si@tempb
+ \si@fractrue
+ \fi}
+\si@opt@xchoicekey{slash}{slash}{slash}
+\newif\ifsi@repeatunits
+\newif\ifsi@addunitpower
+\si@opt@choicekey[true]{repeatunits}{true,false,power}
+ {\si@repeatunitsfalse
+ \si@addunitpowerfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@repeatunitstrue
+ \fi
+ \renewcommand*{\si@tempb}{power}%
+ \ifx\si@tempa\si@tempb
+ \si@addunitpowertrue
+ \fi}
+\si@opt@boolkey{trapambigfrac}
+\si@opt@cmdkeys{closefrac,openfrac}
+\si@opt@choicekey[frac]{fraction}
+ {frac,nicefrac,nice,sfrac,xfrac,uglyfrac,ugly}
+ {\let\si@frac\si@frc@frac
+ \renewcommand*{\si@tempb}{nicefrac}%
+ \ifx\si@tempa\si@tempb
+ \let\si@frac\si@frc@nice
+ \fi
+ \renewcommand*{\si@tempb}{uglyfrac}%
+ \ifx\si@tempa\si@tempb
+ \let\si@frac\si@frc@ugly
+ \fi
+ \renewcommand*{\si@tempb}{nice}%
+ \ifx\si@tempa\si@tempb
+ \let\si@frac\si@frc@nice
+ \fi
+ \renewcommand*{\si@tempb}{sfrac}%
+ \ifx\si@tempa\si@tempb
+ \let\si@frac\si@frc@sfrac
+ \fi
+ \renewcommand*{\si@tempb}{xfrac}%
+ \ifx\si@tempa\si@tempb
+ \let\si@frac\si@frc@sfrac
+ \fi
+ \renewcommand*{\si@tempb}{ugly}%
+ \ifx\si@tempa\si@tempb
+ \let\si@frac\si@frc@ugly
+ \fi}
+\si@opt@cmdkeys{load,noload}
+\si@opt@key{alsoload}{\si@addtolist{\si@load}{#1}}
+\AtEndOfPackage{
+ \si@opt@disablekey{load}
+ {Configuration files can only be used\MessageBreak
+ when loading package}
+ \si@opt@disablekey{noload}
+ {Configuration files can only be used\MessageBreak
+ when loading package}}
+\AtEndOfPackage{
+ \si@opt@key{alsoload}{%
+ \@for\si@tempa:=#1\do{\si@loadfile{\si@tempa}}}}
+\si@opt@boolkey{colourunits}
+\si@opt@boolkey{colourvalues}
+\si@opt@choicekey[true]{colorunits}
+ {true,false}
+ {\si@colourunitsfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@colourunitstrue
+ \fi}
+\si@opt@choicekey[true]{colorvalues}
+ {true,false}
+ {\si@colourvaluesfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@colourvaluestrue
+ \fi}
+\si@opt@choicekey[true]{colorall}
+ {true,false}
+ {\si@colourvaluesfalse
+ \si@colourunitsfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@colourunitstrue
+ \si@colourvaluestrue
+ \fi}
+\si@opt@choicekey[true]{colourall}
+ {true,false}
+ {\si@colourvaluesfalse
+ \si@colourunitsfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@colourunitstrue
+ \si@colourvaluestrue
+ \fi}
+\si@opt@cmdkeys{unitcolour,valuecolour}
+\si@opt@key{unitcolor}{\sisetup{unitcolour=#1}}
+\si@opt@key{valuecolor}{\sisetup{valuecolour=#1}}
+\si@opt@key{colour}{\sisetup{unitcolour=#1,valuecolour=#1}}
+\si@opt@key{color}{\sisetup{unitcolour=#1,valuecolour=#1}}
+\si@opt@boolkey{colourneg}
+\si@opt@choicekey[true]{colorneg}
+ {true,false}
+ {\si@colournegfalse
+ \renewcommand*{\si@tempb}{true}%
+ \ifx\si@tempa\si@tempb
+ \si@colournegtrue
+ \fi}
+\si@opt@cmdkeys{negcolour}
+\si@opt@key{negcolor}{\sisetup{negcolour=#1}}
+\si@opt@cmdkeys{textOmega,mathsOmega}
+\si@opt@key{mathOmega}{\sisetup{mathsOmega=#1}}
+\newcommand*{\si@mathsOmega}{\text{\ensuremath{\Omega}}}
+\newcommand*{\si@textOmega}{\ensuremath{\Omega}}
+\si@opt@cmdkeys{textmu,mathsmu}
+\si@opt@key{mathmu}{\sisetup{mathsmu=#1}}
+\DeclareFontEncoding{TS1}{}{}
+\DeclareFontSubstitution{TS1}{cmr}{m}{n}
+\DeclareTextSymbol{\si@textmu}{TS1}{181}
+\DeclareTextSymbolDefault{\si@textmu}{TS1}
+\DeclareFontFamily{OML}{eur}{\skewchar\font127}
+\DeclareFontShape{OML}{eur}{m}{n}%
+ {<5> <6> <7> <8> <9> gen * eurm %
+ <10><10.95><12><14.4><17.28><20.74><24.88>eurm10}{}
+\DeclareSymbolFont{greek}{OML}{eur}{m}{n}
+\DeclareMathSymbol{\si@mathsmu}{\mathord}{greek}{"16}
+\si@opt@cmdkeys{textdegree,mathsdegree,textminute,mathsminute,
+ textsecond,mathssecond}
+\si@opt@key{mathdegree}{\sisetup{mathsdegree=#1}}
+\si@opt@key{mathminute}{\sisetup{mathsminute=#1}}
+\si@opt@key{mathsecond}{\sisetup{mathssecond=#1}}
+\newcommand*{\si@textdegree}{\ensuremath{{}^{\circ}}}
+\newcommand*{\si@mathsdegree}{{}^{\circ}}
+\newcommand*{\si@textminute}{\ensuremath{{}^{\prime}}}
+\newcommand*{\si@mathsminute}{{}^{\prime}}
+\newcommand*{\si@textsecond}{\ensuremath{{}^{\prime\prime}}}
+\newcommand*{\si@mathssecond}{{}^{\prime\prime}}
+\si@opt@cmdkeys{textcelsius,mathscelsius}
+\si@opt@key{mathcelsius}{\sisetup{mathscelsius=#1}}
+\newcommand*{\si@textcelsius}{%
+ \si@textdegree\kern-\scriptspace C}
+\newcommand*{\si@mathscelsius}{%
+ \si@mathsdegree\kern-\scriptspace\mathrm{C}}
+\si@opt@cmdkeys{textringA,mathsringA}
+\si@opt@key{mathringA}{\sisetup{mathsringA=#1}}
+\newcommand*{\si@textringA}{\AA}
+\newcommand*{\si@mathsringA}{\text{\AA}}
+\si@opt@boolkey{redefsymbols}
+\AtBeginDocument{
+ \si@opt@disablekey{redefsymbols}
+ {Symbols can only be redefined\MessageBreak
+ when loading siunitx}}
+\newlength\si@eVcorra
+\newlength\si@eVcorrb
+\si@opt@key{eVcorra}{\setlength\si@eVcorra{#1}}
+\si@opt@key{eVcorrb}{\setlength\si@eVcorrb{#1}}
+\si@opt@key{locale}{%
+ \si@loc@load{#1}%
+ \si@loc@set{#1}}%
+\si@opt@key{loctolang}{\si@loc@ltol{#1}}
+\si@opt@compatkey{units}{ugly}
+\si@opt@compatkey{units}{nice}
+\si@opt@compatkey{units}{loose}
+\si@opt@compatkey{units}{tight}
+\si@opt@compatkey{unitsdef}{OHM}
+\si@opt@compatkey{unitsdef}{ohm}
+\si@opt@compatkey{unitsdef}{redef-gensymb}
+\newif\ifsi@gensymb
+\si@opt@compatkey{unitsdef}{LITER}
+\si@opt@compatkey{unitsdef}{liter}
+\si@opt@compatkey{unitsdef}{noxspace}
+\si@opt@compatkey{unitsdef}{noconfig}
+\si@opt@compatkey{unitsdef}{noabbr}
+\si@opt@compatkey{unitsdef}{noampereageabbr}
+\si@opt@compatkey{unitsdef}{nofrequncyabbr}
+\si@opt@compatkey{unitsdef}{nomolabbr}
+\si@opt@compatkey{unitsdef}{novoltageabbr}
+\si@opt@compatkey{unitsdef}{novolumeabbr}
+\si@opt@compatkey{unitsdef}{noweightabbr}
+\si@opt@compatkey{unitsdef}{noenergyabbr}
+\si@opt@compatkey{unitsdef}{nolengthabbr}
+\si@opt@compatkey{unitsdef}{notimeabbr}
+\si@opt@compatkey{SIunits}{cdot}
+\si@opt@compatkey{SIunits}{thickspace}
+\si@opt@compatkey{SIunits}{mediumspace}
+\si@opt@compatkey{SIunits}{thinspace}
+\si@opt@compatkey{SIunits}{thickqspace}
+\si@opt@compatkey{SIunits}{mediumqspace}
+\si@opt@compatkey{SIunits}{thinqspace}
+\si@opt@compatkey{SIunits}{amssymb}
+\si@opt@compatkey{SIunits}{squaren}
+\si@opt@compatkey{SIunits}{pstricks}
+\si@opt@compatkey{SIunits}{Gray}
+\si@opt@compatkey{SIunits}{italian}
+\si@opt@compatkey{SIunits}{textstyle}
+\si@opt@compatkey{SIunits}{binary}
+\si@opt@compatkey{SIunits}{noams}
+\si@opt@compatkey{SIunits}{derivedinbase}
+\si@opt@compatkey{SIunits}{derived}
+\si@opt@compatkey{hepunits}{noprefixcmds}
+\si@opt@compatkey{fancynum}{english}
+\si@opt@compatkey{fancynum}{french}
+\si@opt@compatkey{fancynum}{tight}
+\si@opt@compatkey{fancynum}{loose}
+\si@opt@compatkey{fancynum}{thinspaces}
+\si@opt@compatkey{fancynum}{commas}
+\si@opt@compatkey{fancynum}{plain}
+\si@opt@compatkey{fancyunits}{spaceqspace}
+\newcommand*{\si@fix@thin}{\,}
+\newcommand*{\si@fix@med}{\:}
+\newcommand*{\si@fix@medium}{\:}
+\newcommand*{\si@fix@thick}{\;}
+\newcommand*{\si@fix@space}{\text{~}}
+\newcommand*{\si@fix@cdot}{{}\cdot{}}
+\newcommand*{\si@fix@comma}{{,}}
+\newcommand*{\si@fix@stop}{{.}}
+\newcommand*{\si@fix@fullstop}{{.}}
+\newcommand*{\si@fix@period}{{.}}
+\newcommand*{\si@fix@times}{\times}
+\newcommand*{\si@fix@tighttimes}{\bgroup\times\egroup}
+\newcommand*{\si@fix@tightcdot}{\bgroup\cdot\egroup}
+\newcommand*{\si@fix@plus}{+}
+\newcommand*{\si@fix@minus}{-}
+\newcommand*{\si@fix@pm}{\pm}
+\newcommand*{\si@fix@tightpm}{\bgroup\pm\egroup}
+\newcommand*{\si@fix@mp}{\mp}
+\newcommand*{\si@fix@two}{2}
+\newcommand*{\si@fix@ten}{10}
+\newcommand*{\si@fix@slash}{/}
+\newcommand*{\si@fix@none}{}
+\newcommand*{\si@symbol}[1]{%
+ \expandafter\protected\expandafter\def
+ \csname si@sym@#1\endcsname{%
+ \ifmmode
+ \expandafter\csname si@maths#1\expandafter\endcsname
+ \else
+ \expandafter\csname si@text#1\expandafter\endcsname
+ \fi}}
+\si@symbol{Omega}
+\si@symbol{ringA}
+\si@symbol{mu}
+\si@symbol{degree}
+\si@symbol{minute}
+\si@symbol{second}
+\si@symbol{celsius}
+\AtBeginDocument{%
+ \ifsi@redefsymbols
+ \@ifpackageloaded{textcomp}
+ {\si@log@debug{Redefining symbols using textcomp}%
+ \renewcommand*{\si@textdegree}{\textdegree}%
+ \renewcommand*{\si@mathsdegree}{\text{\textdegree}}%
+ \@ifpackageloaded{mathptmx}{}
+ {\renewcommand*{\si@textmu}{\textmu}%
+ \renewcommand*{\si@textOmega}{\textohm}}%
+ \renewcommand*{\si@tempa}{OT1}%
+ \ifx\si@tempa\encodingdefault
+ \renewcommand*{\si@mathsringA}{%
+ \text{\capitalring{A}}}%
+ \renewcommand*{\si@textringA}{\capitalring{A}}
+ \fi}{}
+ \@ifpackageloaded{upgreek}
+ {\si@log@debug{Redefining symbols using upgreek}%
+ \renewcommand*{\si@mathsmu}{\upmu}%
+ \renewcommand*{\si@mathsOmega}{\Upomega}}{}
+ \fi}
+\newcommand*{\si@frc@frac}[2]{%
+ \ensuremath{\si@frc@hook\frac{%
+ \expandafter\si@unt@out\expandafter{#1}}%
+ {\expandafter\si@unt@out\expandafter{#2}}}}
+\let\si@frac\si@frc@frac
+\newcommand*{\si@frc@hook}{}
+\newcommand*{\si@frc@slash}[2]{%
+ \expandafter\si@unt@out\expandafter{#1}%
+ \si@out{\ensuremath{\si@slash}}%
+ \expandafter\si@unt@out\expandafter{#2}}
+\newcommand*{\si@frc@nice}[2]{%
+ \ensuremath{\si@frc@nicefrac{\expandafter\si@unt@out%
+ \expandafter{#1}}{\expandafter\si@unt@out\expandafter
+ {#2}}}}
+\newcommand*{\si@frc@sfrac}[2]{%
+ \sfrac{\expandafter\si@unt@out\expandafter{#1}}%
+ {\expandafter\si@unt@out\expandafter{#2}}}
+\AtBeginDocument{
+ \@ifpackageloaded{xfrac}
+ {}
+ {\si@log@inf{xfrac package unavailable\MessageBreak
+ using `fraction=sfrac' will fall back on\MessageBreak
+ nicefrac-like method}%
+ \renewcommand*{\si@frc@sfrac}[2]{%
+ \si@log@warn{xfrac package unavailable}%
+ \si@frc@nice{#1}{#2}}}}
+\newlength\si@frc@displen
+\newlength\si@frc@textlen
+\newlength\si@frc@suplen
+\newlength\si@frc@ssuplen
+\newcommand*{\si@frc@nicefrac}{%
+ \ifmmode
+ \expandafter\si@frc@mathsnf
+ \else
+ \expandafter\si@frc@textnf
+ \fi}
+\newcommand*{\si@frc@mathsnf}[2]{%
+ \begingroup
+ \settoheight{\si@frc@displen}{\ensuremath{%
+ \displaystyle{M}}}%
+ \settoheight{\si@frc@textlen}{\ensuremath{%
+ \textstyle{M}}}%
+ \settoheight{\si@frc@suplen}{\ensuremath{%
+ \scriptstyle{M}}}%
+ \settoheight{\si@frc@ssuplen}{%
+ \ensuremath{\scriptscriptstyle{M}}}%
+ \addtolength{\si@frc@displen}{-\si@frc@ssuplen}%
+ \addtolength{\si@frc@textlen}{-\si@frc@ssuplen}%
+ \addtolength{\si@frc@suplen}{-\si@frc@ssuplen}%
+ \mathchoice
+ {\raisebox{\si@frc@displen}{\ensuremath{%
+ \scriptstyle{#1}}}}%
+ {\raisebox{\si@frc@textlen}{\ensuremath{%
+ \scriptstyle{#1}}}}%
+ {\raisebox{\si@frc@suplen}%
+ {\ensuremath{\scriptscriptstyle{#1}}}}%
+ {\raisebox{\si@frc@ssuplen}%
+ {\ensuremath{\scriptscriptstyle{#1}}}}%
+ \mkern-2mu\relax/\mkern-1mu\relax
+ \bgroup
+ \mathchoice
+ {\scriptstyle}%
+ {\scriptstyle}%
+ {\scriptscriptstyle}%
+ {\scriptscriptstyle}%
+ {#2}%
+ \egroup
+ \endgroup}
+\newcommand*{\si@frc@textnf}[2]{%
+ \begingroup
+ \settoheight{\si@frc@textlen}{M}%
+ \settoheight{\si@frc@ssuplen}{\fontsize\sf@size\z@\relax
+ \selectfont{M}}%
+ \addtolength{\si@frc@textlen}{-\si@frc@ssuplen}%
+ \raisebox{\si@frc@textlen}{\fontsize\sf@size\z@\relax
+ \selectfont{#1}}%
+ \hspace{-0.25ex}/\hspace{-0.25ex}%
+ \hbox{\fontsize\sf@size\z@\selectfont{#2}}%
+ \endgroup}
+\newcommand*{\si@frc@ugly}[1]{%
+ \renewcommand*{\si@tempa}{#1}%
+ \ifmmode
+ \expandafter\si@frc@frac
+ \else
+ \renewcommand*{\si@tempb}{1}%
+ \ifx\si@tempa\si@tempb
+ \setbox\si@tempboxa=\hbox{\ensuremath{\si@valuesep}}%
+ \hskip-\wd\si@tempboxa\relax
+ \renewcommand*{\si@tempa}{}%
+ \fi
+ \expandafter\si@frc@slash
+ \fi
+ {\si@tempa}}
+\g@addto@macro{\document}{%
+ \ifdefined\mathsf
+ \setbox\si@tempboxa=\hbox{%
+ $\mathsf{\global\chardef\si@fam@sf=\fam}$}%
+ \else
+ \si@log@inf{\string\mathsf not found}%
+ \global\chardef\si@fam@sf=99\relax
+ \fi
+ \ifdefined\mathtt
+ \setbox\si@tempboxa=\hbox{%
+ $\mathtt{\global\chardef\si@fam@tt=\fam}$}%
+ \else
+ \si@log@inf{\string\mathtt not found}%
+ \global\chardef\si@fam@tt=99\relax
+ \fi}
+\newcommand*{\si@fam@ifbtext}[1]{%
+ \if b\expandafter\@car\f@series\@nil
+ #1\fi}
+\newcommand*{\si@fam@ifbmaths}[1]{%
+ \renewcommand*{\si@tempa}{bold}%
+ \ifx\math@version\si@tempa
+ #1\fi}
+\newcommand*{\si@fam@ifbinline}{%
+ \ifsi@inlinebtext
+ \expandafter\si@fam@ifbtext
+ \else
+ \expandafter\si@fam@ifbmaths
+ \fi}
+\newcommand*{\si@fam@ifitext}[1]{%
+ \if n\expandafter\@car\f@series\@nil\else
+ #1\fi}
+\newcommand*{\si@fam@mode}{%
+ \ifsi@obeymode
+ \ifmmode
+ \sisetup{mode=maths}%
+ \else
+ \sisetup{mode=text}%
+ \fi
+ \fi}
+\AtBeginDocument{
+ \@ifpackageloaded{color}
+ {\let\si@fam@colourcmd\color}
+ {\let\si@fam@colourcmd\@gobble}}
+\newif\ifsi@fam@set
+\newif\ifsi@textmode
+\newcommand*{\si@fam@set}{%
+ \ifsi@out@num
+ \ifsi@numtextmode
+ \expandafter\expandafter\expandafter\si@textmodetrue
+ \else
+ \expandafter\expandafter\expandafter\si@textmodefalse
+ \fi
+ \else
+ \ifsi@unittextmode
+ \expandafter\expandafter\expandafter\si@textmodetrue
+ \else
+ \expandafter\expandafter\expandafter\si@textmodefalse
+ \fi
+ \fi
+ \ifsi@fam@set\else
+ \let\si@colourcmd\@gobble
+ \ifsi@out@num
+ \let\si@mathsrm\si@valuemathsrm
+ \let\si@mathssf\si@valuemathssf
+ \let\si@mathstt\si@valuemathstt
+ \let\si@textrm\si@valuetextrm
+ \let\si@textsf\si@valuetextsf
+ \let\si@texttt\si@valuetexttt
+ \ifsi@colourvalues
+ \let\si@colourcmd\si@fam@colourcmd
+ \fi
+ \let\si@colour\si@valuecolour
+ \else
+ \let\si@mathsrm\si@unitmathsrm
+ \let\si@mathssf\si@unitmathssf
+ \let\si@mathstt\si@unitmathstt
+ \let\si@textrm\si@unittextrm
+ \let\si@textsf\si@unittextsf
+ \let\si@texttt\si@unittexttt
+ \ifsi@colourunits
+ \let\si@colourcmd\si@fam@colourcmd
+ \fi
+ \let\si@colour\si@unitcolour
+ \fi
+ \fi
+ \si@fam@settrue
+ \edef\si@tempa{\sfdefault}%
+ \edef\si@tempb{\ttdefault}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathsrm\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textrm\endcsname
+ \ifsi@obeyfamily
+ \si@log@debug{Font detection: checking font}%
+ \ifmmode
+ \ifinner
+ \si@log@debug{Font detection: inline maths}%
+ \si@fam@dettext
+ \else
+ \si@log@debug{Font detection: display maths}%
+ \ifsi@detectdisplay
+ \si@fam@detmaths
+ \else
+ \si@fam@dettext
+ \fi
+ \fi
+ \else
+ \si@log@debug{Font detection: text}%
+ \si@fam@dettext
+ \fi
+ \else
+ \si@log@debug{Font detection: inactive}%
+ \fi
+ \def\si@fam@bold{\unboldmath\mdseries}%
+ \ifsi@obeybold
+ \si@log@debug{Weight detection: checking weight}%
+ \ifmmode
+ \ifdim\displaywidth>0pt\relax
+ \ifsi@detectdisplay
+ \expandafter\si@fam@ifbmaths
+ \else
+ \expandafter\si@fam@ifbtext
+ \fi
+ \si@fam@setbold
+ \else
+ \si@fam@ifbinline\si@fam@setbold
+ \fi
+ \else
+ \si@fam@ifbtext\si@fam@setbold
+ \fi
+ \fi
+ \let\si@fam@italic\upshape
+ \ifsi@obeyitalic
+ \si@log@debug{Italic detection: checking italic}%
+ \si@fam@ifitext
+ {\let\si@fam@italic\relax
+ \si@log@debug{Italic detection: italic}}%
+ \fi}
+\newcommand*{\si@fam@detmaths}{%
+ \ifnum\the\fam=\si@fam@sf
+ \si@log@debug{Font detection: sf}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathssf\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textsf\endcsname
+ \else
+ \ifnum\the\fam=\si@fam@tt
+ \si@log@debug{Font detection: tt}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathstt\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@texttt\endcsname
+ \else
+ \si@log@debug{Font detection: rm}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathsrm\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textrm\endcsname
+ \fi
+ \fi}
+\newcommand*{\si@fam@dettext}{%
+ \ifx\f@family\si@tempa
+ \si@log@debug{Font detection: sf}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathssf\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textsf\endcsname
+ \else
+ \ifx\f@family\si@tempb
+ \si@log@debug{Font detection: tt}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathstt\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@texttt\endcsname
+ \else
+ \si@log@debug{Font detection: rm}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathsrm\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textrm\endcsname
+ \fi
+ \fi}
+\newcommand*{\si@fam@setbold}{%
+ \si@log@debug{Weight detection: bold weight}%
+ \let\si@fam@bold\si@fam@boldify}
+\newcommand*{\si@fam@boldify}{\boldmath\bfseries}
+\si@newrobustcmd*{\num}[2][]{%
+ \begingroup
+ \sisetup{#1}%
+ \si@fam@mode
+ \si@num@intabfalse
+ \si@log@debug{Processing \string\num\space input `#2'}%
+ \expandafter\si@out@num\expandafter{\si@num{#2}}%
+ \endgroup}
+\newif\ifsi@num@intab
+\newcommand*{\si@num}[1]{%
+ \si@num@fixpm
+ \begingroup
+ \makeatletter
+ \@makeother{\,}%
+ \@makeother{\.}%
+ \@makeother{\+}%
+ \@makeother{\-}%
+ \def~{}%
+ \def\,{}%
+ \catcode`\~=\active\relax
+ \catcode`\^=\active\relax
+ \everyeof{\noexpand}%
+ \endlinechar\m@ne
+ \protected@xdef\si@tempa{\scantokens{#1}}%
+ \endgroup
+ \si@ifnotmtarg{\si@tempa}
+ {\si@num@ifvalid{\si@tempa}
+ {\si@num@format{\si@tempa}}
+ {\si@log@err{Invalid character `#1' in numerical input}%
+ {Only characters from the list
+ `\si@numvalid'\MessageBreak should be present in the
+ argument of the \string\num\space macro\MessageBreak
+ (or derivative such as an `s' column)}%
+ {#1}}}}
+\newcommand*{\si@num@fixpm}{%
+ \let\si@num@pm\pm
+ \let\si@num@mp\mp
+ \protected\def\pm{\si@num@pm}%
+ \protected\def\mp{\si@num@mp}}
+\newcommand*{\si@num@ifvalid}[1]{%
+ \begingroup
+ \si@switchtrue
+ \expandafter\si@num@valid#1\@empty\@empty
+ \ifsi@switch
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+\def\si@num@valid#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@numvalid}
+ {\ifx\@empty#2\@empty\else
+ \si@num@valid#2\@empty\@empty\@empty
+ \fi}
+ {\si@switchfalse}}
+\newcommand*{\si@num@in}{}
+\newcommand*{\si@num@out}{}
+\newcommand*{\si@num@exp}{}
+\newcommand*{\si@num@expsign}{}
+\newcommand*{\si@num@mant}{}
+\newcommand*{\si@num@mantsign}{}
+\newcommand*{\si@num@err}{}
+\newcommand*{\si@num@xpart}{}
+\newcommand*{\si@num@ambig}{}
+\newcommand*{\si@tab@out}{}
+\newcommand*{\si@tab@expout}{}
+\newif\ifsi@num@erropen
+\newcommand*{\si@num@arg}{}
+\newcommand*{\si@num@format}[1]{%
+ \protected@edef\si@num@arg{#1}%
+ \si@log@debug{Formatting number `\si@num@arg'}%
+ \renewcommand*{\si@num@in}{}%
+ \renewcommand*{\si@num@exp}{}%
+ \renewcommand*{\si@num@expsign}{}%
+ \renewcommand*{\si@num@mant}{}%
+ \renewcommand*{\si@num@mantsign}{}%
+ \renewcommand*{\si@num@err}{}%
+ \renewcommand*{\si@num@xpart}{}%
+ \si@switchfalse
+ \expandafter\si@num@findxpart\si@num@arg\@empty\@empty
+ \si@switchfalse
+ \si@num@sepmantexp{\si@num@in}%
+ \si@num@sepsign{exp}%
+ \si@num@sepsign{mant}%
+ \ifx\@empty\si@num@exp\@empty
+ \ifx\@empty\si@num@expsign\@empty\else
+ \si@log@warn{Sign but no number for `\si@num@arg'}%
+ \fi
+ \let\si@num@expsign\@empty
+ \fi
+ \ifx\@empty\si@num@mant\@empty
+ \ifx\@empty\si@num@mantsign\@empty\else
+ \ifx\@empty\si@num@exp\@empty
+ \si@log@warn{Sign but no number for `\si@num@arg'}%
+ \let\si@num@mantsign\@empty
+ \fi
+ \fi
+ \fi
+ \renewcommand*{\si@tempa}{{-}}%
+ \ifx\si@num@mantsign\si@tempa
+ \ifsi@colourneg
+ \expandafter\expandafter\expandafter\si@fam@colourcmd
+ \else
+ \expandafter\expandafter\expandafter\@gobble
+ \fi
+ \else
+ \expandafter\@gobble
+ \fi
+ {\si@negcolour}%
+ \si@num@procnum{exp}%
+ \si@num@procnum{mant}%
+ \si@str@ifonlychrs{\si@num@exp}{0\si@numdecimal}
+ {\ifsi@allowzeroexp\else
+ \renewcommand*{\si@num@exp}{}%
+ \ifx\@empty\si@num@mant\@empty
+ \renewcommand*{\si@num@mant}{1}%
+ \fi
+ \fi}{}%
+ \ifx\@empty\si@num@exp\@empty\else
+ \ifsi@trapambigerr
+ \expandafter\expandafter\expandafter\si@num@ambigerrtrue
+ \fi
+ \fi
+ \protected@edef\si@num@out{%
+ \ensuremath{{\si@num@mantsign}}\si@num@mant}%
+ \renewcommand*{\si@tempa}{num}%
+ \ifsi@num@intab
+ \protected@edef\si@tab@out{%
+ \ensuremath{{\si@num@mantsign}}\si@num@predec}%
+ \protected@edef\si@num@out{\si@num@postdec}%
+ \renewcommand*{\si@tempa}{tab}%
+ \fi
+ \ifx\@empty\si@num@postdec\@empty\else
+ \renewcommand*{\si@tempa}{num}%
+ \fi
+ \ifx\@empty\si@num@err\@empty\else
+ \ifsi@seperr
+ \ifsi@num@ambigerr
+ \protected@edef\si@num@out{%
+ \ensuremath{\si@openerr}\si@num@out}%
+ \si@repeatunitsfalse
+ \expandafter\si@num@erropentrue
+ \else
+ \ifsi@trapambigerr\else
+ \ifx\@empty\si@num@exp\@empty\else
+ \protected@edef\si@num@err{%
+ \si@num@err\expandafter\@car\si@numexp\@nil
+ \si@num@expsign\si@num@exp}%
+ \ifsi@repeatunits\else
+ \renewcommand*{\si@num@exp}{}%
+ \renewcommand*{\si@num@expsign}{}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \else
+ \expandafter\protected@edef\csname
+ si@\si@tempa @out\endcsname{%
+ \si@num@out\ensuremath{\si@errspace}\ensuremath
+ {\si@openerr}\si@num@err\ensuremath{\si@closeerr}}%
+ \renewcommand*{\si@num@err}{}%
+ \fi
+ \fi
+ \renewcommand*{\si@tempa}{num@out}%
+ \ifsi@num@erropen
+ \renewcommand*{\si@tempa}{num@ambig}%
+ \fi
+ \ifsi@num@intab
+ \renewcommand*{\si@tempa}{tab@expout}%
+ \fi
+ \ifx\@empty\si@num@exp\@empty
+ \ifx\@empty\si@num@mant\@empty
+ \si@log@err{Invalid number format `\si@num@arg'}
+ {Something is wrong with the number format; does it
+ contain \MessageBreak any numbers (from the list
+ `\si@numdigits')?}%
+ \renewcommand*\si@num@out{}%
+ \fi
+ \else
+ \ifx\@empty\si@num@mant\@empty\else
+ \expandafter\protected@edef\csname
+ si@\si@tempa\endcsname{%
+ \csname si@\si@tempa\endcsname\ensuremath{{}%
+ \si@expproduct{}}}%
+ \fi
+ \expandafter\protected@edef\csname
+ si@\si@tempa\endcsname{%
+ \csname si@\si@tempa\endcsname\si@expbase
+ \textsuperscript{\ensuremath{\si@num@expsign}%
+ \si@num@exp}}%
+ \fi
+ \ifsi@num@intab\else
+ \expandafter\si@num@out
+ \fi
+ \ifx\@empty\si@num@err\@empty\else
+ \expandafter\si@num@procerr
+ \fi
+ \ifsi@num@erropen
+ \expandafter\si@out@num\expandafter{%
+ \ensuremath{\si@closeerr}}%
+ \ifx\@empty\si@num@ambig\@empty\else
+ \expandafter\si@out@num\expandafter{\si@num@ambig}%
+ \renewcommand*{\si@num@ambig}{}%
+ \fi
+ \fi
+ \si@num@erropenfalse
+ \ifx\@empty\si@num@xpart\@empty\else
+ \expandafter\si@num@sepxpart
+ \fi}
+\def\si@num@findxpart#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@numprod}
+ {\si@switchtrue\si@seperrfalse}{}%
+ \ifsi@switch
+ \protected@edef\si@num@xpart{\si@num@xpart#1}%
+ \else
+ \protected@edef\si@num@in{\si@num@in#1}%
+ \fi
+ \ifx\@empty#2\@empty\else
+ \si@num@findxpart#2\@empty
+ \fi}
+\newcommand*{\si@num@sepmantexp}[1]{%
+ \expandafter\si@num@mantexp#1\@empty\@empty}
+\def\si@num@mantexp#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@numgobble}
+ {\si@log@debug{Gobbling `#1' in \si@num@arg}}
+ {\si@str@ifchrstr{#1}{\si@numexp}
+ {\ifsi@switch
+ \si@log@err{Duplicate exponent marker found}
+ {Only a single exponent character \MessageBreak
+ (from the list `\si@numexp')\MessageBreak may
+ occur in a numerical argument}%
+ \else
+ \si@log@debug{Exponent marker `#1' found in
+ `\si@num@arg'}%
+ \fi
+ \si@switchtrue}%
+ {\ifsi@switch
+ \expandafter\si@num@addexp
+ \else
+ \expandafter\si@num@addmnt
+ \fi
+ {#1}}}%
+ \ifx\@empty#2\@empty
+ \expandafter\@gobble
+ \else
+ \expandafter\si@num@sepmantexp
+ \fi
+ {#2}}
+\newcommand*{\si@num@addmnt}[1]{%
+ \si@num@addmntexp{#1}{mant}{mantissa}}
+\newcommand*{\si@num@addexp}[1]{%
+ \si@num@addmntexp{#1}{exp}{exponent}}
+\newcommand*{\si@num@addmntexp}[3]{%
+ \si@log@debug{Adding `#1' to #3 for `\si@num@arg'}%
+ \expandafter\protected@edef\csname si@num@#2\endcsname{%
+ \csname si@num@#2\endcsname#1}}
+\newcommand*{\si@num@sepsign}[1]{%
+ \expandafter\ifx\expandafter\@empty
+ \csname si@num@#1\endcsname\@empty
+ \expandafter\@gobble
+ \else
+ \expandafter\si@num@gensign
+ \fi
+ {#1}}
+\newcommand*{\si@num@gensign}[1]{%
+ \expandafter\expandafter\expandafter\si@num@findsign
+ \csname si@num@#1\endcsname\@empty\@empty
+ \ifx\@empty\si@num@sign\@empty
+ \ifx\@empty\si@num@value\@empty
+ \expandafter\expandafter\expandafter\@gobble
+ \else
+ \expandafter\expandafter\expandafter\si@num@addsign
+ \fi
+ \else
+ \expandafter\@gobble
+ \fi
+ {#1}%
+ \expandafter\let\csname si@num@#1sign\endcsname\si@num@sign
+ \expandafter\let\csname si@num@#1\endcsname\si@num@value}
+\newcommand*{\si@num@sign}{}
+\def\si@num@findsign#1#2#3\@empty{%
+ \si@num@delplusfalse
+ \si@str@ifchrstr{#1}{\si@numsign}{%
+ \si@str@ifchrstr{#2}{\si@numsign}{%
+ \if +#1%
+ \if -#2%
+ \si@log@debug{Found sign combination +- for
+ `\si@num@arg'}%
+ \renewcommand*{\si@num@sign}{{\si@pm}}%
+ \else
+ \si@log@inf{Unknown sign combination `#1#2'}%
+ \renewcommand*{\si@num@sign}{{#1#2}}%
+ \fi
+ \else
+ \if -#1%
+ \if +#2%
+ \si@log@debug{Found sign combination -+ for
+ `\si@num@arg'}%
+ \renewcommand*{\si@num@sign}{{\mp}}%
+ \else
+ \si@log@inf{Unknown sign combination `#1#2'}%
+ \renewcommand*{\si@num@sign}{{#1#2}}%
+ \fi
+ \else
+ \si@log@inf{Unknown sign combination `#1#2'}%
+ \renewcommand*{\si@num@sign}{{#1#2}}%
+ \fi
+ \fi
+ \protected@edef\si@num@value{#3}}%
+ {\si@log@debug{Found single sign character `#1' for
+ `\si@num@arg'}%
+ \renewcommand*{\si@num@sign}{{#1}}%
+ \if +#1%
+ \ifsi@retainplus\else
+ \expandafter\expandafter\expandafter\si@num@killsign
+ \fi
+ \fi
+ \protected@edef\si@num@value{#2#3}}}%
+ {\si@log@debug{No sign found for `\si@num@arg'}%
+ \renewcommand*{\si@num@sign}{}%
+ \protected@edef\si@num@value{#1#2#3}}}
+\newif\ifsi@num@delplus
+\newcommand*{\si@num@killsign}{%
+ \si@num@delplustrue
+ \renewcommand*{\si@num@sign}{}}
+\newcommand*{\si@num@addsign}[1]{%
+ \begingroup
+ \renewcommand*{\si@tempa}{#1}%
+ \renewcommand*{\si@tempb}{mant}%
+ \ifx\si@tempa\si@tempb
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup
+ {\ifsi@num@signmant
+ \expandafter\si@num@asign
+ \else
+ \expandafter\@gobble
+ \fi
+ {mantissa}}
+ {\ifsi@num@signexp
+ \expandafter\si@num@asign
+ \else
+ \expandafter\@gobble
+ \fi
+ {exponent}}}
+\newcommand*{\si@num@asign}[1]{%
+ \let\si@num@sign\si@sign
+ \si@log@debug{Adding sign \si@sign\space to #1 for
+ `\si@num@arg'}}
+\newcommand*{\si@num@procnum}[1]{%
+ \expandafter\ifx\expandafter\@empty
+ \csname si@num@#1\endcsname\@empty
+ \expandafter\@gobble
+ \else
+ \expandafter\si@num@finddigits
+ \fi
+ {#1}}
+\newcommand*{\si@num@predec}{}
+\newcommand*{\si@num@postdec}{}
+\newcommand*{\si@num@finddigits}[1]{%
+ \renewcommand*{\si@num@predec}{}%
+ \renewcommand*{\si@num@postdec}{}%
+ \si@switchfalse
+ \expandafter\expandafter\expandafter\si@num@digits
+ \csname si@num@#1\endcsname\@empty\@empty
+ \ifx\@empty\si@num@predec\@empty
+ \ifsi@num@padlead
+ \expandafter\expandafter\expandafter\si@num@addprezero
+ \fi
+ \fi
+ \ifx\@empty\si@num@postdec\@empty
+ \ifsi@num@padtrail
+ \ifsi@switch
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter
+ \si@num@addpostzero
+ \fi
+ \fi
+ \fi
+ \si@num@unsign{#1}%
+ \ifx\@empty\si@num@predec\@empty
+ \else
+ \expandafter\si@num@nozero
+ \fi
+ \ifx\@empty\si@num@predec\@empty
+ \ifx\@empty\si@num@postdec\@empty
+ \expandafter\expandafter\expandafter\@gobble
+ \else
+ \expandafter\expandafter\expandafter\si@num@sepdigits
+ \fi
+ \else
+ \expandafter\si@num@sepdigits
+ \fi
+ {#1}}
+\def\si@num@digits#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@numdecimal}
+ {\ifsi@switch
+ \si@log@err{Duplicate decimal marker in `\si@num@arg'}
+ {Only a single decimal marker (from the list
+ `\si@numdecimal')\MessageBreak may occur in a
+ numerical argument}%
+ \else
+ \si@log@debug{Found decimal marker `#1' in
+ `\si@num@arg'}%
+ \expandafter\si@switchtrue
+ \fi}
+ {\si@str@ifchrstr{#1}{\si@numsign}
+ {\si@log@err{Misplaced sign character
+ `#1' in `\si@num@arg'}
+ {Sign characters `\si@numsign' can only
+ occur\MessageBreak at the start of a number}}
+ {\ifsi@switch
+ \expandafter\si@num@post
+ \else
+ \expandafter\si@num@pre
+ \fi
+ {#1}}}%
+ \ifx\@empty#2\@empty\else
+ \si@num@digits#2\@empty\@empty
+ \fi}
+\newcommand*{\si@num@pre}[1]{%
+ \si@num@prepost{#1}{pre}{integer}}
+\newcommand*{\si@num@post}[1]{%
+ \si@num@prepost{#1}{post}{decimal}}
+\newcommand*{\si@num@prepost}[3]{%
+ \expandafter\protected@edef\csname si@num@#2dec\endcsname{%
+ \csname si@num@#2dec\endcsname#1}%
+ \si@log@debug{Adding `#1' to #3 part for `\si@num@arg'}}
+\newcommand*{\si@num@addprezero}{%
+ \si@num@addpzero{pre}{leading}}
+\newcommand*{\si@num@addpostzero}{%
+ \si@num@addpzero{post}{trailing}}
+\newcommand*{\si@num@addpzero}[2]{%
+ \si@log@debug{Adding #2 zero for `\si@num@arg'}%
+ \@namedef{si@num@#1dec}{0}}
+\newcommand*{\si@num@unsign}[1]{%
+ \expandafter\ifx\expandafter\@empty
+ \csname si@num@#1sign\endcsname\@empty
+ \expandafter\@gobble
+ \else
+ \expandafter\si@num@nosign
+ \fi
+ {#1}}
+\newcommand*{\si@num@nosign}[1]{%
+ \begingroup
+ \si@switchtrue
+ \si@str@ifonlychrs{\si@num@predec\si@num@postdec}{0}
+ {\si@switchfalse}{}%
+ \ifsi@switch
+ \aftergroup\@gobble
+ \else
+ \aftergroup\@firstofone
+ \fi
+ \endgroup
+ {\si@log@debug{Zero value: removing any sign}%
+ \ifsi@ang@sign\else
+ \@namedef{si@num@#1sign}{}%
+ \fi}}
+\newcommand*{\si@num@nozero}{%
+ \si@str@ifonlychrs{\si@num@predec}{0}
+ {\renewcommand*{\si@num@predec}{0}}{}}
+\newcommand*{\si@num@decimalhook}{}
+\newcommand*{\si@num@sepdigits}[1]{%
+ \begingroup
+ \let\si@numextra\si@numaddn
+ \protected@edef\si@tempa{\si@num@predec\si@num@postdec}%
+ \si@num@ifextra{\si@tempa}
+ {\aftergroup\@gobble}
+ {\aftergroup\@firstofone}%
+ \endgroup
+ {\renewcommand*{\si@tempb}{mant}%
+ \renewcommand*{\si@tempc}{#1}%
+ \ifx\si@tempb\si@tempc
+ \expandafter\si@num@checkerr
+ \fi}%
+ \protected@edef\si@tempa{\si@num@predec\si@num@postdec}%
+ \expandafter\si@str@ifonlychrs\expandafter{\si@tempa}
+ {0123456789}
+ {\ifx\@empty\si@num@err\@empty
+ \ifsi@fixdp
+ \expandafter\expandafter\expandafter\si@num@fixdp
+ \fi
+ \fi}{}%
+ \si@num@ifextra{\si@num@predec}{}
+ {\expandafter\si@num@int\expandafter{\si@num@predec}}%
+ \renewcommand*{\si@tempc}{}%
+ \ifx\@empty\si@num@postdec\@empty\else
+ \si@num@decimalhook
+ \renewcommand*{\si@tempc}{%
+ \ensuremath{{\si@decimalsymbol}}}%
+ \si@num@ifextra{\si@num@postdec}{}
+ {\expandafter\si@num@dec\expandafter{\si@num@postdec}}%
+ \fi
+ \expandafter\protected@edef\csname si@num@#1\endcsname
+ {\si@num@predec\si@tempc\si@num@postdec}}
+\newcommand*{\si@num@ifextra}[1]{%
+ \begingroup
+ \si@switchfalse
+ \expandafter\si@num@extra#1\@empty\@empty
+ \ifsi@switch
+ \si@log@debug{Found `extra' characters in `#1'}%
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+\def\si@num@extra#1#2\@empty{%
+ \ifx\@empty#1\@empty\else
+ \si@str@ifchrstr{#1}{\si@numextra}{\si@switchtrue}{}%
+ \ifx\@empty#2\@empty\else
+ \si@num@extra#2\@empty\@empty
+ \fi
+ \fi}
+\newif\ifsi@num@ambigerr
+\newcommand*{\si@num@checkerr}{%
+ \ifx\@empty\si@num@postdec\@empty
+ \expandafter\si@num@preerr
+ \else
+ \expandafter\si@num@posterr
+ \fi}
+\newcommand*{\si@num@preerr}{%
+ \si@num@seperr{pre}%
+ \ifx\@empty\si@tempb\@empty\else
+ \expandafter\renewcommand\expandafter*\expandafter
+ \si@num@err\expandafter{\si@tempb}%
+ \fi}
+\newcommand*{\si@num@posterr}{%
+ \si@num@seperr{post}%
+ \ifx\@empty\si@tempb\@empty\else
+ \ifsi@seperr
+ \expandafter\expandafter\expandafter\si@num@psterr
+ \else
+ \let\si@num@err\si@tempb
+ \fi
+ \fi}
+\newcommand*{\si@num@psterr}{%
+ \si@num@cntdigits{\si@tempb}%
+ \si@tempcntb\si@tempcnta\relax
+ \si@num@cntdigits{\si@num@postdec}%
+ \ifnum\si@tempcnta<\si@tempcntb\relax
+ \expandafter\si@num@largeerr
+ \else
+ \expandafter\si@num@smallerr
+ \fi}
+\newcommand*{\si@num@seperr}[1]{%
+ \si@switchfalse
+ \renewcommand*{\si@tempa}{}%
+ \renewcommand*{\si@tempb}{}%
+ \expandafter\expandafter\expandafter\si@num@finderr
+ \csname si@num@#1dec\endcsname\@empty\@empty
+ \ifx\@empty\si@tempb\@empty\else
+ \expandafter\let\csname si@num@#1dec\endcsname\si@tempa
+ \fi}
+\def\si@num@finderr#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@numopenerr}
+ {\ifsi@switch
+ \si@log@err{Invalid error in number}
+ {The numerical argument \si@num@arg\space has two (or
+ more)\MessageBreak error-opening characters}%
+ \else
+ \expandafter\si@switchtrue
+ \fi}
+ {\si@str@ifchrstr{#1}{\si@numcloseerr}
+ {\ifsi@switch
+ \ifx\@empty#2\@empty\else
+ \si@log@err{Invalid error in number}
+ {The numerical argument \si@num@arg\space has an
+ error-closing before the last character}%
+ \fi
+ \else
+ \si@log@err{Invalid error in number}
+ {The numerical argument \si@num@arg\space has an
+ error-closing character\MessageBreak but no
+ error-opening one}%
+ \fi}
+ {\ifsi@switch
+ \expandafter\si@num@addtmpb
+ \else
+ \expandafter\si@num@addtmpa
+ \fi
+ {#1}}}%
+ \ifx\@empty#2\@empty\else
+ \si@num@finderr#2\@empty
+ \fi}
+\newcommand*{\si@num@addtmpa}[1]{\si@num@addtmp{a}{#1}}
+\newcommand*{\si@num@addtmpb}[1]{\si@num@addtmp{b}{#1}}
+\newcommand*{\si@num@addtmp}[2]{%
+ \expandafter\protected@edef\csname si@temp#1\endcsname{%
+ \csname si@temp#1\endcsname#2}}
+\newcommand*{\si@num@cntdigits}[1]{%
+ \si@tempcnta\z@\relax
+ \expandafter\si@num@cntdgt#1\@empty\@empty}
+\def\si@num@cntdgt#1#2\@empty{%
+ \ifx\@empty#1\@empty\else
+ \advance\si@tempcnta\@ne\relax
+ \fi
+ \ifx\@empty#2\@empty\else
+ \expandafter\si@num@cntdgt#2\@empty
+ \fi}
+\newcommand*{\si@num@smallerr}{%
+ \si@tempcntb\si@tempcnta\relax
+ \si@num@serr
+ \protected@edef\si@num@err{%
+ \ifsi@num@padlead0\fi\expandafter\@car\si@numdecimal\@nil
+ \si@tempb}}
+\newcommand*{\si@num@serr}{%
+ \si@num@cntdigits{\si@tempb}%
+ \ifnum\si@tempcnta=\si@tempcntb\relax\else
+ \protected@edef\si@tempb{0\si@tempb}%
+ \expandafter\si@num@serr
+ \fi}
+\newcommand*{\si@num@largeerr}{%
+ \renewcommand*{\si@tempa}{}%
+ \si@tempcntb\si@tempcnta\relax
+ \si@num@lerr
+ \protected@edef\si@num@err{%
+ \si@tempa\ensuremath{\si@decimalsymbol}\si@tempb}}
+\newcommand*{\si@num@lerr}{%
+ \si@num@cntdigits{\si@tempb}%
+ \ifnum\si@tempcnta=\si@tempcntb\relax\else
+ \expandafter\si@num@movedigit\si@tempb\@empty\@empty
+ \si@num@lerr
+ \fi}
+\def\si@num@movedigit#1#2\@empty{%
+ \protected@edef\si@tempa{\si@tempa#1}%
+ \protected@edef\si@tempb{#2}}
+\newcommand*{\si@num@fixdp}{%
+ \si@num@cntdigits{\si@num@postdec}%
+ \ifx\@empty\si@num@postdec\@empty
+ \si@tempcnta\z@\relax
+ \fi
+ \ifnum\si@tempcnta>\si@num@dp\relax
+ \expandafter\si@num@round
+ \else
+ \ifnum\si@tempcnta<\si@num@dp\relax
+ \expandafter\expandafter\expandafter\si@num@pad
+ \fi
+ \fi}
+\newcommand*{\si@num@pad}{%
+ \si@log@debug{Padding to \the\si@num@dp\space digits}%
+ \loop\ifnum\si@tempcnta<\si@num@dp\si@num@pd\repeat}
+\newcommand*{\si@num@pd}{%
+ \advance\si@tempcnta\@ne\relax
+ \protected@edef\si@num@postdec{\si@num@postdec0}}
+\newcommand*{\si@num@prernd}{}
+\newcommand*{\si@num@postrnd}{}
+\newcommand*{\si@num@round}{%
+ \si@log@debug{Rounding to \the\si@num@dp\space digits}%
+ \si@num@reverse{\si@num@postdec}%
+ \si@num@reverse{\si@num@predec}%
+ \let\si@num@prernd\si@num@predec
+ \let\si@num@postrnd\si@num@postdec
+ \renewcommand*{\si@num@predec}{}%
+ \renewcommand*{\si@num@postdec}{}%
+ \si@switchfalse
+ \si@num@rnd}
+\newcommand*{\si@num@reverse}[1]{%
+ \renewcommand*{\si@tempa}{}%
+ \expandafter\si@num@rev#1\@empty\@empty
+ \let#1\si@tempa}
+\def\si@num@rev#1#2\@empty{%
+ \edef\si@tempa{#1\si@tempa}%
+ \ifx\@empty#2\@empty\else
+ \si@num@rev#2\@empty\@empty
+ \fi}
+\newcommand*{\si@num@rnd}{%
+ \ifnum\si@tempcnta>\z@\relax
+ \expandafter\si@num@rndpost
+ \else
+ \expandafter\si@num@rndpre
+ \fi}
+\newcommand*{\si@num@rndpre}{%
+ \expandafter\edef\expandafter\si@tempa\expandafter{%
+ \expandafter\@car\si@num@prernd\@nil}%
+ \expandafter\edef\expandafter\si@num@prernd\expandafter{%
+ \expandafter\@cdr\si@num@prernd\@nil}%
+ \si@tempcntb\si@tempa\relax
+ \ifsi@switch
+ \advance\si@tempcntb\@ne\relax
+ \fi
+ \si@switchfalse
+ \ifnum\si@tempcntb=10\relax
+ \si@tempcntb\z@\relax
+ \expandafter\expandafter\expandafter\si@switchtrue
+ \fi
+ \edef\si@num@predec{\the\si@tempcntb\si@num@predec}%
+ \ifx\@empty\si@num@prernd\@empty
+ \ifsi@switch
+ \edef\si@num@predec{1\si@num@predec}%
+ \fi
+ \else
+ \expandafter\si@num@rnd
+ \fi}
+\newcommand*{\si@num@rndpost}{%
+ \expandafter\edef\expandafter\si@tempa\expandafter{%
+ \expandafter\@car\si@num@postrnd\@nil}%
+ \expandafter\edef\expandafter\si@num@postrnd\expandafter{%
+ \expandafter\@cdr\si@num@postrnd\@nil}%
+ \si@tempcntb\si@tempa\relax
+ \ifsi@switch
+ \advance\si@tempcntb\@ne\relax
+ \fi
+ \si@switchfalse
+ \ifnum\si@tempcnta>\si@num@dp\relax
+ \ifnum\si@tempcntb>4\relax
+ \expandafter\expandafter\expandafter\si@switchtrue
+ \fi
+ \else
+ \ifnum\si@tempcntb=10\relax
+ \si@tempcntb\z@\relax
+ \expandafter\expandafter\expandafter\si@switchtrue
+ \fi
+ \edef\si@num@postdec{\the\si@tempcntb\si@num@postdec}%
+ \fi
+ \advance\si@tempcnta\m@ne\relax
+ \si@num@rnd}
+\newcommand*{\si@num@int}[1]{%
+ \renewcommand*{\si@num@predec}{}%
+ \ifsi@sepfour
+ \si@num@intfmt{}#1\@empty\@empty\@empty
+ \else
+ \si@num@iffive{#1}
+ {\si@num@intfmt{}#1\@empty\@empty\@empty}
+ {\renewcommand*{\si@num@predec}{#1}}%
+ \fi}
+\newcommand*{\si@num@iffive}[1]{%
+ \si@num@five#1\@empty\@empty\@empty\@empty\@empty\end}
+\def\si@num@five#1#2#3#4#5\end{%
+ \ifx\@empty#5\@empty
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+\newcommand*{\si@num@intfmt}[4]{%
+ \ifx\@empty#2\@empty
+ \si@num@intsep#1\relax
+ \else
+ \ifx\@empty#3\@empty
+ \si@num@intsep\@empty\@empty#1#2\relax
+ \else
+ \ifx\@empty#4\@empty
+ \si@num@intsep\@empty#1#2#3\relax
+ \else
+ \si@num@fiint{#1#2#3#4}%
+ \fi
+ \fi
+ \fi}
+\def\si@num@fiint#1\fi\fi\fi{\fi\fi\fi\si@num@intfmt{#1}}
+\newcommand*{\si@num@intsep}[4]{%
+ \protected@edef\si@num@predec{\si@num@predec#1#2#3}%
+ \if\relax#4\relax\else
+ \protected@edef\si@num@predec{%
+ \si@num@predec\ensuremath{\noexpand\si@digitsep}}%
+ \expandafter\si@num@intsep\expandafter#4%
+ \fi}
+\newcommand*{\si@num@dec}[1]{%
+ \renewcommand*{\si@num@postdec}{}%
+ \ifsi@sepfour
+ \si@num@decfmt#1\@empty\@empty\@empty\@empty
+ \else
+ \si@num@iffive{#1}
+ {\si@num@decfmt#1\@empty\@empty\@empty\@empty}
+ {\protected@edef\si@num@postdec{\si@num@postdec#1}}%
+ \fi}
+\newcommand*{\si@num@decfmt}[4]{%
+ \protected@edef\si@num@postdec{\si@num@postdec#1#2#3}%
+ \ifx\@empty#4\@empty%
+ \else
+ \protected@edef\si@num@postdec{%
+ \si@num@postdec\ensuremath{\noexpand\si@digitsep}}%
+ \expandafter\si@num@decfmt\expandafter#4%
+ \fi}
+\newcommand*{\si@num@procerr}{%
+ \si@num@addunit
+ \ensuremath{\si@pm}%
+ \expandafter\si@num\expandafter{\si@num@err}}
+\newcommand*{\si@num@sepxpart}{%
+ \si@num@addunit
+ \ensuremath{\times}%
+ \expandafter\expandafter\expandafter\si@num\expandafter
+ \expandafter\expandafter{%
+ \expandafter\@cdr\si@num@xpart\@nil}}
+\newcommand*{\si@num@addunit}{%
+ \si@unt@numtrue
+ \ifx\@empty\si@unt@unitarg\@empty\else
+ \ifsi@repeatunits
+ \si@unt@printunit{\si@unt@unitarg}%
+ \fi
+ \fi}
+\si@newrobustcmd*{\ang}[2][]{%
+ \begingroup
+ \sisetup{#1}%
+ \si@fam@mode
+ \si@log@debug{Processing \string\ang\space input `#2'}%
+ \@makeother{\;}%
+ \makeatletter
+ \scantokens{\si@ang@parse#2;;;\@nil}}
+\def\si@ang@parse#1;#2;#3;#4\@nil{%
+ \let\ifsi@ang@fixdp\ifsi@fixdp
+ \si@fixdpfalse
+ \si@ifmtarg{#4}
+ {\si@log@debug{Angle argument contains no
+ semi-colons:\MessageBreak decimal angle}%
+ \si@ang@dec{#1}{}{}}
+ {\si@log@debug{Angle argument contains
+ semi-colons:\MessageBreak degree-minute-second angle}%
+ \renewcommand*{\si@tempa}{#4}%
+ \renewcommand*{\si@tempb}{;;}%
+ \ifx\si@tempa\si@tempb\else
+ \ifsi@strictarc
+ \renewcommand*{\si@tempb}{;}%
+ \ifx\si@tempa\si@tempb
+ \si@log@err{Insufficient semi-colons in argument
+ of \string\ang}{The argument of
+ \string\ang\space must contain either no
+ semi-colons or exactly two}%
+ \else
+ \si@log@err{Excess semi-colons in argument of
+ \string\ang}{The argument of \string\ang\space
+ must contain either no semi-colons or exactly
+ two}%
+ \fi
+ \fi
+ \fi
+ \si@ang@arc{#1}{#2}{#3}}}
+\newcommand*{\si@ang@dec}{%
+ \let\si@ang@fix\@gobble
+ \ifsi@ang@toarc
+ \expandafter\si@ang@dectoarc
+ \else
+ \sisetup{padangle=none}\expandafter\si@ang@typeset
+ \fi}
+\newcommand*{\si@ang@arc}{%
+ \let\si@ang@fix\si@ang@arcfix
+ \ifsi@ang@todec
+ \expandafter\si@ang@arctodec
+ \else
+ \expandafter\si@ang@typeset
+ \fi}
+\newif\ifsi@ang@fixdp
+\newcommand*{\si@ang@fix}[1]{}
+\newcommand*{\si@ang@arcfix}[1]{%
+ \renewcommand*{\si@tempa}{second}%
+ \renewcommand*{\si@tempb}{#1}%
+ \ifx\si@tempa\si@tempb
+ \ifsi@ang@fixdp
+ \expandafter\expandafter\expandafter\si@fixdptrue
+ \else
+ \expandafter\expandafter\expandafter\si@fixdpfalse
+ \fi
+ \else
+ \expandafter\si@fixdpfalse
+ \fi}
+\newcommand*{\si@ang@ifnum}[1]{%
+ \begingroup
+ \renewcommand*{\si@numvalid}{0123456789,.+-}%
+ \ifx\@empty#1\@empty
+ \aftergroup\@firstoftwo
+ \else
+ \si@num@ifvalid{#1}
+ {\aftergroup\@firstoftwo}
+ {\aftergroup\@secondoftwo}%
+ \fi
+ \endgroup}
+\newcommand*{\si@ang@arctodec}[3]{%
+ \let\si@ang@fix\@gobble
+ \ifnum\si@num@dp>\thr@@\relax
+ \si@num@dp\thr@@\relax
+ \fi
+ \si@fixdptrue
+ \si@ang@ifnum{#1}
+ {\si@ang@ifnum{#2}
+ {\si@ang@ifnum{#3}
+ {\si@tempdima\z@\relax
+ \renewcommand*{\si@tempa}{+}%
+ \ifx\@empty#1\@empty\else
+ \si@tempdima #1pt\relax
+ \fi
+ \ifdim\si@tempdima<\z@\relax
+ \renewcommand*{\si@tempa}{-}%
+ \fi
+ \ifx\@empty#2\@empty\else
+ \si@tempdima\dimexpr\si@tempdima\si@tempa
+ #2pt/60\relax
+ \fi
+ \ifdim\si@tempdima<\z@\relax
+ \renewcommand*{\si@tempa}{-}%
+ \else
+ \fi
+ \ifx\@empty#3\@empty\else
+ \si@tempdima\dimexpr\si@tempdima\si@tempa
+ #3pt/3600\relax
+ \fi
+ \sisetup{numdecimal=.}%
+ \expandafter\si@ang@typeset\expandafter{%
+ \strip@pt\si@tempdima}{}{}}
+ {\si@ang@notnum{#1}{#2}{#3}}}
+ {\si@ang@notnum{#1}{#2}{#3}}}
+ {\si@ang@notnum{#1}{#2}{#3}}}
+\newcommand*{\si@ang@dectoarc}[1]{%
+ \let\si@ang@fix\si@ang@arcfix
+ \si@ang@fixdptrue
+ \ifnum\si@num@dp>\@ne\relax
+ \si@num@dp\@ne\relax
+ \fi
+ \si@ang@ifnum{#1}
+ {\si@tempdima\z@\relax
+ \ifx\@empty#1\@empty\else
+ \si@tempdima #1pt\relax
+ \fi
+ \si@ang@sepint{deg}%
+ \si@tempdima\dimexpr\si@tempdima *60\relax
+ \si@ang@sepint{min}%
+ \edef\si@tempa{\the\dimexpr\si@tempdima *60\relax}%
+ \expandafter\newcommand\expandafter*\expandafter{%
+ \expandafter\si@ang@arcsec\expandafter}\expandafter{%
+ \expandafter\si@ang@strippt\si@tempa}%
+ \si@tempdima\z@\relax
+ \edef\si@tempa{\the\si@tempdima}%
+ \expandafter\renewcommand\expandafter*\expandafter{%
+ \expandafter\si@tempa\expandafter}\expandafter{%
+ \expandafter\si@ang@strippt\si@tempa}%
+ \ifx\si@tempa\si@ang@arcsec
+ \renewcommand*{\si@ang@arcsec}{0}%
+ \fi
+ \renewcommand*{\si@tempa}{0}%
+ \ifx\si@ang@arcdeg\si@tempa
+ \si@temptoks{{}}%
+ \else
+ \si@temptoks{{\si@ang@arcdeg}}%
+ \fi
+ \ifx\si@ang@arcmin\si@tempa
+ \si@temptoks\expandafter{\the\si@temptoks{}}%
+ \else
+ \si@temptoks\expandafter{\the\si@temptoks{%
+ \si@ang@arcmin}}%
+ \fi
+ \ifx\si@ang@arcsec\si@tempa
+ \si@temptoks\expandafter{\the\si@temptoks{}}%
+ \else
+ \si@temptoks\expandafter{\the\si@temptoks{%
+ \si@ang@arcsec}}%
+ \fi
+ \expandafter\si@ang@typeset\the\si@temptoks}
+ {\si@ang@notnum{#1}{}{}}}
+\newcommand*{\si@ang@sepint}[1]{%
+ \expandafter\si@ang@sint\the\si@tempdima\@empty
+ \expandafter\let\csname si@ang@arc#1\endcsname\si@tempa}
+\def\si@ang@sint#1.#2\@empty{%
+ \renewcommand*{\si@tempa}{#1}%
+ \si@tempdima 0.#2\relax}
+\begingroup
+ \catcode`P=12
+ \catcode`T=12
+ \lowercase{
+ \renewcommand*{\si@tempa}{%
+ \def\si@ang@strippt##1PT{##1}}}
+ \expandafter\endgroup
+\si@tempa
+\newcommand*{\si@ang@notnum}[3]{%
+ \si@log@warn{Angle `#1;#2;#3' is not a pure
+ number:\MessageBreak output will be as given}%
+ \si@ang@typeset{#1}{#2}{#3}}
+\newif\ifsi@ang@sign
+\newcommand*{\si@ang@typeset}[3]{%
+ \ifsi@ang@padlarge
+ \newcommand*{\si@ang@degs}{0\si@sym@degree}%
+ \newcommand*{\si@ang@mins}{0\si@sym@minute}%
+ \newcommand*{\si@ang@secs}{0\si@sym@second}%
+ \else
+ \newcommand*{\si@ang@degs}{}%
+ \newcommand*{\si@ang@mins}{}%
+ \newcommand*{\si@ang@secs}{}%
+ \fi
+ \protected@edef\si@ang@decimalsymbol{\si@decimalsymbol}%
+ \ifsi@astroang
+ \let\si@ang@movesign\si@ang@astrosign
+ \else
+ \let\si@ang@movesign\@gobble
+ \fi
+ \newcommand*{\si@ang@secnum}{\si@ang@num{second}}%
+ \newcommand*{\si@ang@minnum}{\si@ang@num{minute}}%
+ \si@ifnotmtarg{#3}
+ {\si@log@debug{Found seconds `#3'}%
+ \si@ang@ifnum{#3}
+ {\ifdim #3 pt=\z@\relax\else
+ \si@ang@signtrue
+ \fi}{}%
+ \renewcommand*{\si@ang@secs}
+ {\si@ang@secnum{#3}\si@sym@second}%
+ \renewcommand*{\si@ang@mins}
+ {\si@ang@pad{0\si@sym@minute}}%
+ \renewcommand*{\si@ang@degs}
+ {\si@ang@pad{0\si@sym@degree}}}%
+ \si@ifnotmtarg{#2}
+ {\si@log@debug{Found minutes `#2'}%
+ \si@ang@ifnum{#2}
+ {\ifdim #2 pt=\z@\relax\else
+ \si@ang@signtrue
+ \fi}{}%
+ \renewcommand*{\si@ang@secnum}{%
+ \si@ang@signlessnum{second}}%
+ \renewcommand*{\si@ang@mins}
+ {\si@ang@minnum{#2}\si@sym@minute}%
+ \renewcommand*{\si@ang@degs}
+ {\si@ang@pad{0\si@sym@degree}}}%
+ \si@ifnotmtarg{#1}
+ {\si@log@debug{Found degrees `#1'}%
+ \renewcommand*{\si@ang@secnum}{%
+ \si@ang@signlessnum{second}}%
+ \renewcommand*{\si@ang@minnum}{%
+ \si@ang@signlessnum{minute}}%
+ \renewcommand*{\si@ang@degs}
+ {\si@ang@num{degree}{#1}%
+ \si@sym@degree}}%
+ \si@out@num
+ {\si@ang@degs\si@anglesep\si@ang@mins\si@anglesep
+ \si@ang@secs}%
+ \endgroup}
+\newcommand*{\si@ang@pad}[1]{\ifsi@ang@padsmall #1\fi}
+\newcommand*{\si@ang@num}[2]{%
+ \begingroup
+ \si@ang@fix{#1}%
+ \si@ang@movesign{#1}%
+ \si@num{#2}%
+ \endgroup}
+\newcommand*{\si@ang@signlessnum}[2]{%
+ \begingroup
+ \si@ang@fix{#1}%
+ \si@ang@movesign{#1}%
+ \sisetup{addsign=none}%
+ \si@num{#2}%
+ \endgroup}
+\newcommand*{\si@ang@killdegree}{\let\si@sym@degree\relax}
+\newcommand*{\si@ang@killminute}{\let\si@sym@minute\relax}
+\newcommand*{\si@ang@killsecond}{\let\si@sym@second\relax}
+\newcommand*{\si@ang@astrosign}[1]{%
+ \renewcommand*{\si@decimalsymbol}{%
+ \setbox\si@tempboxa=\hbox{%
+ \ensuremath{{\si@ang@decimalsymbol}}}%
+ \si@tempdima\wd\si@tempboxa\relax
+ \setbox\si@tempboxb=\hbox to\z@{%
+ \hss\unhbox\si@tempboxa\hss}%
+ \setbox\si@tempboxa=\hbox{%
+ \csname si@sym@#1\endcsname\hskip-\scriptspace}%
+ \si@tempdimb\wd\si@tempboxa\relax
+ \setbox\si@tempboxc=\hbox to\z@{%
+ \hss\unhbox\si@tempboxa\hss}%
+ \setbox\si@tempboxd=\hbox{%
+ \usebox\si@tempboxb\usebox\si@tempboxc}%
+ \ifdim\si@tempdima>\si@tempdimb\relax
+ \setbox\si@tempboxa=\hbox to\si@tempdima{%
+ \hss\unhbox\si@tempboxd\hss}%
+ \else
+ \setbox\si@tempboxa=\hbox to\si@tempdimb{%
+ \hss\unhbox\si@tempboxd\hss}%
+ \fi
+ \usebox\si@tempboxa%
+ \ifdim\si@tempdima>\si@tempdimb\relax\else
+ \hskip\scriptspace
+ \fi}%
+ \renewcommand*{\si@num@decimalhook}{\expandafter\aftergroup
+ \csname si@ang@kill#1\endcsname}}%
+\edef\si@tempa{%
+ \noexpand\NC@do S\noexpand\NC@do s\the\NC@list}
+\newcolumntype{S}{}
+\newcolumntype{s}{}
+\NC@list\expandafter{\si@tempa}
+\renewcommand*{\NC@rewrite@S}[1][]{%
+ \edef\si@tempa{\the\@temptokena
+ >{\noexpand\si@tab@begin@S[#1]}c%
+ <{\noexpand\si@tab@end@S}}%
+ \@temptokena\expandafter{\si@tempa}%
+ \NC@find}
+\renewcommand*{\NC@rewrite@s}[1][]{%
+ \edef\si@tempa{\the\@temptokena
+ >{\noexpand\si@tab@begin@s[#1]}c%
+ <{\noexpand\si@tab@end@s}}%
+ \@temptokena\expandafter{\si@tempa}%
+ \NC@find}
+\newcommand*{\si@tab@begin@S}[1][]{%
+ \si@log@debug{Processing S column cell contents}%
+ \let\si@tab@gettok\si@tab@gettok@S
+ \si@seperrfalse
+ \renewcommand*{\si@num@sepxpart}{%
+ \si@log@err{Multiple numbers not allowed in
+ tables\MessageBreak Only the first number used}
+ \@ehb}%
+ \si@tab@begin[#1]}
+\newcommand*{\si@tab@begin@s}[1][]{%
+ \si@log@debug{Processing s column cell contents}%
+ \let\si@tab@gettok\si@tab@gettok@s
+ \si@tab@begin[#1]}
+\newtoks\si@tab@toks
+\newtoks\si@tab@pretoks
+\newtoks\si@tab@posttoks
+\newcommand*{\si@tab@begin}[1][]{%
+ \begingroup
+ \sisetup{#1}%
+ \si@tab@toks{}%
+ \si@tab@pretoks{}%
+ \si@tab@posttoks{}%
+ \si@switchfalse
+ \si@tab@gettok}
+\newcommand*{\si@tab@gettok@S}[1]{%
+ \ifx\tabularnewline#1\relax
+ \let\si@tab@next\si@tab@newline@S
+ \else
+ \ifx\end#1\relax
+ \let\si@tab@next\end
+ \else
+ \ifx\si@tab@end@S#1\relax
+ \let\si@tab@next\si@tab@end@S
+ \else
+ \ifx\endtabular#1\relax
+ \let\si@tab@next\endtabular
+ \else
+ \ifx\csname#1\relax
+ \let\si@tab@next\csname
+ \else
+ \ifx\relax#1\relax
+ \let\si@tab@next\relax
+ \else
+ \let\si@tab@next\si@tab@gettok@S
+ \si@str@ifchrstr{#1}{\si@numvalid}
+ {\si@switchtrue
+ \si@log@debug{Found numerical cell
+ contents `#1'}%
+ \si@tab@toks=\expandafter{%
+ \the\si@tab@toks#1}}
+ {\si@log@debug{Found other cell contents
+ \string#1}%
+ \si@tab@othertok{#1}}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \si@tab@next}
+\newcommand*{\si@tab@othertok}[1]{%
+ \ifsi@switch
+ \si@tab@posttoks=\expandafter{\the\si@tab@posttoks#1}%
+ \else
+ \si@tab@pretoks=\expandafter{\the\si@tab@pretoks#1}%
+ \fi}
+\newcommand*{\si@tab@gettok@s}[1]{%
+ \ifx\tabularnewline#1\relax
+ \let\si@tab@next\si@tab@newline@s
+ \else
+ \ifx\end#1\relax
+ \let\si@tab@next\end
+ \else
+ \ifx\si@tab@end@s#1\relax
+ \let\si@tab@next\si@tab@end@s
+ \else
+ \ifx\endtabular#1\relax
+ \let\si@tab@next\endtabular
+ \else
+ \ifx\csname#1\relax
+ \let\si@tab@next\csname
+ \else
+ \ifx\relax#1\relax
+ \let\si@tab@next\relax
+ \else
+ \let\si@tab@next\si@tab@gettok@s
+ \si@tab@toks=\expandafter{%
+ \the\si@tab@toks#1}%
+ \si@log@debug{Found cell contents `#1'}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \si@tab@next}
+\newcommand*{\si@tab@end@S}{%
+ \ifsi@switch
+ \let\si@tab@lfill\si@tab@lfill@S
+ \let\si@tab@rfill\si@tab@rfill@S
+ \else
+ \let\si@tab@rfill\si@tab@rfill@t
+ \let\si@tab@lfill\si@tab@lfill@t
+ \fi
+ \si@tab@lfill\relax
+ \the\si@tab@pretoks
+ \ifsi@switch
+ \expandafter\si@tab@numout
+ \fi
+ \the\si@tab@posttoks
+ \si@tab@rfill\relax
+ \endgroup}
+\newcommand*{\si@tab@end@s}{%
+ \si@tab@lfill@s\relax
+ \expandafter\si\expandafter{\the\si@tab@toks}%
+ \si@tab@rfill@s\relax
+ \endgroup}
+\newcommand*{\si@tab@newline@S}{%
+ \si@tab@end@S
+ \hfil\relax
+ \let\si@tab@end\si@tab@end@S
+ \renewcommand*{\si@tab@end@S}{\let\si@tab@end@S\si@tab@end}%
+ \tabularnewline}
+\newcommand*{\si@tab@newline@s}{%
+ \si@tab@end@s
+ \hfil\relax
+ \let\si@tab@end\si@tab@end@s
+ \renewcommand*{\si@tab@end@s}{\let\si@tab@end@s\si@tab@end}%
+ \tabularnewline}
+\newcount\si@tempcnta
+\newcount\si@tempcntb
+\newcommand*{\si@tab@numout}{%
+ \si@num@intabtrue
+ \ifsi@tab@fixed
+ \ifsi@tabautofit
+ \si@num@dp\si@tab@mantpostcnt\relax
+ \expandafter\expandafter\expandafter\si@fixdptrue
+ \fi
+ \fi
+ \expandafter\si@num\expandafter{\the\si@tab@toks}%
+ \si@tab@format}
+\newbox\si@tab@prebox
+\newbox\si@tab@midbox
+\newbox\si@tab@postbox
+\newbox\si@tab@expbox
+\newcommand*{\si@tab@format}{%
+ \ifsi@tab@fixed
+ \expandafter\si@tab@fixed
+ \else
+ \expandafter\si@tab@unfixed
+ \fi
+ \ifsi@colourvalues
+ \si@fam@colourcmd{\si@valuecolour}%
+ \fi
+ \box\si@tab@prebox\box\si@tab@midbox\box\si@tab@postbox%
+ \box\si@tab@expbox}
+\newcommand*\si@tab@unfixed{%
+ \si@log@debug{Using variable width S column}%
+ \protected@edef\si@num@out{\si@num@out\si@tab@expout}%
+ \setbox\si@tab@prebox=\hbox
+ {\expandafter\si@out@num\expandafter{\si@tab@out}}%
+ \ifx\@empty\si@num@out\@empty
+ \setbox\si@tab@midbox=\hbox
+ {\phantom{\ensuremath{{\si@decimalsymbol}}}}%
+ \else
+ \setbox\si@tab@midbox=\hbox
+ {\ensuremath{{\si@decimalsymbol}}}%
+ \fi
+ \setbox\si@tab@postbox=\hbox
+ {\expandafter\si@out@num\expandafter{\si@num@out}}%
+ \ifdim\wd\si@tab@prebox>\wd\si@tab@postbox\relax
+ \setbox\si@tab@postbox=\hbox to\wd\si@tab@prebox%
+ {\unhbox\si@tab@postbox\hfill}%
+ \else
+ \setbox\si@tab@prebox=\hbox to\wd\si@tab@postbox%
+ {\hfill\unhbox\si@tab@prebox}%
+ \fi
+ \setbox\si@tab@expbox=\hbox{}}
+\newdimen\si@tab@predim
+\newdimen\si@tab@postdim
+\newdimen\si@tab@expdim
+\newdimen\si@tempdima
+\newdimen\si@tempdimb
+\newcommand*{\si@tab@sp}{}
+\newcommand*{\si@tab@fixed}{%
+ \si@log@debug{Using fixed-width S column}%
+ \let\si@tab@sp\relax
+ \setbox\si@tab@midbox=\hbox{}%
+ \setbox\si@tab@expbox=\hbox{}%
+ \setbox\si@tempboxa=\hbox{\si@out@num{1}}%
+ \si@tempdima\wd\si@tempboxa\relax
+ \si@tab@predim\the\si@tab@mantprecnt\si@tempdima\relax
+ \si@tab@sepcorr{mantpre}{pre}%
+ \si@tab@postdim\si@tab@mantpostcnt\si@tempdima\relax
+ \setbox\si@tempboxa=\hbox{\ensuremath{{\si@decimalsymbol}}}%
+ \advance\si@tab@postdim\wd\si@tempboxa\relax
+ \si@tab@sepcorr{mantpost}{post}%
+ \setbox\si@tempboxa=\hbox{\si@out@num{^{1}}}%
+ \si@tempdima\wd\si@tempboxa\relax
+ \ifnum\si@tab@expprecnt>\z@\relax
+ \si@tab@expdim\si@tab@expprecnt\si@tempdima\relax
+ \si@tab@sepcorr{exppre}{exp}%
+ \fi
+ \let\si@tab@sp\sp
+ \ifnum\si@tab@exppostcnt>\z@\relax
+ \advance\si@tab@expdim\si@tab@exppostcnt\si@tempdima\relax
+ \setbox\si@tempboxa=\hbox{%
+ \ensuremath{^{\si@decimalsymbol}}}%
+ \advance\si@tab@expdim\wd\si@tempboxa\relax
+ \si@tab@sepcorr{exppost}{exp}%
+ \fi
+ \setbox\si@tempboxa=\hbox{\ensuremath{-}}%
+ \ifsi@tab@mantsign
+ \advance\si@tab@predim\wd\si@tempboxa\relax
+ \fi
+ \setbox\si@tempboxa=\hbox{\ensuremath{^{-}}}%
+ \ifsi@tab@expsign
+ \advance\si@tab@expdim\wd\si@tempboxa\relax
+ \fi
+ \si@tempcnta\si@tab@expprecnt\relax
+ \advance\si@tempcnta\si@tab@exppostcnt\relax
+ \ifnum\si@tempcnta>\z@\relax
+ \setbox\si@tempboxa=\hbox{\ensuremath{%
+ {}\si@expproduct{}\si@expbase}}%
+ \advance\si@tab@expdim\wd\si@tempboxa\relax
+ \fi
+ \ifsi@tabalignexp\else
+ \advance\si@tab@postdim\si@tab@expdim\relax
+ \fi
+ \setbox\si@tab@prebox=\hbox to\si@tab@predim{\hss\hfill
+ \expandafter\si@out@num\expandafter{\si@tab@out}}%
+ \ifx\@empty\si@num@out\@empty
+ \setbox\si@tab@postbox=\hbox to\si@tab@postdim
+ {\expandafter\si@out@num\expandafter{\si@num@out}\hfil}%
+ \else
+ \ifsi@tabalignexp\else
+ \protected@edef\si@num@out{\si@num@out\si@tab@expout}%
+ \fi
+ \setbox\si@tab@postbox=\hbox to\si@tab@postdim
+ {\ensuremath{{\si@decimalsymbol}}\expandafter\si@out@num
+ \expandafter{\si@num@out}\hfil}%
+ \fi
+ \ifx\@empty\si@tab@expout\@empty
+ \ifsi@tabalignexp
+ \setbox\si@tab@expbox=\hbox to\si@tab@expdim{\hfil}%
+ \fi
+ \else
+ \ifsi@tabalignexp
+ \setbox\si@tab@expbox=\hbox to\si@tab@expdim
+ {\expandafter\si@out@num\expandafter{\si@tab@expout}%
+ \hfil}%
+ \fi
+ \fi}
+\newcommand*{\si@tab@sepcorr}[2]{%
+ \expandafter\si@tempcnta\expandafter\the
+ \csname si@tab@#1cnt\endcsname\relax
+ \divide\si@tempcnta\thr@@\relax
+ \ifsi@sepfour\else
+ \expandafter\ifnum\expandafter\the
+ \csname si@tab@#1cnt\endcsname=4\relax
+ \si@tempcnta\z@\relax
+ \fi
+ \fi
+ \setbox\si@tempboxa=\hbox{%
+ \ensuremath{\si@tab@sp{\si@digitsep}}}%
+ \expandafter\advance\csname si@tab@#2dim\endcsname
+ \si@tempcnta\wd\si@tempboxa}
+\si@newrobustcmd*{\SI}[2][]{%
+ \@ifnextchar[%]
+ {\si@SI[#1]{#2}}
+ {\si@SI[#1]{#2}[]}}
+\si@newrobustcmd*{\si}[2][]{\si@SI[#1]{}[]{#2}}
+\newcommand*{\newunit}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defunit[#1]{#2}{#3}}
+ {\si@log@err{Unit \string#2 already defined!}\@eha}}
+\newcommand*{\renewunit}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@log@err{Unit \string#2 undefined}\@ehc
+ \si@unt@defunit[#1]{#2}{#3}}
+ {\si@log@inf{Redefining unit \string#2}%
+ \si@unt@defunit[#1]{#2}{#3}}}
+\newcommand*{\provideunit}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defunit[#1]{#2}{#3}}
+ {}}
+\newcommand*{\newprefix}[4][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defprefix[#1]{#2}{#3}{#4}}
+ {\si@log@err{Prefix \string#2 already defined!}\@eha}}
+\newcommand*{\renewprefix}[4][]{%
+ \si@ifdefinable{#2}
+ {\si@log@err{Prefix \string#2 undefined}\@ehc
+ \si@unt@defprefix[#1]{#2}{#3}{#4}}
+ {\si@log@inf{Redefining prefix \string#2}%
+ \si@unt@defprefix[#1]{#2}{#3}{#4}}}
+\newcommand*{\provideprefix}[4][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defprefix[#1]{#2}{#3}{#4}}
+ {}}
+\newcommand*{\newpower}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defpower[#1]{#2}{#3}}
+ {\si@log@err{Power \string#2 already defined!}\@eha}}
+\newcommand*{\renewpower}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@log@err{Power \string#2 undefined}\@ehc
+ \si@unt@defpower[#1]{#2}{#3}}
+ {\si@log@inf{Redefining power \string#2}%
+ \si@unt@defpower[#1]{#2}{#3}}}
+\newcommand*{\providepower}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defpower[#1]{#2}{#3}}
+ {}}
+\newif\ifsi@unt@num
+\newcommand*{\si@unt@unitarg}{}
+\newcommand*{\si@unt@SIopts}{}
+\def\si@SI[#1]#2[#3]#4{%
+ \begingroup
+ \si@ifnotmtarg{#1}
+ {\sisetup{#1}%
+ \renewcommand*{\si@unt@SIopts}{#1}}%
+ \si@unt@numfalse
+ \si@xspacefalse
+ \si@ifnotmtarg{#3}
+ {\si@log@debug{Prefix unit found}%
+ \si@unt@printunit{#3}}%
+ \si@ifnotmtarg{#4}
+ {\renewcommand*{\si@unt@unitarg}{#4}}%
+ \si@ifnotmtarg{#2}
+ {\si@log@debug{Number found in \string\SI\space
+ argument}%
+ \ifsi@repeatunits\else
+ \ifsi@trapambigerr
+ \expandafter\expandafter\expandafter
+ \si@num@ambigerrtrue
+ \fi
+ \fi
+ \num{#2}%
+ \si@unt@numtrue}%
+ \si@ifnotmtarg{#4}
+ {\si@ifmtarg{#2}
+ {\si@unt@printunit{#4}}
+ {\si@tempcnta\z@\relax
+ \ifsi@addunitpower
+ \si@unt@countx{#2}%
+ \fi
+ \ifnum\si@tempcnta>\z@\relax
+ \advance\si@tempcnta\@ne\relax
+ \edef\si@tempa{\noexpand\tothe{\si@tempcnta}}%
+ \renewcommand*{\si@tempb}{#4}%
+ \expandafter\expandafter\expandafter
+ \si@unt@printunit\expandafter\expandafter
+ \expandafter{%
+ \expandafter\si@tempb\si@tempa}%
+ \else
+ \si@unt@printunit{#4}%
+ \fi}}%
+ \endgroup}
+\newcommand*{\si@unt@countx}[1]{%
+ \si@tempcnta\z@\relax
+ \expandafter\si@unt@cntx#1\@empty\@empty}
+\def\si@unt@cntx#1#2\@empty{%
+ \si@str@ifchrstr{#1}{\si@numprod}
+ {\advance\si@tempcnta\@ne\relax}
+ {}%
+ \ifx\@empty#2\@empty\else
+ \si@unt@cntx#2\@empty\@empty
+ \fi}
+\newif\ifsi@unt@littest
+\newcommand*{\si@unt@ifliteral}[1]{%
+ \begingroup
+ \si@unt@littesttrue
+ \setbox\si@tempboxa=\hbox{\si@unt@out{#1}}%
+ \ifdim\wd\si@tempboxa>\z@\relax
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+\newif\ifsi@unt@litout
+\newcommand*{\si@unt@printunit}[1]{%
+ \si@unt@ifliteral{#1}
+ {\si@log@debug{Literal items found in unit
+ argument:\MessageBreak outputting without further
+ processing}%
+ \si@unt@litouttrue
+ \si@unt@addvaluesep
+ \si@unt@out{#1}}
+ {\si@log@debug{Macro unit found:\MessageBreak
+ processing to format output}%
+ \si@unt@init
+ \advance\si@unt@depthcnt\@ne\relax
+ #1%
+ \si@unt@final}}
+\newcommand*{\si@unt@addvaluesep}{%
+ \ifsi@unt@num
+ \expandafter\si@unt@addvalsep
+ \fi}
+\newcommand*{\si@unt@addvalsep}{%
+ \ifsi@unt@litout
+ \expandafter\si@unt@litvalsep
+ \else
+ \expandafter\si@unt@stackvalsep
+ \fi}
+\newcommand*{\si@unt@stackvalsep}{%
+ \protected@edef\si@unt@spstack{\si@valuesep}}
+\newcommand*{\si@unt@litvalsep}{%
+ \nobreak\ensuremath{\si@valuesep}\nobreak}
+\newcommand*{\si@unt@spstack}{}
+\newcommand*{\si@unt@stacka}{}
+\newcommand*{\si@unt@stackb}{}
+\newcount\si@unt@unitcnta
+\newcount\si@unt@unitcntb
+\newcount\si@unt@depthcnt
+\newif\ifsi@unt@first
+\si@unt@depthcnt\m@ne\relax
+\newcommand*{\si@unt@init}{%
+ \begingroup
+ \si@unt@litoutfalse
+ \si@unt@litprefixfalse
+ \si@unt@firsttrue
+ \si@unt@perfalse
+ \si@unt@perseenfalse
+ \si@unt@prepowerfalse
+ \si@unt@depthcnt\z@\relax
+ \si@unt@powerdim\z@\relax
+ \si@unt@unitcnta\z@\relax
+ \si@unt@unitcntb\z@\relax
+ \si@unt@prefixcnt\z@\relax
+ \renewcommand*{\si@unt@spstack}{}%
+ \renewcommand*{\si@unt@stacka}{}%
+ \renewcommand*{\si@unt@stackb}{}%
+ \renewcommand*{\si@unt@holdstacka}{}%
+ \renewcommand*{\si@unt@holdstackb}{}%
+ \renewcommand*{\si@unt@lastadda}{space}%
+ \renewcommand*{\si@unt@lastaddb}{space}}
+\newcommand*{\si@unt@final}{%
+ \si@unt@third
+ \si@unt@stackout
+ \endgroup
+ \ifsi@xspace
+ \expandafter\expandafter\expandafter\xspace
+ \fi}
+\newcommand*{\si@unt@defunit}[3][]{%
+ \si@log@debug{Declaring unit \string#2 with \MessageBreak
+ meaning \string#3}%
+ \si@ifnotmtarg{#1}
+ {\expandafter\@namedef\expandafter{%
+ \expandafter\@gobble\string#2@opt@unt@si}{#1}}%
+ \protected\def#2{%
+ \ifsi@allowoptarg
+ \expandafter\si@unt@withopt
+ \else
+ \expandafter\si@unt@noopt
+ \fi
+ {#2}{#3}}}
+\newcommand*{\si@unt@withopt}[2]{%
+ \@ifnextchar[%]
+ {\si@unt@opt{#1}{#2}}
+ {\si@unt@opt{#1}{#2}[]}}
+\newcommand*{\si@unt@noopt}[2]{\si@unt@opt{#1}{#2}[]}
+\def\si@unt@opt#1#2[#3]{%
+ \ifsi@unt@littest
+ \expandafter\si@gobblethree
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\@gobbletwo
+ \else
+ \expandafter\expandafter\expandafter\si@unt@unit
+ \fi
+ \fi
+ {#3}{#1}{#2}}
+\long\def\si@gobblethree #1#2#3{}
+\newif\ifsi@unt@litprefix
+\si@unt@litprefixtrue
+\newcommand*{\si@unt@defprefix}[4][]{%
+ \si@log@debug{Declaring multiple \string#1 with\MessageBreak
+ meaning \string#4}%
+ \expandafter\expandafter\expandafter\def\expandafter
+ \csname\expandafter\@gobble\string#2@opt@si\endcsname{#1}%
+ \protected\def#2{%
+ \ifsi@unt@littest
+ \expandafter\si@gobblethree
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\@gobbletwo
+ \else
+ \ifsi@unt@litprefix
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@gobbletwo
+ \else
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\si@unt@prefix
+ \fi
+ \fi
+ \fi
+ {#2}{#3}{#4}}}
+\newcommand*{\si@unt@defpower}[3][]{%
+ \si@log@debug{Declaring power \string#2 with\MessageBreak
+ meaning \string#3}%
+ \expandafter\expandafter\expandafter\def\expandafter
+ \csname\expandafter\@gobble\string#2@opt@si\endcsname{#1}%
+ \protected\def#2{%
+ \ifsi@unt@littest
+ \expandafter\@gobbletwo
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\si@unt@litpower
+ \else
+ \expandafter\expandafter\expandafter\si@unt@power
+ \fi
+ \fi
+ {#2}{#3}}}
+\newcommand*{\si@unt@unithook}{}
+\newcommand*{\si@unt@unit}[3]{%
+ \ifnum\si@unt@depthcnt=\m@ne\relax
+ \expandafter\si@unt@init
+ \fi
+ \advance\si@unt@depthcnt\@ne\relax
+ \si@log@debug{Unit processing: level \the\si@unt@depthcnt,
+ \MessageBreak unit \string#2}%
+ \si@unt@firstorsecond{#1}{#2}%
+ \si@unt@ifliteral{#3}
+ {\si@unt@addtostack{unit}{#3}%
+ \ifsi@unt@prepower
+ \expandafter\si@unt@stkpower
+ \fi}
+ {#3}%
+ \advance\si@unt@depthcnt\m@ne\relax
+ \ifnum\si@unt@depthcnt=\z@\relax
+ \expandafter\si@unt@final
+ \fi}
+\newcommand*{\si@unt@firstorsecond}[2]{%
+ \ifsi@unt@first
+ \expandafter\si@unt@first
+ \else
+ \expandafter\si@unt@second
+ \fi
+ {#1}{#2}}%
+\newcommand*{\si@unt@first}[2]{%
+ \si@ifnotmtarg{#1}
+ {\num{#1}%
+ \si@unt@numtrue}%
+ \si@unt@unithook
+ \ifcsname\expandafter\@gobble\string#2@opt@unt@si\endcsname
+ \expandafter\si@unt@setopts
+ \else
+ \expandafter\@gobble
+ \fi
+ {#2}%
+ \si@unt@addvaluesep
+ \si@unt@firstfalse}
+\newcommand*{\si@unt@setopts}[1]{%
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\si@temptoks\expandafter
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter{\expandafter%
+ \csname\expandafter\@gobble\string#1@opt@unt@si%
+ \endcsname}%
+ \expandafter\sisetup\expandafter{\the\si@temptoks}%
+ \si@log@debug{Applying options `\the\si@temptoks'
+ for\MessageBreak unit \string#1}%
+ \@ifundefined{si@unt@SIopts}{}
+ {\ifx\@empty\si@unt@SIopts\@empty\else
+ \expandafter\expandafter\si@unt@setSIopts
+ \fi}}
+\newcommand*{\si@unt@setSIopts}{%
+ \expandafter\si@temptoks\expandafter{\si@unt@SIopts}%
+ \expandafter\sisetup\expandafter{\the\si@temptoks}}
+\newcommand*{\si@unt@second}[2]{%
+ \si@ifnotmtarg{#1}
+ {\si@log@warn{Optional argument to unit macro\MessageBreak
+ allowed only for outer unit}}%
+ \si@unt@third
+ \si@unt@addtostack{space}{\ensuremath{\si@unitsep}}}
+\newcommand*{\si@unt@third}{%
+ \ifsi@unt@prepower\else
+ \expandafter\si@unt@stkpower
+ \fi
+ \renewcommand*{\si@tempa}{prefix}%
+ \expandafter\ifx
+ \csname si@unt@lastadd\si@unt@checkstack\endcsname\si@tempa
+ \else
+ \expandafter\si@unt@spacecheck
+ \fi
+ \ifsi@unt@per
+ \expandafter\si@unt@perseentrue
+ \fi}
+\newcommand*{\si@unt@spacecheck}{%
+ \renewcommand*{\si@tempa}{space}%
+ \expandafter\ifx
+ \csname si@unt@lastadd\si@unt@checkstack\endcsname\si@tempa
+ \else
+ \expandafter\si@unt@reciptest
+ \fi}
+\newcommand*{\si@unt@prefix}[3]{%
+ \si@unt@firstorsecond{}{#1}%
+ \ifsi@prefixsymbolic
+ \expandafter\si@unt@addprefix
+ \else
+ \expandafter\si@unt@countprefix
+ \fi
+ {#1}{#2}{#3}}
+\newcommand*{\si@unt@addprefix}[3]{%
+ \si@unt@addtostack{prefix}{#3}}
+\newcount\si@unt@prefixcnt
+\newcommand*{\si@unt@countprefix}[3]{%
+ \renewcommand*{\si@tempa}{binary}%
+ \expandafter\expandafter\expandafter\ifx\expandafter
+ \csname\expandafter\@gobble\string#1@opt@si\endcsname
+ \si@tempa
+ \expandafter\sisetup
+ \else
+ \expandafter\@gobble
+ \fi
+ {prefixbase=two}%
+ \si@tempcnta#2\relax
+ \ifsi@unt@per
+ \expandafter\si@unt@invprefix
+ \fi
+ \advance\si@unt@prefixcnt\si@tempcnta\relax}
+\newcommand*{\si@unt@invprefix}{%
+ \si@tempcntb\si@tempcnta\relax
+ \si@tempcnta -\si@tempcntb\relax}
+\newcommand*{\si@unt@litpower}[2]{\textsuperscript{#2}}
+\newif\ifsi@unt@prepower
+\newcommand*{\si@unt@power}[2]{%
+ \renewcommand*{\si@tempa}{post}%
+ \expandafter\expandafter\expandafter\ifx\expandafter
+ \csname\expandafter\@gobble\string#1@opt@si\endcsname
+ \si@tempa
+ \expandafter\@gobbletwo
+ \else
+ \expandafter\si@unt@firstorsecond
+ \fi
+ {}{\power}%
+ \si@unt@powerdim #2 pt\relax
+ \ifsi@frac\else
+ \ifsi@unt@per
+ \expandafter\expandafter\expandafter\si@unt@invpower
+ \fi
+ \fi
+ \renewcommand*{\si@tempa}{post}%
+ \si@unt@prepowertrue
+ \expandafter\expandafter\expandafter\ifx\expandafter
+ \csname\expandafter\@gobble\string#1@opt@si\endcsname
+ \si@tempa
+ \expandafter\si@unt@stackpower
+ \else
+ \si@log@debug{Power \strip@pt\si@unt@powerdim\space saved
+ to be added after\MessageBreak next unit}%
+ \fi}
+\newdimen\si@unt@powerdim
+\newcommand*{\si@unt@stackpower}{%
+ \si@unt@prepowerfalse
+ \si@unt@stkpower
+ \ifsi@stickyper\else
+ \si@unt@perfalse
+ \si@unt@perseenfalse
+ \fi}
+\newcommand*{\si@unt@stkpower}{%
+ \ifdim\si@unt@powerdim=\m@ne pt\relax
+ \ifsi@frac\else
+ \expandafter\expandafter\expandafter\si@unt@stkpwr
+ \fi
+ \else
+ \expandafter\si@unt@stkpwr
+ \fi}
+\newcommand*{\si@unt@stkpwr}{%
+ \ifdim\si@unt@powerdim=\z@\relax\else
+ \renewcommand*{\si@tempa}{unit}%
+ \expandafter\ifx
+ \csname si@unt@lastadd\si@unt@checkstack\endcsname
+ \si@tempa
+ \si@log@debug{Adding power
+ \strip@pt\si@unt@powerdim\space to output stack}%
+ \si@unt@addtostack{power}{^{\num{%
+ \strip@pt\si@unt@powerdim}}}%
+ \fi
+ \fi
+ \si@unt@powerdim\z@\relax}
+\newcommand*{\si@unt@invpower}{%
+ \si@tempdima\si@unt@powerdim\relax
+ \si@unt@powerdim -\si@tempdima\relax
+ \ifdim\si@unt@powerdim=\p@\relax
+ \si@unt@powerdim\z@\relax
+ \fi}
+\newif\ifsi@unt@per
+\newif\ifsi@unt@perseen
+\si@newrobustcmd*{\si@per}{%
+ \ifsi@unt@littest\else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter /%
+ \else
+ \ifsi@unt@litprefix
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter /%
+ \else
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\si@unt@per
+ \fi
+ \fi
+ \fi}
+\newcommand*{\si@unt@per}{%
+ \si@unt@firstorsecond{}{\per}%
+ \ifsi@unt@per
+ \ifsi@stickyper\else
+ \expandafter\expandafter\expandafter\si@unt@perfalse
+ \fi
+ \else
+ \expandafter\si@unt@pertrue
+ \fi}
+\let\per\si@per
+\newcommand*{\si@unt@reciptest}{%
+ \ifsi@unt@per
+ \ifsi@unt@perseen
+ \expandafter\expandafter\expandafter\si@unt@recip
+ \fi
+ \fi}
+\newcommand*{\si@unt@recip}{%
+ \si@unt@powerdim\m@ne pt\relax
+ \si@unt@stackpower}
+\newcommand*{\si@unt@lastadda}{}
+\newcommand*{\si@unt@lastaddb}{}
+\newcommand*{\si@unt@addtostack}[2]{%
+ \renewcommand*{\si@tempa}{#1}%
+ \expandafter\ifx
+ \csname si@unt@lastadd\si@unt@checkstack\endcsname\si@tempa
+ \expandafter\@gobbletwo
+ \else
+ \expandafter\si@unt@preplussp
+ \fi
+ {#1}{#2}}
+\newcommand*{\si@unt@preplussp}[2]{%
+ \renewcommand*{\si@tempa}{prefix+space}%
+ \edef\si@tempb{%
+ \csname si@unt@lastadd\si@unt@checkstack\endcsname+#1}%
+ \ifx\si@tempa\si@tempb
+ \expandafter\@gobbletwo
+ \else
+ \expandafter\si@unt@stack
+ \fi
+ {#1}{#2}}
+\newcommand*{\si@unt@stack}[2]{%
+ \expandafter\renewcommand\expandafter*\expandafter{%
+ \csname si@unt@lastadd\si@unt@checkstack\endcsname}{#1}%
+ \renewcommand*{\si@tempa}{#1}%
+ \renewcommand*{\si@tempb}{unit}%
+ \ifx\si@tempa\si@tempb
+ \expandafter\si@unt@inccnt
+ \fi
+ \renewcommand*{\si@tempb}{space}%
+ \ifx\si@tempa\si@tempb
+ \expandafter\si@unt@holdspace
+ \else
+ \expandafter\si@unt@addstack
+ \fi
+ {#2}}
+\newcommand*{\si@unt@inccnt}{%
+ \expandafter\advance
+ \csname si@unt@unitcnt\si@unt@checkstack\endcsname
+ \@ne\relax}
+\newcommand*{\si@unt@holdstacka}{}
+\newcommand*{\si@unt@holdstackb}{}
+\newcommand*{\si@unt@holdspace}[1]{%
+ \renewcommand*{\si@tempa}{b}%
+ \edef\si@tempb{\si@unt@checkstack}%
+ \ifx\si@tempa\si@tempb
+ \ifx\@empty\si@unt@stackb\@empty
+ \else
+ \expandafter\protected@edef
+ \csname si@unt@holdstack\si@unt@checkstack\endcsname{#1}%
+ \fi
+ \else
+ \expandafter\protected@edef
+ \csname si@unt@holdstack\si@unt@checkstack\endcsname{#1}%
+ \fi}
+\newcommand*{\si@unt@addstack}[1]{%
+ \expandafter\protected@edef
+ \csname si@unt@stack\si@unt@checkstack\endcsname
+ {\csname si@unt@stack\si@unt@checkstack\endcsname
+ \csname si@unt@holdstack\si@unt@checkstack\endcsname#1}%
+ \expandafter\renewcommand\expandafter*\expandafter{%
+ \csname si@unt@holdstack\si@unt@checkstack\endcsname}{}}
+\newcommand*{\si@unt@stackout}{%
+ \si@unt@litouttrue
+ \ifsi@frac
+ \expandafter\si@unt@fracout
+ \else
+ \expandafter\si@unt@normout
+ \fi}
+\newcommand*{\si@unt@checkstack}{%
+ \ifsi@frac
+ \ifsi@unt@per
+ \expandafter\expandafter\expandafter b%
+ \else
+ \expandafter\expandafter\expandafter a%
+ \fi
+ \else
+ \expandafter a%
+ \fi}
+\newcommand*{\si@unt@spaceout}{%
+ \ensuremath{\si@unt@spstack}}
+\newcommand*{\si@unt@prefixout}{%
+ \ifnum\si@unt@prefixcnt=\z@\relax\else
+ \ifsi@unt@num
+ \si@out{\ensuremath{{}\si@prefixproduct{}}}%
+ \fi
+ \si@unt@stackvalsep
+ \let\si@expbase\si@prefixbase
+ \num{e\the\si@unt@prefixcnt}%
+ \fi}
+\newcommand*{\si@unt@normout}{%
+ \si@unt@prefixout
+ \si@unt@spaceout
+ \expandafter\si@unt@out\expandafter{\si@unt@stacka}}
+\newcommand*{\si@unt@fracout}{%
+ \si@unt@notambig
+ \ifx\@empty\si@unt@stacka\@empty
+ \ifx\@empty\si@unt@stackb\@empty
+ \ifsi@unt@litout\else
+ \si@log@err{Empty fractional unit}{The unit
+ argument\MessageBreak given does not contain any
+ symbols}%
+ \fi
+ \else
+ \ifsi@slash
+ \si@unt@prefixout
+ \si@frac{}{\si@unt@stackb}%
+ \else
+ \si@unt@prefixout
+ \si@unt@spaceout
+ \si@frac{1}{\si@unt@stackb}%
+ \fi
+ \fi
+ \else
+ \ifx\@empty\si@unt@stackb\@empty
+ \si@unt@normout
+ \else
+ \si@unt@prefixout
+ \si@unt@spaceout
+ \si@frac{\si@unt@stacka}{\si@unt@stackb}%
+ \fi
+ \fi}
+\newcommand*{\si@unt@notambig}{%
+ \ifnum\si@unt@unitcntb>\@ne\relax
+ \ifsi@slash
+ \ifsi@trapambigfrac
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\si@unt@notabg
+ \fi
+ \fi
+ \fi}
+\newcommand*{\si@unt@notabg}{%
+ \protected@edef\si@unt@stackb{\si@openfrac\si@unt@stackb
+ \si@closefrac}}
+\begingroup
+ \catcode`\~=\active
+ \catcode`\.=\active
+ \gdef\si@unt@out#1{%
+ \begingroup
+ \si@unt@nonlatin
+ \makeatletter
+ \catcode`\~=\active
+ \catcode`\.=\active
+ \def~{\ensuremath{\si@unitspace}}%
+ \def.{\ensuremath{\si@unitsep}}%
+ \endlinechar\m@ne
+ \si@out{\scantokens{#1}}%
+ \endgroup}
+\endgroup
+\newcommand*{\si@unt@nonlatin}{}
+\ifdefined\XeTeXrevision
+ \renewcommand*{\si@unt@nonlatin}{%
+ \catcode176=\active
+ \catcode181=\active
+ \catcode197=\active
+ \si@unt@sym{176}{\si@sym@degree}%
+ \si@unt@sym{181}{\si@sym@mu}%
+ \si@unt@sym{197}{\si@sym@ringA}}%
+\fi
+\AtBeginDocument{
+ \@ifpackageloaded{inputenc}
+ {\@for\si@tempa:=latin1,latin5,latin9\do{
+ \ifx\inputencodingname\si@tempa
+ \renewcommand*{\si@unt@nonlatin}{%
+ \catcode176=\active
+ \catcode181=\active
+ \catcode197=\active
+ \si@unt@sym{176}{\si@sym@degree}%
+ \si@unt@sym{181}{\si@sym@mu}%
+ \si@unt@sym{197}{\si@sym@ringA}}%
+ \fi}}
+ {}}
+\newcommand*{\si@unt@sym}[1]{%
+ \bgroup
+ \uccode`\~#1%
+ \uppercase{%
+ \egroup
+ \def~}}
+\newunit{\kilogram}{kg}
+\newunit{\metre}{m}
+\newunit{\meter}{\metre}
+\newunit{\mole}{mol}
+\newunit{\second}{s}
+\newunit{\ampere}{A}
+\newunit{\kelvin}{K}
+\newunit{\candela}{cd}
+\newpower{\Square}{2}
+\newpower{\ssquare}{2}
+\newpower[post]{\squared}{2}
+\newpower{\cubic}{3}
+\newpower[post]{\cubed}{3}
+\newcommand*{\tothe}{\si@tothe{\tothe}}
+\newcommand*{\raiseto}{\si@tothe{\raiseto}}
+\newcommand*{\si@tothe}[2]{%
+ \ifsi@unt@littest
+ \expandafter\@gobbletwo
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\si@unt@litpower
+ \else
+ \expandafter\expandafter\expandafter\si@unt@power
+ \fi
+ \fi
+ {#1}{#2}}
+\newcommand*{\tothe@opt@si}{post}
+\newcommand*{\raiseto@opt@si}{}
+\newcommand*{\si@loc@load}[1]{%
+ \let\si@loc@sisetup\sisetup
+ \renewcommand*{\sisetup}[1]{%
+ \expandafter\gdef\csname si@loc@#1\endcsname{##1}}
+ \si@loadfile{#1}%
+ \let\sisetup\si@loc@sisetup}
+\newcommand*{\si@loc@set}[1]{%
+ \ifcsname si@loc@#1\endcsname
+ \si@log@inf{Setting locale to `#1'}%
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\si@temptoks
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\csname si@loc@#1\endcsname}%
+ \expandafter\sisetup\expandafter{\the\si@temptoks}%
+ \ifcsname si@loc@#1@extra\endcsname
+ \csname si@loc@#1@extra\endcsname
+ \fi
+ \else
+ \ifcsname si@loc@#1@extra\endcsname
+ \si@log@inf{Setting locale to `#1'}%
+ \csname si@loc@#1@extra\endcsname
+ \else
+ \si@log@warn{Unknown locale `#1'}%
+ \fi
+ \fi}
+\newcommand*{\si@loc@ltol}[1]{%
+ \def\si@tempa##1:##2\@nil{\si@loc@load{##1}}
+ \@for\si@tempb:=#1\do{%
+ \expandafter\si@tempa\si@tempb:\@nil}
+ \AtBeginDocument{
+ \@ifpackageloaded{babel}
+ {\def\si@tempa##1:##2:##3\@nil{%
+ \expandafter\addto\expandafter{%
+ \csname extras##2\endcsname}%
+ {\si@loc@set{##1}}}%
+ \@for\si@tempb:=#1\do{%
+ \expandafter\si@tempa\si@tempb::\@nil}}
+ {\si@log@warn{babel not loaded \MessageBreak
+ loctolang option ignored}}}}
+\AtBeginDocument{
+ \@ifpackageloaded{babel}
+ {\renewcommand*{\si@loc@ltol}[1]{%
+ \def\si@tempa##1:##2\@nil{\si@loc@load{##1}}%
+ \@for\si@tempb:=#1\do{%
+ \expandafter\si@tempa\si@tempb:\@nil}%
+ \def\si@tempa##1:##2:##3\@nil{%
+ \expandafter\addto\expandafter{%
+ \csname extras##2\endcsname}%
+ {\si@loc@set{##1}}}%
+ \@for\si@tempb:=#1\do{%
+ \expandafter\si@tempa\si@tempb::\@nil}}}
+ {\renewcommand*{\si@loc@ltol}[1]{%
+ \si@log@warn{babel not loaded \MessageBreak
+ loctolang option ignored}}}}
+\newcommand*{\addtolocale}[2]{%
+ \si@addtocsname{si@loc@#1@extra}{#2}}
+\begingroup
+ \catcode`\^=\active\relax
+ \catcode`\-=\active\relax
+ \gdef\si@out#1{%
+ \begingroup
+ \catcode`\^=\active\relax
+ \makeatletter
+ \endlinechar\m@ne
+ \ifsi@fam@set\else
+ \expandafter\si@fam@set
+ \fi
+ \si@colourcmd{\si@colour}%
+ \text{\si@fam@italic\si@fam@bold\si@fam@text
+ \ifsi@textmode
+ \expandafter\si@out@text
+ \else
+ \expandafter\si@out@maths
+ \fi
+ {\scantokens{#1}}}%
+ \endgroup
+ \check@mathfonts}
+ \gdef\si@out@text#1{%
+ \let^\si@out@sp
+ \let\textsuperscript\si@out@sp
+ \catcode`\-=\active\relax
+ \let-\si@out@minus
+ #1}
+ \gdef\si@out@maths#1{%
+ \let^\sp
+ \let\textsuperscript\sp
+ $\si@fam@maths{#1}$}
+\endgroup
+\newcommand*{\si@out@sp}[1]{\ensuremath{^{\text{#1}}}}
+\newcommand*{\si@out@minus}{\ensuremath{-}}
+\newif\ifsi@out@num
+\newcommand*{\si@out@num}[1]{%
+ \begingroup
+ \si@out@numtrue
+ \si@out{#1}%
+ \endgroup}
+\newcommand*{\si@extension}{cfg}
+\newcommand*{\si@fileprefix}{si-}
+\newcommand*{\si@ifl@aded}{}
+\let\si@ifl@aded\@ifl@aded
+\newcommand*{\si@ifloaded}[1]{%
+ \si@ifl@aded\si@extension{\si@fileprefix#1}}
+\newcommand*{\si@loadfile}[1]{%
+ \si@ifloaded{#1}{}
+ {\InputIfFileExists{\si@fileprefix#1.\si@extension}
+ {}
+ {\si@log@err{Failed to load file
+ \si@fileprefix#1.\si@extension}
+ {The configuration file requested could not be
+ found}}}}
+\newcommand*{\requiresiconfigs}[1]{%
+ \@for\si@tempb:=#1\do{\si@loadfile{\si@tempb}}}
+\newcommand*{\si@loademfile}[1]{%
+ \@ifpackageloaded{#1}
+ {\si@log@err{Emulation clash for package `#1'}
+ {You have asked for emulation of package
+ `#1'\MessageBreak
+ (perhaps by giving siunitx a back-compatibility
+ option)\MessageBreak but the package is already
+ loaded!}}
+ {\si@loadfile{#1}}}
+\newcommand*{\si@emclash}[2]{%
+ \si@log@err{Emulation clash: `#1' and `#2'}
+ {You have asked for emulation of package `#1'\MessageBreak
+ but have already loaded emulation of `#2'}}
+\newcommand*{\si@emulating}[2]{%
+ \@namedef{ver@#1.sty}{#2 siunitx emulation of #1}%
+ \let\si@tempa\si@blockpkgs
+ \renewcommand*{\si@blockpkgs}{}%
+ \@for\si@tempb:=\si@tempa\do{%
+ \renewcommand*{\si@tempa}{#1}%
+ \ifx\si@tempa\si@tempb\else
+ \lowercase{\edef\si@tempa{#1}}%
+ \lowercase{\edef\si@tempc{\si@tempb}}%
+ \ifx\si@tempa\si@tempc
+ \@namedef{ver@\si@tempc.sty}{#2 siunitx emulation of
+ #1}%
+ \else
+ \si@addtolist{\si@blockpkgs}{\si@tempb}%
+ \fi
+ \fi}%
+ \let\si@tempa\si@checkpkgs
+ \renewcommand*{\si@checkpkgs}{}%
+ \renewcommand*{\si@tempb}{#1}%
+ \@for\si@tempc:=\si@tempa\do{%
+ \ifx\si@tempb\si@tempc\else
+ \si@addtolist{\si@checkpkgs}{\si@tempc}%
+ \fi}}
+\sisetup{
+ addsign=none,
+ allowzeroexp=false,
+ angformat=unchanged,
+ astroang=false,%(
+ closeerr=),%(
+ closefrac=),
+ colour=black,
+ colourall=false,
+ colourneg=false,
+ decimalsymbol=fullstop,
+ detectdisplay=true,
+ digitsep=thin,
+ dp=3,
+ eVcorra=0.3ex,
+ eVcorrb=0ex,
+ errspace=none,
+ fixdp=false,
+ inlinebold=text,
+ load=default,
+ mathsrm=mathrm,
+ mathssf=mathsf,
+ mathstt=mathtt,
+ mode=maths,
+ negcolour=red,
+ noload={},
+ numaddn={},%(
+ numcloseerr=),%
+ numdecimal={.,},
+ numdigits=0123456789,
+ numexp=eEdD,
+ numgobble={},
+ numopenerr=(,%)
+ numprod=x,
+ numsign=+-\pm\mp,
+ obeybold=false,
+ obeyitalic=false,
+ obeymode=false,
+ openerr=(,%)
+ openfrac=(,%)
+ padangle=small,
+ padnumber=lead,
+ per=reciprocal,
+ prefixbase=ten,
+ prefixproduct=times,
+ prefixsymbolic=true,
+ prespace=false,
+ redefsymbols=true,
+ repeatunits=true,
+ retainplus=false,
+ seperr=false,
+ sepfour=false,
+ sign=plus,
+ slash=slash,
+ stickyper=false,
+ strictarc=true,
+ tabalignexp=true,
+ tabautofit=false,
+ tabformat=3.2,
+ tabnumalign=centredecimal,
+ tabtextalign=centre,
+ tabunitalign=left,
+ textrm=rmfamily,
+ textsf=sffamily,
+ texttt=ttfamily,
+ tightpm=false,
+ trapambigerr=true,
+ trapambigfrac=true,
+ unitsep=thin,
+ valuesep=thin,
+ xspace=false}
+\ProcessOptionsX[si]<key>
+\ifx\@empty\si@emulate\@empty\else
+ \@for\si@tempa:=\si@emulate\do{%
+ \si@loademfile{\si@tempa}}
+\fi
+\newcommand*{\si@expanddefault}[2]{%
+ \expandafter\ifx\expandafter\@empty\csname si@#1\endcsname
+ \@empty
+ \else
+ \renewcommand*{\si@tempb}{default}%
+ \renewcommand*{\si@tempc}{}%
+ \expandafter\@for\expandafter\si@tempa\expandafter
+ :\expandafter=\csname si@#1\endcsname\do{%
+ \ifx\si@tempa\si@tempb
+ \si@addtolist{\si@tempc}{#2}%
+ \else
+ \si@addtolist{\si@tempc}{\si@tempa}%
+ \fi}
+ \expandafter\edef\csname si@#1\endcsname{\si@tempc}%
+ \expandafter\si@addtolist\expandafter{%
+ \csname si@no#1\endcsname}%
+ {default}%
+ \renewcommand*{\si@tempc}{}%
+ \expandafter\@for\expandafter\si@tempa\expandafter
+ :\expandafter=\csname si@#1\endcsname\do{%
+ \si@switchfalse
+ \expandafter\@for\expandafter\si@tempb\expandafter
+ :\expandafter=\csname si@no#1\endcsname\do{%
+ \ifx\si@tempa\si@tempb
+ \si@switchtrue
+ \fi
+ \ifsi@switch\else
+ \si@addtolist{\si@tempc}{\si@tempa}%
+ \fi}}
+ \@for\si@tempa:=\si@tempc\do{%
+ \si@loadfile{\si@tempa}}%
+ \fi}
+\si@expanddefault{load}{prefix,named,addn,prefixed,accepted,%
+ physical,abbr}
+\IfFileExists{siunitx.cfg}
+ {\si@log@inf{Local configuration file found}%
+ \InputIfFileExists{siunitx.cfg}{}{}}
+ {}
+\si@catcodes
+\endinput
+%%
+%% End of file `siunitx.sty'.