summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-02-21 18:13:54 +0000
committerKarl Berry <karl@freefriends.org>2008-02-21 18:13:54 +0000
commit3a5c4408a5ea1eff072ec15563a8e805c8c91bab (patch)
treed8aa76c76fe80c196e456733b303937b0b21367a /Master/texmf-dist/tex
parenta691030f2a8c6493f60ec90ef9fcc2751ed85ee6 (diff)
newish exptl latex package si (19feb08)
git-svn-id: svn://tug.org/texlive/trunk@6705 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/si/jawltxdoc.sty151
-rw-r--r--Master/texmf-dist/tex/latex/si/si-SIunits.cfg347
-rw-r--r--Master/texmf-dist/tex/latex/si/si-UK.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/si/si-USA.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/si/si-abbr.cfg71
-rw-r--r--Master/texmf-dist/tex/latex/si/si-accepted.cfg37
-rw-r--r--Master/texmf-dist/tex/latex/si/si-addn.cfg31
-rw-r--r--Master/texmf-dist/tex/latex/si/si-binary.cfg28
-rw-r--r--Master/texmf-dist/tex/latex/si/si-germany.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/si/si-hep.cfg77
-rw-r--r--Master/texmf-dist/tex/latex/si/si-named.cfg54
-rw-r--r--Master/texmf-dist/tex/latex/si/si-physical.cfg26
-rw-r--r--Master/texmf-dist/tex/latex/si/si-prefix.cfg49
-rw-r--r--Master/texmf-dist/tex/latex/si/si-prefixed.cfg100
-rw-r--r--Master/texmf-dist/tex/latex/si/si-sistyle.cfg83
-rw-r--r--Master/texmf-dist/tex/latex/si/si-south-africa.cfg27
-rw-r--r--Master/texmf-dist/tex/latex/si/si-synchem.cfg25
-rw-r--r--Master/texmf-dist/tex/latex/si/si-units.cfg52
-rw-r--r--Master/texmf-dist/tex/latex/si/si-unitsdef.cfg238
-rw-r--r--Master/texmf-dist/tex/latex/si/si.sty2140
20 files changed, 3617 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/si/jawltxdoc.sty b/Master/texmf-dist/tex/latex/si/jawltxdoc.sty
new file mode 100644
index 00000000000..44e31b5867d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/jawltxdoc.sty
@@ -0,0 +1,151 @@
+%%
+%% This is file `jawltxdoc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `jawltxdoc')
+%% ----------------------------------------------------------------
+%% The si 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}
+\ProvidesPackage{jawltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage[english,UKenglish]{babel}
+\usepackage[scaled=0.95]{helvet}
+\usepackage[version=3]{mhchem}
+\usepackage[final]{microtype}
+\usepackage[osf]{mathpazo}
+\usepackage{booktabs,array,url,graphicx,courier,xspace}
+\usepackage{upgreek,ifpdf,listings,float,caption,longtable}
+\floatstyle{plaintop}
+\restylefloat{table}
+\ifpdf
+ \usepackage{embedfile}
+ \embedfile[%
+ stringmethod=escape,%
+ mimetype=plain/text,%
+ desc={LaTeX docstrip source archive for package `\jobname'}%
+ ]{\jobname.dtx}
+\fi
+\IfFileExists{\jobname.sty}
+ {\usepackage{\jobname}}{}
+\usepackage[numbered]{hypdoc}
+\newlength\LaTeXwidth
+\newlength\LaTeXoutdent
+\newlength\LaTeXgap
+\setlength\LaTeXgap{1em}
+\setlength\LaTeXoutdent{-0.15\textwidth}
+\newcommand*{\typesetexampleandcode}{%
+ \begin{list}{}{%
+ \setlength\itemindent{0pt}
+ \setlength\leftmargin\LaTeXoutdent
+ \setlength\rightmargin{0pt}
+ }
+ \item
+ \setlength\LaTeXoutdent{-0.15\textwidth}
+ \begin{minipage}[c]{\textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap}
+ \lst@sampleInput
+ \end{minipage}%
+ \hfill%
+ \begin{minipage}[c]{\LaTeXwidth}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{minipage}%
+ \end{list}
+}
+\newcommand*{\typesetcodeandexample}{%
+ \begin{list}{}{%
+ \setlength\itemindent{0pt}
+ \setlength\leftmargin{0pt}
+ \setlength\rightmargin{0pt}
+ }
+ \item
+ \begin{minipage}[c]{\LaTeXwidth}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{minipage}%
+ \lst@sampleInput
+ \end{list}
+}
+\newcommand*{\typesetfloatexample}{%
+ \begin{list}{}{%
+ \setlength\itemindent{0pt}
+ \setlength\leftmargin{0pt}
+ \setlength\rightmargin{0pt}
+ }
+ \item
+ \lst@sampleInput
+ \begin{minipage}[c]{\LaTeXwidth}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{minipage}%
+ \end{list}
+}
+\newcommand*{\typesetcodeonly}{%
+ \begin{list}{}{%
+ \setlength\itemindent{0pt}
+ \setlength\leftmargin{0pt}
+ \setlength\rightmargin{0pt}
+ }
+ \item
+ \begin{minipage}[c]{\LaTeXwidth}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{minipage}%
+ \end{list}
+}
+\edef\LaTeXexamplefile{\jobname.tmp}
+\lst@RequireAspects{writefile}
+\newbox\lst@samplebox
+\lstnewenvironment{LaTeXexample}[1][\typesetexampleandcode]{%
+ \let\typesetexample#1
+ \global\let\lst@intname\@empty
+ \setbox\lst@samplebox=\hbox\bgroup
+ \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt,%
+ basicstyle=\small\ttfamily,basewidth=0.51em,%
+ keywordstyle=\color{blue}}
+ \lst@BeginAlsoWriteFile{\LaTeXexamplefile}
+}{%
+ \lst@EndWriteFile\egroup
+ \setlength\LaTeXwidth{\wd\lst@samplebox}
+ \typesetexample%
+}
+\newcommand*{\lst@sampleInput}{%
+ \MakePercentComment\catcode`\^^M=10\relax
+ \small%
+ {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}%
+ {\lst@ProcessTabulator}}%
+ \leavevmode \input{\LaTeXexamplefile}}%
+ \MakePercentIgnore%
+}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\currpkg}{\pkg{\jobname}\xspace}
+\newcommand*{\opt}[1]{\texttt{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\ext}[1]{\file{.#1}}
+\newcommand*{\latin}[1]{\emph{#1}}
+\newcommand*{\etc}{%
+ \@ifnextchar.
+ {\latin{etc}}
+ {\latin{etc.}}
+ \xspace}
+\newcommand*{\eg}{%
+ \@ifnextchar.
+ {\latin{e.g}}
+ {\latin{e.g.}}
+ \xspace}
+\newcommand*{\ie}{%
+ \@ifnextchar.
+ {\latin{i.e}}
+ {\latin{i.e.}}
+ \xspace}
+\newcommand*{\AMS}{{\protect\usefont{OMS}{cmsy}{m}{n}%
+ A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
+\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX}
+\newcommand*{\XeTeX}
+ {X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.1667em\TeX}
+\endinput
+%%
+%% End of file `jawltxdoc.sty'.
diff --git a/Master/texmf-dist/tex/latex/si/si-SIunits.cfg b/Master/texmf-dist/tex/latex/si/si-SIunits.cfg
new file mode 100644
index 00000000000..3e504f461fc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-SIunits.cfg
@@ -0,0 +1,347 @@
+%%
+%% This is file `si-SIunits.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `SIunits')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Emulation of SIunits]
+\sisetup{
+ unitsep=thick,
+ valuesep=thick,
+ prefixproduct=\si@valuesep}
+\si@requirecfgs{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{\bbar}{bar}
+\newunit{\dday}{day}
+\newunit{\liter}{L}
+\newunit{\rperminute}{r/min}
+\newunit{\ton}{t}
+\newunit{\degreecelsius}{\celsius}
+\let\addunit\newunit
+\newcommand*{\addprefix}[2]{\newprefix{#1}{#2}}
+\addunit{\graypersecond}{\gray\per\second}
+\addunit{\graypersecondnp}{\gray\reciprocal\second}
+\addunit{\metrepersquaresecond}{\metre\per\second\squared}
+\addunit{\metrepersquaresecondnp}{\metre\second\rpsquared}
+\addunit{\joulepermole}{\joule\per\mole}
+\addunit{\joulepermolenp}{\joule\reciprocal\mole}
+\addunit{\molepercubicmetre}{\mole\per\cubic\metre}
+\addunit{\molepercubicmetrenp}{\mole\rpcubic\metre}
+\addunit{\radianpersquaresecond}{\radian\per\second\squared}
+\addunit{\radianpersquaresecondnp}{\radian\second\rpsquared}
+\addunit{\kilogramsquaremetrepersecond}
+ {\kilogram\usk\squaremetre\per\second}
+\addunit{\kilogramsquaremetrepersecondnp}
+ {\kilogram\usk\squaremetre\reciprocal\second}
+\addunit{\radianpersecond}{\radian\per\second}
+\addunit{\radianpersecondnp}{\radian\reciprocal\second}
+\addunit{\squaremetrepercubicmetre}{\squaremetre\per\cubic\metre}
+\addunit{\squaremetrepercubicmetrenp}{\squaremetre\rpcubic\metre}
+\addunit{\katalpercubicmetre}{\katal\per\cubic\metre}
+\addunit{\katalpercubicmetrenp}{\katal\rpcubic\metre}
+\addunit{\coulombpermol}{\coulomb\per\mole}
+\addunit{\coulombpermolnp}{\coulomb\reciprocal\mole}
+\addunit{\amperepersquaremetre}{\ampere\per\squaremetre}
+\addunit{\amperepersquaremetrenp}{\ampere\rpsquare\metre}
+\addunit{\kilogrampercubicmetre}{\kilogram\per\cubic\metre}
+\addunit{\kilogrampercubicmetrenp}{\kilogram\rpcubic\metre}
+\addunit{\squaremetrepernewtonsecond}
+ {\squaremetre\per\newton\second}
+\addunit{\squaremetrepernewtonsecondnp}
+ {\squaremetre\reciprocal\newton\reciprocal\second}
+\addunit{\pascalsecond}{\pascal\second}
+\addunit{\coulombpercubicmetre}{\coulomb\per\cubic\metre}
+\addunit{\coulombpercubicmetrenp}{\coulomb\rpcubic\metre}
+\addunit{\amperemetresecond}{\ampere\metre\second}
+\addunit{\voltpermetre}{\volt\per\metre}
+\addunit{\voltpermetrenp}{\volt\reciprocal\metre}
+\addunit{\coulombpersquaremetre}{\coulomb\per\squaremetre}
+\addunit{\coulombpersquaremetrenp}{\coulomb\rpsquare\metre}
+\addunit{\faradpermetre}{\farad\per\metre}
+\addunit{\faradpermetrenp}{\farad\reciprocal\metre}
+\addunit{\ohmmetre}{\ohm\metre}
+\addunit{\kilowatthour}{\kilo\watt\hour}
+\addunit{\wattpersquaremetre}{\watt\per\squaremetre}
+\addunit{\wattpersquaremetrenp}{\watt\rpsquare\metre}
+\addunit{\joulepersquaremetre}{\joule\per\squaremetre}
+\addunit{\joulepersquaremetrenp}{\joule\rpsquare\metre}
+\addunit{\newtonpercubicmetre}{\newton\per\cubic\metre}
+\addunit{\newtonpercubicmetrenp}{\newton\rpcubic\metre}
+\addunit{\newtonperkilogram}{\newton\per\kilogram}
+\addunit{\newtonperkilogramnp}{\newton\reciprocal\kilogram}
+\addunit{\jouleperkelvin}{\joule\per\kelvin}
+\addunit{\jouleperkelvinnp}{\joule\reciprocal\kelvin}
+\addunit{\jouleperkilogram}{\joule\per\kilogram}
+\addunit{\jouleperkilogramnp}{\joule\reciprocal\kilogram}
+\addunit{\coulombperkilogram}{\coulomb\per\kilogram}
+\addunit{\coulombperkilogramnp}{\coulomb\reciprocal\kilogram}
+\addunit{\squaremetrepersecond}{\squaremetre\per\second}
+\addunit{\squaremetrepersecondnp}{\squaremetre\reciprocal\second}
+\addunit{\squaremetrepersquaresecond}
+ {\squaremetre\per\second\squared}
+\addunit{\squaremetrepersquaresecondnp}
+ {\squaremetre\second\rpsquared}
+\addunit{\kilogrammetrepersecond}{\kilogram\metre\per\second}
+\addunit{\kilogrammetrepersecondnp}
+ {\kilogram\metre\reciprocal\second}
+\addunit{\candelapersquaremetre}{\candela\per\squaremetre}
+\addunit{\candelapersquaremetrenp}{\candela\rpsquare\metre}
+\addunit{\amperepermetre}{\ampere\per\metre}
+\addunit{\amperepermetrenp}{\ampere\reciprocal\metre}
+\addunit{\joulepertesla}{\joule\per\tesla}
+\addunit{\jouleperteslanp}{\joule\reciprocal\tesla}
+\addunit{\henrypermetre}{\henry\per\metre}
+\addunit{\henrypermetrenp}{\henry\reciprocal\metre}
+\addunit{\kilogrampersecond}{\kilogram\per\second}
+\addunit{\kilogrampersecondnp}{\kilogram\reciprocal\second}
+\addunit{\kilogrampersquaremetresecond}
+ {\kilogram\per\squaremetre\second}
+\addunit{\kilogrampersquaremetresecondnp}
+ {\kilogram\rpsquare\metre\reciprocal\second}
+\addunit{\kilogrampersquaremetre}{\kilogram\per\squaremetre}
+\addunit{\kilogrampersquaremetrenp}{\kilogram\rpsquare\metre}
+\addunit{\kilogrampermetre}{\kilogram\per\metre}
+\addunit{\kilogrampermetrenp}{\kilogram\reciprocal\metre}
+\addunit{\joulepermolekelvin}{\joule\per\mole\kelvin}
+\addunit{\joulepermolekelvinnp}
+ {\joule\reciprocal\mole\reciprocal\kelvin}
+\addunit{\kilogramperkilomole}{\kilogram\per\kilo\mole}
+\addunit{\kilogramperkilomolenp}{\kilogram\kilo\reciprocal\mole}
+\addunit{\kilogramsquaremetre}{\kilogram\squaremetre}
+\addunit{\kilogramsquaremetrenp}{\kilogramsquaremetre}
+\addunit{\kilogrammetrepersquaresecond}
+ {\kilogram\metre\per\second\squared}
+\addunit{\kilogrammetrepersquaresecondnp}
+ {\kilogram\metre\second\rpsquared}
+\addunit{\newtonpersquaremetre}{\newton\per\squaremetre}
+\addunit{\newtonpersquaremetrenp}{\newton\rpsquare\metre}
+\addunit{\persquaremetresecond}{1\per\squaremetre\second}
+\addunit{\persquaremetresecondnp}{\rpsquare\metre\reciprocal\second}
+\addunit{\wattperkilogram}{\watt\per\kilogram}
+\addunit{\wattperkilogramnp}{\watt\reciprocal\kilogram}
+\addunit{\wattpercubicmetre}{\watt\per\cubic\metre}
+\addunit{\wattpercubicmetrenp}{\watt\rpcubic\metre}
+\addunit{\wattpersquaremetresteradian}{\watt\per\squaremetre\steradian}
+\addunit{\wattpersquaremetresteradiannp}
+ {\watt\rpsquare\metre\rp\steradian}
+\addunit{\jouleperkilogramkelvin}{\joule\per\kilogram\kelvin}
+\addunit{\jouleperkilogramkelvinnp}
+ {\joule\reciprocal\kilogram\reciprocal\kelvin}
+\addunit{\squaremetreperkilogram}{\squaremetre\per\kilogram}
+\addunit{\rpsquaremetreperkilogram}
+ {\squaremetre\reciprocal\kilogram}
+\addunit{\cubicmetreperkilogram}{\cubic\metre\per\kilogram}
+\addunit{\rpcubicmetreperkilogram}
+ {\cubic\metre\reciprocal\kilogram}
+\addunit{\newtonpermetre}{\newton\per\metre}
+\addunit{\newtonpermetrenp}{\newton\reciprocal\metre}
+\addunit{\wattpermetrekelvin}{\watt\per\metre\kelvin}
+\addunit{\wattpermetrekelvinnp}
+ {\watt\reciprocal\metre\reciprocal\kelvin}
+\addunit{\newtonmetre}{\newton\metre}
+\addunit{\newtonmetrenp}{\newtonmetre}
+\addunit{\squaremetrepercubicsecond}{\squaremetre\per\cubic\second}
+\addunit{\squaremetrepercubicsecondnp}
+ {\squaremetre\rpcubic\second}
+\addunit{\metrepersecond}{\metre\per\second}
+\addunit{\metrepersecondnp}{\metre\reciprocal\second}
+\addunit{\joulepercubicmetre}{\joule\per\cubicmetre}
+\addunit{\joulepercubicmetrenp}{\joule\rpcubic\metre}
+\addunit{\kilogrampercubicmetrecoulomb}
+ {\kilogram\per\cubic\metre\coulomb}
+\addunit{\kilogrampercubicmetrecoulombnp}
+ {\kilogram\rpcubic\metre\reciprocal\coulomb}
+\addunit{\cubicmetrepersecond}{\cubicmetre\per\second}
+\addunit{\rpcubicmetrepersecond}{\cubicmetre\reciprocal\second}
+\addunit{\kilogrampersecondcubicmetre}
+ {\kilogram\per\second\cubicmetre}
+\addunit{\kilogrampersecondcubicmetrenp}
+ {\kilogram\reciprocal\second\rpcubic\metre}
+\newunit{\yoctod}{\si@prefixnumtrue\yocto}
+\newunit{\zeptod}{\si@prefixnumtrue\zepto}
+\newunit{\attod}{\si@prefixnumtrue\atto}
+\newunit{\femtod}{\si@prefixnumtrue\femto}
+\newunit{\picod}{\si@prefixnumtrue\pico}
+\newunit{\nanod}{\si@prefixnumtrue\nano}
+\newunit{\microd}{\si@prefixnumtrue\micro}
+\newunit{\millid}{\si@prefixnumtrue\milli}
+\newunit{\centid}{\si@prefixnumtrue\centi}
+\newunit{\decad}{\si@prefixnumtrue\deca}
+\newunit{\dekad}{\si@prefixnumtrue\deka}
+\newunit{\hectod}{\si@prefixnumtrue\hecto}
+\newunit{\kilod}{\si@prefixnumtrue\kilo}
+\newunit{\megad}{\si@prefixnumtrue\mega}
+\newunit{\gigad}{\si@prefixnumtrue\giga}
+\newunit{\terad}{\si@prefixnumtrue\tera}
+\newunit{\petad}{\si@prefixnumtrue\peta}
+\newunit{\exad}{\si@prefixnumtrue\exa}
+\newunit{\zettad}{\si@prefixnumtrue\zetta}
+\newunit{\yottad}{\si@prefixnumtrue\yotta}
+\newunit{\kibid}{%
+ \si@prefixnumtrue\let\si@prefixpower\si@fix@two\kibi}
+\newunit{\mebid}{%
+ \si@prefixnumtrue\let\si@prefixpower\si@fix@two\mebi}
+\newunit{\gibid}{%
+ \si@prefixnumtrue\let\si@prefixpower\si@fix@two\gibi}
+\newunit{\tebid}{%
+ \si@prefixnumtrue\let\si@prefixpower\si@fix@two\tebi}
+\newunit{\pebid}{%
+ \si@prefixnumtrue\let\si@prefixpower\si@fix@two\pebi}
+\newunit{\exbid}{%
+ \si@prefixnumtrue\let\si@prefixpower\si@fix@two\exbi}
+\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/si/si-UK.cfg b/Master/texmf-dist/tex/latex/si/si-UK.cfg
new file mode 100644
index 00000000000..df3dfd3ae14
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-UK.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-UK.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `UK')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 UK locale]
+\sisetup{
+ unitsep=thin,
+ expproduct=times,
+ valuesep=thin,
+ decimalsign=fullstop,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-UK.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-USA.cfg b/Master/texmf-dist/tex/latex/si/si-USA.cfg
new file mode 100644
index 00000000000..1dd741af556
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-USA.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-USA.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `USA')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 USA locale]
+\sisetup{
+ unitsep=thin,
+ expproduct=times,
+ valuesep=thin,
+ decimalsign=fullstop,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-USA.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-abbr.cfg b/Master/texmf-dist/tex/latex/si/si-abbr.cfg
new file mode 100644
index 00000000000..7a2cba1d0be
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-abbr.cfg
@@ -0,0 +1,71 @@
+%%
+%% This is file `si-abbr.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `abbr')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Abbreviated units]
+\si@requirecfgs{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}
+\newunit{\ml}{\milli\litre}
+\newunit{\micl}{\micro\litre}
+\newunit{\cmc}{\centi\metre\cubed}
+\newunit{\dmc}{\deci\metre\cubed}
+\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{\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/si/si-accepted.cfg b/Master/texmf-dist/tex/latex/si/si-accepted.cfg
new file mode 100644
index 00000000000..982f022993d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-accepted.cfg
@@ -0,0 +1,37 @@
+%%
+%% This is file `si-accepted.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `accepted')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 SI accepted units]
+\newunit{\minute}{min}
+\newunit{\hour}{h}
+\newunit{\Day}{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{\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/si/si-addn.cfg b/Master/texmf-dist/tex/latex/si/si-addn.cfg
new file mode 100644
index 00000000000..7a5c0a07556
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-addn.cfg
@@ -0,0 +1,31 @@
+%%
+%% This is file `si-addn.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `addn')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 SI Additional units]
+\newunit{\angstrom}{\si@sym@ringA}
+\newunit{\are}{a}
+\newunit{\hectare}{\hecto\are}
+\newunit{\barn}{b}
+\newunit{\BAR}{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/si/si-binary.cfg b/Master/texmf-dist/tex/latex/si/si-binary.cfg
new file mode 100644
index 00000000000..c45cdd2d68b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-binary.cfg
@@ -0,0 +1,28 @@
+%%
+%% This is file `si-binary.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `binary')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Binary units]
+\newprefix{\kibi}{10}{Ki}
+\newprefix{\mebi}{20}{Mi}
+\newprefix{\gibi}{30}{Gi}
+\newprefix{\tebi}{40}{Ti}
+\newprefix{\pebi}{50}{Pi}
+\newprefix{\exbi}{60}{Ei}
+\newunit{\bit}{bit}
+\newunit{\byte}{B}
+\endinput
+%%
+%% End of file `si-binary.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-germany.cfg b/Master/texmf-dist/tex/latex/si/si-germany.cfg
new file mode 100644
index 00000000000..cbe80e10a2b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-germany.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-germany.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `germany')
+%% ----------------------------------------------------------------
+%% The si 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-germany.cfg}
+ [2008/02/18 v0.6 Germany locale]
+\sisetup{
+ unitsep=cdot,
+ valuesep=thin,
+ decimalsign=comma,
+ expproduct=cdot,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-germany.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-hep.cfg b/Master/texmf-dist/tex/latex/si/si-hep.cfg
new file mode 100644
index 00000000000..de4695f5c7d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-hep.cfg
@@ -0,0 +1,77 @@
+%%
+%% This is file `si-hep.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `hep')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Units for high-energy physics]
+\si@requirecfgs{prefix,named}
+\newunit{\micron}{\micro\metre}
+\newunit{\mrad}{\milli\radian}
+\newunit{\gauss}{G}
+\newunit{\nanobarn}{\nano\barn}
+\newunit{\picobarn}{\pico\barn}
+\newunit{\femtobarn}{\femto\barn}
+\newunit{\attobarn}{\atto\barn}
+\newunit{\zeptobarn}{\zepto\barn}
+\newunit{\yoctobarn}{\yocto\barn}
+\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}
+\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{\clight}{\ensuremath{\mathnormal{c}}}
+\newunit{\inveV}{\per\electronvolt}
+\newunit{\minveV}{\milli\per\electronvolt}
+\newunit{\kinveV}{\kilo\per\electronvolt}
+\newunit{\MinveV}{\mega\per\electronvolt}
+\newunit{\GinveV}{\giga\per\electronvolt}
+\newunit{\TinveV}{\tera\per\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-hep.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-named.cfg b/Master/texmf-dist/tex/latex/si/si-named.cfg
new file mode 100644
index 00000000000..48592f892e1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-named.cfg
@@ -0,0 +1,54 @@
+%%
+%% This is file `si-named.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `named')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 SI Named units]
+\newunit{\becquerel}{Bq}
+\newunit{\coulomb}{C}
+\newunit{\farad}{F}
+\newunit{\Gray}{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/si/si-physical.cfg b/Master/texmf-dist/tex/latex/si/si-physical.cfg
new file mode 100644
index 00000000000..15f03e149b6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-physical.cfg
@@ -0,0 +1,26 @@
+%%
+%% This is file `si-physical.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `physical')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 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}
+\newunit{\dalton}{Da}
+\endinput
+%%
+%% End of file `si-physical.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-prefix.cfg b/Master/texmf-dist/tex/latex/si/si-prefix.cfg
new file mode 100644
index 00000000000..90aa5e724ed
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-prefix.cfg
@@ -0,0 +1,49 @@
+%%
+%% This is file `si-prefix.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `prefix')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 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/si/si-prefixed.cfg b/Master/texmf-dist/tex/latex/si/si-prefixed.cfg
new file mode 100644
index 00000000000..e7199688dda
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-prefixed.cfg
@@ -0,0 +1,100 @@
+%%
+%% This is file `si-prefixed.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `prefixed')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 SI Prefixed units]
+\si@requirecfgs{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}{\nano\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{\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{\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/si/si-sistyle.cfg b/Master/texmf-dist/tex/latex/si/si-sistyle.cfg
new file mode 100644
index 00000000000..54291b53124
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-sistyle.cfg
@@ -0,0 +1,83 @@
+%%
+%% This is file `si-sistyle.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `sistyle')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Emulation of sistyle]
+\sisetup{%
+ sepfour=true,
+ obeyfamily,
+ obeyitalic=true,
+ numsign=+-,
+ numextra={},
+ unitsep=cdot}
+\newcommand*{\SIobeyboldtrue}{\sisetup{obeybold=true}}
+\newcommand*{\SIobeyboldfalse}{\sisetup{obeybold=false}}
+\DeclareRobustCommand{\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@decimalsign}}
+\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*{\SIdecimalsign}[1]{\sisetup{decimalsign={#1}}}
+\newcommand*{\SIthousandsep}[1]{\sisetup{digitsep={#1}}}
+\newcommand*{\SIproductsign}[1]{\sisetup{expproduct={#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{mathdefault}{#1}}
+\newcommand*{\SIdefaultNfam}[1]{\si@sis@savefont{mathnumdefault}{#1}}
+\newcommand*{\SIdefaultTfam}[1]{\si@sis@savefont{textdefault}{#1}}
+\DeclareRobustCommand*{\ensureupmath}[1]{%
+ \begingroup
+ \sisetup{mode=maths,obeyitalic=false}%
+ \si@out@text{#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/si/si-south-africa.cfg b/Master/texmf-dist/tex/latex/si/si-south-africa.cfg
new file mode 100644
index 00000000000..33bd259f8fb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-south-africa.cfg
@@ -0,0 +1,27 @@
+%%
+%% This is file `si-south-africa.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `south-africa')
+%% ----------------------------------------------------------------
+%% The si 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-south-africa.loc}
+ [2008/02/18 v0.6 UK Locale]
+\sisetup{
+ unitsep=cdot,
+ valuesep=thin,
+ expproduct=times,
+ decimalsign=comma,
+ digitsep=thin,
+ sepfour=false}
+\endinput
+%%
+%% End of file `si-south-africa.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-synchem.cfg b/Master/texmf-dist/tex/latex/si/si-synchem.cfg
new file mode 100644
index 00000000000..c0a63db9621
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-synchem.cfg
@@ -0,0 +1,25 @@
+%%
+%% This is file `si-synchem.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `synchem')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Units for synthetic chemists]
+\si@requirecfgs{prefix}
+\newunit{\mmHg}{mmHg}
+\newunit{\molar}{\mole\per\cubic\deci\metre}
+\newunit{\Molar}{\textsc{m}}
+\newunit{\torr}{Torr}
+\endinput
+%%
+%% End of file `si-synchem.cfg'.
diff --git a/Master/texmf-dist/tex/latex/si/si-units.cfg b/Master/texmf-dist/tex/latex/si/si-units.cfg
new file mode 100644
index 00000000000..8257a9a2239
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-units.cfg
@@ -0,0 +1,52 @@
+%%
+%% This is file `si-units.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `units')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Emulation of units]
+\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
+\DeclareRobustCommand*{\unit}[2][]{%
+ \ifmmode
+ \SI{#1}{#2}%
+ \else
+ \SI[obeyfamily,obeyitalic]{#1}{#2}%
+ \fi}
+\DeclareRobustCommand*{\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/si/si-unitsdef.cfg b/Master/texmf-dist/tex/latex/si/si-unitsdef.cfg
new file mode 100644
index 00000000000..c9d0d453585
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si-unitsdef.cfg
@@ -0,0 +1,238 @@
+%%
+%% This is file `si-unitsdef.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `unitsdef')
+%% ----------------------------------------------------------------
+%% The si 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}
+ [2008/02/18 v0.6 Emulation of unitsdef]
+\si@ifloaded{SIunits}
+ {\si@emclash{unitsdef}{SIunits}\endinput}{}
+\si@ifloaded{sistyle}
+ {\si@emclash{unitsdef}{sistyle}\endinput}{}
+\si@ifloaded{units}{}
+ {\InputIfFileExists{\si@fileprefix units.\si@cfgextension}
+ {}
+ {\si@log@err{Could not load \si@fileprefix
+ units.\si@cfgextension}
+ {The file \si@fileprefix units.\si@cfgextension is
+ required to emulate\MessageBreak
+ unitsdef, but cannot be found\MessageBreak
+ Is the si package properly installed?}
+ \endinput}}
+\RequirePackage{textcomp}
+\RequirePackage[T1]{fontenc}
+\sisetup{mode=text}
+\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}}
+\si@opt@choicekey{valuesep}{space,thin,med,medium,thick,none}
+ {\renewcommand*\unitvaluesep\@nameuse{si@fix@##1}}
+ {\renewcommand*\unitvaluesep{##1}}
+\DeclareRobustCommand*{\unitsignonly}{\unitsym}
+\DeclareRobustCommand*{\ilu}[2][]{%
+ \begingroup
+ #1\unitvaluesep%
+ \unit{#2}%
+ \endgroup}
+\DeclareRobustCommand*{\arc}{\ang}
+\newcommand*{\unitSIdef}{\upshape}
+\newcommand*{\si@unitSIdef}{\unitSIdef\selectfont}
+\sisetup{textdefault=si@unitSIdef,textnumdefault=si@unitSIdef}
+\DeclareRobustCommand*{\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
+\newunit{\meter}{\metre}
+\newunit{\liter}{L}
+\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}
+ \renewunit{\micl}{\micro\liter}
+ \renewunit{\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
+\si@requirecfgs{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/si/si.sty b/Master/texmf-dist/tex/latex/si/si.sty
new file mode 100644
index 00000000000..47c94e3f630
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/si/si.sty
@@ -0,0 +1,2140 @@
+%%
+%% This is file `si.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% si.dtx (with options: `package')
+%% ----------------------------------------------------------------
+%% The si 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}
+\ProvidesPackage{si}%
+ [2008/02/18 v0.6 A comprehensive (SI) units package]
+\PackageInfo{si}
+ {This package is experimental. \MessageBreak The interface and
+ functionality is subject to review \MessageBreak and may be changed
+ in later releases}
+\begingroup
+ \@ifundefined{eTeXversion}
+ {\PackageError{si}
+ {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}
+\RequirePackage{xkeyval}
+\@ifpackagelater{xkeyval}{2005/05/07}
+ {}
+ {\PackageError{si}
+ {xkeyval >= 2.5 required}
+ {si requires the `xkeyval' package, version 2.5 or
+ later.\MessageBreak The version loaded is:
+ `\@nameuse{ver@xkeyval.sty}'.\MessageBreak
+ This is a fatal error; the package will abort.}%
+ \endinput}
+\RequirePackage{amstext,array,xspace}
+\newcommand*{\si@tempa}{}
+\newcommand*{\si@tempb}{}
+\newcommand*{\si@tempc}{}
+\newif\ifsi@switch
+\newcommand*{\si@packagecheck}{%
+ \begingroup
+ \@for\si@tempa:=SIunits,siunits,sistyle,SIstyle,unitsdef\do{%
+ \@ifpackageloaded{\si@tempa}
+ {\PackageError{si}
+ {Package `\si@tempa' incompatible}
+ {The `\si@tempa' package and `si' are
+ incompatible.\MessageBreak Use the
+ `emulate=\si@tempa' package option when loading si.}}
+ {}}
+ \@for\si@tempa:=units\do{%
+ \@ifpackageloaded{\si@tempa}
+ {\PackageWarning{si}
+ {Consider loading the si package with\MessageBreak
+ option `emulate=\si@tempa', rather than\MessageBreak
+ loading both \si@tempa and si}}
+ {}}
+ \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}
+ {\@namedef{#1}{#2}}
+ {\si@temptoks\expandafter\expandafter\expandafter{%
+ \csname #1\endcsname#2}%
+ \expandafter\edef\csname #1\endcsname{\the\si@temptoks}}}
+\begingroup
+ \catcode`\Q=3
+ \long\gdef\si@xifmtarg#1#2Q#3#4#5\@nil{#4}
+ \long\gdef\si@ifnotmtarg#1{%
+ \si@xifmtarg#1QQ\@firstofone\@gobble\@nil}
+\endgroup
+\newif\ifsi@debug
+\newif\ifsi@logmin
+\newif\ifsi@lognone
+\newcommand*{\si@log@err}[2]{%
+ \ifsi@lognone\else
+ \ifsi@logmin
+ \PackageWarning{si}{#1}%
+ \else
+ \PackageError{si}{#1}{#2}%
+ \fi
+ \fi}
+\newcommand*{\si@log@warn}[1]{%
+ \ifsi@lognone\else
+ \ifsi@logmin\else
+ \PackageWarning{si}{#1}%
+ \fi
+ \fi}
+\newcommand*{\si@log@inf}[1]{%
+ \ifsi@lognone\else
+ \ifsi@logmin\else
+ \PackageInfo{si}{#1}%
+ \fi
+ \fi}
+\newcommand*{\si@log@debug}[1]{%
+ \ifsi@lognone\else
+ \ifsi@debug
+ \PackageInfo{si}{#1}%
+ \fi
+ \fi}
+\newcommand*{\sisetup}[1]{%
+ \iffalse{\fi\ifnum0=`}\fi
+ \setkeys[si]{opt}{#1}%
+ \ifnum0=`{\fi\iffalse}\fi}
+\newcommand*{\si@opt@key}[2]{%
+ \define@key[si]{opt}{#1}
+ {#2\si@log@debug{Option #1 set to ##1}}}
+\newcommand*{\si@opt@cmdkey}[3][]{%
+ \define@cmdkey[si]{opt}[si@]{#2}[#1]{#3}}
+\newcommand*{\si@opt@cmdkeys}[2][]{%
+ \define@cmdkeys[si]{opt}[si@]{#2}[#1]}
+\newcommand*{\si@opt@boolkey}[2][]{%
+ \define@boolkey[si]{opt}[si@]{#2}[true]
+ {#1\si@log@debug{Option #2 set to ##1}}}
+\newcommand*{\si@opt@choicekey}[5][]{%
+ \define@choicekey*+[si]{opt}{#2}[\si@tempa]{#3}[#1]
+ {#4\si@log@debug{Option #2 set to ##1}}
+ {#5\si@log@debug{Option #2 set to ##1}}}
+\newcommand*{\si@opt@xchoicekey}[3]{%
+ \si@opt@choicekey[#3]{#1}{#2}
+ {\expandafter\renewcommand\expandafter*%
+ \csname si@#1\endcsname{\@nameuse{si@fix@##1}}}
+ {\expandafter\renewcommand\expandafter*%
+ \csname si@#1\endcsname{##1}}
+ \expandafter\newcommand\expandafter*\csname si@#1\endcsname%
+ {\@nameuse{si@fix@#3}}}
+\newcommand*{\si@opt@compatkey}[2]{%
+ \define@boolkey[si]{opt}[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 si package}}}
+\newcommand*{\si@opt@disablekey}[2]{%
+ \key@ifundefined[si]{opt}{#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@log@warn{Unrecognised value `#1' for option log}}
+\si@opt@boolkey{debug}
+\newcommand*{\si@emulate}{}
+\si@opt@choicekey[SIunits]{emulate}
+ {SIunits,sistyle,numprint,units,unitsdef}
+ {\si@log@debug{Found emulation request for #1 package}%
+ \si@addtolist{\si@emulate}{#1}}
+ {\si@log@warn{Unknown value `#1' for option emulate
+ \MessageBreak No emulation will occur}}
+\AtEndOfPackage{%
+ \si@opt@disablekey{emulate}
+ {emulate option only available when\MessageBreak
+ loading package}}
+\si@opt@xchoicekey{unitsep}{thin,med,medium,thick,space,none,cdot,
+ times}{thin}
+\si@opt@xchoicekey{unitspace}{space,thin,med,medium,thick,none}
+ {thin}
+\si@opt@xchoicekey{valuesep}{space,thin,med,medium,thick,none}
+ {thin}
+\si@opt@xchoicekey{digitsep}
+ {thin,med,medium,thick,none,comma,stop,fullstop,period}{thin}
+\si@opt@xchoicekey{decimalsign}{comma,stop,fullstop,period,cdot}
+ {fullstop}
+\si@opt@xchoicekey{anglesep}{thin,med,medium,thick,none}{none}
+\si@opt@boolkey{obeymode}
+\newif\ifsi@textmode
+\si@opt@boolkey{textmode}
+\si@opt@choicekey{mode}{math,maths,text}
+ {\si@textmodefalse
+ \renewcommand*{\si@tempb}{text}%
+ \ifx\si@tempa\si@tempb
+ \si@textmodetrue
+ \fi}
+ {\si@log@warn{Unknown value `#1' for option mode}}
+\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@log@warn{Unknown value `#1' for option inlinebold}}
+\si@opt@boolkey{obeyitalic}
+\si@opt@cmdkeys{mathsdefault,mathsrm,mathssf,mathstt}
+\si@opt@key{mathdefault}{\sisetup{mathsdefault=#1}}
+\si@opt@key{mathrm}{\sisetup{mathsrm=#1}}
+\si@opt@key{mathsf}{\sisetup{mathssf=#1}}
+\si@opt@key{mathtt}{\sisetup{mathstt=#1}}
+\si@opt@cmdkeys{textdefault,textrm,textsf,texttt}
+\si@opt@cmdkeys{mathnumdefault,textnumdefault}
+\si@opt@key{mathsnumdefault}{\sisetup{mathnumdefault=#1}}
+\si@opt@cmdkeys{numlist,numdecimal,numexp,numgobble,numsign,numextra}
+\newcommand*{\si@numvalid}{\si@numgobble\si@numexp\si@numsign%
+ \si@numdecimal\si@numlist\si@numextra}
+\si@opt@boolkey{sepfour}
+\si@opt@xchoicekey{expproduct}{times,cdot}{times}
+\si@opt@xchoicekey{exppower}{ten}{ten}
+\si@opt@xchoicekey{prefixproduct}{times,cdot,none}{times}
+\si@opt@xchoicekey{prefixpower}{ten,two}{ten}
+\newif\ifsi@prefixnum
+\si@opt@choicekey{prefix}{symbol,letter,power,number}
+ {\si@prefixnumfalse
+ \renewcommand*{\si@tempb}{power}%
+ \ifx\si@tempa\si@tempb
+ \si@prefixnumtrue
+ \fi
+ \renewcommand*{\si@tempb}{number}%
+ \ifx\si@tempa\si@tempb
+ \si@prefixnumtrue
+ \fi}
+ {\si@log@warn{Unknown value `#1' for option prefix}}
+\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}
+ {\si@log@warn{Unknown value `#1' for option padnumber}}
+\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@log@warn{Unknown value `#1' for option addsign}}
+\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}
+ {\si@log@warn{Unknown value `#1' for option padangle}}
+\si@opt@boolkey{astroang}
+\si@opt@cmdkey[-1]{tabformat}{}
+\si@opt@boolkey{xspace}
+\newif\ifsi@slash
+\newif\ifsi@frac
+\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@log@warn{Unknown value `#1' for option per}}
+\si@opt@xchoicekey{slash}{slash}{slash}
+\si@opt@cmdkeys{denrbrac,denlbrac}
+\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@log@warn{Unknown value `#1' for option fraction}}
+\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 si}
+ \si@opt@disablekey{also}
+ {Configuration files can only be used\MessageBreak
+ when loading si}
+ \si@opt@disablekey{noload}
+ {Configuration files can only be used\MessageBreak
+ when loading si}}
+\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 C}
+\newcommand*{\si@mathscelsius}{\si@mathsdegree\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 si}}
+\newlength\si@eVcorra
+\newlength\si@eVcorrb
+\si@opt@key{eVcorra}{\setlength\si@eVcorra{#1}}
+\si@opt@key{eVcorrb}{\setlength\si@eVcorrb{#1}}
+\si@opt@cmdkeys{loadlocales,loctolang}
+\si@opt@cmdkey{locale}{%
+ \sisetup{loadlocales={#1}}%
+ \AtEndOfPackage{\si@loc@set{#1}}}
+\AtBeginDocument{%
+ \si@opt@disablekey{loadlocales}
+ {Locale files can only be loaded\MessageBreak
+ in the preamble}
+ \si@opt@disablekey{loctolang}
+ {Locale files can only be loaded\MessageBreak
+ in the preamble}
+ \si@opt@cmdkey{locale}{\si@loc@set{#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}
+\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@plus}{+}
+\newcommand*{\si@fix@minus}{-}
+\newcommand*{\si@fix@pm}{\pm}
+\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\DeclareRobustCommand\expandafter*\expandafter{%
+ \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}}%
+ \long\def\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{\frac{\expandafter\si@unt@out\expandafter{#1}}%
+ {\expandafter\si@unt@out\expandafter{#2}}}}
+\let\si@frac\si@frc@frac
+\newcommand*{\si@frc@slash}[2]{%
+ \expandafter\si@unt@out\expandafter{#1}%
+ \si@out@text{\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/\mkern-1mu%
+ \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@%
+ \selectfont{M}}%
+ \addtolength{\si@frc@textlen}{-\si@frc@ssuplen}%
+ \raisebox{\si@frc@textlen}{\fontsize\sf@size\z@%
+ \selectfont{#1}}%
+ \hspace{-0.25ex}/\hspace{-0.25ex}%
+ \hbox{\fontsize\sf@size\z@\selectfont{#2}}%
+ \endgroup}
+\newcommand*{\si@frc@ugly}[1]{%
+ \def\si@tempa{#1}%
+ \ifmmode
+ \expandafter\si@frc@frac%
+ \else
+ \def\si@tempb{1}%
+ \ifx\si@tempa\si@tempb
+ \setbox\si@tempbox=\hbox{\ensuremath{\si@valuesep}}%
+ \hskip-\wd\si@tempbox%
+ \def\si@tempa{}%
+ \fi
+ \expandafter\si@frc@slash%
+ \fi
+ {\si@tempa}}
+\newcommand*{\si@fam@getmfam}{%
+ \sbox{0}{$%
+ \@ifundefined{mathsf}
+ {\si@log@debug{No mathsf family found}%
+ \global\chardef\si@fam@sf=99}%
+ {\mathsf{\global\chardef\si@fam@sf=\fam}}%
+ \@ifundefined{mathtt}
+ {\si@log@debug{No mathtt family found}%
+ \global\chardef\si@fam@tt=99}%
+ {\mathtt{\global\chardef\si@fam@tt=\fam}}%
+ $}}
+\AtBeginDocument{\si@fam@getmfam}
+\newcommand*{\si@fam@ifbtext}[1]{%
+ \if b\expandafter\@car\f@series\@nil
+ #1\fi}
+\newcommand{\si@fam@ifbmaths}[1]{%
+ \def\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}
+\newif\ifsi@fam@set
+\newcommand*{\si@fam@set}{%
+ \si@fam@settrue
+ \edef\si@tempa{\sfdefault}%
+ \edef\si@tempb{\ttdefault}%
+ \ifsi@obeyfamily
+ \si@log@debug{Font detection: checking font}%
+ \ifmmode
+ \ifdim\displaywidth>0pt\relax
+ \si@log@debug{Font detection: display maths}%
+ \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@mathsdefault\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textdefault\endcsname
+ \fi
+ \fi
+ \else
+ \si@log@debug{Font detection: inline maths}%
+ \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@mathsdefault\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textdefault\endcsname
+ \fi
+ \fi
+ \fi
+ \else
+ \si@log@debug{Font detection: text}%
+ \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@mathsdefault\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textdefault\endcsname
+ \fi
+ \fi
+ \fi
+ \else
+ \si@log@debug{Font detection: inactive}%
+ \expandafter\let\expandafter\si@fam@maths
+ \csname\si@mathsdefault\endcsname
+ \expandafter\let\expandafter\si@fam@text
+ \csname\si@textdefault\endcsname
+ \fi
+ \def\si@fam@bold{\unboldmath\mdseries}%
+ \def\si@fam@setbold{\boldmath\bfseries}%
+ \ifsi@obeybold
+ \si@log@debug{Weight detection: checking weight}%
+ \ifmmode
+ \ifdim\displaywidth>0pt\relax
+ \si@fam@ifbmaths
+ {\let\si@fam@bold\si@fam@setbold
+ \si@log@debug{Weight detection: bold weight}}%
+ \else
+ \si@fam@ifbinline
+ {\let\si@fam@bold\si@fam@setbold
+ \si@log@debug{Weight detection: bold weight}}%
+ \fi
+ \else
+ \si@fam@ifbtext%
+ {\let\si@fam@bold\si@fam@setbold
+ \si@log@debug{Weight detection: bold weight}}%
+ \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}}%
+ \ifsi@textmode\else
+ \si@log@inf{maths mode - obeyitalic inactive}%
+ \fi
+ \fi}
+\DeclareRobustCommand*{\num}[2][]{%
+ \begingroup%
+ \sisetup{#1}%
+ \si@fam@mode%
+ \si@log@debug{Processing \string\num\space input `#2'}%
+ \expandafter\si@out@num\expandafter{\si@num{#2}}%
+ \endgroup}
+\newcommand*{\si@num}[1]{%
+ \begingroup
+ \makeatletter%
+ \@makeother{\,}%
+ \@makeother{\.}%
+ \@makeother{\+}%
+ \@makeother{\-}%
+ \def~{}%
+ \def\,{}%
+ \catcode`\~=\active\relax
+ \catcode`\^=\active\relax
+ \scantokens{\si@num@xdef\si@tempa{#1}\@empty}%
+ \endgroup
+ \si@ifnotmtarg{\si@tempa}{%
+ \expandafter\si@num@valid\si@tempa\@empty\@empty%
+ \ifsi@switch
+ \expandafter\si@num@format\expandafter\si@tempa%
+ \else
+ {#1}%
+ \fi}}
+\def\si@num@xdef#1#2\@empty{\xdef#1{#2}}
+\def\si@num@valid#1#2\@empty{%
+ \si@num@ifchr{#1}{\si@numvalid}{%
+ \ifx\@empty#2\@empty\else
+ \si@num@valid#2\@empty\@empty\@empty%
+ \fi
+ \si@switchtrue}%
+ {\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
+ macro\MessageBreak (or derivative such as an `s' column)}%
+ \si@switchfalse}}
+\newcommand*{\si@num@ifchr}[2]{%
+ \begingroup
+ \si@switchfalse
+ \def\si@tempa{#1}%
+ \edef\si@tempb{#2}%
+ \expandafter\si@num@chrstr\si@tempb\@empty\@empty%
+ \ifsi@switch%
+ \endgroup\expandafter\@firstoftwo%
+ \else
+ \endgroup\expandafter\@secondoftwo%
+ \fi}
+\def\si@num@chrstr#1#2\@empty{%
+ \def\si@tempc{#1}%
+ \edef\si@tempb{#2}%
+ \ifx\si@tempa\si@tempc
+ \si@switchtrue
+ \else
+ \ifx\@empty\si@tempb\@empty\else
+ \si@num@chrstr#2\@empty%
+ \fi
+ \fi}
+\newcommand*{\si@num@exp}{}
+\newcommand*{\si@num@mant}{}
+\newcommand*{\si@num@expout}{}
+\newcommand*{\si@num@mantout}{}
+\newcommand*{\si@num@out}{}
+\newcommand*{\si@num@format}[1]{%
+ \protected@edef\si@num@arg{#1}%
+ \def\si@num@exp{}%
+ \def\si@num@mant{}%
+ \def\si@num@expout{}%
+ \def\si@num@mantout{}%
+ \si@log@debug{Formatting number `\si@num@arg'}%
+ \si@switchfalse
+ \expandafter\si@num@mantexp\si@num@arg\@empty\@empty%
+ \si@num@sign{mant}%
+ \protected@edef\si@num@out{\si@num@mantout}%
+ \ifx\@empty\si@num@mant\@empty\else
+ \si@num@digits{mant}%
+ \protected@edef\si@num@out{\si@num@mantout}%
+ \fi
+ \si@num@sign{exp}%
+ \ifx\@empty\si@num@exp\@empty\else
+ \si@num@digits{exp}%
+ \ifx\@empty\si@num@mant\@empty\else
+ \protected@edef\si@num@out%
+ {\si@num@out\noexpand\ensuremath{{}\noexpand\si@expproduct{}}}%
+ \fi
+ \protected@edef\si@num@out%
+ {\si@num@out\si@exppower%
+ \noexpand\textsuperscript{\si@num@expout}}%
+ \fi
+ \ifx\@empty\si@num@mant\@empty
+ \ifx\@empty\si@num@exp\@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@numlist')?}%
+ \renewcommand*\si@num@out{}%
+ \fi
+ \fi%
+ \si@num@out}
+\def\si@num@mantexp#1#2\@empty{%
+ \si@num@ifchr{#1}{\si@numgobble}{}{%
+ \si@num@ifchr{#1}{\si@numexp}%
+ {\ifsi@switch
+ \si@log@err{Duplicate exponent marker found}%
+ {Only a single exponent character (from the list
+ `\si@numexp')\MessageBreak may occur in a
+ numerical argument}%
+ \fi
+ \si@switchtrue
+ \si@log@debug{Exponent marker `#1' found in `\si@num@arg'}}%
+ {\ifsi@switch
+ \si@log@debug{Adding `#1' to exponent for `\si@num@arg'}%
+ \protected@edef\si@num@exp{\si@num@exp#1}%
+ \else
+ \si@log@debug{Adding `#1' to mantissa for `\si@num@arg'}%
+ \protected@edef\si@num@mant{\si@num@mant#1}%
+ \fi}}%
+ \ifx\@empty#2\@empty\else
+ \si@num@mantexp#2\@empty\@empty\@empty%
+ \fi}
+\newcommand*{\si@num@sign}[1]{%
+ \expandafter\ifx\expandafter\@empty\csname si@num@#1\endcsname%
+ \@empty\else
+ \expandafter\expandafter\expandafter\si@num@gensign%
+ \csname si@num@#1\endcsname\@empty\@empty\@empty%
+ \edef\si@tempc{#1}%
+ \ifx\@empty\si@tempa\@empty
+ \def\si@tempa{mant}%
+ \ifx\si@tempa\si@tempc
+ \ifsi@num@signmant
+ \si@log@debug{Adding sign \si@sign\space to mantissa for
+ `\si@num@arg'}%
+ \protected@edef\si@tempa{\si@sign}%
+ \else
+ \def\si@tempa{}%
+ \fi
+ \else
+ \ifsi@num@signexp
+ \si@log@debug{Adding sign \si@sign\space to exponent for
+ `\si@num@arg'}%
+ \protected@edef\si@tempa{\si@sign}%
+ \else
+ \def\si@tempa{}%
+ \fi
+ \fi
+ \fi
+ \ifx\@empty\si@tempa\@empty
+ \def\si@tempa{mant}%
+ \ifx\si@tempa\si@tempc
+ \si@log@debug{Unsigned mantissa for `\si@num@arg'}%
+ \else
+ \si@log@debug{Unsigned exponent for `\si@num@arg'}%
+ \fi
+ \else
+ \expandafter\protected@edef\csname si@num@#1out\endcsname%
+ {\noexpand\ensuremath{\si@tempa}}%
+ \ifx\@empty\si@tempb\@empty
+ \expandafter\def\csname si@num@#1\endcsname{}%
+ \def\si@tempa{mant}%
+ \ifx\si@tempa\si@tempc
+ \ifx\@empty\si@num@exp\@empty
+ \si@log@warn{Sign but no number for `\si@num@arg'}%
+ \fi
+ \else
+ \si@log@warn{Sign but no number for `\si@num@arg'}%
+ \fi
+ \else
+ \expandafter\protected@edef\csname si@num@#1\endcsname%
+ {\si@tempb}%
+ \fi
+ \fi
+ \fi}
+\def\si@num@gensign#1#2#3\@empty{%
+ \si@num@ifchr{#1}{\si@numsign}{%
+ \si@num@ifchr{#2}{\si@numsign}{%
+ \if +#1
+ \if -#2
+ \si@log@debug{Found sign combination +- for `\si@num@arg'}%
+ \def\si@tempa{\pm}%
+ \else
+ \si@log@warn{Unknown sign combination `#1#2'}%
+ \def\si@tempa{#1#2}%
+ \fi
+ \else
+ \if -#1
+ \if +#2
+ \si@log@debug{Found sign combination -+ for `\si@num@arg'}%
+ \def\si@tempa{\mp}%
+ \else
+ \si@log@warn{Unknown sign combination `#1#2'}%
+ \def\si@tempa{#1#2}%
+ \fi
+ \else
+ \si@log@warn{Unknown sign combination `#1#2'}%
+ \def\si@tempa{#1#2}%
+ \fi
+ \fi
+ \edef\si@tempb{#3}}%
+ {\si@log@debug{Found single sign character `#1' for
+ `\si@num@arg'}%
+ \def\si@tempa{#1}%
+ \edef\si@tempb{#2#3}}}%
+ {\si@log@debug{No sign found for `\si@num@arg'}%
+ \def\si@tempa{}%
+ \edef\si@tempb{#1#2#3}}}%
+\newcommand*{\si@num@digits}[1]{%
+ \def\si@tempa{}%
+ \def\si@tempb{}%
+ \si@switchfalse
+ \expandafter\expandafter\expandafter\si@num@split%
+ \csname si@num@#1\endcsname\@empty\@empty%
+ \ifx\@empty\si@tempa\@empty
+ \ifsi@num@padlead
+ \si@log@debug{Adding leading zero for `\si@num@arg'}%
+ \def\si@tempa{0}%
+ \fi
+ \fi
+ \ifx\@empty\si@tempb\@empty
+ \ifsi@num@padtrail
+ \ifsi@switch
+ \si@log@debug{Adding trailing zero for `\si@num@arg'}%
+ \def\si@tempb{0}%
+ \fi
+ \fi
+ \fi
+ \ifx\@empty\si@tempa\@empty
+ \ifx\@empty\si@tempb\@empty\else
+ \si@num@sepdigits{#1}%
+ \fi
+ \else
+ \si@num@sepdigits{#1}%
+ \fi}
+\def\si@num@split#1#2\@empty{%
+ \si@num@ifchr{#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'}%
+ \si@switchtrue
+ \fi}{%
+ \si@num@ifchr{#1}{\si@numsign}{%
+ \si@log@err{Misplaced sign in `\si@num@arg'}
+ {Sign characters `\si@numsign' can only occur\MessageBreak
+ at the start of a number}}{%
+ \ifsi@switch
+ \si@log@debug{Adding `#1' to decimal part for `\si@num@arg'}%
+ \protected@edef\si@tempb{\si@tempb#1}%
+ \else
+ \si@log@debug{Adding `#1' to integer part for `\si@num@arg'}%
+ \protected@edef\si@tempa{\si@tempa#1}%
+ \fi}}%
+ \ifx\@empty#2\@empty\else
+ \si@num@split#2\@empty\@empty%
+ \fi}
+\newcommand*{\si@num@decimalhook}{}
+\newcommand*{\si@num@sepdigits}[1]{%
+ \si@num@ifextra{\si@tempa}{}
+ {\expandafter\si@num@int\expandafter{\si@tempa}}%
+ \def\si@tempc{}%
+ \ifx\@empty\si@tempb\@empty\else
+ \protected@edef\si@tempc{\noexpand\ensuremath{{\noexpand%
+ \si@decimalsign}}}%
+ \si@num@decimalhook%
+ \si@num@ifextra{\si@tempb}{}%
+ {\expandafter\si@num@dec\expandafter{\si@tempb}}%
+ \fi
+ \expandafter\protected@edef\csname si@num@#1out\endcsname%
+ {\csname si@num@#1out\endcsname\si@tempa\si@tempc\si@tempb}}
+\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'}%
+ \endgroup\expandafter\@firstoftwo%
+ \else
+ \endgroup\expandafter\@secondoftwo%
+ \fi}
+\def\si@num@extra#1#2\@empty{%
+ \ifx\@empty#1\@empty\else
+ \si@num@ifchr{#1}{\si@numextra}{\si@switchtrue}{}%
+ \ifx\@empty#2\@empty\else
+ \si@num@extra#2\@empty\@empty%
+ \fi
+ \fi}
+\newcommand*{\si@num@int}[1]{%
+ \def\si@tempa{}%
+ \ifsi@sepfour
+ \si@num@intfmt{}#1\@empty\@empty\@empty%
+ \else
+ \si@num@iffive{#1}
+ {\si@num@intfmt{}#1\@empty\@empty\@empty}
+ {\def\si@tempa{#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@tempa{\si@tempa#1#2#3}%
+ \if\relax#4\relax
+ \else
+ \protected@edef\si@tempa{\si@tempa\noexpand\ensuremath{\noexpand%
+ \si@digitsep}}%
+ \expandafter\si@num@intsep\expandafter#4%
+ \fi}
+\newcommand*{\si@num@dec}[1]{%
+ \def\si@tempb{}%
+ \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@tempb{\si@tempb#1}}%
+ \fi
+}
+\newcommand*{\si@num@decfmt}[4]{%
+ \protected@edef\si@tempb{\si@tempb#1#2#3}%
+ \ifx\@empty#4\@empty%
+ \else
+ \protected@edef\si@tempb{\si@tempb\noexpand\ensuremath{\noexpand%
+ \si@digitsep}}%
+ \expandafter\si@num@decfmt\expandafter#4%
+ \fi}
+\DeclareRobustCommand*{\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{\si@ang@set{#1}{#2}{#3}}
+\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@decimalsign}{%
+ \rlap{\si@ang@decimalsign}%
+ \expandafter\csname si@sym@#1\endcsname}%
+ \def\si@num@decimalhook{\expandafter\aftergroup%
+ \csname si@ang@kill#1\endcsname}}%
+\newcommand*{\si@ang@set}[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@decimalsign{\si@decimalsign}%
+ \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'}%
+ \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'}%
+ \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%
+ \else
+ \relax%
+ \fi}
+\newcommand{\si@ang@num}[2]{%
+ \begingroup%
+ \si@ang@movesign{#1}%
+ \si@num{#2}%
+ \endgroup}
+\newcommand{\si@ang@signlessnum}[2]{%
+ \begingroup%
+ \si@ang@movesign{#1}%
+ \sisetup{addsign=none}%
+ \si@num{#2}%
+ \endgroup}
+\newcolumntype{s}{}
+\renewcommand*{\NC@rewrite@s}{%
+ \@ifnextchar[%]
+ {\si@tab@rewrite}
+ {\si@tab@rewrite[]}
+}
+\def\si@tab@rewrite[#1]{%
+ \edef\si@tempa{\the\@temptokena
+ >{\noexpand\si@tab@begin[#1]\noexpand\ignorespaces}c%
+ <{\noexpand\si@tab@end}}%
+ \@temptokena\expandafter{\si@tempa}%
+ \NC@find}
+\newtoks\si@tab@numtoks
+\newtoks\si@tab@pretoks
+\newtoks\si@tab@posttoks
+\newcommand*{\si@tab@begin}[1][]{%
+ \begingroup
+ \sisetup{#1}%
+ \si@tab@numtoks{}%
+ \si@tab@pretoks{}%
+ \si@tab@posttoks{}%
+ \si@switchfalse
+ \si@log@debug{Processing s column cell contents}%
+ \si@tab@gettok}
+\newcommand*{\si@tab@gettok}[1]{%
+ \ifx\tabularnewline#1
+ \let\si@tab@next\tabularnewline
+ \else
+ \ifx\end#1
+ \let\si@tab@next\end
+ \else
+ \ifx\si@tab@end#1
+ \let\si@tab@next\si@tab@end
+ \else
+ \ifx\endtabular#1
+ \let\si@tab@next\endtabular
+ \else
+ \ifx\csname#1
+ \let\si@tab@next\csname
+ \else
+ \ifx\relax#1\relax
+ \let\si@tab@next\relax
+ \else
+ \let\si@tab@next\si@tab@gettok
+ \si@num@ifchr{#1}{\si@numvalid}
+ {\si@switchtrue
+ \si@log@debug{Found valid cell contents `#1'}%
+ \si@tab@numtoks=\expandafter{\the\si@tab@numtoks#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@end}{%
+ \hfil%
+ \the\si@tab@pretoks%
+ \ifsi@switch
+ \expandafter\si@tab@numout%
+ \fi
+ \the\si@tab@posttoks%
+ \hfil%
+ \endgroup}
+\newcount\si@tempcnta
+\newcount\si@tempcntb
+\newcommand*{\si@tab@numout}{%
+ \let\si@num@format\si@tab@num@format
+ \expandafter\si@num\expandafter{\the\si@tab@numtoks}%
+ \afterassignment\si@tab@format\expandafter\si@tempcnta%
+ \si@tabformat\relax}
+\newcommand*{\si@tab@mantout}{}
+\newcommand*{\si@tab@num@format}[1]{%
+ \let\si@tab@org@sepdigits\si@num@sepdigits
+ \let\si@num@sepdigits\si@tab@num@sepdigits
+ \edef\si@num@arg{#1}%
+ \si@switchfalse
+ \expandafter\si@num@mantexp\si@num@arg\@empty\@empty%
+ \si@num@sign{mant}%
+ \ifx\@empty\si@num@mant\@empty\else
+ \si@num@digits{mant}%
+ \protected@edef\si@num@out{\si@tab@mantout}%
+ \fi
+ \let\si@num@sepdigits\si@tab@org@sepdigits
+ \si@num@sign{exp}%
+ \ifx\@empty\si@num@exp\@empty\else
+ \si@num@digits{exp}%
+ \ifx\@empty\si@num@mant\@empty\else
+ \protected@edef\si@num@out%
+ {\si@num@out\noexpand\ensuremath{\noexpand\si@expproduct}}%
+ \fi
+ \protected@edef\si@num@out%
+ {\si@num@out\si@exppower%
+ \noexpand\textsuperscript{\si@num@expout}}%
+ \fi
+ \ifx\@empty\si@num@mant\@empty
+ \ifx\@empty\si@num@exp\@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@numlist')?}%
+ \renewcommand*\si@num@out{}%
+ \renewcommand*\si@tab@mantout{}%
+ \fi
+ \fi}
+\newcommand*{\si@tab@num@sepdigits}[1]{%
+ \si@num@ifextra{\si@tempa}{}
+ {\expandafter\si@num@int\expandafter{\si@tempa}}%
+ \def\si@tempc{}%
+ \ifx\@empty\si@tempb\@empty\else
+ \si@num@ifextra{\si@tempb}{}%
+ {\expandafter\si@num@dec\expandafter{\si@tempb}}%
+ \fi
+ \expandafter\protected@edef\csname si@num@#1out\endcsname%
+ {\csname si@num@#1out\endcsname\si@tempa}%
+ \expandafter\protected@edef\csname si@tab@#1out\endcsname%
+ {\si@tempb}}%
+\newbox\si@tab@prebox
+\newbox\si@tab@postbox
+\newbox\si@tempbox
+\def\si@tab@format#1\relax{%
+ \ifnum\z@<\si@tempcnta
+ \expandafter\si@tab@right%
+ \else
+ \expandafter\si@tab@centre%
+ \fi
+ {#1}%
+ \box\si@tab@prebox\box\si@tab@postbox}
+\newcommand*\si@tab@centre[1]{%
+ \setbox\si@tab@prebox=\hbox%
+ {\expandafter\si@out@num\expandafter{\si@num@mantout}}%
+ \ifx\@empty\si@tab@mantout\@empty
+ \ifx\@empty\si@num@out\@empty
+ \setbox\si@tab@postbox=\hbox%
+ {\phantom{\ensuremath{{\si@decimalsign}}}}%
+ \else
+ \setbox\si@tab@postbox=\hbox%
+ {\expandafter\si@out@num\expandafter{\si@num@out}}%
+ \fi
+ \else
+ \setbox\si@tab@postbox=\hbox%
+ {\ensuremath{{\si@decimalsign}}%
+ \expandafter\si@out@num\expandafter{\si@num@out}}%
+ \fi
+ \ifdim \wd\si@tab@prebox>\wd\si@tab@postbox
+ \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}
+\newdimen\si@tab@predim
+\newdimen\si@tab@postdim
+\newdimen\si@tempdima
+\newdimen\si@tempdimb
+\newcommand*\si@tab@right[1]{%
+ \setbox\si@tempbox=\hbox{\si@out@num{1}}
+ \si@tempdima\wd\si@tempbox
+ \ifx\relax#1\relax
+ \hfill
+ \let\si@tab@prea\relax
+ \let\si@tab@preb\relax
+ \else
+ \si@tab@predim\the\si@tempcnta\si@tempdima
+ \si@tab@sepcorr{pre}%
+ \edef\si@tab@prea{to\si@tab@predim}%
+ \edef\si@tab@preb{\hss\hfill}%
+ \si@tempcnta\@gobble#1\relax
+ \fi
+ \si@tab@postdim\si@tempcnta\si@tempdima
+ \setbox\si@tempbox=\hbox{\ensuremath{{\si@decimalsign}}}%
+ \advance\si@tab@postdim\wd\si@tempbox
+ \si@tab@sepcorr{post}%
+ \setbox\si@tab@prebox=\hbox\si@tab@prea{\si@tab@preb%
+ \expandafter\si@out@num\expandafter{\si@num@mantout}}%
+ \ifx\@empty\si@tab@mantout\@empty
+ \setbox\si@tab@postbox=\hbox to\si@tab@postdim%
+ {\expandafter\si@out@num\expandafter{\si@num@out}\hfil}%
+ \else
+ \setbox\si@tab@postbox=\hbox to\si@tab@postdim%
+ {\ensuremath{{\si@decimalsign}}\expandafter\si@out@num%
+ \expandafter{\si@num@out}\hfil}%
+ \fi}
+\newcommand*{\si@tab@sepcorr}[1]{%
+ \si@tempcntb\the\si@tempcnta\relax
+ \divide\si@tempcntb\thr@@
+ \ifsi@sepfour\else
+ \ifnum\the\si@tempcnta=4
+ \si@tempcntb\z@
+ \fi
+ \fi
+ \setbox\si@tempbox=\hbox{\ensuremath{\si@digitsep}}%
+ \expandafter\advance\csname si@tab@#1dim\endcsname%
+ \si@tempcntb\wd\si@tempbox}%
+\DeclareRobustCommand*{\SI}[2][]{%
+ \@ifnextchar[%]
+ {\si@SI[#1]{#2}}
+ {\si@SI[#1]{#2}[]}}
+\DeclareRobustCommand*{\unitsym}[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@unt@defunit[#1]{#2}{#3}}}
+\newcommand*{\provideunit}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defunit[#1]{#2}{#3}}
+ {}}
+\newcommand*{\newprefix}[3]{%
+ \si@ifdefinable{#1}
+ {\si@unt@defprefix{#1}{#2}{#3}}
+ {\si@log@err{Prefix \string#1 already defined!}\@eha}}
+\newcommand*{\renewprefix}[3]{%
+ \si@ifdefinable{#1}
+ {\si@log@err{Prefix \string#1 undefined}\@ehc
+ \si@unt@defprefix{#1}{#2}{#3}}
+ {\si@unt@defprefix{#1}{#2}{#3}}}
+\newcommand*{\provideprefix}[3]{%
+ \si@ifdefinable{#1}
+ {\si@unt@defprefix{#1}{#2}{#3}}
+ {}}
+\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@unt@defpower[#1]{#2}{#3}}}
+\newcommand*{\providepower}[3][]{%
+ \si@ifdefinable{#2}
+ {\si@unt@defpower[#1]{#2}{#3}}
+ {}}
+\newif\ifsi@unt@num\si@unt@numtrue
+\def\si@SI[#1]#2[#3]#4{%
+ \begingroup
+ \si@ifnotmtarg{#1}
+ {\sisetup{#1}%
+ \edef\si@unt@SIopts{#1}}%
+ \si@unt@numfalse
+ \si@xspacefalse
+ \si@ifnotmtarg{#3}
+ {\si@log@debug{Prefix unit found}%
+ \si@unt@printunit{#3}}%
+ \si@ifnotmtarg{#2}
+ {\si@log@debug{Number found in \string\SI\space argument}%
+ \num{#2}%
+ \si@unt@numtrue}%
+ \si@ifnotmtarg{#4}
+ {\si@unt@printunit{#4}}%
+ \endgroup}
+\newif\ifsi@unt@littest
+\newcommand*{\si@unt@ifliteral}[1]{%
+ \begingroup
+ \si@unt@littesttrue
+ \setbox\si@tempbox=\hbox{\si@unt@out{#1}}%
+ \ifdim\wd\si@tempbox>\z@\relax
+ \endgroup\expandafter\@firstoftwo%
+ \else
+ \endgroup\expandafter\@secondoftwo%
+ \fi}
+\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@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\expandafter\expandafter\def\expandafter%
+ \csname\expandafter\@gobble\string#2@opt@unt@si\endcsname{#1}}%
+ \DeclareRobustCommand*{#2}[1][]{%
+ \ifsi@unt@littest
+ \expandafter\si@gobblethree
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\@gobbletwo
+ \else
+ \expandafter\expandafter\expandafter\si@unt@unit%
+ \fi
+ \fi
+ {##1}{#2}{#3}}}
+\long\def \si@gobblethree #1#2#3{}
+\newcommand*{\si@unt@defprefix}[3]{%
+ \si@log@debug{Declaring multiple \string#1 with \MessageBreak
+ meaning \string#3}%
+ \DeclareRobustCommand{#1}{%
+ \ifsi@unt@littest
+ \expandafter\si@gobblethree
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\@gobbletwo
+ \else
+ \expandafter\expandafter\expandafter\si@unt@prefix%
+ \fi
+ \fi
+ {#1}{#2}{#3}}}
+\newcommand*{\si@unt@defpower}[3][]{%
+ \si@log@debug{Declaring power \string#2 with \MessageBreak
+ meaning \string#3}%
+ \expandafter\expandafter\expandafter\edef\expandafter%
+ \csname\expandafter\@gobble\string#2@opt@si\endcsname{#1}%
+ \DeclareRobustCommand{#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@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
+ \def\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}{%
+ \def\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@prefixnum
+ \expandafter\si@unt@countprefix%
+ \else
+ \expandafter\si@unt@addprefix%
+ \fi
+ {#2}{#3}}
+\newcommand*{\si@unt@addprefix}[2]{\si@unt@addtostack{prefix}{#2}}
+\newcount\si@unt@prefixcnt
+\newcommand*{\si@unt@countprefix}[2]{%
+ \si@tempcnta#1\relax
+ \ifsi@unt@per
+ \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]{%
+ \si@unt@powerdim #2 pt\relax
+ \ifsi@frac\else
+ \ifsi@unt@per
+ \expandafter\expandafter\expandafter\si@unt@invpower%
+ \fi
+ \fi
+ \def\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%
+ \fi}
+\newdimen\si@unt@powerdim
+\newcommand*{\si@unt@stackpower}{%
+ \si@unt@prepowerfalse
+ \si@unt@stkpower%
+ \si@unt@perfalse
+ \si@unt@perseenfalse}
+\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
+ \edef\si@tempa{unit}%
+ \expandafter\ifx\csname si@unt@lastadd\si@unt@checkstack%
+ \endcsname\si@tempa
+ \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
+\DeclareRobustCommand*{\per}{\si@per}
+\newcommand*{\si@per}{%
+ \si@unt@firstorsecond{}{\per}%
+ \ifsi@unt@per
+ \expandafter\si@unt@perfalse
+ \else
+ \expandafter\si@unt@pertrue
+ \fi}
+\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]{%
+ \edef\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]{%
+ \def\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\edef\csname si@unt@lastadd\si@unt@checkstack%
+ \endcsname{#1}%
+ \edef\si@tempa{#1}%
+ \def\si@tempb{unit}%
+ \ifx\si@tempa\si@tempb
+ \expandafter\si@unt@inccnt%
+ \fi
+ \def\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]{%
+ \expandafter\protected@edef\csname si@unt@holdstack%
+ \si@unt@checkstack\endcsname{#1}}
+\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}{%
+ \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@text{\ensuremath{{}\si@prefixproduct{}}}%
+ \fi
+ \let\si@exppower\si@prefixpower
+ \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
+ \expandafter\expandafter\expandafter\si@unt@notabg%
+ \fi
+ \fi}
+\newcommand*{\si@unt@notabg}{%
+ \protected@edef\si@unt@stackb{\si@denlbrac\si@unt@stackb%
+ \si@denrbrac}}
+\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}}%
+ \scantokens{\si@out@text{#1}\@empty}%
+ \endgroup}
+\endgroup
+\newcommand*{\si@unt@nonlatin}{\relax}
+\AtBeginDocument{%
+ \@ifpackageloaded{inputenc}
+ {\def\si@tempa{latin1}%
+ \ifx\inputencodingname\si@tempa
+ \si@unt@sym{176}{\si@sym@degree}%
+ \si@unt@sym{181}{\si@sym@mu}%
+ \si@unt@sym{229}{\si@sym@ringA}%
+ \fi}
+ {}}
+\newcommand*{\si@unt@sym}[1]{%
+ \bgroup
+ \uccode`\~#1%
+ \uppercase{%
+ \egroup
+ \def~}}
+\newunit{\kilogram}{kg}
+\newunit{\metre}{m}
+\newunit{\mole}{mol}
+\newunit{\second}{s}
+\newunit{\ampere}{A}
+\newunit{\kelvin}{K}
+\newunit{\candela}{cd}
+\newpower{\Square}{2}
+\newpower[post]{\squared}{2}
+\newpower{\cubic}{3}
+\newpower[post]{\cubed}{3}
+\newcommand*{\tothe}[1]{%
+ \ifsi@unt@littest
+ \expandafter\@gobbletwo
+ \else
+ \ifsi@unt@litout
+ \expandafter\expandafter\expandafter\si@unt@litpower%
+ \else
+ \expandafter\expandafter\expandafter\si@unt@power%
+ \fi
+ \fi
+ {\tothe}{#1}}
+\newcommand*{\tothe@opt@si}{post}
+\newcommand*{\si@loc@load}[1]{%
+ \let\si@loc@sisetup\sisetup
+ \renewcommand*{\sisetup}[1]{%
+ \expandafter\def\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*{\addtolocale}[2]{\si@addtocsname{si@loc@#1@extra}{#2}}
+\begingroup
+ \catcode`\^=\active\relax
+ \catcode`\-=\active\relax
+ \gdef\si@out@text#1{%
+ \begingroup
+ \catcode`\^=\active\relax%
+ \makeatletter%
+ \ifsi@fam@set\else
+ \expandafter\si@fam@set%
+ \fi
+ \text{\si@fam@italic\si@fam@bold\si@fam@text%
+ \ifsi@textmode
+ \let^\textsuperscript
+ \catcode`\-=\active\relax%
+ \let-\si@out@minus
+ \scantokens{#1\@empty}%
+ \else
+ \let^\sp
+ \let\textsuperscript\sp
+ $\si@fam@maths{\scantokens{#1}}$%
+ \fi}%
+ \endgroup
+ \check@mathfonts}
+\endgroup
+\newcommand*{\si@out@minus}{\ensuremath{-}}
+\newcommand*{\si@out@num}[1]{%
+ \begingroup
+ \sisetup{%
+ textdefault=\si@textnumdefault,%
+ mathdefault=\si@mathnumdefault}%
+ \si@out@text{#1}%
+ \endgroup}
+\sisetup{
+ unitsep=thin,
+ valuesep=thin,
+ decimalsign=fullstop,
+ digitsep=thin,
+ obeybold=false,
+ inlinebold=text,
+ obeyitalic=false,
+ sign=plus,
+ addsign=none,
+ obeymode=false,
+ mode=maths,
+ padangle=small,
+ padnumber=lead,
+ sepfour=false,
+ tabformat=-1,
+ xspace=false,
+ per=reciprocal,
+ slash=slash,
+ mathsdefault=\si@mathsrm,
+ mathsrm=mathrm,
+ mathssf=mathsf,
+ mathstt=mathtt,
+ textdefault=\si@textrm,
+ textrm=rmfamily,
+ textsf=sffamily,
+ texttt=ttfamily,
+ mathsnumdefault=\si@mathsrm,
+ textnumdefault=\si@textrm,
+ numlist=0123456789,
+ numdecimal={.,},
+ numexp=eEdD,
+ numgobble={},
+ numsign=+-\pm\mp,
+ numextra=(),
+ redefsymbols=true,
+ load=default,
+ noload={},
+ eVcorra={0.3ex},
+ eVcorrb={0ex},
+ denlbrac=(,
+ denrbrac=),
+ astroang=false,
+ loadlocales={},
+ loctolang={},
+ prefix=symbol,
+ prefixpower=ten,
+ prefixproduct=times}
+\ProcessOptionsX[si]<opt>
+\newcommand*{\si@extension}{cfg}
+\newcommand*{\si@fileprefix}{si-}
+\newcommand*{\si@ifloaded}[1]{%
+ \@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*{\si@requirecfgs}[1]{%
+ \@for\si@tempa:=#1\do{\si@loadfile{\si@tempa}}}
+\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 si 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'}}
+\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
+ \def\si@tempb{default}
+ \def\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}
+ \def\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}
+\ifx\@empty\si@loadlocales\@empty\else
+ \@for\si@tempa:=\si@loadlocales\do{%
+ \si@loc@load{\si@tempa}}
+\fi
+\ifx\@empty\si@loctolang\@empty\else
+ \def\si@tempa#1:#2\@nil{\si@loc@load{#1}}
+ \@for\si@tempb:=\si@loctolang\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:=\si@loctolang\do{%
+ \expandafter\si@tempa\si@tempb::\@nil}}
+ {\si@log@warn{babel not loaded - option\MessageBreak
+ loctolang ignored}}}
+\fi
+\IfFileExists{si.cfg}
+ {\si@log@inf{Local configuration file found}%
+ \InputIfFileExists{si.cfg}{}{}}
+ {}
+\endinput
+%%
+%% End of file `si.sty'.