From 3a5c4408a5ea1eff072ec15563a8e805c8c91bab Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 21 Feb 2008 18:13:54 +0000 Subject: newish exptl latex package si (19feb08) git-svn-id: svn://tug.org/texlive/trunk@6705 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/si/jawltxdoc.sty | 151 ++ Master/texmf-dist/tex/latex/si/si-SIunits.cfg | 347 ++++ Master/texmf-dist/tex/latex/si/si-UK.cfg | 27 + Master/texmf-dist/tex/latex/si/si-USA.cfg | 27 + Master/texmf-dist/tex/latex/si/si-abbr.cfg | 71 + Master/texmf-dist/tex/latex/si/si-accepted.cfg | 37 + Master/texmf-dist/tex/latex/si/si-addn.cfg | 31 + Master/texmf-dist/tex/latex/si/si-binary.cfg | 28 + Master/texmf-dist/tex/latex/si/si-germany.cfg | 27 + Master/texmf-dist/tex/latex/si/si-hep.cfg | 77 + Master/texmf-dist/tex/latex/si/si-named.cfg | 54 + Master/texmf-dist/tex/latex/si/si-physical.cfg | 26 + Master/texmf-dist/tex/latex/si/si-prefix.cfg | 49 + Master/texmf-dist/tex/latex/si/si-prefixed.cfg | 100 + Master/texmf-dist/tex/latex/si/si-sistyle.cfg | 83 + Master/texmf-dist/tex/latex/si/si-south-africa.cfg | 27 + Master/texmf-dist/tex/latex/si/si-synchem.cfg | 25 + Master/texmf-dist/tex/latex/si/si-units.cfg | 52 + Master/texmf-dist/tex/latex/si/si-unitsdef.cfg | 238 +++ Master/texmf-dist/tex/latex/si/si.sty | 2140 ++++++++++++++++++++ 20 files changed, 3617 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/si/jawltxdoc.sty create mode 100644 Master/texmf-dist/tex/latex/si/si-SIunits.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-UK.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-USA.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-abbr.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-accepted.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-addn.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-binary.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-germany.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-hep.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-named.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-physical.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-prefix.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-prefixed.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-sistyle.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-south-africa.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-synchem.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-units.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si-unitsdef.cfg create mode 100644 Master/texmf-dist/tex/latex/si/si.sty (limited to 'Master/texmf-dist/tex') 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] +\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'. -- cgit v1.2.3