diff options
author | Karl Berry <karl@freefriends.org> | 2008-09-05 18:49:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-09-05 18:49:14 +0000 |
commit | 4b1c829c2bee6f9a1ea665a342afbc563cb63b61 (patch) | |
tree | 11e5a7de4d84535c8641a23297cf63c409417bcc /Master | |
parent | ae41bbd3003da49008e930d3f24b1908d316e810 (diff) |
siunitx 1.0l (3sep08)
git-svn-id: svn://tug.org/texlive/trunk@10435 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
27 files changed, 328 insertions, 156 deletions
diff --git a/Master/texmf-dist/doc/latex/siunitx/si-colour.pdf b/Master/texmf-dist/doc/latex/siunitx/si-colour.pdf Binary files differnew file mode 100644 index 00000000000..0a95a1935a1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/siunitx/si-colour.pdf diff --git a/Master/texmf-dist/doc/latex/siunitx/siunitx-manual.pdf b/Master/texmf-dist/doc/latex/siunitx/siunitx-manual.pdf Binary files differindex dfdc10080db..34bd6644f36 100644 --- a/Master/texmf-dist/doc/latex/siunitx/siunitx-manual.pdf +++ b/Master/texmf-dist/doc/latex/siunitx/siunitx-manual.pdf diff --git a/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf b/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf Binary files differindex 00931e5e1b8..f6c4808697a 100644 --- a/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf +++ b/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf diff --git a/Master/texmf-dist/source/latex/siunitx/siunitx.dtx b/Master/texmf-dist/source/latex/siunitx/siunitx.dtx index e04f3c463d8..0f82125a68e 100644 --- a/Master/texmf-dist/source/latex/siunitx/siunitx.dtx +++ b/Master/texmf-dist/source/latex/siunitx/siunitx.dtx @@ -203,15 +203,13 @@ dcolumn, rccol and numprint packages. \RecordChanges %\OnlyDescription % Various adjustments are needed to the packages loaded. xfrac is -% only loaded if it is available. MiKTeX users should note that they -% will need to download the expl3 and xbase bundles from CTAN to use -% xfrac; the MiKTeX versions are very old and will cause errors. +% only loaded if it is available. \usepackage[final]{graphicx} \IfFileExists{xfrac.sty} {\usepackage{xfrac}} {} \usepackage{jawltxdoc} -\usepackage{textcomp,tikz,pgfplots,tocloft} +\usepackage{textcomp,tikz,pgfplots,tocloft,datatool} \usepackage[latin1]{inputenc} \sisetup{ eVcorra=0.1ex, @@ -225,7 +223,7 @@ dcolumn, rccol and numprint packages. %</driver> % \fi % -%\CheckSum{9506} +%\CheckSum{9558} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -291,7 +289,7 @@ dcolumn, rccol and numprint packages. %\DoNotIndex{\usebox,\tw@,\ifinner,\usepackage,\texttt,\textsf} %\DoNotIndex{\NC@do,\loop,\l@ngrel@x,\g@addto@macro,\documentclass} %\DoNotIndex{\document\,\begin,\=,\@ehb,\\,\listfiles,\nullfont} -%\DoNotIndex{\normalsize} +%\DoNotIndex{\normalsize,\futurelet} % %\DoNotIndex{\pascalsecond,\amperemetresecond,\ohmmetre} %\DoNotIndex{\newtonmetre,\newtonmetrenp} @@ -306,7 +304,8 @@ dcolumn, rccol and numprint packages. % raiseto,deci,mathnormal,numprint,electronvolt,selectlanguage, % kibi,byte,molar,Molar,mmHg,mebi,torr,parsec,lightyear,clight, % eVperc,addplot,color,milli,cm,Hz,kg,DeclareRobustCommand, -% pascal,dalton,addtolocale}} +% pascal,dalton,addtolocale,DTLnewdb,DTLnewrow,DTLnewdbentry, +% DTLforeach,DTLiffirstrow,DTLmul}} % %\title{\currpkg\ --- A comprehensive (SI) units package^^A % \thanks{This file describes version \fileversion, last revised @@ -2722,6 +2721,70 @@ dcolumn, rccol and numprint packages. % \end{table} %\end{LaTeXexample} % +%\subsection{Expanding content in tables} +% When processing |S| columns, \currpkg works hard to expand any +% items which may give numbers. So for example you can define values +% as macros (\ref{tab:vmacros}). To avoid the expansion of single +% macros, you must either wrap them in two sets of braces or make +% them robust (using either \cs{DeclareRobustCommand} or +% \cs{protected}). +%\begin{LaTeXexample}[float] +% \begin{table} +% \caption{Values as macros} +% \label{tab:vmacros} +% \centering +% \newcommand*{\myvala}{1.234}% +% \newcommand*{\myvalb}{20.345}% +% \newcommand*{\myvalc}{0.987654}% +% \DeclareRobustCommand*{\myvald}{88.88}% +% \begin{tabular}{S[tabtextalign=left]} +% \toprule +% {Some Values} \\ +% \midrule +% \myvala \\ +% \myvalb \\ +% \myvalc \\ +% {{\myvala}} \\ +% \myvald \\ +% \bottomrule +% \end{tabular} +% \end{table} +%\end{LaTeXexample} +% +% It is possible to use calculated values in tables. For this to +% work, the calculation must take place before attempting to parse +% the number. This means that any calculation code should be wrapped +% in braces and appear before the use of the number. This is +% illustrated by using the \pkg{datatool} package to set up a +% miniature database, and then output the values doubled +% (\ref{tab:calc}). This example also shows that macros such as +% \cs{DLTforeach}, which construct a table while \TeX\ is running, +% cannot be placed inside an |S| column (or an |s| one). Instead, an +% additional dummy column has been added with no inter-column space. +% This is used to contain the tale-building macro. +%\begin{LaTeXexample}[float] +% \DTLnewdb{data} +% \DTLnewrow{data}\DTLnewdbentry{data}{value}{66.7012} +% \DTLnewrow{data}\DTLnewdbentry{data}{value}{66.0212} +% \DTLnewrow{data}\DTLnewdbentry{data}{value}{64.9026} +% \begin{table} +% \caption{Calculated values} +% \label{tab:calc} +% \centering +% \sisetup{tabformat=2.4} +% \begin{tabular}{SS@{}l} +% \toprule +% {Value} & {Doubled} & +% \DTLforeach{data}{\myvalue=value}{% +% \DTLiffirstrow {\\ \midrule}{\\}% +% \myvalue & % First column +% {\DTLmul{\myvalue}{\myvalue}{2}} \myvalue % second column +% & }\\ +% \bottomrule +% \end{tabular} +% \end{table} +%\end{LaTeXexample} +% %\subsection{Adding items after the last column of a tabular} % If you use an |S| or |s| column as the last one in a tabular, and % you use the \pkg{array} ``|<|'' construction to add items after it, @@ -2737,13 +2800,15 @@ dcolumn, rccol and numprint packages. % is converted to \cs{cr} before gathering can occur. By using % \cs{cr} directly, the gathering process receives all of the cell % contents as normal.} In most cases, this should not be a serious -% issue. +% issue. Notice that an extra set of braces is needed here, compared +% to usual \LaTeX\ use; this is to prevent any expansion of the +% material by \currpkg. %\begin{LaTeXexample}[float] % \begin{table} % \caption{Correcting spacing in last \texttt{S} column} % \label{tab:cr} % \hfil -% \begin{tabular}{S<{\,\si{\kg}}S<{\,\si{\kg}}} +% \begin{tabular}{S<{{\,\si{\kg}}}S<{{\,\si{\kg}}}} % \toprule % \multicolumn{1}{c}{Long header} & % \multicolumn{1}{c}{Long header} \\ @@ -2754,7 +2819,7 @@ dcolumn, rccol and numprint packages. % \bottomrule % \end{tabular} % \hfil -% \begin{tabular}{S<{\,\si{\kg}}S<{\,\si{\kg}}} +% \begin{tabular}{S<{{\,\si{\kg}}}S<{{\,\si{\kg}}}} % \toprule % \multicolumn{1}{c}{Long header} & % \multicolumn{1}{c}{Long header} \\ @@ -3167,28 +3232,12 @@ author. % temporary assignments. % %\subsection{Setup code} -%\begin{macro}{\si@svn@version} -%\begin{macro}{\si@svn@id} -%\begin{macro}{\si@svn@ver} -% As always, the package starts with identification. This defines a -% couple of macros for use with \emph{Subversion}, so that everything -% is nice and clear. This should also make it a bit easier to avoid -% messing up the revision data! For anyone reading the source, the -% revision number is also available as well as the release version -% number, of course. +% As always, the package starts with identification. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\newcommand*{\si@svn@ver}{v1.0i} -\def\si@svn@id$#1: #2.#3 #4 #5-#6-#7 #8 #9${% - \newcommand*{\si@svn@version}{% - #5/#6/#7\space\si@svn@ver\space}} -\si@svn@id $Id: siunitx.dtx 121 2008-08-14 14:06:03Z joseph $ \ProvidesPackage{siunitx} - [\si@svn@version A comprehensive (SI) units package] + [2008/09/03 v1.0l A comprehensive (SI) units package] % \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} % The package requires \eTeX, so the usual test is made. % \begin{macrocode} \begingroup @@ -7715,22 +7764,19 @@ author. \si@tab@gettok} % \end{macrocode} %\end{macro} -%\begin{macro}{\si@tab@gettok@S} -%\begin{macro}{\si@tab@othertok} -%\begin{macro}{\si@tab@gettok@s} -%\changes{v1.0a}{2008/06/20}{Fixed issues with alignment of -% \texttt{s} column contents} %\begin{macro}{\si@tab@next} -%\darg{cell-contents} -% The two collection macros are very similar. Both compare the -% current input with a list of possible fixed values; this is pretty -% much a direct copy of \numprint. If the input is not on the list -% of choices, it is processed as data for \currpkg to handle. The -% |S| column does an additional check, to allow division of a number -% from any text. For the |s| column, everything gets added to -% \cs{si@tab@toks} for later processing. Two separate macros are -% needed here as the fixed values are dependant on the column type, -% and awkward errors pop up if a combined approach is tried. +% A macro is needed for recursion when collecting cell contents. +% \begin{macrocode} +\newcommand*{\si@tab@next}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\si@tab@gettok@S} +%\changes{1.0j}{2008/08/21}{Token gathering code now checks for +% expandable content} +%\darg{token} +% The cell-content collection system is inherited from \pkg{rccol}. +% First, the current input is compared with a fixed list of macros +% which need custom handling. % \begin{macrocode} \newcommand*{\si@tab@gettok@S}[1]{% \ifx\tabularnewline#1\relax @@ -7751,16 +7797,48 @@ author. \ifx\relax#1\relax \let\si@tab@next\relax \else +% \end{macrocode} +% If the code gets to here, then recursion should occur. +% \begin{macrocode} \let\si@tab@next\si@tab@gettok@S - \si@str@ifchrstr{#1}{\si@numvalid} - {\si@switchtrue - \si@log@debug{Found numerical cell - contents `#1'}% - \si@tab@toks=\expandafter{% - \the\si@tab@toks#1}} - {\si@log@debug{Found other cell contents - \string#1}% - \si@tab@othertok{#1}}% +% \end{macrocode} +% Cells always contain \cs{ignorespaces} and \cs{unskip}. These can +% both be filtered out here and are saved to either the pre-number or +% post-number token store, as appropriate. This is done without +% fixing the destination in case the user adds addition copies to the +% input. +% \begin{macrocode} + \ifx\ignorespaces#1\relax + \si@tab@othertok{#1}% + \else + \ifx\unskip#1\relax + \si@tab@othertok{#1}% + \else +% \end{macrocode} +% If the current token is a valid numerical character, then the flag +% is set and the input is saved into the ``processing'' token +% register. +% \begin{macrocode} + \si@str@ifchrstr{#1}{\si@numvalid} + {\si@switchtrue + \si@log@debug{Found numerical cell + contents `#1'}% + \si@tab@toks=\expandafter{% + \the\si@tab@toks#1}} +% \end{macrocode} +% For non-numerical content, some testing is needed. A check is made +% to see if the current ``token'' is a single item. If it was wrapped +% in one set of braces before being picked up here, they will have +% been removed. So the input may now have more than one character to +% it. If it is a single token, testing for expendability first +% requires a check for another set of braces. This is handed off +% using \cs{futurelet}. +% \begin{macrocode} + {\si@tab@ifonechar{#1} + {\futurelet\si@tempa\si@tab@bracetest#1}% + {\si@tab@othertok{#1}}}% + \fi + \fi \fi \fi \fi @@ -7768,12 +7846,93 @@ author. \fi \fi \si@tab@next} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\si@tab@othertok} +%\darg{token} +% Tokens which are not part of a number can occur before or after a +% number. This is all sorted out here, with some debugging +% information for good measure. +% \begin{macrocode} \newcommand*{\si@tab@othertok}[1]{% + \si@log@debug{Found other cell contents `\unexpanded{#1}'}% \ifsi@switch + \si@log@debug{Adding to post-numeral part}% \si@tab@posttoks=\expandafter{\the\si@tab@posttoks#1}% \else + \si@log@debug{Adding to pre-numeral part}% \si@tab@pretoks=\expandafter{\the\si@tab@pretoks#1}% \fi} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\si@tab@ifonechar} +%\darg{token} +%\begin{macro}{\si@tab@onechar} +% A quick check for a single character. +% \begin{macrocode} +\newcommand*{\si@tab@ifonechar}[1]{\si@tab@onechar#1\@empty} +\def\si@tab@onechar#1#2\@empty{% + \ifx\@empty#2\@empty + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\si@tab@bracetest} +% For the \cs{futurelet} test, a separate macro is needed. If the +% current token starts with a brace, then it is added to the +% ``other'' stack. If not, a test can be made on its definition. +% \begin{macrocode} +\newcommand*{\si@tab@bracetest}{% + \ifx\si@tempa\bgroup + \expandafter\si@tab@othertok + \else + \expandafter\si@tab@exptest + \fi} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\si@tab@exptest} +%\begin{macro}{\si@tab@meaning} +%\begin{macro}{\si@tab@strip} +%\darg{token} +% The meaning of the token is compared to that for a short macro. If +% the two are of the same type, expansion is attempted. In this case, +% the current pre-number tokens are also typeset. +% \begin{macrocode} +\newcommand*{\si@tab@exptest}[1]{% + \edef\si@tempa{\si@tab@meaning{#1}}% + \ifx\si@tempa\si@tab@macro + \si@log@debug{Expanding cell contents `\unexpanded{#1}'}% + \the\si@tab@pretoks + \si@tab@pretoks{}% + \protected@edef\si@tab@next{\noexpand\si@tab@gettok@S#1}% + \else + \si@tab@othertok{#1}% + \fi} +\newcommand*{\si@tab@meaning}[1]{% + \expandafter\si@tab@strip\meaning#1:->:->\@empty} +\def\si@tab@strip#1:->#2:->#3\@empty{#1} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\si@tab@macro} +% A supporter macro for the above which always expands to ``macro'' +% with everything with category code 12. +% \begin{macrocode} +\newcommand*{\si@tab@macro}{} +\edef\si@tab@macro{\si@tab@meaning{\si@tab@macro}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\si@tab@gettok@s} +%\changes{v1.0a}{2008/06/20}{Fixed issues with alignment of +% \texttt{s} column contents} +%\darg{token} +% The situation for the |s| column is less complex, as there is only +% one store and expansion is not an issue. +% \begin{macrocode} \newcommand*{\si@tab@gettok@s}[1]{% \ifx\tabularnewline#1\relax \let\si@tab@next\si@tab@newline@s @@ -7810,12 +7969,10 @@ author. \si@tab@next} % \end{macrocode} %\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} %\begin{macro}{\si@tab@end@S} %\changes{v1.0a}{2008/06/20}{Fixed mixed number/text column % alignment} +%\changes{v1.0k}{2008/09/02}{Fixed problem with coloured cells} %\begin{macro}{\si@tab@rfill} %\begin{macro}{\si@tab@lfill} %\begin{macro}{\si@tab@end@s} @@ -7836,9 +7993,9 @@ author. \fi \si@tab@lfill\relax \ifsi@switch - \llap{\the\si@tab@pretoks}% - \expandafter\si@tab@numout - \rlap{\the\si@tab@posttoks}% + \the\si@tab@pretoks + \si@tab@numout + \the\si@tab@posttoks \else \the\si@tab@pretoks \fi @@ -7951,6 +8108,8 @@ author. % \end{macrocode} %\end{macro} %\begin{macro}{\si@tab@unfixed} +%\changes{v1.0l}{2008/09/03}{Fixed issue with decimal sign and +% integers} % When the width of the contents is not fixed, the system creates a % block in which the decimal marker is always at the centre. This is % achieved by placing the pre- and post-decimal parts of the number @@ -7959,9 +8118,6 @@ author. % \begin{macrocode} \newcommand*\si@tab@unfixed{% \si@log@debug{Using variable width S column}% - \protected@edef\si@num@out{\si@num@out\si@tab@expout}% - \setbox\si@tab@prebox=\hbox - {\expandafter\si@out@num\expandafter{\si@tab@out}}% \ifx\@empty\si@num@out\@empty \setbox\si@tab@midbox=\hbox {\phantom{\ensuremath{{\si@decimalsymbol}}}}% @@ -7969,6 +8125,9 @@ author. \setbox\si@tab@midbox=\hbox {\ensuremath{{\si@decimalsymbol}}}% \fi + \protected@edef\si@num@out{\si@num@out\si@tab@expout}% + \setbox\si@tab@prebox=\hbox + {\expandafter\si@out@num\expandafter{\si@tab@out}}% \setbox\si@tab@postbox=\hbox {\expandafter\si@out@num\expandafter{\si@num@out}}% \ifdim\wd\si@tab@prebox>\wd\si@tab@postbox\relax @@ -8006,6 +8165,8 @@ author. % \end{macrocode} %\end{macro} %\begin{macro}{\si@tab@fixed} +%\changes{v1.0l}{2008/09/03}{Fixed issue with spacing when no digits +% present after decimal marker} % The column is not centred on the decimal marker; the user specifies % how many characters on each side are allowed for. First, the width % of a character is measured, and stored. @@ -8024,7 +8185,9 @@ author. \si@tab@sepcorr{mantpre}{pre}% \si@tab@postdim\si@tab@mantpostcnt\si@tempdima\relax \setbox\si@tempboxa=\hbox{\ensuremath{{\si@decimalsymbol}}}% - \advance\si@tab@postdim\wd\si@tempboxa\relax + \ifnum\si@tab@mantpostcnt=\z@\relax\else + \advance\si@tab@postdim\wd\si@tempboxa\relax + \fi \si@tab@sepcorr{mantpost}{post}% % \end{macrocode} % If space is needed for an exponent, it needs to be allowed for in @@ -10014,8 +10177,7 @@ author. % powers. % \begin{macrocode} \ProvidesFile{si-prefix.cfg} - [\si@svn@version siunitx: - SI Multiple prefixes] + [2008/09/03 v1.0l siunitx: SI Multiple prefixes] \newprefix{\yocto}{-24}{y} \newprefix{\zepto}{-21}{z} \newprefix{\atto}{-18}{a} @@ -10119,7 +10281,7 @@ author. % is an awkward one, but here the UK standard is used. % \begin{macrocode} \ProvidesFile{si-named.cfg} - [\si@svn@version siunitx: SI Named units] + [2008/09/03 v1.0l siunitx: SI Named units] \newunit{\becquerel}{Bq} \newunit{\coulomb}{C} \newunit{\farad}{F} @@ -10215,8 +10377,7 @@ author. % This requires \file{si-prefix.cfg} and \file{si-named.cfg}. % \begin{macrocode} \ProvidesFile{si-prefixed.cfg} - [\si@svn@version siunitx: - SI Prefixed units] + [2008/09/03 v1.0l siunitx: SI Prefixed units] \requiresiconfigs{prefix,named,accepted,physical} % \end{macrocode} %\begin{macro}{\picometre} @@ -10502,7 +10663,7 @@ author. % block for the appropriate option. First currents. % \begin{macrocode} \ProvidesFile{si-abbr.cfg} - [\si@svn@version siunitx: Abbreviated units] + [2008/09/03 v1.0l siunitx: Abbreviated units] \requiresiconfigs{prefix,named,accepted,physical} \newunit{\pA}{\pico\ampere} \newunit{\nA}{\nano\ampere} @@ -10714,8 +10875,7 @@ author. % These are defined here, although some are in very general use. % \begin{macrocode} \ProvidesFile{si-addn.cfg} - [\si@svn@version siunitx: - SI Additional units] + [2008/09/03 v1.0l siunitx: SI Additional units] \newunit{\angstrom}{\si@sym@ringA} \newunit{\are}{a} \newunit{\hectare}{\hecto\are} @@ -10764,7 +10924,7 @@ author. %\begin{macro}{\percent} % \begin{macrocode} \ProvidesFile{si-accepted.cfg} - [\si@svn@version siunitx: SI Accepted units] + [2008/09/03 v1.0l siunitx: SI Accepted units] \newunit{\minute}{min} \newunit{\hour}{h} \newunit{\Day}{d} @@ -10813,8 +10973,7 @@ author. % for a negative kern does make things a bit complicated. % \begin{macrocode} \ProvidesFile{si-physical.cfg} - [\si@svn@version siunitx: - SI Physically-measured units] + [2008/09/03 v1.0l siunitx: SI Physically-measured units] \newcommand*{\si@eVspacea}{\text{\kern-\si@eVcorra}}% \newcommand*{\si@eVspaceb}{\text{\kern-\si@eVcorrb}}% \newunit{\electronvolt}{e\protect\si@eVspacea V\protect% @@ -10850,8 +11009,7 @@ author. % own definitions. % \begin{macrocode} \ProvidesFile{si-synchem.cfg} - [\si@svn@version siunitx: Units for - synthetic chemists] + [2008/09/03 v1.0l siunitx: Units for synthetic chemists] \requiresiconfigs{prefix} \newunit{\mmHg}{mmHg} \newunit{\molar}{\mole\per\cubic\deci\metre} @@ -10872,8 +11030,7 @@ author. % Some units inspired by \pkg{hepunits}. % \begin{macrocode} \ProvidesFile{si-hep.cfg} - [\si@svn@version siunitx: Units for - high-energy physics] + [2008/09/03 v1.0l siunitx: Units for high-energy physics] \requiresiconfigs{prefix,named} % \end{macrocode} %\begin{macro}{\micron} @@ -10955,8 +11112,7 @@ author. % For astronomy, the \cs{parsec} unit is needed. % \begin{macrocode} \ProvidesFile{si-astro.cfg} - [\si@svn@version siunitx: - Units for astronomy] + [2008/09/03 v1.0l siunitx: Units for astronomy] \newunit{\parsec}{pc} \newunit{\lightyear}{ly} % \end{macrocode} @@ -10979,7 +11135,7 @@ author. % \SIunits. First, the binary prefixes. % \begin{macrocode} \ProvidesFile{si-binary.cfg} - [\si@svn@version siunitx: Binary units] + [2008/09/03 v1.0l siunitx: Binary units] \newprefix[binary]{\kibi}{10}{Ki} \newprefix[binary]{\mebi}{20}{Mi} \newprefix[binary]{\gibi}{30}{Gi} @@ -11022,7 +11178,7 @@ author. % default values.\footnote{The package author is in the UK.} % \begin{macrocode} \ProvidesFile{si-UK.cfg} - [\si@svn@version siunitx: UK locale] + [2008/09/03 v1.0l siunitx: UK locale] \sisetup{ unitsep=thin, expproduct=times, @@ -11039,7 +11195,7 @@ author. % The same as for the UK. % \begin{macrocode} \ProvidesFile{si-USA.cfg} - [\si@svn@version siunitx: USA locale] + [2008/09/03 v1.0l siunitx: USA locale] \sisetup{ unitsep=thin, expproduct=times, @@ -11056,7 +11212,7 @@ author. % Germany, hopefully. % \begin{macrocode} \ProvidesFile{si-DE.cfg} - [\si@svn@version siunitx: Germany locale] + [2008/09/03 v1.0l siunitx: Germany locale] \sisetup{ unitsep=cdot, valuesep=thin, @@ -11073,8 +11229,7 @@ author. % Design decisions taken from the same section of \SIstyle. % \begin{macrocode} \ProvidesFile{si-ZA.cfg} - [\si@svn@version siunitx: - South Africa locale] + [2008/09/03 v1.0l siunitx: South Africa locale] \sisetup{ unitsep=cdot, valuesep=thin, @@ -11106,7 +11261,7 @@ author. % \units for conflicting options, so users probably expect none. % \begin{macrocode} \ProvidesFile{si-units.cfg} - [\si@svn@version siunitx: Emulation of units] + [2008/09/03 v1.0l siunitx: Emulation of units] \si@emulating{units}{1998/08/04 v0.9b} \si@ifloaded{SIunits} {\si@emclash{units}{SIunits}\endinput}{} @@ -11176,8 +11331,7 @@ author. % clash. % \begin{macrocode} \ProvidesFile{si-unitsdef.cfg} - [\si@svn@version siunitx: - Emulation of unitsdef] + [2008/09/03 v1.0l siunitx: Emulation of unitsdef] \si@emulating{unitsdef}{2005/01/04 v0.2} \si@ifloaded{SIunits} {\si@emclash{unitsdef}{SIunits}\endinput}{} @@ -11625,8 +11779,7 @@ author. % the macros in \SIstyle as given in the manual for that package. % \begin{macrocode} \ProvidesFile{si-sistyle.cfg} - [\si@svn@version siunitx: Emulation of - SIstyle] + [2008/09/03 v1.0l siunitx: Emulation of SIstyle] \si@emulating{sistyle}{2006/12/20 v2.3} \sisetup{% sepfour=true, @@ -11809,8 +11962,7 @@ author. % \SIunits emulation starts in much the same way. % \begin{macrocode} \ProvidesFile{si-SIunits.cfg} - [\si@svn@version siunitx: Emulation of - SIunits] + [2008/09/03 v1.0l siunitx: Emulation of SIunits] \si@emulating{SIunits}{2007/12/02 v1.36} \sisetup{ unitsep=thick, @@ -12371,8 +12523,7 @@ author. % which are not really to be encouraged. % \begin{macrocode} \ProvidesFile{si-hepunits.cfg} - [\si@svn@version Emulation of siunitx: - hepunits] + [2008/09/03 v1.0l siunitx: Emulation of hepunits] \si@emulating{hepunits}{2007/09/27} \requiresiconfigs{SIunits,accepted,prefix,hep} % \end{macrocode} @@ -12526,8 +12677,7 @@ author. % a little emulation and a few macros needed. % \begin{macrocode} \ProvidesFile{si-fancynum.cfg} - [\si@svn@version Emulation of siunitx: - fancynum] + [2008/09/03 v1.0l siunitx: Emulation of fancynum] \si@emulating{fancynum}{2000/08/08 0.92} \sisetup{decimalsymbol=cdot,digitsep=comma} % \end{macrocode} @@ -12588,8 +12738,7 @@ author. % test is needed. % \begin{macrocode} \ProvidesFile{si-fancyunits.cfg} - [\si@svn@version Emulation of siunitx: - fancyunits] + [2008/09/03 v1.0l siunitx: Emulation of fancyunits] \si@emulating{fancyunits}{2007/02/01 v1.0.1} \si@ifloaded{SIunits} {\si@log@err{SIunits emulation loaded\MessageBreak before diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg index 49ee9df1974..46f0c886d01 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-DE.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-DE.cfg} - [\si@svn@version siunitx: Germany locale] + [2008/09/03 v1.0l siunitx: Germany locale] \sisetup{ unitsep=cdot, valuesep=thin, diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg index 7a087396d85..3e3f452f090 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-SIunits.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-SIunits.cfg} - [\si@svn@version siunitx: Emulation of - SIunits] + [2008/09/03 v1.0l siunitx: Emulation of SIunits] \si@emulating{SIunits}{2007/12/02 v1.36} \sisetup{ unitsep=thick, diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg index 1063b7d81a3..738b61d8787 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-UK.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-UK.cfg} - [\si@svn@version siunitx: UK locale] + [2008/09/03 v1.0l siunitx: UK locale] \sisetup{ unitsep=thin, expproduct=times, diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg index cd5127e1988..ec429c18443 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-USA.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-USA.cfg} - [\si@svn@version siunitx: USA locale] + [2008/09/03 v1.0l siunitx: USA locale] \sisetup{ unitsep=thin, expproduct=times, diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg index b9f23c63be3..6dc518eb08a 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-ZA.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-ZA.cfg} - [\si@svn@version siunitx: - South Africa locale] + [2008/09/03 v1.0l siunitx: South Africa locale] \sisetup{ unitsep=cdot, valuesep=thin, diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg index f13994ff4ac..4e18e3fc370 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-abbr.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-abbr.cfg} - [\si@svn@version siunitx: Abbreviated units] + [2008/09/03 v1.0l siunitx: Abbreviated units] \requiresiconfigs{prefix,named,accepted,physical} \newunit{\pA}{\pico\ampere} \newunit{\nA}{\nano\ampere} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg index 4f009470a99..4f050c7ebd9 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-accepted.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-accepted.cfg} - [\si@svn@version siunitx: SI Accepted units] + [2008/09/03 v1.0l siunitx: SI Accepted units] \newunit{\minute}{min} \newunit{\hour}{h} \newunit{\Day}{d} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg index a92aeb38c9a..52def9ca5ab 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-addn.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-addn.cfg} - [\si@svn@version siunitx: - SI Additional units] + [2008/09/03 v1.0l siunitx: SI Additional units] \newunit{\angstrom}{\si@sym@ringA} \newunit{\are}{a} \newunit{\hectare}{\hecto\are} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg index 5cf80b83e20..a39cce154c5 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-astro.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-astro.cfg} - [\si@svn@version siunitx: - Units for astronomy] + [2008/09/03 v1.0l siunitx: Units for astronomy] \newunit{\parsec}{pc} \newunit{\lightyear}{ly} \endinput diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg index 9e0ad9a2c74..f90bae2cd62 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-binary.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-binary.cfg} - [\si@svn@version siunitx: Binary units] + [2008/09/03 v1.0l siunitx: Binary units] \newprefix[binary]{\kibi}{10}{Ki} \newprefix[binary]{\mebi}{20}{Mi} \newprefix[binary]{\gibi}{30}{Gi} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg index c1f7a3251f3..849a1c52043 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-fancynum.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-fancynum.cfg} - [\si@svn@version Emulation of siunitx: - fancynum] + [2008/09/03 v1.0l siunitx: Emulation of fancynum] \si@emulating{fancynum}{2000/08/08 0.92} \sisetup{decimalsymbol=cdot,digitsep=comma} \let\fnum\num diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg index 14bcf8aae2f..f73010149df 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-fancyunits.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-fancyunits.cfg} - [\si@svn@version Emulation of siunitx: - fancyunits] + [2008/09/03 v1.0l siunitx: Emulation of fancyunits] \si@emulating{fancyunits}{2007/02/01 v1.0.1} \si@ifloaded{SIunits} {\si@log@err{SIunits emulation loaded\MessageBreak before diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg index 073f61a32ee..8825525b522 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-hep.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-hep.cfg} - [\si@svn@version siunitx: Units for - high-energy physics] + [2008/09/03 v1.0l siunitx: Units for high-energy physics] \requiresiconfigs{prefix,named} \provideunit{\micron}{\micro\metre} \newunit{\mrad}{\milli\rad} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg index a3c608ccc44..1e57ff7c5dd 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-hepunits.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-hepunits.cfg} - [\si@svn@version Emulation of siunitx: - hepunits] + [2008/09/03 v1.0l siunitx: Emulation of hepunits] \si@emulating{hepunits}{2007/09/27} \requiresiconfigs{SIunits,accepted,prefix,hep} \ifsi@old@noprefixcmds\else diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg index bba45ded73f..ad9af4617d5 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-named.cfg @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-named.cfg} - [\si@svn@version siunitx: SI Named units] + [2008/09/03 v1.0l siunitx: SI Named units] \newunit{\becquerel}{Bq} \newunit{\coulomb}{C} \newunit{\farad}{F} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg index 2ef31fa2444..3b6ab1f6018 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-physical.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-physical.cfg} - [\si@svn@version siunitx: - SI Physically-measured units] + [2008/09/03 v1.0l siunitx: SI Physically-measured units] \newcommand*{\si@eVspacea}{\text{\kern-\si@eVcorra}}% \newcommand*{\si@eVspaceb}{\text{\kern-\si@eVcorrb}}% \newunit{\electronvolt}{e\protect\si@eVspacea V\protect% diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg index c2a72e82a5c..2969dd8c71e 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-prefix.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-prefix.cfg} - [\si@svn@version siunitx: - SI Multiple prefixes] + [2008/09/03 v1.0l siunitx: SI Multiple prefixes] \newprefix{\yocto}{-24}{y} \newprefix{\zepto}{-21}{z} \newprefix{\atto}{-18}{a} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg index 9d2015b6c2f..99593b2561e 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-prefixed.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-prefixed.cfg} - [\si@svn@version siunitx: - SI Prefixed units] + [2008/09/03 v1.0l siunitx: SI Prefixed units] \requiresiconfigs{prefix,named,accepted,physical} \newunit{\picometre}{\pico\metre} \newunit{\nanometre}{\nano\metre} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg index 67bef67b2da..3f7977ed19e 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-sistyle.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-sistyle.cfg} - [\si@svn@version siunitx: Emulation of - SIstyle] + [2008/09/03 v1.0l siunitx: Emulation of SIstyle] \si@emulating{sistyle}{2006/12/20 v2.3} \sisetup{% sepfour=true, diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg index c19f49a351f..97048463852 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-synchem.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-synchem.cfg} - [\si@svn@version siunitx: Units for - synthetic chemists] + [2008/09/03 v1.0l siunitx: Units for synthetic chemists] \requiresiconfigs{prefix} \newunit{\mmHg}{mmHg} \newunit{\molar}{\mole\per\cubic\deci\metre} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg index ab02762f2f5..799b0f99142 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-units.cfg @@ -15,7 +15,7 @@ %% \si@ifloaded{units}{\endinput}{} \ProvidesFile{si-units.cfg} - [\si@svn@version siunitx: Emulation of units] + [2008/09/03 v1.0l siunitx: Emulation of units] \si@emulating{units}{1998/08/04 v0.9b} \si@ifloaded{SIunits} {\si@emclash{units}{SIunits}\endinput}{} diff --git a/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg b/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg index 350775acc71..c0a7bebdc86 100644 --- a/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg +++ b/Master/texmf-dist/tex/latex/siunitx/config/si-unitsdef.cfg @@ -14,8 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{si-unitsdef.cfg} - [\si@svn@version siunitx: - Emulation of unitsdef] + [2008/09/03 v1.0l siunitx: Emulation of unitsdef] \si@emulating{unitsdef}{2005/01/04 v0.2} \si@ifloaded{SIunits} {\si@emclash{unitsdef}{SIunits}\endinput}{} diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty index 22ecfac416e..3d5eb1260d7 100644 --- a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty +++ b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty @@ -14,13 +14,8 @@ %% ---------------------------------------------------------------- %% \NeedsTeXFormat{LaTeX2e} -\newcommand*{\si@svn@ver}{v1.0i} -\def\si@svn@id$#1: #2.#3 #4 #5-#6-#7 #8 #9${% - \newcommand*{\si@svn@version}{% - #5/#6/#7\space\si@svn@ver\space}} -\si@svn@id $Id: siunitx.dtx 121 2008-08-14 14:06:03Z joseph $ \ProvidesPackage{siunitx} - [\si@svn@version A comprehensive (SI) units package] + [2008/09/03 v1.0l A comprehensive (SI) units package] \begingroup \@ifundefined{eTeXversion} {\PackageError{siunitx} @@ -2336,6 +2331,7 @@ \si@tab@posttoks{}% \si@switchfalse \si@tab@gettok} +\newcommand*{\si@tab@next}{} \newcommand*{\si@tab@gettok@S}[1]{% \ifx\tabularnewline#1\relax \let\si@tab@next\si@tab@newline@S @@ -2356,15 +2352,23 @@ \let\si@tab@next\relax \else \let\si@tab@next\si@tab@gettok@S - \si@str@ifchrstr{#1}{\si@numvalid} - {\si@switchtrue - \si@log@debug{Found numerical cell - contents `#1'}% - \si@tab@toks=\expandafter{% - \the\si@tab@toks#1}} - {\si@log@debug{Found other cell contents - \string#1}% - \si@tab@othertok{#1}}% + \ifx\ignorespaces#1\relax + \si@tab@othertok{#1}% + \else + \ifx\unskip#1\relax + \si@tab@othertok{#1}% + \else + \si@str@ifchrstr{#1}{\si@numvalid} + {\si@switchtrue + \si@log@debug{Found numerical cell + contents `#1'}% + \si@tab@toks=\expandafter{% + \the\si@tab@toks#1}} + {\si@tab@ifonechar{#1} + {\futurelet\si@tempa\si@tab@bracetest#1}% + {\si@tab@othertok{#1}}}% + \fi + \fi \fi \fi \fi @@ -2373,11 +2377,42 @@ \fi \si@tab@next} \newcommand*{\si@tab@othertok}[1]{% + \si@log@debug{Found other cell contents `\unexpanded{#1}'}% \ifsi@switch + \si@log@debug{Adding to post-numeral part}% \si@tab@posttoks=\expandafter{\the\si@tab@posttoks#1}% \else + \si@log@debug{Adding to pre-numeral part}% \si@tab@pretoks=\expandafter{\the\si@tab@pretoks#1}% \fi} +\newcommand*{\si@tab@ifonechar}[1]{\si@tab@onechar#1\@empty} +\def\si@tab@onechar#1#2\@empty{% + \ifx\@empty#2\@empty + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\newcommand*{\si@tab@bracetest}{% + \ifx\si@tempa\bgroup + \expandafter\si@tab@othertok + \else + \expandafter\si@tab@exptest + \fi} +\newcommand*{\si@tab@exptest}[1]{% + \edef\si@tempa{\si@tab@meaning{#1}}% + \ifx\si@tempa\si@tab@macro + \si@log@debug{Expanding cell contents `\unexpanded{#1}'}% + \the\si@tab@pretoks + \si@tab@pretoks{}% + \protected@edef\si@tab@next{\noexpand\si@tab@gettok@S#1}% + \else + \si@tab@othertok{#1}% + \fi} +\newcommand*{\si@tab@meaning}[1]{% + \expandafter\si@tab@strip\meaning#1:->:->\@empty} +\def\si@tab@strip#1:->#2:->#3\@empty{#1} +\newcommand*{\si@tab@macro}{} +\edef\si@tab@macro{\si@tab@meaning{\si@tab@macro}} \newcommand*{\si@tab@gettok@s}[1]{% \ifx\tabularnewline#1\relax \let\si@tab@next\si@tab@newline@s @@ -2422,9 +2457,9 @@ \fi \si@tab@lfill\relax \ifsi@switch - \llap{\the\si@tab@pretoks}% - \expandafter\si@tab@numout - \rlap{\the\si@tab@posttoks}% + \the\si@tab@pretoks + \si@tab@numout + \the\si@tab@posttoks \else \the\si@tab@pretoks \fi @@ -2478,9 +2513,6 @@ \box\si@tab@expbox} \newcommand*\si@tab@unfixed{% \si@log@debug{Using variable width S column}% - \protected@edef\si@num@out{\si@num@out\si@tab@expout}% - \setbox\si@tab@prebox=\hbox - {\expandafter\si@out@num\expandafter{\si@tab@out}}% \ifx\@empty\si@num@out\@empty \setbox\si@tab@midbox=\hbox {\phantom{\ensuremath{{\si@decimalsymbol}}}}% @@ -2488,6 +2520,9 @@ \setbox\si@tab@midbox=\hbox {\ensuremath{{\si@decimalsymbol}}}% \fi + \protected@edef\si@num@out{\si@num@out\si@tab@expout}% + \setbox\si@tab@prebox=\hbox + {\expandafter\si@out@num\expandafter{\si@tab@out}}% \setbox\si@tab@postbox=\hbox {\expandafter\si@out@num\expandafter{\si@num@out}}% \ifdim\wd\si@tab@prebox>\wd\si@tab@postbox\relax @@ -2515,7 +2550,9 @@ \si@tab@sepcorr{mantpre}{pre}% \si@tab@postdim\si@tab@mantpostcnt\si@tempdima\relax \setbox\si@tempboxa=\hbox{\ensuremath{{\si@decimalsymbol}}}% - \advance\si@tab@postdim\wd\si@tempboxa\relax + \ifnum\si@tab@mantpostcnt=\z@\relax\else + \advance\si@tab@postdim\wd\si@tempboxa\relax + \fi \si@tab@sepcorr{mantpost}{post}% \setbox\si@tempboxa=\hbox{\si@out@num{^{1}}}% \si@tempdima\wd\si@tempboxa\relax |