summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-06-11 00:31:14 +0000
committerKarl Berry <karl@freefriends.org>2010-06-11 00:31:14 +0000
commite4f3b3ac68f64ab7c9de5f2b4b712bd5edf716b0 (patch)
treeb226750531102a0e4477beeb3afd9f08bd3dc41e /Master/texmf-dist
parent7e1403e5adf2df821d55ab025c9dfac07a8e4704 (diff)
siunitx 2.0d (10jun10)
git-svn-id: svn://tug.org/texlive/trunk@18878 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/siunitx/siunitx.pdfbin476077 -> 478818 bytes
-rw-r--r--Master/texmf-dist/source/latex/siunitx/siunitx.dtx7612
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/siunitx-abbreviations.cfg2
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/siunitx-binary.cfg2
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/config/siunitx-version-1.cfg20
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/siunitx.sty6532
6 files changed, 7105 insertions, 7063 deletions
diff --git a/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf b/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf
index 2067f8b354f..2a37170f309 100644
--- a/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf
+++ b/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/siunitx/siunitx.dtx b/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
index 472b3fd4e15..d974ea351be 100644
--- a/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
+++ b/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
@@ -418,6 +418,10 @@ This work consists of the file siunitx.dtx
% configuration file}
%\changes{v2.0c}{2010/06/07}{Mixed literal and macro units now print
% more reliably}
+%\changes{v2.0d}{2010/06/10}{Document special case situations for last
+% cell in table row}
+%\changes{v2.0d}{2010/06/10}{Fix error in \opt{table-format} option
+% concerning exponent signs}
%
%\begin{abstract}
% Typesetting values with units requires care to ensure that the
@@ -3360,6 +3364,44 @@ This work consists of the file siunitx.dtx
% \si[sticky-per]{\candela\per\kWh}
%\end{LaTeXdemo}
%
+%\subsection{Adding items after the last column of a tabular}
+%
+% When using the \pkg{array} package \enquote{\texttt{<}} construct
+% to insert material after an \texttt{S} or \texttt{s} column, the
+% spacing will be wrong. This is due to the way that LaTeX constructs
+% tables at a low level. The incorrect spacing can be avoided by using
+% the TeX \cs{cr} primitive to end the table rows instead
+% (\cref{tab:cr}).
+%\begin{LaTeXdemo}[code and float]
+% \begin{table}
+% \caption{Correcting spacing in last \texttt{S} column}
+% \label{tab:cr}
+% \hfil
+% \begin{tabular}{S<{\,\si{\kg}}S<{\,\si{\kg}}}
+% \toprule
+% \multicolumn{1}{c}{Long header} &
+% \multicolumn{1}{c}{Long header} \\
+% \midrule
+% 1.23 & 1.23 \\
+% 4.56 & 4.56 \\
+% 7.8 & 7.8 \\
+% \bottomrule
+% \end{tabular}
+% \hfil
+% \begin{tabular}{S<{\,\si{\kg}}S<{\,\si{\kg}}}
+% \toprule
+% \multicolumn{1}{c}{Long header} &
+% \multicolumn{1}{c}{Long header} \\
+% \midrule
+% 1.23 & 1.23 \cr
+% 4.56 & 4.56 \cr
+% 7.8 & 7.8 \cr
+% \bottomrule
+% \end{tabular}
+% \hfil
+% \end{table}
+%\end{LaTeXdemo}
+%
%\section{Information for those upgrading from version 1}
%
% The key--value control system of \pkg{siunitx} has been completely
@@ -3877,11 +3919,11 @@ This work consists of the file siunitx.dtx
%
% The usual preliminaries.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2010/06/07} {2.0c}
+\ProvidesExplPackage {siunitx} {2010/06/10} {2.0d}
{A comprehensive (SI) units package}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_load_check:}
+%\begin{macro}{\siunitx_load_check:}
% There are also a number of packages that are incompatible with
% \pkg{siunitx}. These are all checked for next. Some of the
% incompatible packages will not raise an error if loaded after
@@ -3892,7 +3934,7 @@ This work consists of the file siunitx.dtx
\msg_set:nnnn { siunitx } { incompatible-package }
{ Package~'#1'~incompatible. }
{ The~#1~package~and~siunitx~are~incompatible. }
-\cs_set_protected_nopar:Npn \_siunitx_load_check:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_load_check:n #1 {
\group_begin:
\@ifpackageloaded {#1}
{ \msg_error:nnx { siunitx } { incompatible-package } {#1} }
@@ -3901,10 +3943,10 @@ This work consists of the file siunitx.dtx
}
\clist_map_function:nN
{ SIunits , sistyle , siunits , SIstyle , unitsdef , fancyunits }
- \_siunitx_load_check:n
+ \siunitx_load_check:n
\AtBeginDocument {
\clist_map_function:nN { SIunits , sistyle , siunits , SIstyle }
- \_siunitx_load_check:n
+ \siunitx_load_check:n
}
% \end{macrocode}
%\end{macro}
@@ -3914,20 +3956,20 @@ This work consists of the file siunitx.dtx
\RequirePackage{ amstext , array , l3keys2e }
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_tmp:w}
-%\begin{macro}{\_l_siunitx_tmp_bool}
-%\begin{macro}{\_l_siunitx_tmp_box}
-%\begin{macro}{\_l_siunitx_tmp_int}
-%\begin{macro}{\_l_siunitx_tmpa_tl}
-%\begin{macro}{\_l_siunitx_tmpb_tl}
+%\begin{macro}{\siunitx_tmp:w}
+%\begin{macro}{\l_siunitx_tmp_bool}
+%\begin{macro}{\l_siunitx_tmp_box}
+%\begin{macro}{\l_siunitx_tmp_int}
+%\begin{macro}{\l_siunitx_tmpa_tl}
+%\begin{macro}{\l_siunitx_tmpb_tl}
% Scratch items.
% \begin{macrocode}
-\cs_set:Npn \_siunitx_tmp:w { }
-\bool_new:N \_l_siunitx_tmp_bool
-\box_new:N \_l_siunitx_tmp_box
-\int_new:N \_l_siunitx_tmp_int
-\tl_new:N \_l_siunitx_tmpa_tl
-\tl_new:N \_l_siunitx_tmpb_tl
+\cs_new:Npn \siunitx_tmp:w { }
+\bool_new:N \l_siunitx_tmp_bool
+\box_new:N \l_siunitx_tmp_box
+\int_new:N \l_siunitx_tmp_int
+\tl_new:N \l_siunitx_tmpa_tl
+\tl_new:N \l_siunitx_tmpb_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -3936,25 +3978,25 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_error_bool}
-%\begin{macro}{\_siunitx_error:nxx}
-%\begin{macro}{\_siunitx_error:nx}
-%\begin{macro}{\_siunitx_error:n}
-%\begin{macro}{\_siunitx_error:nV}
+%\begin{macro}{\l_siunitx_error_bool}
+%\begin{macro}{\siunitx_error:nxx}
+%\begin{macro}{\siunitx_error:nx}
+%\begin{macro}{\siunitx_error:n}
+%\begin{macro}{\siunitx_error:nV}
% General-purpose functions for throwing errors.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_error_bool
-\cs_set_protected:Npn \_siunitx_error:nxx #1#2#3 {
- \bool_set_true:N \_l_siunitx_error_bool
+\bool_new:N \l_siunitx_error_bool
+\cs_new_protected:Npn \siunitx_error:nxx #1#2#3 {
+ \bool_set_true:N \l_siunitx_error_bool
\msg_error:nnxx { siunitx } {#1} {#2} {#3}
}
-\cs_set_protected:Npn \_siunitx_error:nx #1#2 {
- \_siunitx_error:nxx {#1} {#2} { }
+\cs_new_protected:Npn \siunitx_error:nx #1#2 {
+ \siunitx_error:nxx {#1} {#2} { }
}
-\cs_set_protected:Npn \_siunitx_error:n #1 {
- \_siunitx_error:nxx {#1} { } { }
+\cs_new_protected:Npn \siunitx_error:n #1 {
+ \siunitx_error:nxx {#1} { } { }
}
-\cs_generate_variant:Nn \_siunitx_error:nx { nV }
+\cs_generate_variant:Nn \siunitx_error:nx { nV }
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -3975,52 +4017,52 @@ This work consists of the file siunitx.dtx
}
% \end{macrocode}
%
-%\begin{macro}{\_c_siunitx_minus_tl}
+%\begin{macro}{\c_siunitx_minus_tl}
% To allow the correct symbol to appear in text mode: this is the same
% as \cs{textminus} from \pkg{textcomp}.
% \begin{macrocode}
-\DeclareTextSymbolDefault \_c_siunitx_minus_tl { TS1 }
-\DeclareTextSymbol \_c_siunitx_minus_tl { TS1 } { 61 }
+\DeclareTextSymbolDefault \c_siunitx_minus_tl { TS1 }
+\DeclareTextSymbol \c_siunitx_minus_tl { TS1 } { 61 }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_c_siunitx_mu_tl}
+%\begin{macro}{\c_siunitx_mu_tl}
% The lack of an upright mu has to be sorted out.
% \begin{macrocode}
-\DeclareTextSymbol \_c_siunitx_mu_tl { TS1 } { 181 }
-\DeclareTextSymbolDefault \_c_siunitx_mu_tl { TS1 }
+\DeclareTextSymbol \c_siunitx_mu_tl { TS1 } { 181 }
+\DeclareTextSymbolDefault \c_siunitx_mu_tl { TS1 }
% \end{macrocode}
%\end{macro}
%
% Some package redefine \cs{Omega} to be slanted and move the original
% symbol to \cs{upOmega}. This is handled here.
% \begin{macrocode}
-\tl_new:N \_c_siunitx_omega_tl
-\tl_set:Nn \_c_siunitx_omega_tl { \Omega }
+\tl_new:N \c_siunitx_omega_tl
+\tl_set:Nn \c_siunitx_omega_tl { \Omega }
\AtBeginDocument {
\cs_if_exist:NT \upOmega
- { \tl_set:Nn \_c_siunitx_omega_tl { \upOmega } }
+ { \tl_set:Nn \c_siunitx_omega_tl { \upOmega } }
}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_tl_put_left_math:Nn}
-%\begin{macro}{\_siunitx_tl_put_left_math:NV}
-%\begin{macro}{\_siunitx_tl_put_left_math:cV}
-%\begin{macro}{\_siunitx_tl_put_right_math:Nn}
-%\begin{macro}{\_siunitx_tl_put_right_math:NV}
-%\begin{macro}{\_siunitx_tl_put_right_math:cV}
+%\begin{macro}{\siunitx_tl_put_left_math:Nn}
+%\begin{macro}{\siunitx_tl_put_left_math:NV}
+%\begin{macro}{\siunitx_tl_put_left_math:cV}
+%\begin{macro}{\siunitx_tl_put_right_math:Nn}
+%\begin{macro}{\siunitx_tl_put_right_math:NV}
+%\begin{macro}{\siunitx_tl_put_right_math:cV}
% To add stuff in math mode.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_tl_put_left_math:Nn #1#2 {
- \tl_put_left:Nn #1 { \_siunitx_ensuremath:n {#2} }
+\cs_new_protected:Npn \siunitx_tl_put_left_math:Nn #1#2 {
+ \tl_put_left:Nn #1 { \siunitx_ensuremath:n {#2} }
}
-\cs_generate_variant:Nn \_siunitx_tl_put_left_math:Nn { NV }
-\cs_generate_variant:Nn \_siunitx_tl_put_left_math:Nn { cV }
-\cs_set_protected:Npn \_siunitx_tl_put_right_math:Nn #1#2 {
- \tl_put_right:Nn #1 { \_siunitx_ensuremath:n {#2} }
+\cs_generate_variant:Nn \siunitx_tl_put_left_math:Nn { NV }
+\cs_generate_variant:Nn \siunitx_tl_put_left_math:Nn { cV }
+\cs_new_protected:Npn \siunitx_tl_put_right_math:Nn #1#2 {
+ \tl_put_right:Nn #1 { \siunitx_ensuremath:n {#2} }
}
-\cs_generate_variant:Nn \_siunitx_tl_put_right_math:Nn { NV }
-\cs_generate_variant:Nn \_siunitx_tl_put_right_math:Nn { cV }
+\cs_generate_variant:Nn \siunitx_tl_put_right_math:Nn { NV }
+\cs_generate_variant:Nn \siunitx_tl_put_right_math:Nn { cV }
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -4029,170 +4071,170 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_c_siunitx_old_options_seq}
+%\begin{macro}{\c_siunitx_old_options_seq}
% To pick up old options, all of the names need to be known.
% \begin{macrocode}
-\seq_new:N \_c_siunitx_old_options_seq
-\cs_set_protected_nopar:Npn \_siunitx_tmp:w #1 {
- \seq_put_right:Nx \_c_siunitx_old_options_seq { \tl_to_str:n {#1} }
-}
-\_siunitx_tmp:w { addsign }
-\_siunitx_tmp:w { allowlitunits }
-\_siunitx_tmp:w { allowoptarg }
-\_siunitx_tmp:w { allowzeroexp }
-\_siunitx_tmp:w { alsoload }
-\_siunitx_tmp:w { angformat }
-\_siunitx_tmp:w { anglesep }
-\_siunitx_tmp:w { astroang }
-\_siunitx_tmp:w { closeerr }
-\_siunitx_tmp:w { closrfrac }
-\_siunitx_tmp:w { closerange }
-\_siunitx_tmp:w { colour }
-\_siunitx_tmp:w { colorall }
-\_siunitx_tmp:w { colourall }
-\_siunitx_tmp:w { colorneg }
-\_siunitx_tmp:w { colourneg }
-\_siunitx_tmp:w { colourunits }
-\_siunitx_tmp:w { colourunits }
-\_siunitx_tmp:w { colorvalues }
-\_siunitx_tmp:w { colourvalues }
-\_siunitx_tmp:w { decimalsymbol }
-\_siunitx_tmp:w { debug }
-\_siunitx_tmp:w { detectdisplay }
-\_siunitx_tmp:w { digitsep }
-\_siunitx_tmp:w { dp }
-\_siunitx_tmp:w { emulate }
-\_siunitx_tmp:w { errspace }
-\_siunitx_tmp:w { eVcorra }
-\_siunitx_tmp:w { eVcorrb }
-\_siunitx_tmp:w { expbase }
-\_siunitx_tmp:w { expproduct }
-\_siunitx_tmp:w { fixdp }
-\_siunitx_tmp:w { fixsf }
-\_siunitx_tmp:w { fraction }
-\_siunitx_tmp:w { inlinebold }
-\_siunitx_tmp:w { locale }
-\_siunitx_tmp:w { loctolang }
-\_siunitx_tmp:w { log }
-\_siunitx_tmp:w { load }
-\_siunitx_tmp:w { mathOmega }
-\_siunitx_tmp:w { mathcelsius }
-\_siunitx_tmp:w { mathdegree }
-\_siunitx_tmp:w { mathminute }
-\_siunitx_tmp:w { mathmu }
-\_siunitx_tmp:w { mathringA }
-\_siunitx_tmp:w { mathrm }
-\_siunitx_tmp:w { mathsOmega }
-\_siunitx_tmp:w { mathscelsius }
-\_siunitx_tmp:w { mathsdegree }
-\_siunitx_tmp:w { mathsecond }
-\_siunitx_tmp:w { mathsf }
-\_siunitx_tmp:w { mathsminute }
-\_siunitx_tmp:w { mathsmu }
-\_siunitx_tmp:w { mathsringA }
-\_siunitx_tmp:w { mathsrm }
-\_siunitx_tmp:w { mathssecond }
-\_siunitx_tmp:w { mathssf }
-\_siunitx_tmp:w { mathstt }
-\_siunitx_tmp:w { mathtt }
-\_siunitx_tmp:w { negcolor }
-\_siunitx_tmp:w { negcolour }
-\_siunitx_tmp:w { noload }
-\_siunitx_tmp:w { numaddn }
-\_siunitx_tmp:w { numcloseerr }
-\_siunitx_tmp:w { numdecimal }
-\_siunitx_tmp:w { numdigits }
-\_siunitx_tmp:w { numdiv }
-\_siunitx_tmp:w { numexp }
-\_siunitx_tmp:w { numgobble }
-\_siunitx_tmp:w { numopenerr }
-\_siunitx_tmp:w { numprod }
-\_siunitx_tmp:w { numsign }
-\_siunitx_tmp:w { obeyall }
-\_siunitx_tmp:w { obeybold }
-\_siunitx_tmp:w { obeyfamily }
-\_siunitx_tmp:w { obeymode }
-\_siunitx_tmp:w { obeyitalic }
-\_siunitx_tmp:w { openerr }
-\_siunitx_tmp:w { openfrac }
-\_siunitx_tmp:w { openrange }
-\_siunitx_tmp:w { padangle }
-\_siunitx_tmp:w { padnumber }
-\_siunitx_tmp:w { per }
-\_siunitx_tmp:w { prefixbase }
-\_siunitx_tmp:w { prefixproduct }
-\_siunitx_tmp:w { prefixsymbolic }
-\_siunitx_tmp:w { prespace }
-\_siunitx_tmp:w { redefsymbols }
-\_siunitx_tmp:w { repeatunits }
-\_siunitx_tmp:w { retainplus }
-\_siunitx_tmp:w { seperr }
-\_siunitx_tmp:w { sepfour }
-\_siunitx_tmp:w { sf }
-\_siunitx_tmp:w { sign }
-\_siunitx_tmp:w { slash }
-\_siunitx_tmp:w { stickyper }
-\_siunitx_tmp:w { stricarc }
-\_siunitx_tmp:w { tabalign }
-\_siunitx_tmp:w { tabalignexp }
-\_siunitx_tmp:w { tabautofit }
-\_siunitx_tmp:w { tabformat }
-\_siunitx_tmp:w { tabnumalign }
-\_siunitx_tmp:w { tabparseonly }
-\_siunitx_tmp:w { tabtextalign }
-\_siunitx_tmp:w { textOmega }
-\_siunitx_tmp:w { textcelsius }
-\_siunitx_tmp:w { textdegree }
-\_siunitx_tmp:w { textminute }
-\_siunitx_tmp:w { textmode }
-\_siunitx_tmp:w { textmu }
-\_siunitx_tmp:w { textringA }
-\_siunitx_tmp:w { textrm }
-\_siunitx_tmp:w { textsecond }
-\_siunitx_tmp:w { textsf }
-\_siunitx_tmp:w { texttt }
-\_siunitx_tmp:w { tightpm }
-\_siunitx_tmp:w { tophrase }
-\_siunitx_tmp:w { trapamigerr }
-\_siunitx_tmp:w { trapambigfrac }
-\_siunitx_tmp:w { trapambigrange }
-\_siunitx_tmp:w { unitcolor }
-\_siunitx_tmp:w { unitcolour }
-\_siunitx_tmp:w { unitmathrm }
-\_siunitx_tmp:w { unitmathsf }
-\_siunitx_tmp:w { unitmathsrm }
-\_siunitx_tmp:w { unitmathssf }
-\_siunitx_tmp:w { unitmathstt }
-\_siunitx_tmp:w { unitmathtt }
-\_siunitx_tmp:w { unitmode }
-\_siunitx_tmp:w { unitsep }
-\_siunitx_tmp:w { unitspace }
-\_siunitx_tmp:w { valuecolor }
-\_siunitx_tmp:w { valuecolour }
-\_siunitx_tmp:w { valuemathrm }
-\_siunitx_tmp:w { valuemathsf }
-\_siunitx_tmp:w { valuemathsrm }
-\_siunitx_tmp:w { valuemathssf }
-\_siunitx_tmp:w { valuemathstt }
-\_siunitx_tmp:w { valuemathtt }
-\_siunitx_tmp:w { valuemode }
-\_siunitx_tmp:w { valuesep }
-\_siunitx_tmp:w { xpace }
+\seq_new:N \c_siunitx_old_options_seq
+\cs_set_protected_nopar:Npn \siunitx_tmp:w #1 {
+ \seq_put_right:Nx \c_siunitx_old_options_seq { \tl_to_str:n {#1} }
+}
+\siunitx_tmp:w { addsign }
+\siunitx_tmp:w { allowlitunits }
+\siunitx_tmp:w { allowoptarg }
+\siunitx_tmp:w { allowzeroexp }
+\siunitx_tmp:w { alsoload }
+\siunitx_tmp:w { angformat }
+\siunitx_tmp:w { anglesep }
+\siunitx_tmp:w { astroang }
+\siunitx_tmp:w { closeerr }
+\siunitx_tmp:w { closrfrac }
+\siunitx_tmp:w { closerange }
+\siunitx_tmp:w { colour }
+\siunitx_tmp:w { colorall }
+\siunitx_tmp:w { colourall }
+\siunitx_tmp:w { colorneg }
+\siunitx_tmp:w { colourneg }
+\siunitx_tmp:w { colourunits }
+\siunitx_tmp:w { colourunits }
+\siunitx_tmp:w { colorvalues }
+\siunitx_tmp:w { colourvalues }
+\siunitx_tmp:w { decimalsymbol }
+\siunitx_tmp:w { debug }
+\siunitx_tmp:w { detectdisplay }
+\siunitx_tmp:w { digitsep }
+\siunitx_tmp:w { dp }
+\siunitx_tmp:w { emulate }
+\siunitx_tmp:w { errspace }
+\siunitx_tmp:w { eVcorra }
+\siunitx_tmp:w { eVcorrb }
+\siunitx_tmp:w { expbase }
+\siunitx_tmp:w { expproduct }
+\siunitx_tmp:w { fixdp }
+\siunitx_tmp:w { fixsf }
+\siunitx_tmp:w { fraction }
+\siunitx_tmp:w { inlinebold }
+\siunitx_tmp:w { locale }
+\siunitx_tmp:w { loctolang }
+\siunitx_tmp:w { log }
+\siunitx_tmp:w { load }
+\siunitx_tmp:w { mathOmega }
+\siunitx_tmp:w { mathcelsius }
+\siunitx_tmp:w { mathdegree }
+\siunitx_tmp:w { mathminute }
+\siunitx_tmp:w { mathmu }
+\siunitx_tmp:w { mathringA }
+\siunitx_tmp:w { mathrm }
+\siunitx_tmp:w { mathsOmega }
+\siunitx_tmp:w { mathscelsius }
+\siunitx_tmp:w { mathsdegree }
+\siunitx_tmp:w { mathsecond }
+\siunitx_tmp:w { mathsf }
+\siunitx_tmp:w { mathsminute }
+\siunitx_tmp:w { mathsmu }
+\siunitx_tmp:w { mathsringA }
+\siunitx_tmp:w { mathsrm }
+\siunitx_tmp:w { mathssecond }
+\siunitx_tmp:w { mathssf }
+\siunitx_tmp:w { mathstt }
+\siunitx_tmp:w { mathtt }
+\siunitx_tmp:w { negcolor }
+\siunitx_tmp:w { negcolour }
+\siunitx_tmp:w { noload }
+\siunitx_tmp:w { numaddn }
+\siunitx_tmp:w { numcloseerr }
+\siunitx_tmp:w { numdecimal }
+\siunitx_tmp:w { numdigits }
+\siunitx_tmp:w { numdiv }
+\siunitx_tmp:w { numexp }
+\siunitx_tmp:w { numgobble }
+\siunitx_tmp:w { numopenerr }
+\siunitx_tmp:w { numprod }
+\siunitx_tmp:w { numsign }
+\siunitx_tmp:w { obeyall }
+\siunitx_tmp:w { obeybold }
+\siunitx_tmp:w { obeyfamily }
+\siunitx_tmp:w { obeymode }
+\siunitx_tmp:w { obeyitalic }
+\siunitx_tmp:w { openerr }
+\siunitx_tmp:w { openfrac }
+\siunitx_tmp:w { openrange }
+\siunitx_tmp:w { padangle }
+\siunitx_tmp:w { padnumber }
+\siunitx_tmp:w { per }
+\siunitx_tmp:w { prefixbase }
+\siunitx_tmp:w { prefixproduct }
+\siunitx_tmp:w { prefixsymbolic }
+\siunitx_tmp:w { prespace }
+\siunitx_tmp:w { redefsymbols }
+\siunitx_tmp:w { repeatunits }
+\siunitx_tmp:w { retainplus }
+\siunitx_tmp:w { seperr }
+\siunitx_tmp:w { sepfour }
+\siunitx_tmp:w { sf }
+\siunitx_tmp:w { sign }
+\siunitx_tmp:w { slash }
+\siunitx_tmp:w { stickyper }
+\siunitx_tmp:w { stricarc }
+\siunitx_tmp:w { tabalign }
+\siunitx_tmp:w { tabalignexp }
+\siunitx_tmp:w { tabautofit }
+\siunitx_tmp:w { tabformat }
+\siunitx_tmp:w { tabnumalign }
+\siunitx_tmp:w { tabparseonly }
+\siunitx_tmp:w { tabtextalign }
+\siunitx_tmp:w { textOmega }
+\siunitx_tmp:w { textcelsius }
+\siunitx_tmp:w { textdegree }
+\siunitx_tmp:w { textminute }
+\siunitx_tmp:w { textmode }
+\siunitx_tmp:w { textmu }
+\siunitx_tmp:w { textringA }
+\siunitx_tmp:w { textrm }
+\siunitx_tmp:w { textsecond }
+\siunitx_tmp:w { textsf }
+\siunitx_tmp:w { texttt }
+\siunitx_tmp:w { tightpm }
+\siunitx_tmp:w { tophrase }
+\siunitx_tmp:w { trapamigerr }
+\siunitx_tmp:w { trapambigfrac }
+\siunitx_tmp:w { trapambigrange }
+\siunitx_tmp:w { unitcolor }
+\siunitx_tmp:w { unitcolour }
+\siunitx_tmp:w { unitmathrm }
+\siunitx_tmp:w { unitmathsf }
+\siunitx_tmp:w { unitmathsrm }
+\siunitx_tmp:w { unitmathssf }
+\siunitx_tmp:w { unitmathstt }
+\siunitx_tmp:w { unitmathtt }
+\siunitx_tmp:w { unitmode }
+\siunitx_tmp:w { unitsep }
+\siunitx_tmp:w { unitspace }
+\siunitx_tmp:w { valuecolor }
+\siunitx_tmp:w { valuecolour }
+\siunitx_tmp:w { valuemathrm }
+\siunitx_tmp:w { valuemathsf }
+\siunitx_tmp:w { valuemathsrm }
+\siunitx_tmp:w { valuemathssf }
+\siunitx_tmp:w { valuemathstt }
+\siunitx_tmp:w { valuemathtt }
+\siunitx_tmp:w { valuemode }
+\siunitx_tmp:w { valuesep }
+\siunitx_tmp:w { xpace }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_key_tl}
+%\begin{macro}{\l_siunitx_key_tl}
% Unknown options should raise an \pkg{siunitx}-specific error message.
% \begin{macrocode}
\tl_new:N \l_siunitx_key_tl
\keys_define:nn { siunitx } {
unknown .code:n =
{
- \seq_if_in:NVTF \_c_siunitx_old_options_seq \l_keys_key_tl
+ \seq_if_in:NVTF \c_siunitx_old_options_seq \l_keys_key_tl
{
\msg_warning:nnx { siunitx } { version-1-option }
{ \exp_not:V \l_keys_key_tl }
- \tl_set:Nx \_l_siunitx_key_tl
+ \tl_set:Nx \l_siunitx_key_tl
{
\keys_set:nn { siunitx }
{
@@ -4201,7 +4243,7 @@ This work consists of the file siunitx.dtx
}
}
\keys_set:nn { siunitx } { load-configurations = version-1 }
- \tl_use:N \_l_siunitx_key_tl
+ \tl_use:N \l_siunitx_key_tl
}
{
\msg_error:nnx { siunitx } { unknown-option }
@@ -4213,7 +4255,7 @@ This work consists of the file siunitx.dtx
\keys_define:nn { siunitx } {
unknown .code:n =
{
- \seq_if_in:NVTF \_c_siunitx_old_options_seq \l_keys_key_tl
+ \seq_if_in:NVTF \c_siunitx_old_options_seq \l_keys_key_tl
{
\msg_error:nnx { siunitx } { version-1-option }
{ \exp_not:V \l_keys_key_tl }
@@ -4228,16 +4270,16 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_option_deactivate_clist}
-%\begin{macro}{\_siunitx_option_deactivate:n}
-%\begin{macro}[aux]{\_siunitx_option_deactivate_aux:n}
+%\begin{macro}{\l_siunitx_option_deactivate_clist}
+%\begin{macro}{\siunitx_option_deactivate:n}
+%\begin{macro}[aux]{\siunitx_option_deactivate_aux:n}
% Some options need to be deactivated at the start of the document.
% \begin{macrocode}
-\clist_new:N \_l_siunitx_option_deactivate_clist
-\cs_set_protected_nopar:Npn \_siunitx_option_deactivate:n #1 {
- \clist_put_right:Nn \_l_siunitx_option_deactivate_clist {#1}
+\clist_new:N \l_siunitx_option_deactivate_clist
+\cs_new_protected_nopar:Npn \siunitx_option_deactivate:n #1 {
+ \clist_put_right:Nn \l_siunitx_option_deactivate_clist {#1}
}
-\cs_set_protected_nopar:Npn \_siunitx_option_deactivate_aux:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_option_deactivate_aux:n #1 {
\keys_define:nn { siunitx }
{
#1 .code:n =
@@ -4245,8 +4287,8 @@ This work consists of the file siunitx.dtx
}
}
\AtBeginDocument {
- \clist_map_function:NN \_l_siunitx_option_deactivate_clist
- \_siunitx_option_deactivate_aux:n
+ \clist_map_function:NN \l_siunitx_option_deactivate_clist
+ \siunitx_option_deactivate_aux:n
}
% \end{macrocode}
%\end{macro}
@@ -4266,11 +4308,11 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_cs_if_tl_p:N}
-%\begin{macro}[TF]{\_siunitx_cs_if_tl:N}
-%\begin{macro}[aux]{\_siunitx_cs_if_tl_aux:w}
-%\begin{macro}{\_siunitx_cs_if_macro_p:N}
-%\begin{macro}[TF]{\_siunitx_cs_if_macro:NT}
+%\begin{macro}{\siunitx_cs_if_tl_p:N}
+%\begin{macro}[TF]{\siunitx_cs_if_tl:N}
+%\begin{macro}[aux]{\siunitx_cs_if_tl_aux:w}
+%\begin{macro}{\siunitx_cs_if_macro_p:N}
+%\begin{macro}[TF]{\siunitx_cs_if_macro:NT}
% This is basically a re-hash of stuff from \pkg{expl3}, but to test for
% short macros only. The second test (with the \cs{cs_to_str:N} part)
% is checking for LaTeX2e robust commands.
@@ -4282,9 +4324,9 @@ This work consists of the file siunitx.dtx
{ \char_set_lccode:nn { `#1 } { `#1 } }
\tl_to_lowercase:n {
\group_end:
- \prg_set_conditional:Npnn \_siunitx_cs_if_tl:N #1 { T , F, TF , p }
+ \prg_new_conditional:Npnn \siunitx_cs_if_tl:N #1 { T , F, TF , p }
{
- \exp_after:wN \_siunitx_cs_if_tl_aux:w
+ \exp_after:wN \siunitx_cs_if_tl_aux:w
\token_to_meaning:N #1 MACRO \q_nil
{
\cs_if_exist:cTF { \cs_to_str:N #1 ~ }
@@ -4293,12 +4335,12 @@ This work consists of the file siunitx.dtx
}
{ \prg_return_false: }
}
- \cs_set_nopar:Npn \_siunitx_cs_if_tl_aux:w #1 MACRO #2 \q_nil
+ \cs_new_nopar:Npn \siunitx_cs_if_tl_aux:w #1 MACRO #2 \q_nil
{ \tl_if_empty:nTF {#1} }
- \prg_set_conditional:Npnn \_siunitx_cs_if_macro:N #1
+ \prg_new_conditional:Npnn \siunitx_cs_if_macro:N #1
{ T , F , TF , p }
{
- \exp_after:wN \_siunitx_cs_if_tl_aux:w
+ \exp_after:wN \siunitx_cs_if_tl_aux:w
\token_to_meaning:N #1 MACRO \q_nil
{ \prg_return_true: }
{ \prg_return_false: }
@@ -4311,16 +4353,16 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_ensuremath:n}
+%\begin{macro}{\siunitx_ensuremath:n}
% A copy is made of \cs{ensuremath}: if \pkg{tex4ht} is in use, it
% is possible to deactivate this to give nicer looking conversion to
% other formats.
% \begin{macrocode}
-\cs_set_eq:NN \_siunitx_ensuremath:n \ensuremath
+\cs_new_eq:NN \siunitx_ensuremath:n \ensuremath
\AtBeginDocument {
\@ifpackageloaded { tex4ht }
{
- \cs_set_eq:NN \_siunitx_ensuremath:n \use:n
+ \cs_set_eq:NN \siunitx_ensuremath:n \use:n
\keys_set:nn { siunitx } { mode = text }
}
{ }
@@ -4336,9 +4378,9 @@ This work consists of the file siunitx.dtx
% package. By carrying out the changes outside math mode, bold can
% reliably be applied to math output.
%
-%\begin{macro}{\_c_siunitx_mathsf_int}
-%\begin{macro}{\_c_siunitx_mathtt_int}
-%\begin{macro}{\_siunitx_set_math_fam:n}
+%\begin{macro}{\c_siunitx_mathsf_int}
+%\begin{macro}{\c_siunitx_mathtt_int}
+%\begin{macro}{\siunitx_set_math_fam:n}
% The detection routine needs some basic data about the sans serif and
% monospaced fonts in use. This is collected up at the start of the
% document. The families used can change between here and the start of
@@ -4346,64 +4388,64 @@ This work consists of the file siunitx.dtx
% using \cs{AtBeginDocument} as it has to come after anything that
% \pkg{fontspec} does (nasty errors arise otherwise).
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_set_math_fam:n #1 {
- \int_new:c { _c_siunitx_math #1 _int }
+\cs_new_protected_nopar:Npn \siunitx_set_math_fam:n #1 {
+ \int_new:c { c_siunitx_math #1 _int }
\group_begin:
- \hbox_set:Nn \_l_siunitx_tmp_box
+ \hbox_set:Nn \l_siunitx_tmp_box
{
\ensuremath
{
\use:c { math #1 }
{
- \int_gset:cn { _c_siunitx_math #1 _int } { \fam }
+ \int_gset:cn { c_siunitx_math #1 _int } { \fam }
}
}
}
\group_end:
}
\tl_put_right:Nn \document {
- \_siunitx_set_math_fam:n { sf }
- \_siunitx_set_math_fam:n { tt }
+ \siunitx_set_math_fam:n { sf }
+ \siunitx_set_math_fam:n { tt }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_font_set_text_fam:n}
-%\begin{macro}{\_c_siunitx_textsf_tl}
-%\begin{macro}{\_c_siunitx_texttt_tl}
+%\begin{macro}{\siunitx_font_set_text_fam:n}
+%\begin{macro}{\c_siunitx_textsf_tl}
+%\begin{macro}{\c_siunitx_texttt_tl}
% The text families are done in a somewhat different manner: there are
% no issues with \cs{AtBeginDocument}, luckily. The need to define
% new macros here arises as \cs{sfdefault} and \cs{ttdefault} are
% \cs{long}, whereas \cs{f@family} is not.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_set_text_fam:n #1 {
- \tl_new:c { _c_siunitx_text #1 _tl }
- \tl_set:cx { _c_siunitx_text #1 _tl } { \use:c { #1 default } }
+\cs_new_protected_nopar:Npn \siunitx_set_text_fam:n #1 {
+ \tl_new:c { c_siunitx_text #1 _tl }
+ \tl_set:cx { c_siunitx_text #1 _tl } { \use:c { #1 default } }
}
\AtBeginDocument {
- \_siunitx_set_text_fam:n { sf }
- \_siunitx_set_text_fam:n { tt }
+ \siunitx_set_text_fam:n { sf }
+ \siunitx_set_text_fam:n { tt }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_detect_inline_weight_tl}
+%\begin{macro}{\l_siunitx_detect_inline_weight_tl}
% Used by the keys, but needs to be created here.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_detect_inline_weight_tl
+\tl_new:N \l_siunitx_detect_inline_weight_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_detect_display_math_bool}
-%\begin{macro}{\_l_siunitx_detect_family_bool}
-%\begin{macro}{\_l_siunitx_detect_inline_weight_bool}
-%\begin{macro}{\_l_siunitx_detect_italic_bool}
-%\begin{macro}{\_l_siunitx_detect_mode_bool}
-%\begin{macro}{\_l_siunitx_detect_weight_bool}
+%\begin{macro}{\l_siunitx_detect_display_math_bool}
+%\begin{macro}{\l_siunitx_detect_family_bool}
+%\begin{macro}{\l_siunitx_detect_inline_weight_bool}
+%\begin{macro}{\l_siunitx_detect_italic_bool}
+%\begin{macro}{\l_siunitx_detect_mode_bool}
+%\begin{macro}{\l_siunitx_detect_weight_bool}
% Font detection is all about creating switches, with just a little
% gloss for \texttt{detect-all} and \texttt{detect-none}.
% \begin{macrocode}
@@ -4425,21 +4467,21 @@ This work consists of the file siunitx.dtx
detect-weight = true
},
detect-display-math .bool_set:N =
- \_l_siunitx_detect_display_math_bool,
- detect-family .bool_set:N = \_l_siunitx_detect_family_bool,
+ \l_siunitx_detect_display_math_bool,
+ detect-family .bool_set:N = \l_siunitx_detect_family_bool,
detect-inline-weight .choice:,
detect-inline-weight .value_required:,
detect-inline-weight /
combined .code:n =
- { \tl_set:Nn \_l_siunitx_detect_inline_weight_tl { combined } },
+ { \tl_set:Nn \l_siunitx_detect_inline_weight_tl { combined } },
detect-inline-weight /
math .code:n =
- { \tl_set:Nn \_l_siunitx_detect_inline_weight_tl { math } },
+ { \tl_set:Nn \l_siunitx_detect_inline_weight_tl { math } },
detect-inline-weight /
text .code:n =
- { \tl_set:Nn \_l_siunitx_detect_inline_weight_tl { text } },
- detect-italic .bool_set:N = \_l_siunitx_detect_italic_bool,
- detect-mode .bool_set:N = \_l_siunitx_detect_mode_bool,
+ { \tl_set:Nn \l_siunitx_detect_inline_weight_tl { text } },
+ detect-italic .bool_set:N = \l_siunitx_detect_italic_bool,
+ detect-mode .bool_set:N = \l_siunitx_detect_mode_bool,
detect-none .choice:,
detect-none .default:n = true,
detect-none / false .meta:n =
@@ -4456,7 +4498,7 @@ This work consists of the file siunitx.dtx
detect-mode = false,
detect-weight = false
},
- detect-weight .bool_set:N = \_l_siunitx_detect_weight_bool
+ detect-weight .bool_set:N = \l_siunitx_detect_weight_bool
}
% \end{macrocode}
%\end{macro}
@@ -4466,114 +4508,114 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_font_set_bool}
-%\begin{macro}{\_l_siunitx_font_math_mode_bool}
+%\begin{macro}{\l_siunitx_font_set_bool}
+%\begin{macro}{\l_siunitx_font_math_mode_bool}
% The internals of the package need a number of switches to track what
% is happening.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_font_set_bool
-\bool_new:N \_l_siunitx_font_math_mode_bool
+\bool_new:N \l_siunitx_font_set_bool
+\bool_new:N \l_siunitx_font_math_mode_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_font_family_tl}
+%\begin{macro}{\l_siunitx_font_family_tl}
% Also some token storage.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_font_family_tl
+\tl_new:N \l_siunitx_font_family_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_font_italic:}
-%\begin{macro}{\_siunitx_font_weight:}
+%\begin{macro}{\siunitx_font_italic:}
+%\begin{macro}{\siunitx_font_weight:}
% These could be token lists or functions!
% \begin{macrocode}
-\cs_set_nopar:Npn \_siunitx_font_italic: { }
-\cs_set_nopar:Npn \_siunitx_font_weight: { }
+\cs_new_nopar:Npn \siunitx_font_italic: { }
+\cs_new_nopar:Npn \siunitx_font_weight: { }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_detect_font:}
+%\begin{macro}{\siunitx_detect_font:}
% The main font-setting macro is a control point for the other
% functions. Nesting font-control should not happen, so the first
% test is to ensure this is not happening.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font: {
- \bool_if:NF \_l_siunitx_font_set_bool
+\cs_new_protected_nopar:Npn \siunitx_detect_font: {
+ \bool_if:NF \l_siunitx_font_set_bool
{
- \_siunitx_detect_font_init:
- \bool_if:NT \_l_siunitx_detect_weight_bool
- { \_siunitx_detect_font_weight: }
- \bool_if:NT \_l_siunitx_detect_family_bool
- { \_siunitx_detect_font_family: }
- \bool_if:NT \_l_siunitx_detect_italic_bool
- { \_siunitx_detect_font_italic: }
- \bool_if:NT \_l_siunitx_detect_mode_bool
- { \_siunitx_detect_font_mode: }
+ \siunitx_detect_font_init:
+ \bool_if:NT \l_siunitx_detect_weight_bool
+ { \siunitx_detect_font_weight: }
+ \bool_if:NT \l_siunitx_detect_family_bool
+ { \siunitx_detect_font_family: }
+ \bool_if:NT \l_siunitx_detect_italic_bool
+ { \siunitx_detect_font_italic: }
+ \bool_if:NT \l_siunitx_detect_mode_bool
+ { \siunitx_detect_font_mode: }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_detect_font_init:}
+%\begin{macro}{\siunitx_detect_font_init:}
% Set up the basic macros on the assumption nothing happens.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_init: {
- \bool_set_true:N \_l_siunitx_font_set_bool
- \cs_set:Npn \_siunitx_font_weight:
+\cs_new_protected_nopar:Npn \siunitx_detect_font_init: {
+ \bool_set_true:N \l_siunitx_font_set_bool
+ \cs_set:Npn \siunitx_font_weight:
{
\unboldmath
\mdseries
}
- \cs_set:Npn \_siunitx_font_italic: { \upshape }
- \tl_set:Nn \_l_siunitx_font_family_tl { rm }
- \bool_set_true:N \_l_siunitx_font_math_mode_bool
+ \cs_set:Npn \siunitx_font_italic: { \upshape }
+ \tl_set:Nn \l_siunitx_font_family_tl { rm }
+ \bool_set_true:N \l_siunitx_font_math_mode_bool
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_detect_font_weight:}
+%\begin{macro}{\siunitx_detect_font_weight:}
% The font weight detection code depends on whether the current text is
% math or text, and also the type of math (if appropriate). For
% inline math, there is a choice of what test to apply.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight: {
\mode_if_math:TF
{
\mode_if_inner:TF
{
\use:c
{
- _siunitx_detect_font_weight_
- \_l_siunitx_detect_inline_weight_tl
+ siunitx_detect_font_weight_
+ \l_siunitx_detect_inline_weight_tl
:
}
}
{
- \bool_if:NTF \_l_siunitx_detect_display_math_bool
- { \_siunitx_detect_font_weight_math: }
- { \_siunitx_detect_font_weight_text: }
+ \bool_if:NTF \l_siunitx_detect_display_math_bool
+ { \siunitx_detect_font_weight_math: }
+ { \siunitx_detect_font_weight_text: }
}
}
- { \_siunitx_detect_font_weight_text: }
+ { \siunitx_detect_font_weight_text: }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_detect_font_weight_combined:}
-%\begin{macro}{\_siunitx_detect_font_weight_math:}
-%\begin{macro}{\_siunitx_detect_font_weight_text:}
+%\begin{macro}{\siunitx_detect_font_weight_combined:}
+%\begin{macro}{\siunitx_detect_font_weight_math:}
+%\begin{macro}{\siunitx_detect_font_weight_text:}
% The tests for font weight depend on whether the module is testing
% text or math content.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight_combined: {
- \_siunitx_detect_font_weight_math:
- \_siunitx_detect_font_weight_text:
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight_combined: {
+ \siunitx_detect_font_weight_math:
+ \siunitx_detect_font_weight_text:
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight_math: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight_math: {
\tl_if_eq:nVT { bold } \math@version
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{
\boldmath
\bfseries
@@ -4581,23 +4623,23 @@ This work consists of the file siunitx.dtx
}
\tl_if_eq:nVT { light } \math@version
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{ \lseries }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight_text: {
- \tl_set:Nx \_l_siunitx_tmpa_tl { \exp_args:NV \tl_head:n \f@series }
- \tl_if_eq:nVT { b } \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight_text: {
+ \tl_set:Nx \l_siunitx_tmpa_tl { \exp_args:NV \tl_head:n \f@series }
+ \tl_if_eq:nVT { b } \l_siunitx_tmpa_tl
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{
\boldmath
\bfseries
}
}
- \tl_if_eq:nVT { l } \_l_siunitx_tmpa_tl
+ \tl_if_eq:nVT { l } \l_siunitx_tmpa_tl
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{ \lseries }
}
}
@@ -4606,62 +4648,62 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_detect_font_family:}
+%\begin{macro}{\siunitx_detect_font_family:}
% Family detection usually picks up the surrounding text. However, for
% display math there are two options, and so a second test may be made.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_family: {
- \_siunitx_detect_font_family_text:
- \bool_if:NT \_l_siunitx_detect_display_math_bool
+\cs_new_protected_nopar:Npn \siunitx_detect_font_family: {
+ \siunitx_detect_font_family_text:
+ \bool_if:NT \l_siunitx_detect_display_math_bool
{
\mode_if_math:T
- { \mode_if_inner:F { \_siunitx_detect_font_family_math: } }
+ { \mode_if_inner:F { \siunitx_detect_font_family_math: } }
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_detect_font_family_math:}
-%\begin{macro}{\_siunitx_detect_font_family_text:}
+%\begin{macro}{\siunitx_detect_font_family_math:}
+%\begin{macro}{\siunitx_detect_font_family_text:}
% The two detections routines check if the current font is sans serif or
% monospaced. The method used depends on whether the current math or
% text font is of interest. The math detection routine re-applies the
% default (\texttt{rm}), as the text function is always called and may
% have changed things.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_family_math: {
- \tl_set:Nn \_l_siunitx_font_family_tl { rm }
- \intexpr_compare:nNnT { \fam } = { \_c_siunitx_mathsf_int }
- { \tl_set:Nn \_l_siunitx_font_family_tl { sf } }
- \intexpr_compare:nNnT { \fam } = { \_c_siunitx_mathtt_int }
- { \tl_set:Nn \_l_siunitx_font_family_tl { tt } }
+\cs_new_protected_nopar:Npn \siunitx_detect_font_family_math: {
+ \tl_set:Nn \l_siunitx_font_family_tl { rm }
+ \intexpr_compare:nNnT { \fam } = { \c_siunitx_mathsf_int }
+ { \tl_set:Nn \l_siunitx_font_family_tl { sf } }
+ \intexpr_compare:nNnT { \fam } = { \c_siunitx_mathtt_int }
+ { \tl_set:Nn \l_siunitx_font_family_tl { tt } }
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_family_text: {
- \tl_if_eq:NNT \f@family \_c_siunitx_textsf_tl
- { \tl_set:Nn \_l_siunitx_font_family_tl { sf } }
- \tl_if_eq:NNT \f@family \_c_siunitx_texttt_tl
- { \tl_set:Nn \_l_siunitx_font_family_tl { tt } }
+\cs_new_protected_nopar:Npn \siunitx_detect_font_family_text: {
+ \tl_if_eq:NNT \f@family \c_siunitx_textsf_tl
+ { \tl_set:Nn \l_siunitx_font_family_tl { sf } }
+ \tl_if_eq:NNT \f@family \c_siunitx_texttt_tl
+ { \tl_set:Nn \l_siunitx_font_family_tl { tt } }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_detect_font_italic:}
+%\begin{macro}{\siunitx_detect_font_italic:}
% The italic test uses \cs{f@shape} as a handy indicator.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_italic: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_italic: {
\tl_if_eq:nVT { it } \f@shape
- { \cs_set_nopar:Npn \_siunitx_font_italic: { \itshape } }
+ { \cs_set_nopar:Npn \siunitx_font_italic: { \itshape } }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_detect_font_mode:}
+%\begin{macro}{\siunitx_detect_font_mode:}
% The mode switch works from the fact that math mode output it the
% standard.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_mode: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_mode: {
\mode_if_math:F
- { \bool_set_false:N \_l_siunitx_font_math_mode_bool }
+ { \bool_set_false:N \l_siunitx_font_math_mode_bool }
}
% \end{macrocode}
%\end{macro}
@@ -4674,51 +4716,51 @@ This work consists of the file siunitx.dtx
% by name, based on output type (\texttt{unit} or \texttt{value}) and
% the family selected by the detector.
%
-%\begin{macro}{\_l_siunitx_number_math_mode_bool}
-%\begin{macro}{\_l_siunitx_unit_math_mode_bool}
+%\begin{macro}{\l_siunitx_number_math_mode_bool}
+%\begin{macro}{\l_siunitx_unit_math_mode_bool}
% Most of the variables are created by the keys system: these are not.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_number_math_mode_bool
-\bool_new:N \_l_siunitx_unit_math_mode_bool
+\bool_new:N \l_siunitx_number_math_mode_bool
+\bool_new:N \l_siunitx_unit_math_mode_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_color_tl}
-%\begin{macro}{\_siunitx_number_mathrm:n}
-%\begin{macro}{\_siunitx_number_mathsf:n}
-%\begin{macro}{\_siunitx_number_mathtt:n}
-%\begin{macro}{\_siunitx_number_textrm:}
-%\begin{macro}{\_siunitx_number_textsf:}
-%\begin{macro}{\_siunitx_number_texttt:}
+%\begin{macro}{\l_siunitx_number_color_tl}
+%\begin{macro}{\siunitx_number_mathrm:n}
+%\begin{macro}{\siunitx_number_mathsf:n}
+%\begin{macro}{\siunitx_number_mathtt:n}
+%\begin{macro}{\siunitx_number_textrm:}
+%\begin{macro}{\siunitx_number_textsf:}
+%\begin{macro}{\siunitx_number_texttt:}
% The settings are actually created separately for numbers and units:
% numbers first.
% \begin{macrocode}
-\cs_set:Npn \_siunitx_number_mathrm:n #1 { }
-\cs_set:Npn \_siunitx_number_mathsf:n #1 { }
-\cs_set:Npn \_siunitx_number_mathtt:n #1 { }
-\cs_set_nopar:Npn \_siunitx_number_textrm: { }
-\cs_set_nopar:Npn \_siunitx_number_textsf: { }
-\cs_set_nopar:Npn \_siunitx_number_texttt: { }
+\cs_new:Npn \siunitx_number_mathrm:n #1 { }
+\cs_new:Npn \siunitx_number_mathsf:n #1 { }
+\cs_new:Npn \siunitx_number_mathtt:n #1 { }
+\cs_new_nopar:Npn \siunitx_number_textrm: { }
+\cs_new_nopar:Npn \siunitx_number_textsf: { }
+\cs_new_nopar:Npn \siunitx_number_texttt: { }
\keys_define:nn { siunitx } {
- number-color .tl_set:N = \_l_siunitx_number_color_tl,
+ number-color .tl_set:N = \l_siunitx_number_color_tl,
number-math-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_mathrm:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_number_mathrm:n ##1 { #1 {##1} } },
number-math-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_mathsf:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_number_mathsf:n ##1 { #1 {##1} } },
number-math-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_mathtt:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_number_mathtt:n ##1 { #1 {##1} } },
number-mode .choice:,
number-mode / math .code:n =
- { \bool_set_true:N \_l_siunitx_number_math_mode_bool },
+ { \bool_set_true:N \l_siunitx_number_math_mode_bool },
number-mode / text .code:n =
- { \bool_set_false:N \_l_siunitx_number_math_mode_bool },
+ { \bool_set_false:N \l_siunitx_number_math_mode_bool },
number-text-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_textrm: {#1} },
+ { \cs_set_nopar:Npn \siunitx_number_textrm: {#1} },
number-text-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_textsf: {#1} },
+ { \cs_set_nopar:Npn \siunitx_number_textsf: {#1} },
number-text-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_texttt: {#1} }
+ { \cs_set_nopar:Npn \siunitx_number_texttt: {#1} }
}
% \end{macrocode}
%\end{macro}
@@ -4729,40 +4771,40 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_unit_color_tl}
-%\begin{macro}{\_siunitx_unit_mathrm:n}
-%\begin{macro}{\_siunitx_unit_mathsf:n}
-%\begin{macro}{\_siunitx_unit_mathtt:n}
-%\begin{macro}{\_siunitx_unit_textrm:}
-%\begin{macro}{\_siunitx_unit_textsf:}
-%\begin{macro}{\_siunitx_unit_texttt:}
+%\begin{macro}{\l_siunitx_unit_color_tl}
+%\begin{macro}{\siunitx_unit_mathrm:n}
+%\begin{macro}{\siunitx_unit_mathsf:n}
+%\begin{macro}{\siunitx_unit_mathtt:n}
+%\begin{macro}{\siunitx_unit_textrm:}
+%\begin{macro}{\siunitx_unit_textsf:}
+%\begin{macro}{\siunitx_unit_texttt:}
% Units look exactly the same.
% \begin{macrocode}
-\cs_set_nopar:Npn \_siunitx_unit_mathrm: { }
-\cs_set_nopar:Npn \_siunitx_unit_mathsf: { }
-\cs_set_nopar:Npn \_siunitx_unit_mathtt: { }
-\cs_set_nopar:Npn \_siunitx_unit_textrm: { }
-\cs_set_nopar:Npn \_siunitx_unit_textsf: { }
-\cs_set_nopar:Npn \_siunitx_unit_texttt: { }
+\cs_new_nopar:Npn \siunitx_unit_mathrm: { }
+\cs_new_nopar:Npn \siunitx_unit_mathsf: { }
+\cs_new_nopar:Npn \siunitx_unit_mathtt: { }
+\cs_new_nopar:Npn \siunitx_unit_textrm: { }
+\cs_new_nopar:Npn \siunitx_unit_textsf: { }
+\cs_new_nopar:Npn \siunitx_unit_texttt: { }
\keys_define:nn { siunitx } {
- unit-color .tl_set:N = \_l_siunitx_unit_color_tl,
+ unit-color .tl_set:N = \l_siunitx_unit_color_tl,
unit-math-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_mathrm:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_unit_mathrm:n ##1 { #1 {##1} } },
unit-math-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_mathsf:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_unit_mathsf:n ##1 { #1 {##1} } },
unit-math-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_mathtt:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_unit_mathtt:n ##1 { #1 {##1} } },
unit-mode .choice:,
unit-mode / math .code:n =
- { \bool_set_true:N \_l_siunitx_unit_math_mode_bool },
+ { \bool_set_true:N \l_siunitx_unit_math_mode_bool },
unit-mode / text .code:n =
- { \bool_set_false:N \_l_siunitx_unit_math_mode_bool },
+ { \bool_set_false:N \l_siunitx_unit_math_mode_bool },
unit-text-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_textrm: {#1} },
+ { \cs_set_nopar:Npn \siunitx_unit_textrm: {#1} },
unit-text-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_textsf: {#1} },
+ { \cs_set_nopar:Npn \siunitx_unit_textsf: {#1} },
unit-text-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_texttt: {#1} }
+ { \cs_set_nopar:Npn \siunitx_unit_texttt: {#1} }
}
% \end{macrocode}
%\end{macro}
@@ -4841,14 +4883,14 @@ This work consists of the file siunitx.dtx
% all round.
% \begin{macrocode}
\AtBeginDocument {
- \tl_set:Nx \_l_siunitx_tmpa_tl { \familydefault }
- \tl_if_eq:NNT \_l_siunitx_tmpa_tl \_c_siunitx_textsf_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl { \familydefault }
+ \tl_if_eq:NNT \l_siunitx_tmpa_tl \c_siunitx_textsf_tl
{
\@ifpackageloaded { cmbright } { }
{ \keys_set:nn { siunitx } { math-rm = \mathsf } }
\keys_set:nn { siunitx } { text-rm = \sffamily }
}
- \tl_if_eq:NNT \_l_siunitx_tmpa_tl \_c_siunitx_texttt_tl
+ \tl_if_eq:NNT \l_siunitx_tmpa_tl \c_siunitx_texttt_tl
{
\keys_set:nn { siunitx }
{
@@ -4867,93 +4909,93 @@ This work consists of the file siunitx.dtx
% to have taken some steps first (this is to allow line breaks in the
% appropriate places).
%
-%\begin{macro}{\_l_siunitx_print_arg_tl}
+%\begin{macro}{\l_siunitx_print_arg_tl}
% The text to print.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_print_arg_tl
+\tl_new:N \l_siunitx_print_arg_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_print_type_tl}
+%\begin{macro}{\l_siunitx_print_type_tl}
% The type of output (\texttt{number} or \texttt{unit}) is always
% needed.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_print_type_tl
+\tl_new:N \l_siunitx_print_type_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_print:nn}
-%\begin{macro}{\_siunitx_print:nV}
+%\begin{macro}{\siunitx_print:nn}
+%\begin{macro}{\siunitx_print:nV}
% The main printing function does everything inside a group, as
% there are category code and definition changes to make. First, set
% the fonts. Then move on to printing mode, before moving to actual
% printing.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_print:nn #1#2 {
+\cs_new_protected:Npn \siunitx_print:nn #1#2 {
\group_begin:
- \tl_set:Nn \_l_siunitx_print_type_tl {#1}
- \tl_set:Nn \_l_siunitx_print_arg_tl {#2}
- \_siunitx_detect_font:
- \bool_if:NF \_l_siunitx_detect_mode_bool
+ \tl_set:Nn \l_siunitx_print_type_tl {#1}
+ \tl_set:Nn \l_siunitx_print_arg_tl {#2}
+ \siunitx_detect_font:
+ \bool_if:NF \l_siunitx_detect_mode_bool
{
- \bool_if:cTF { _l_siunitx_ #1 _math_mode_bool }
- { \bool_set_true:N \_l_siunitx_font_math_mode_bool }
- { \bool_set_false:N \_l_siunitx_font_math_mode_bool }
+ \bool_if:cTF { l_siunitx_ #1 _math_mode_bool }
+ { \bool_set_true:N \l_siunitx_font_math_mode_bool }
+ { \bool_set_false:N \l_siunitx_font_math_mode_bool }
}
- \_siunitx_print_aux:
+ \siunitx_print_aux:
\group_end:
}
-\cs_generate_variant:Nn \_siunitx_print:nn { nV }
+\cs_generate_variant:Nn \siunitx_print:nn { nV }
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_print_aux:}
+%\begin{macro}[aux]{\siunitx_print_aux:}
% The various font changes are set up, then the correct printing
% function is called. Everything is inside \cs{text} as this allows
% proper setting of the various mode settings.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_print_aux: {
+\cs_new_protected_nopar:Npn \siunitx_print_aux: {
\text
{
- \_siunitx_print_color:
- \_siunitx_font_weight:
- \_siunitx_font_italic:
+ \siunitx_print_color:
+ \siunitx_font_weight:
+ \siunitx_font_italic:
\use:c
{
- _siunitx_ \_l_siunitx_print_type_tl _
- text \_l_siunitx_font_family_tl :
+ siunitx_ \l_siunitx_print_type_tl _
+ text \l_siunitx_font_family_tl :
}
- \bool_if:NTF \_l_siunitx_font_math_mode_bool
- { \_siunitx_print_math: }
- { \_siunitx_print_text: }
+ \bool_if:NTF \l_siunitx_font_math_mode_bool
+ { \siunitx_print_math: }
+ { \siunitx_print_text: }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_print_color:}
+%\begin{macro}{\siunitx_print_color:}
% The colour system checks if \pkg{color} is loaded, and only does
% anything if it is. This will change when LaTeX3 proper is available:
% there will be colour out of the box!
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_print_color: {
- \tl_if_empty:cF { _l_siunitx_ \_l_siunitx_print_type_tl _color_tl }
+\cs_new_protected_nopar:Npn \siunitx_print_color: {
+ \tl_if_empty:cF { l_siunitx_ \l_siunitx_print_type_tl _color_tl }
{
\color
{
- \tl_use:c { _l_siunitx_ \_l_siunitx_print_type_tl _color_tl }
+ \tl_use:c { l_siunitx_ \l_siunitx_print_type_tl _color_tl }
}
}
}
\AtBeginDocument {
\@ifpackageloaded { color } { }
- { \cs_set_eq:NN \_siunitx_print_color: \scan_stop: }
+ { \cs_set_eq:NN \siunitx_print_color: \scan_stop: }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_print_math:}
-%\begin{macro}{\_siunitx_print_text:}
+%\begin{macro}{\siunitx_print_math:}
+%\begin{macro}{\siunitx_print_text:}
% Printing the text means replacing any awkward characters, which is
% dependent on the output mode. The rest of the package uses "_" and
% "^" to represent sub- and superscripts, respectively. In this way,
@@ -4968,36 +5010,36 @@ This work consists of the file siunitx.dtx
\char_make_active:N \!
\tl_to_lowercase:n {
\group_end:
- \cs_set_protected_nopar:Npn \_siunitx_print_math:
+ \cs_set_protected_nopar:Npn \siunitx_print_math:
{
\ensuremath
{
\use:c
{
- _siunitx_ \_l_siunitx_print_type_tl _
- math \_l_siunitx_font_family_tl :n
+ siunitx_ \l_siunitx_print_type_tl _
+ math \l_siunitx_font_family_tl :n
}
- { \_l_siunitx_print_arg_tl }
+ { \l_siunitx_print_arg_tl }
}
}
- \cs_set_protected_nopar:Npn \_siunitx_print_text:
+ \cs_set_protected_nopar:Npn \siunitx_print_text:
{
- \tl_replace_all_in:Nnn \_l_siunitx_print_arg_tl { @ }
- { \_siunitx_print_text_sub:n }
- \tl_replace_all_in:Nnn \_l_siunitx_print_arg_tl { ! }
- { \_siunitx_print_text_sub:n }
- \tl_replace_all_in:Nnn \_l_siunitx_print_arg_tl { ^ }
- { \_siunitx_print_text_super:n }
- \_l_siunitx_print_arg_tl
+ \tl_replace_all_in:Nnn \l_siunitx_print_arg_tl { @ }
+ { \siunitx_print_text_sub:n }
+ \tl_replace_all_in:Nnn \l_siunitx_print_arg_tl { ! }
+ { \siunitx_print_text_sub:n }
+ \tl_replace_all_in:Nnn \l_siunitx_print_arg_tl { ^ }
+ { \siunitx_print_text_super:n }
+ \l_siunitx_print_arg_tl
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_print_text_sub:n}
-%\begin{macro}[aux]{\_siunitx_print_text_sub_super:n}
-%\begin{macro}{\_siunitx_print_text_super:n}
+%\begin{macro}{\siunitx_print_text_sub:n}
+%\begin{macro}[aux]{\siunitx_print_text_sub_super:n}
+%\begin{macro}{\siunitx_print_text_super:n}
% The appropriate macros for sub- and superscript in text mode ensure
% the appearance is the same as math mode. As "_" is a letter, there
% is the need to do a category-code juggle. The search and replace
@@ -5009,9 +5051,9 @@ This work consists of the file siunitx.dtx
\char_make_math_subscript:N \@
\tl_to_lowercase:n {
\group_end:
- \cs_set_protected:Npn \_siunitx_print_text_sub:n #1
+ \cs_set_protected:Npn \siunitx_print_text_sub:n #1
{
- \cs_set:Npn \_siunitx_print_text_sub_super:n ##1
+ \cs_set:Npn \siunitx_print_text_sub_super:n ##1
{
\ensuremath
{
@@ -5019,24 +5061,24 @@ This work consists of the file siunitx.dtx
^ { \text {##1} }
}
}
- \peek_meaning_remove:NTF \_siunitx_print_text_super:n
- { \_siunitx_print_text_sub_super:n }
+ \peek_meaning_remove:NTF \siunitx_print_text_super:n
+ { \siunitx_print_text_sub_super:n }
{ \ensuremath { @ { \text {#1} } } }
}
}
-\cs_set_protected:Npn \_siunitx_print_text_sub_super:n { }
-\cs_set_protected:Npn \_siunitx_print_text_super:n #1 {
- \tl_set:Nn \_l_siunitx_tmpa_tl {#1}
- \tl_replace_all_in:Nnn \_l_siunitx_tmpa_tl { - }
- { \_c_siunitx_minus_tl }
- \tl_set:Nx \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_print_text_sub_super:n { }
+\cs_new_protected:Npn \siunitx_print_text_super:n #1 {
+ \tl_set:Nn \l_siunitx_tmpa_tl {#1}
+ \tl_replace_all_in:Nnn \l_siunitx_tmpa_tl { - }
+ { \c_siunitx_minus_tl }
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
\exp_not:N \ensuremath
{
- ^ { \exp_not:N \text { \exp_not:V \_l_siunitx_tmpa_tl } }
+ ^ { \exp_not:N \text { \exp_not:V \l_siunitx_tmpa_tl } }
}
}
- \_l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
@@ -5049,14 +5091,14 @@ This work consists of the file siunitx.dtx
% pre-process the input. The possibility that the data in can contain
% more than one number needs to be handled.
%
-%\begin{macro}{\_l_siunitx_input_product_tl}
-%\begin{macro}{\_l_siunitx_input_quotient_tl}
+%\begin{macro}{\l_siunitx_input_product_tl}
+%\begin{macro}{\l_siunitx_input_quotient_tl}
% There are a couple of settings which are created here as they are used
% only for pre-processing.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- input-product .tl_set:N = \_l_siunitx_input_product_tl,
- input-quotient .tl_set:N = \_l_siunitx_input_quotient_tl,
+ input-product .tl_set:N = \l_siunitx_input_product_tl,
+ input-quotient .tl_set:N = \l_siunitx_input_quotient_tl,
}
\keys_set:nn { siunitx } {
input-product = x,
@@ -5066,85 +5108,85 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_arg_tl}
-%\begin{macro}{\_l_siunitx_number_next_tl}
+%\begin{macro}{\l_siunitx_number_arg_tl}
+%\begin{macro}{\l_siunitx_number_next_tl}
% Storage for the pre-parsed material. The \texttt{arg} variable
% contains the current argument, the \texttt{next} variable contains
% anything held-over for the next round.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_arg_tl
-\tl_new:N \_l_siunitx_number_next_tl
+\tl_new:N \l_siunitx_number_arg_tl
+\tl_new:N \l_siunitx_number_next_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_multi_tl}
+%\begin{macro}{\l_siunitx_number_multi_tl}
% For products and quotients, a way of feeding information back.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_multi_tl
+\tl_new:N \l_siunitx_number_multi_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_denominator_tl}
-%\begin{macro}{\_l_siunitx_number_numerator_tl}
+%\begin{macro}{\l_siunitx_number_denominator_tl}
+%\begin{macro}{\l_siunitx_number_numerator_tl}
% When searching for quotients, some more storage is needed.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_denominator_tl
-\tl_new:N \_l_siunitx_number_numerator_tl
+\tl_new:N \l_siunitx_number_denominator_tl
+\tl_new:N \l_siunitx_number_numerator_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_preprocess:n}
-%\begin{macro}{\_siunitx_number_preprocess:V}
+%\begin{macro}{\siunitx_number_preprocess:n}
+%\begin{macro}{\siunitx_number_preprocess:V}
% The pre-processor starts with the obvious: the most likely outcome is
% that all of the argument is passed through unchanged.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_preprocess:n #1 {
- \_siunitx_number_preprocess_init:
- \tl_set:Nn \_l_siunitx_number_arg_tl {#1}
- \_siunitx_number_preprocess_product:
- \tl_if_empty:NT \_l_siunitx_number_multi_tl
- { \_siunitx_number_preprocess_quotient: }
+\cs_new_protected:Npn \siunitx_number_preprocess:n #1 {
+ \siunitx_number_preprocess_init:
+ \tl_set:Nn \l_siunitx_number_arg_tl {#1}
+ \siunitx_number_preprocess_product:
+ \tl_if_empty:NT \l_siunitx_number_multi_tl
+ { \siunitx_number_preprocess_quotient: }
}
-\cs_generate_variant:Nn \_siunitx_number_preprocess:n { V }
+\cs_generate_variant:Nn \siunitx_number_preprocess:n { V }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_preprocess_init:}
+%\begin{macro}{\siunitx_number_preprocess_init:}
% A little initialisation as normal.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_preprocess_init: {
- \bool_set_false:N \_l_siunitx_error_bool
- \tl_clear:N \_l_siunitx_number_multi_tl
+\cs_new_protected_nopar:Npn \siunitx_number_preprocess_init: {
+ \bool_set_false:N \l_siunitx_error_bool
+ \tl_clear:N \l_siunitx_number_multi_tl
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_preprocess_product:}
-%\begin{macro}[aux]{\_siunitx_number_preprocess_product_aux:N}
+%\begin{macro}{\siunitx_number_preprocess_product:}
+%\begin{macro}[aux]{\siunitx_number_preprocess_product_aux:N}
% Rather than search through the entire argument, we use the
% delimited-argument trick.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_preprocess_product: {
- \tl_map_function:NN \_l_siunitx_input_product_tl
- \_siunitx_number_preprocess_product_aux:N
+\cs_new_protected_nopar:Npn \siunitx_number_preprocess_product: {
+ \tl_map_function:NN \l_siunitx_input_product_tl
+ \siunitx_number_preprocess_product_aux:N
}
-\cs_set_protected:Npn \_siunitx_number_preprocess_product_aux:N #1 {
- \tl_if_in:NnT \_l_siunitx_number_arg_tl {#1}
+\cs_new_protected:Npn \siunitx_number_preprocess_product_aux:N #1 {
+ \tl_if_in:NnT \l_siunitx_number_arg_tl {#1}
{
- \cs_set:Npn \_siunitx_tmp:w ##1 #1 ##2 \q_stop
+ \cs_set:Npn \siunitx_tmp:w ##1 #1 ##2 \q_stop
{
- \tl_set:Nn \_l_siunitx_number_arg_tl {##1}
- \tl_set:Nn \_l_siunitx_number_next_tl {##2}
- \tl_set:Nn \_l_siunitx_number_multi_tl { product }
+ \tl_set:Nn \l_siunitx_number_arg_tl {##1}
+ \tl_set:Nn \l_siunitx_number_next_tl {##2}
+ \tl_set:Nn \l_siunitx_number_multi_tl { product }
}
- \exp_after:wN \_siunitx_tmp:w \_l_siunitx_number_arg_tl \q_stop
- \tl_if_empty:NT \_l_siunitx_number_arg_tl
- { \_siunitx_error:n { starting-product-token } }
- \tl_if_empty:NT \_l_siunitx_number_next_tl
- { \_siunitx_error:n { ending-product-token } }
+ \exp_after:wN \siunitx_tmp:w \l_siunitx_number_arg_tl \q_stop
+ \tl_if_empty:NT \l_siunitx_number_arg_tl
+ { \siunitx_error:n { starting-product-token } }
+ \tl_if_empty:NT \l_siunitx_number_next_tl
+ { \siunitx_error:n { ending-product-token } }
\tl_map_break:
}
}
@@ -5152,31 +5194,31 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_preprocess_quotient:}
-%\begin{macro}[aux]{\_siunitx_number_preprocess_quotient_aux:N}
+%\begin{macro}{\siunitx_number_preprocess_quotient:}
+%\begin{macro}[aux]{\siunitx_number_preprocess_quotient_aux:N}
% For the quotient, only one token can appear in each part. So there
% is an additional error check.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_preprocess_quotient: {
- \tl_map_function:NN \_l_siunitx_input_quotient_tl
- \_siunitx_number_preprocess_quotient_aux:N
+\cs_new_protected_nopar:Npn \siunitx_number_preprocess_quotient: {
+ \tl_map_function:NN \l_siunitx_input_quotient_tl
+ \siunitx_number_preprocess_quotient_aux:N
}
-\cs_set_protected:Npn \_siunitx_number_preprocess_quotient_aux:N #1 {
- \tl_if_in:NnT \_l_siunitx_number_arg_tl {#1}
+\cs_new_protected:Npn \siunitx_number_preprocess_quotient_aux:N #1 {
+ \tl_if_in:NnT \l_siunitx_number_arg_tl {#1}
{
- \cs_set:Npn \_siunitx_tmp:w ##1 #1 ##2 \q_stop
+ \cs_set:Npn \siunitx_tmp:w ##1 #1 ##2 \q_stop
{
- \tl_set:Nn \_l_siunitx_number_numerator_tl {##1}
- \tl_set:Nn \_l_siunitx_number_denominator_tl {##2}
- \tl_set:Nn \_l_siunitx_number_multi_tl { quotient }
+ \tl_set:Nn \l_siunitx_number_numerator_tl {##1}
+ \tl_set:Nn \l_siunitx_number_denominator_tl {##2}
+ \tl_set:Nn \l_siunitx_number_multi_tl { quotient }
}
- \exp_after:wN \_siunitx_tmp:w \_l_siunitx_number_arg_tl \q_stop
- \tl_if_empty:NT \_l_siunitx_number_numerator_tl
- { \_siunitx_error:n { starting-quotient-token } }
- \tl_if_empty:NT \_l_siunitx_number_denominator_tl
- { \_siunitx_error:n { ending-quotient-token } }
- \tl_if_in:NnT \_l_siunitx_number_denominator_tl {#1}
- { \_siunitx_error:n { duplicate-quotient-token } }
+ \exp_after:wN \siunitx_tmp:w \l_siunitx_number_arg_tl \q_stop
+ \tl_if_empty:NT \l_siunitx_number_numerator_tl
+ { \siunitx_error:n { starting-quotient-token } }
+ \tl_if_empty:NT \l_siunitx_number_denominator_tl
+ { \siunitx_error:n { ending-quotient-token } }
+ \tl_if_in:NnT \l_siunitx_number_denominator_tl {#1}
+ { \siunitx_error:n { duplicate-quotient-token } }
\tl_map_break:
}
}
@@ -5192,33 +5234,33 @@ This work consists of the file siunitx.dtx
% quickly. For most documents, this gain more than offsets any slight
% losses with more complicated numbers.
%
-%\begin{macro}{\_c_siunitx_number_part_complex_tl}
+%\begin{macro}{\c_siunitx_number_part_complex_tl}
% A couple of the comparisons needed for checking complex numbers
% are done using stored text. To make them a little quicker, a
% pre-stored version of the text is stored here.
% \begin{macrocode}
-\tl_new:N \_c_siunitx_number_part_complex_tl
-\tl_set:Nn \_c_siunitx_number_part_complex_tl { complex }
+\tl_new:N \c_siunitx_number_part_complex_tl
+\tl_set:Nn \c_siunitx_number_part_complex_tl { complex }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_in_complex_bool}
-%\begin{macro}{\_l_siunitx_number_in_complex_root_bool}
-%\begin{macro}{\_l_siunitx_number_in_decimal_bool}
-%\begin{macro}{\_l_siunitx_number_in_exponent_bool}
-%\begin{macro}{\_l_siunitx_number_in_first_bool}
-%\begin{macro}{\_l_siunitx_number_in_sign_bool}
-%\begin{macro}{\_l_siunitx_number_in_uncert_bool}
-%\begin{macro}{\_l_siunitx_number_in_value_bool}
+%\begin{macro}{\l_siunitx_number_in_complex_bool}
+%\begin{macro}{\l_siunitx_number_in_complex_root_bool}
+%\begin{macro}{\l_siunitx_number_in_decimal_bool}
+%\begin{macro}{\l_siunitx_number_in_exponent_bool}
+%\begin{macro}{\l_siunitx_number_in_first_bool}
+%\begin{macro}{\l_siunitx_number_in_sign_bool}
+%\begin{macro}{\l_siunitx_number_in_uncert_bool}
+%\begin{macro}{\l_siunitx_number_in_value_bool}
% \begin{macrocode}
-\bool_new:N \_l_siunitx_number_in_complex_bool
-\bool_new:N \_l_siunitx_number_in_complex_root_bool
-\bool_new:N \_l_siunitx_number_in_decimal_bool
-\bool_new:N \_l_siunitx_number_in_exponent_bool
-\bool_new:N \_l_siunitx_number_in_first_bool
-\bool_new:N \_l_siunitx_number_in_sign_bool
-\bool_new:N \_l_siunitx_number_in_uncert_bool
-\bool_new:N \_l_siunitx_number_in_value_bool
+\bool_new:N \l_siunitx_number_in_complex_bool
+\bool_new:N \l_siunitx_number_in_complex_root_bool
+\bool_new:N \l_siunitx_number_in_decimal_bool
+\bool_new:N \l_siunitx_number_in_exponent_bool
+\bool_new:N \l_siunitx_number_in_first_bool
+\bool_new:N \l_siunitx_number_in_sign_bool
+\bool_new:N \l_siunitx_number_in_uncert_bool
+\bool_new:N \l_siunitx_number_in_value_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -5229,37 +5271,37 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_in_prop}
+%\begin{macro}{\l_siunitx_number_in_prop}
% The parsed number is stored in a property list as its constituent
% parts.
% \begin{macrocode}
-\prop_new:N \_l_siunitx_number_in_prop
+\prop_new:N \l_siunitx_number_in_prop
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_parsed_tl}
+%\begin{macro}{\l_siunitx_number_parsed_tl}
% Each part of the number parsed has to be built up in a token list.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_parsed_tl
+\tl_new:N \l_siunitx_number_parsed_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_part_tl}
-%\begin{macro}{\_l_siunitx_number_part_decimal_tl}
-%\begin{macro}{\_l_siunitx_number_part_decimal_marker_tl}
-%\begin{macro}{\_l_siunitx_number_part_integer_tl}
-%\begin{macro}{\_l_siunitx_number_part_sign_tl}
-%\begin{macro}{\_l_siunitx_number_part_uncert_tl}
+%\begin{macro}{\l_siunitx_number_part_tl}
+%\begin{macro}{\l_siunitx_number_part_decimal_tl}
+%\begin{macro}{\l_siunitx_number_part_decimal_marker_tl}
+%\begin{macro}{\l_siunitx_number_part_integer_tl}
+%\begin{macro}{\l_siunitx_number_part_sign_tl}
+%\begin{macro}{\l_siunitx_number_part_uncert_tl}
% The names of various parts of a number are set up as stored values.
% This lets some code be used for different parts of a number, while
% pre-storing everything brings a performance (and clarity) benefit.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_part_tl
-\tl_new:N \_l_siunitx_number_part_decimal_tl
-\tl_new:N \_l_siunitx_number_part_decimal_marker_tl
-\tl_new:N \_l_siunitx_number_part_integer_tl
-\tl_new:N \_l_siunitx_number_part_sign_tl
-\tl_new:N \_l_siunitx_number_part_uncert_tl
+\tl_new:N \l_siunitx_number_part_tl
+\tl_new:N \l_siunitx_number_part_decimal_tl
+\tl_new:N \l_siunitx_number_part_decimal_marker_tl
+\tl_new:N \l_siunitx_number_part_integer_tl
+\tl_new:N \l_siunitx_number_part_sign_tl
+\tl_new:N \l_siunitx_number_part_uncert_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -5268,31 +5310,31 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_input_uncert_close_tl}
-%\begin{macro}{\_l_siunitx_input_complex_tl}
-%\begin{macro}{\_l_siunitx_input_decimal_tl}
-%\begin{macro}{\_l_siunitx_input_digit_tl}
-%\begin{macro}{\_l_siunitx_input_exponent_tl}
-%\begin{macro}{\_l_siunitx_input_ignore_tl}
-%\begin{macro}{\_l_siunitx_input_uncert_open_tl}
-%\begin{macro}{\_l_siunitx_input_protect_tl}
-%\begin{macro}{\_l_siunitx_input_sign_tl}
-%\begin{macro}{\_l_siunitx_input_symbol_tl}
+%\begin{macro}{\l_siunitx_input_uncert_close_tl}
+%\begin{macro}{\l_siunitx_input_complex_tl}
+%\begin{macro}{\l_siunitx_input_decimal_tl}
+%\begin{macro}{\l_siunitx_input_digit_tl}
+%\begin{macro}{\l_siunitx_input_exponent_tl}
+%\begin{macro}{\l_siunitx_input_ignore_tl}
+%\begin{macro}{\l_siunitx_input_uncert_open_tl}
+%\begin{macro}{\l_siunitx_input_protect_tl}
+%\begin{macro}{\l_siunitx_input_sign_tl}
+%\begin{macro}{\l_siunitx_input_symbol_tl}
% The various tokens to check against when parsing are all set up here.
% These are valid inside a single number: the pre-processor has already
% set up the appropriate things for products and quotients.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- input-close-uncertainty .tl_set:N = \_l_siunitx_input_uncert_close_tl,
- input-complex-roots .tl_set:N = \_l_siunitx_input_complex_tl,
- input-decimal-markers .tl_set:N = \_l_siunitx_input_decimal_tl,
- input-digits .tl_set:N = \_l_siunitx_input_digit_tl,
- input-exponent-markers .tl_set:N = \_l_siunitx_input_exponent_tl,
- input-ignore .tl_set:N = \_l_siunitx_input_ignore_tl,
- input-open-uncertainty .tl_set:N = \_l_siunitx_input_uncert_open_tl,
- input-protect-tokens .tl_set:N = \_l_siunitx_input_protect_tl,
- input-signs .tl_set:N = \_l_siunitx_input_sign_tl,
- input-symbols .tl_set:N = \_l_siunitx_input_symbol_tl,
+ input-close-uncertainty .tl_set:N = \l_siunitx_input_uncert_close_tl,
+ input-complex-roots .tl_set:N = \l_siunitx_input_complex_tl,
+ input-decimal-markers .tl_set:N = \l_siunitx_input_decimal_tl,
+ input-digits .tl_set:N = \l_siunitx_input_digit_tl,
+ input-exponent-markers .tl_set:N = \l_siunitx_input_exponent_tl,
+ input-ignore .tl_set:N = \l_siunitx_input_ignore_tl,
+ input-open-uncertainty .tl_set:N = \l_siunitx_input_uncert_open_tl,
+ input-protect-tokens .tl_set:N = \l_siunitx_input_protect_tl,
+ input-signs .tl_set:N = \l_siunitx_input_sign_tl,
+ input-symbols .tl_set:N = \l_siunitx_input_symbol_tl,
}
\keys_set:nn { siunitx } { % (
input-close-uncertainty = ),
@@ -5317,187 +5359,187 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse:n}
-%\begin{macro}{\_siunitx_number_in_parse:V}
-%\begin{macro}[aux]{\_siunitx_number_in_parse_aux:n}
+%\begin{macro}{\siunitx_number_in_parse:n}
+%\begin{macro}{\siunitx_number_in_parse:V}
+%\begin{macro}[aux]{\siunitx_number_in_parse_aux:n}
% The parsing routine starts by replacing any formatting in the input
% using \cs{tl_set_rescan:Nnx}. Next, there is a quick routine to
% ensure that all signs are single tokens. The main loop then takes
% place, which will parse the input into the property list and also
% set up the flags. There are then some checks and possible corrections.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse:n #1 {
+\cs_new_protected:Npn \siunitx_number_in_parse:n #1 {
\tl_if_empty:nF {#1}
{
- \_siunitx_number_in_init:
- \cs_set_eq:NN \_siunitx_number_in_parse_more:N
- \_siunitx_number_in_parse_mantissa_aux:N
- \_siunitx_number_in_parse_aux:n {#1}
+ \siunitx_number_in_init:
+ \cs_set_eq:NN \siunitx_number_in_parse_more:N
+ \siunitx_number_in_parse_mantissa_aux:N
+ \siunitx_number_in_parse_aux:n {#1}
}
}
-\cs_generate_variant:Nn \_siunitx_number_in_parse:n { V }
-\cs_set_protected:Npn \_siunitx_number_in_parse_aux:n #1 {
- \tl_set_rescan:Nnx \_l_siunitx_number_arg_tl
+\cs_generate_variant:Nn \siunitx_number_in_parse:n { V }
+\cs_new_protected:Npn \siunitx_number_in_parse_aux:n #1 {
+ \tl_set_rescan:Nnx \l_siunitx_number_arg_tl
{
- \_siunitx_number_in_protect:
+ \siunitx_number_in_protect:
\char_make_ignore:N \~
\char_make_other:N \,
\char_make_other:N \.
\cs_set_eq:NN \, \prg_do_nothing:
}
{#1}
- \_siunitx_number_in_sign_replace:N \_l_siunitx_number_arg_tl
- \tl_map_function:NN \_l_siunitx_number_arg_tl
- \_siunitx_number_in_parse_loop:N
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
+ \siunitx_number_in_sign_replace:N \l_siunitx_number_arg_tl
+ \tl_map_function:NN \l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_loop:N
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
{
- \bool_if:NTF \_l_siunitx_number_in_uncert_bool
- { \_siunitx_error:nx { invalid-number } {#1} }
+ \bool_if:NTF \l_siunitx_number_in_uncert_bool
+ { \siunitx_error:nx { invalid-number } {#1} }
{
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_tl { true }
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_tl { true }
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_tl
- \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_tl
+ \l_siunitx_number_parsed_tl
}
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
- \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
+ \l_siunitx_number_parsed_tl
}
}
}
- \_siunitx_number_in_check:n {#1}
+ \siunitx_number_in_check:n {#1}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_init:}
-%\begin{macro}{\_siunitx_number_in_init_part:n}
+%\begin{macro}{\siunitx_number_in_init:}
+%\begin{macro}{\siunitx_number_in_init_part:n}
% The set up code is divided into to parts. First, code only needed
% once to start the entire parser. Then a second group, which is
% carried out at the start of each part of a number, and so is called
% from a few places.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_init: {
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \cs_set_eq:NN \_siunitx_number_in_check:n
- \_siunitx_number_in_check_short:n
- \tl_clear:N \_l_siunitx_number_parsed_tl
- \prop_clear:N \_l_siunitx_number_in_prop
- \bool_set_false:N \_l_siunitx_error_bool
- \bool_set_false:N \_l_siunitx_number_in_complex_bool
- \bool_set_false:N \_l_siunitx_number_in_complex_root_bool
- \bool_set_false:N \_l_siunitx_number_in_exponent_bool
- \bool_set_false:N \_l_siunitx_number_in_uncert_bool
- \_siunitx_number_in_init_part:n { mantissa }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_init_part:n #1 {
- \bool_set_false:N \_l_siunitx_number_in_decimal_bool
- \bool_set_true:N \_l_siunitx_number_in_first_bool
- \bool_set_false:N \_l_siunitx_number_in_sign_bool
- \bool_set_false:N \_l_siunitx_number_in_value_bool
- \tl_set:Nn \_l_siunitx_number_part_tl {#1}
- \tl_set:Nn \_l_siunitx_number_part_decimal_tl { #1 -decimal }
- \tl_set:Nn \_l_siunitx_number_part_decimal_marker_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_init: {
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \cs_set_eq:NN \siunitx_number_in_check:n
+ \siunitx_number_in_check_short:n
+ \tl_clear:N \l_siunitx_number_parsed_tl
+ \prop_clear:N \l_siunitx_number_in_prop
+ \bool_set_false:N \l_siunitx_error_bool
+ \bool_set_false:N \l_siunitx_number_in_complex_bool
+ \bool_set_false:N \l_siunitx_number_in_complex_root_bool
+ \bool_set_false:N \l_siunitx_number_in_exponent_bool
+ \bool_set_false:N \l_siunitx_number_in_uncert_bool
+ \siunitx_number_in_init_part:n { mantissa }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_in_init_part:n #1 {
+ \bool_set_false:N \l_siunitx_number_in_decimal_bool
+ \bool_set_true:N \l_siunitx_number_in_first_bool
+ \bool_set_false:N \l_siunitx_number_in_sign_bool
+ \bool_set_false:N \l_siunitx_number_in_value_bool
+ \tl_set:Nn \l_siunitx_number_part_tl {#1}
+ \tl_set:Nn \l_siunitx_number_part_decimal_tl { #1 -decimal }
+ \tl_set:Nn \l_siunitx_number_part_decimal_marker_tl
{ #1 -decimal-marker }
- \tl_set:Nn \_l_siunitx_number_part_integer_tl { #1 -integer }
- \tl_set:Nn \_l_siunitx_number_part_sign_tl { #1 -sign }
- \tl_set:Nn \_l_siunitx_number_part_uncert_tl { #1 -uncertainty }
+ \tl_set:Nn \l_siunitx_number_part_integer_tl { #1 -integer }
+ \tl_set:Nn \l_siunitx_number_part_sign_tl { #1 -sign }
+ \tl_set:Nn \l_siunitx_number_part_uncert_tl { #1 -uncertainty }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_protect:}
-%\begin{macro}[aux]{\_siunitx_number_in_protect_aux:N}
+%\begin{macro}{\siunitx_number_in_protect:}
+%\begin{macro}[aux]{\siunitx_number_in_protect_aux:N}
% Under some circumstances (for example when loading \pkg{breqn})
% some tokens do not behave safely under \texttt{x} expansion (at the
% moment). To get round this, they are redefined here.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_protect: {
- \tl_map_function:NN \_l_siunitx_input_protect_tl
- \_siunitx_number_in_protect_aux:N
+\cs_new_protected_nopar:Npn \siunitx_number_in_protect: {
+ \tl_map_function:NN \l_siunitx_input_protect_tl
+ \siunitx_number_in_protect_aux:N
}
-\cs_set_protected:Npn \_siunitx_number_in_protect_aux:N #1 {
+\cs_new_protected:Npn \siunitx_number_in_protect_aux:N #1 {
\cs_set_eq:NN #1 \scan_stop:
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_sign_replace:N}
+%\begin{macro}{\siunitx_number_in_sign_replace:N}
% A short spin-out to keep the replacement of tokens clear.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_sign_replace:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_number_in_sign_replace:N #1 {
\tl_replace_all_in:Nnn #1 { -+ } { \mp }
\tl_replace_all_in:Nnn #1 { +- } { \pm }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_error:nx}
-%\begin{macro}{\_siunitx_number_in_parse_error:nV}
+%\begin{macro}{\siunitx_number_in_parse_error:nx}
+%\begin{macro}{\siunitx_number_in_parse_error:nV}
% There are lots of rather similar errors in the parser, all of which
% require a \cs{tl_map_break:}. To keep life simple, this is set up
% here.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_error:nx #1#2 {
- \_siunitx_error:nx {#1} { \exp_not:n {#2} }
+\cs_new_protected:Npn \siunitx_number_in_parse_error:nx #1#2 {
+ \siunitx_error:nx {#1} { \exp_not:n {#2} }
\tl_map_break:
}
-\cs_generate_variant:Nn \_siunitx_number_in_parse_error:nx { nV }
+\cs_generate_variant:Nn \siunitx_number_in_parse_error:nx { nV }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_loop:N}
-%\begin{macro}{\_siunitx_number_in_parse_more:N}
+%\begin{macro}{\siunitx_number_in_parse_loop:N}
+%\begin{macro}{\siunitx_number_in_parse_more:N}
% The main loop is set up as a place holder, as the definition is
% varied to keep things fast. There is also a place holder for the
% extended routing for normal mantissas.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_loop:N #1 { }
-\cs_set_protected:Npn \_siunitx_number_in_parse_more:N #1 { }
+\cs_new_protected:Npn \siunitx_number_in_parse_loop:N #1 { }
+\cs_new_protected:Npn \siunitx_number_in_parse_more:N #1 { }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_restricted:N}
+%\begin{macro}{\siunitx_number_in_parse_restricted:N}
% When parsing numbers for the \cs{ang} function, no extended input
% is permitted at all.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_restricted:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_restricted:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ restricted-number } {#1}
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_open_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_open_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { restricted-number } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { restricted-number } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { restricted-number } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { restricted-number } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { restricted-number } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { restricted-number } \l_siunitx_number_arg_tl
}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ restricted-number } {#1}
}
}
@@ -5507,62 +5549,62 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_complex:N}
+%\begin{macro}{\siunitx_number_in_parse_complex:N}
% After a complex root when the root is \emph{after} the number, there
% are a very limited range of legitimate tokens. Thus most cases can be
% trapped with a modified parser.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_complex:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_complex:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_exponent:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_exponent:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ misplaced-complex-root-token }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_exponent:N}
+%\begin{macro}{\siunitx_number_in_parse_exponent:N}
% When processing an exponent, the \enquote{extended} part of the
% number which is valid in a mantissa is no longer needed. So the
% auxiliary function is pointed to a series of errors instead.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_exponent:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_exponent:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ duplicate-exponent-token } { \token_to_str:N #1 }
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_open_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_open_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { invalid-token-in-exponent } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { invalid-token-in-exponent } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { invalid-token-in-exponent } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { invalid-token-in-exponent } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-exponent }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ invalid-token-in-number } {#1}
}
}
@@ -5572,55 +5614,55 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_mantissa:N}
-%\begin{macro}{\_siunitx_number_in_parse_mantissa_aux:N}
+%\begin{macro}{\siunitx_number_in_parse_mantissa:N}
+%\begin{macro}{\siunitx_number_in_parse_mantissa_aux:N}
% For the mantissa, most things are valid. The procedure is split
% into two parts, with the simple symbols handled here and the more
% complex ones in a second part(which needs to be varied). Essentially
% everything here is a comparison, done so that the code is a fast as
% possible.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_mantissa:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_digit_tl {#1}
- { \_siunitx_number_in_digit:N #1 }
+\cs_new_protected:Npn \siunitx_number_in_parse_mantissa:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_digit_tl {#1}
+ { \siunitx_number_in_digit:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_decimal_tl {#1}
- { \_siunitx_number_in_decimal:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_decimal_tl {#1}
+ { \siunitx_number_in_decimal:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_sign_tl {#1}
- { \_siunitx_number_in_sign:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_sign_tl {#1}
+ { \siunitx_number_in_sign:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_symbol_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_symbol_tl {#1}
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { symbolic }
+ \prop_put:Nnn \l_siunitx_number_in_prop { symbolic }
{ true }
- \_siunitx_number_in_digit:N #1
+ \siunitx_number_in_digit:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
- { \_siunitx_number_in_parse_more:N #1 }
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
+ { \siunitx_number_in_parse_more:N #1 }
}
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_mantissa_aux:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
- { \_siunitx_number_in_exponent:N #1 }
+\cs_new_protected:Npn \siunitx_number_in_parse_mantissa_aux:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
+ { \siunitx_number_in_exponent:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_open_tl {#1}
- { \_siunitx_number_in_uncert_open:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_uncert_open_tl {#1}
+ { \siunitx_number_in_uncert_open:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ misplaced-uncertainty-token } {#1}
}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
- { \_siunitx_number_in_complex:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
+ { \siunitx_number_in_complex:N #1 }
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ invalid-token-in-number } {#1}
}
}
@@ -5631,44 +5673,44 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_uncert:N}
+%\begin{macro}{\siunitx_number_in_parse_uncert:N}
% Within uncertainties, the range of tokens is limited. An alternative
% parsing system can therefore be used.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_uncert:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_digit_tl {#1}
- { \_siunitx_number_in_digit:N #1 }
+\cs_new_protected:Npn \siunitx_number_in_parse_uncert:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_digit_tl {#1}
+ { \siunitx_number_in_digit:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_decimal_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_decimal_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-uncertainty }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_sign_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_sign_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-uncertainty }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_symbol_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_symbol_tl {#1}
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { symbolic }
+ \prop_put:Nnn \l_siunitx_number_in_prop { symbolic }
{ true }
- \_siunitx_number_in_digit:N #1
+ \siunitx_number_in_digit:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl
{#1}
- { \_siunitx_number_in_uncert_close:N #1 }
+ { \siunitx_number_in_uncert_close:N #1 }
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-uncertainty }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
}
}
@@ -5679,36 +5721,36 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_parse_uncert_after:N}
+%\begin{macro}{\siunitx_number_in_parse_uncert_after:N}
% After an uncertainty, there is once again a very limited range of
% tokens that can be present in a valid number.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_parse_uncert_after:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_uncert_after:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_exponent:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_exponent:N #1
}
{
- \tl_if_in:NnTF \_l_siunitx_input_sign_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_sign_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_sign:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_sign:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_complex:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_complex:N #1
}
{
- \_siunitx_number_in_parse_error:nV { invalid-number }
- \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV { invalid-number }
+ \l_siunitx_number_arg_tl
}
}
}
@@ -5717,8 +5759,8 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_complex:N}
-%\begin{macro}[aux]{\_siunitx_number_in_complex_aux:nn}
+%\begin{macro}{\siunitx_number_in_complex:N}
+%\begin{macro}[aux]{\siunitx_number_in_complex_aux:nn}
% Only one complex root token can be give, hence the initial test.
% More tests are needed for complex numbers than other systems, so
% the additional ones are turned on, followed by some flag setting.
@@ -5726,199 +5768,199 @@ This work consists of the file siunitx.dtx
% root is at the end of the number: if it is, prevent any more tokens
% being added.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_complex:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_if:NTF \_l_siunitx_number_in_complex_root_bool
+\cs_new_protected:Npn \siunitx_number_in_complex:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_if:NTF \l_siunitx_number_in_complex_root_bool
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ duplicate-complex-root-token } { \token_to_str:N #1 }
}
{
- \cs_set_eq:NN \_siunitx_number_in_check:n
- \_siunitx_number_in_check_full:n
- \bool_set_true:N \_l_siunitx_number_in_complex_root_bool
- \prop_put:Nnn \_l_siunitx_number_in_prop { complex-root } {#1}
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
+ \cs_set_eq:NN \siunitx_number_in_check:n
+ \siunitx_number_in_check_full:n
+ \bool_set_true:N \l_siunitx_number_in_complex_root_bool
+ \prop_put:Nnn \l_siunitx_number_in_prop { complex-root } {#1}
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_complex:N
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_complex:N
}
- \bool_if:NT \_l_siunitx_number_in_decimal_bool
+ \bool_if:NT \l_siunitx_number_in_decimal_bool
{
- \bool_if:NF \_l_siunitx_number_in_complex_bool
+ \bool_if:NF \l_siunitx_number_in_complex_bool
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop
+ \prop_if_in:NnT \l_siunitx_number_in_prop
{ mantissa-uncertainty }
{
- \_siunitx_number_in_complex_aux:nn
+ \siunitx_number_in_complex_aux:nn
{ mantissa-decimal } { complex-decimal }
- \_siunitx_number_in_complex_aux:nn
+ \siunitx_number_in_complex_aux:nn
{ mantissa-uncertainty } { complex-uncertainty }
}
- \_siunitx_number_in_complex_aux:nn { mantissa-integer }
+ \siunitx_number_in_complex_aux:nn { mantissa-integer }
{ complex-integer }
- \_siunitx_number_in_complex_aux:nn
+ \siunitx_number_in_complex_aux:nn
{ mantissa-decimal-marker } { complex-decimal-marker }
- \prop_del:Nn \_l_siunitx_number_in_prop { mantissa }
- \prop_put:Nnn \_l_siunitx_number_in_prop { complex }
+ \prop_del:Nn \l_siunitx_number_in_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_number_in_prop { complex }
{ true }
}
}
- \prop_if_in:NnF \_l_siunitx_number_in_prop { mantissa }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { mantissa }
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { mantissa-sign }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { mantissa-sign }
{
- \_siunitx_number_in_complex_aux:nn { mantissa-sign }
+ \siunitx_number_in_complex_aux:nn { mantissa-sign }
{ complex-sign }
}
}
- \bool_set_true:N \_l_siunitx_number_in_complex_bool
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \_siunitx_number_in_init_part:n { complex }
- \prop_if_in:NnT \_l_siunitx_number_in_prop
+ \bool_set_true:N \l_siunitx_number_in_complex_bool
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \siunitx_number_in_init_part:n { complex }
+ \prop_if_in:NnT \l_siunitx_number_in_prop
{ complex-decimal-marker }
- { \bool_set_true:N \_l_siunitx_number_in_decimal_bool }
- \prop_if_in:NnT \_l_siunitx_number_in_prop
+ { \bool_set_true:N \l_siunitx_number_in_decimal_bool }
+ \prop_if_in:NnT \l_siunitx_number_in_prop
{ complex-sign }
- { \bool_set_true:N \_l_siunitx_number_in_sign_bool }
+ { \bool_set_true:N \l_siunitx_number_in_sign_bool }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_complex_aux:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_complex_aux:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_del:Nn \_l_siunitx_number_in_prop {#1}
- \prop_put:NnV \_l_siunitx_number_in_prop {#2} \_l_siunitx_tmpa_tl
+ \prop_del:Nn \l_siunitx_number_in_prop {#1}
+ \prop_put:NnV \l_siunitx_number_in_prop {#2} \l_siunitx_tmpa_tl
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_decimal:N}
+%\begin{macro}{\siunitx_number_in_decimal:N}
% Only one decimal marker allowed, so a test for this. If an integer
% part has been found, it is saved. The flag for the number being
% found is not set unless there is an integer, to watch for the case
% of invalid numbers.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_decimal:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+\cs_new_protected:Npn \siunitx_number_in_decimal:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \_siunitx_number_in_parse_error:nx { duplicate-decimal-token }
+ \siunitx_number_in_parse_error:nx { duplicate-decimal-token }
{ \token_to_str:N #1 }
}
{
- \bool_set_true:N \_l_siunitx_number_in_decimal_bool
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
+ \bool_set_true:N \l_siunitx_number_in_decimal_bool
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
{
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_tl { true }
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
- \_l_siunitx_number_parsed_tl
- \tl_clear:N \_l_siunitx_number_parsed_tl
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_tl { true }
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
+ \l_siunitx_number_parsed_tl
+ \tl_clear:N \l_siunitx_number_parsed_tl
}
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_marker_tl {#1}
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_marker_tl {#1}
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_digit:N}
+%\begin{macro}{\siunitx_number_in_digit:N}
% For digits, only in an uncertainty can the value be stored
% directly. Otherwise, there is a need to see if the value is non-zero.
% This is used to drop leading zeros and to validate any sign (as zero
% is unsigned).
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_digit:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_if:NTF \_l_siunitx_number_in_uncert_bool
- { \tl_put_right:Nn \_l_siunitx_number_parsed_tl {#1} }
+\cs_new_protected:Npn \siunitx_number_in_digit:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_if:NTF \l_siunitx_number_in_uncert_bool
+ { \tl_put_right:Nn \l_siunitx_number_parsed_tl {#1} }
{
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \tl_put_right:Nn \_l_siunitx_number_parsed_tl {#1}
+ \tl_put_right:Nn \l_siunitx_number_parsed_tl {#1}
\tl_if_eq:nnF {#1} { 0 }
- { \bool_set_true:N \_l_siunitx_number_in_value_bool }
+ { \bool_set_true:N \l_siunitx_number_in_value_bool }
}
{
\tl_if_eq:nnTF {#1} { 0 }
{
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_tl { true }
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl { 0 }
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_tl { true }
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl { 0 }
}
- { \bool_set_true:N \_l_siunitx_number_in_value_bool }
- \bool_if:NT \_l_siunitx_number_in_value_bool
- { \tl_put_right:Nn \_l_siunitx_number_parsed_tl {#1} }
+ { \bool_set_true:N \l_siunitx_number_in_value_bool }
+ \bool_if:NT \l_siunitx_number_in_value_bool
+ { \tl_put_right:Nn \l_siunitx_number_parsed_tl {#1} }
}
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_exponent:N}
+%\begin{macro}{\siunitx_number_in_exponent:N}
% A duplicate token test starts off the code, which if passed
% leads to some simple storage manipulation. As exponents are
% more simple than the mantissa, the extra processing is swapped for
% some that only raises errors.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_exponent:N #1 {
- \bool_if:NTF \_l_siunitx_number_in_exponent_bool
+\cs_new_protected:Npn \siunitx_number_in_exponent:N #1 {
+ \bool_if:NTF \l_siunitx_number_in_exponent_bool
{
- \_siunitx_number_in_parse_error:nx { duplicate-exponent-token }
+ \siunitx_number_in_parse_error:nx { duplicate-exponent-token }
{ \token_to_str:N #1 }
}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_more:N
- \_siunitx_number_in_parse_exponent:N
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
- { \_siunitx_number_in_store: }
- \bool_set_true:N \_l_siunitx_number_in_exponent_bool
- \_siunitx_number_in_init_part:n { exponent }
+ \cs_set_eq:NN \siunitx_number_in_parse_more:N
+ \siunitx_number_in_parse_exponent:N
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
+ { \siunitx_number_in_store: }
+ \bool_set_true:N \l_siunitx_number_in_exponent_bool
+ \siunitx_number_in_init_part:n { exponent }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_sign:N}
+%\begin{macro}{\siunitx_number_in_sign:N}
% The code for signs is complicated by complex numbers. A sign token
% must be the fist thing in a number, but after the real part of the
% mantissa a second sign token can appear to start a complex number.
% So most of the code here is to detect that case.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_sign:N #1 {
- \bool_if:NTF \_l_siunitx_number_in_first_bool
+\cs_new_protected:Npn \siunitx_number_in_sign:N #1 {
+ \bool_if:NTF \l_siunitx_number_in_first_bool
{
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_set_true:N \_l_siunitx_number_in_sign_bool
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_sign_tl {#1}
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_set_true:N \l_siunitx_number_in_sign_bool
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_sign_tl {#1}
}
{
- \bool_if:NTF \_l_siunitx_number_in_exponent_bool
+ \bool_if:NTF \l_siunitx_number_in_exponent_bool
{
- \_siunitx_number_in_parse_error:nx { misplaced-sign-token }
+ \siunitx_number_in_parse_error:nx { misplaced-sign-token }
{#1}
}
{
- \bool_if:NTF \_l_siunitx_number_in_complex_bool
+ \bool_if:NTF \l_siunitx_number_in_complex_bool
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ misplaced-sign-token } {#1}
}
{
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
- { \_siunitx_number_in_store: }
- \cs_set_eq:NN \_siunitx_number_in_check:n
- \_siunitx_number_in_check_full:n
- \_siunitx_number_in_init_part:n { complex }
- \prop_put:Nnn \_l_siunitx_number_in_prop
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
+ { \siunitx_number_in_store: }
+ \cs_set_eq:NN \siunitx_number_in_check:n
+ \siunitx_number_in_check_full:n
+ \siunitx_number_in_init_part:n { complex }
+ \prop_put:Nnn \l_siunitx_number_in_prop
{ complex-sign } {#1}
- \bool_set_true:N \_l_siunitx_number_in_complex_bool
+ \bool_set_true:N \l_siunitx_number_in_complex_bool
}
}
}
@@ -5926,128 +5968,128 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_uncert_open:N}
-%\begin{macro}{\_siunitx_number_in_uncert_close:N}
+%\begin{macro}{\siunitx_number_in_uncert_open:N}
+%\begin{macro}{\siunitx_number_in_uncert_close:N}
% Opening and closing uncertainty tokens are handled separately. For
% opening tokens, a check is made that there is something else to the
% number before collecting material up. For the closing token, the
% uncertainty must contain some numbers. A special loop function is then
% set up to prevent any additional digits after the closing token.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_in_uncert_open:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_uncert:N
- \bool_set_true:N \_l_siunitx_number_in_uncert_bool
- \tl_if_empty:NTF \_l_siunitx_number_parsed_tl
+\cs_new_protected:Npn \siunitx_number_in_uncert_open:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_uncert:N
+ \bool_set_true:N \l_siunitx_number_in_uncert_bool
+ \tl_if_empty:NTF \l_siunitx_number_parsed_tl
{
- \prop_if_in:NVF \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
+ \prop_if_in:NVF \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
{
- \_siunitx_number_in_parse_error:nV { invalid-number }
- \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV { invalid-number }
+ \l_siunitx_number_arg_tl
}
}
- { \_siunitx_number_in_store: }
+ { \siunitx_number_in_store: }
}
-\cs_set_protected:Npn \_siunitx_number_in_uncert_close:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_uncert_bool
- \tl_if_empty:NTF \_l_siunitx_number_parsed_tl
+\cs_new_protected:Npn \siunitx_number_in_uncert_close:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_uncert_bool
+ \tl_if_empty:NTF \l_siunitx_number_parsed_tl
{
- \_siunitx_number_in_parse_error:nV { empty-uncertainty }
- \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV { empty-uncertainty }
+ \l_siunitx_number_arg_tl
}
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_uncert_tl \_l_siunitx_number_parsed_tl
- \prop_put:Nnn \_l_siunitx_number_in_prop
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_uncert_tl \l_siunitx_number_parsed_tl
+ \prop_put:Nnn \l_siunitx_number_in_prop
{ uncertainty } { true }
- \tl_clear:N \_l_siunitx_number_parsed_tl
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_uncert_after:N
+ \tl_clear:N \l_siunitx_number_parsed_tl
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_uncert_after:N
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_store:}
+%\begin{macro}{\siunitx_number_in_store:}
% A short auxiliary function needed in various places for storing
% either the integer or decimal part of a number, as appropriate.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_store: {
- \prop_put:NVn \_l_siunitx_number_in_prop \_l_siunitx_number_part_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_store: {
+ \prop_put:NVn \l_siunitx_number_in_prop \l_siunitx_number_part_tl
{ true }
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_tl \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_tl \l_siunitx_number_parsed_tl
}
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl \l_siunitx_number_parsed_tl
}
- \tl_clear:N \_l_siunitx_number_parsed_tl
+ \tl_clear:N \l_siunitx_number_parsed_tl
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_in_check:n}
-%\begin{macro}{\_siunitx_number_in_check_short:n}
-%\begin{macro}{\_siunitx_number_in_check_full:n}
+%\begin{macro}{\siunitx_number_in_check:n}
+%\begin{macro}{\siunitx_number_in_check_short:n}
+%\begin{macro}{\siunitx_number_in_check_full:n}
% The checks needed for a number depend on whether there is a complex
% part. In all cases, there must be some digits, as well as a sign or
% decimal marker. There is also a check for a zero-valued input, which
% has any sign deleted. For complex numbers, the check is needed in
% case there was no real part.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_check:n #1 { }
-\cs_set_protected_nopar:Npn \_siunitx_number_in_check_short:n #1 {
- \prop_if_in:NVF \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_check:n #1 { }
+\cs_new_protected_nopar:Npn \siunitx_number_in_check_short:n #1 {
+ \prop_if_in:NVF \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
{
- \prop_if_in:NVF \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_tl
- { \_siunitx_error:nx { invalid-number } {#1} }
+ \prop_if_in:NVF \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_tl
+ { \siunitx_error:nx { invalid-number } {#1} }
}
- \bool_if:NF \_l_siunitx_number_in_value_bool
+ \bool_if:NF \l_siunitx_number_in_value_bool
{
- \tl_if_eq:NNF \_l_siunitx_number_part_tl
- \_c_siunitx_number_part_complex_tl
+ \tl_if_eq:NNF \l_siunitx_number_part_tl
+ \c_siunitx_number_part_complex_tl
{
- \prop_get:NVN \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_sign_tl \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NVN \l_siunitx_number_in_prop
+ \l_siunitx_number_part_sign_tl \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { \_l_siunitx_number_part_sign_tl -deleted }
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_tmpb_tl \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { \l_siunitx_number_part_sign_tl -deleted }
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_tmpb_tl \l_siunitx_tmpa_tl
}
- \prop_del:NV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_sign_tl
+ \prop_del:NV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_sign_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_check_full:n #1 {
- \tl_if_eq:NNF \_l_siunitx_number_part_tl
- \_c_siunitx_number_part_complex_tl
- { \_siunitx_number_in_check_short:n {#1} }
- \bool_if:NF \_l_siunitx_number_in_complex_root_bool
+\cs_new_protected_nopar:Npn \siunitx_number_in_check_full:n #1 {
+ \tl_if_eq:NNF \l_siunitx_number_part_tl
+ \c_siunitx_number_part_complex_tl
+ { \siunitx_number_in_check_short:n {#1} }
+ \bool_if:NF \l_siunitx_number_in_complex_root_bool
{
- \prop_get:NnN \_l_siunitx_number_in_prop { complex-sign }
- \_l_siunitx_tmpa_tl
- \_siunitx_error:nV { misplaced-sign-token } \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-sign }
+ \l_siunitx_tmpa_tl
+ \siunitx_error:nV { misplaced-sign-token } \l_siunitx_tmpa_tl
}
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { mantissa }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { mantissa }
{
- \prop_del:Nn \_l_siunitx_number_in_prop { mantissa-sign }
- \prop_put:NnV \_l_siunitx_number_in_prop { complex-sign }
- \_l_siunitx_tmpa_tl
+ \prop_del:Nn \l_siunitx_number_in_prop { mantissa-sign }
+ \prop_put:NnV \l_siunitx_number_in_prop { complex-sign }
+ \l_siunitx_tmpa_tl
}
}
}
@@ -6064,22 +6106,22 @@ This work consists of the file siunitx.dtx
% for \enquote{formatting}: this is left for the output part of the
% system.
%
-%\begin{macro}{\_l_siunitx_round_int}
-%\begin{macro}{\_l_siunitx_round_tl}
-%\begin{macro}{\_l_siunitx_round_bool}
-%\begin{macro}{\_l_siunitx_round_decimal_in_tl}
-%\begin{macro}{\_l_siunitx_round_decimal_out_tl}
-%\begin{macro}{\_l_siunitx_round_integer_in_tl}
-%\begin{macro}{\_l_siunitx_round_integer_out_tl}
+%\begin{macro}{\l_siunitx_round_int}
+%\begin{macro}{\l_siunitx_round_tl}
+%\begin{macro}{\l_siunitx_round_bool}
+%\begin{macro}{\l_siunitx_round_decimal_in_tl}
+%\begin{macro}{\l_siunitx_round_decimal_out_tl}
+%\begin{macro}{\l_siunitx_round_integer_in_tl}
+%\begin{macro}{\l_siunitx_round_integer_out_tl}
% The rounding system needs a number of variables.
% \begin{macrocode}
-\int_new:N \_l_siunitx_round_int
-\tl_new:N \_l_siunitx_round_tl
-\bool_new:N \_l_siunitx_round_bool
-\tl_new:N \_l_siunitx_round_decimal_in_tl
-\tl_new:N \_l_siunitx_round_decimal_out_tl
-\tl_new:N \_l_siunitx_round_integer_in_tl
-\tl_new:N \_l_siunitx_round_integer_out_tl
+\int_new:N \l_siunitx_round_int
+\tl_new:N \l_siunitx_round_tl
+\bool_new:N \l_siunitx_round_bool
+\tl_new:N \l_siunitx_round_decimal_in_tl
+\tl_new:N \l_siunitx_round_decimal_out_tl
+\tl_new:N \l_siunitx_round_integer_in_tl
+\tl_new:N \l_siunitx_round_integer_out_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -6089,48 +6131,48 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_process_decimal_int}
-%\begin{macro}{\_l_siunitx_process_uncertainty_int}
-%\begin{macro}{\_l_siunitx_uncertainty_decimal_tl}
-%\begin{macro}{\_l_siunitx_uncertainty_integer_tl}
+%\begin{macro}{\l_siunitx_process_decimal_int}
+%\begin{macro}{\l_siunitx_process_uncertainty_int}
+%\begin{macro}{\l_siunitx_uncertainty_decimal_tl}
+%\begin{macro}{\l_siunitx_uncertainty_integer_tl}
% The code to expand uncertainties needs to know numbers of digits, and
% to store various data.
% \begin{macrocode}
-\int_new:N \_l_siunitx_process_decimal_int
-\int_new:N \_l_siunitx_process_uncertainty_int
-\tl_new:N \_l_siunitx_uncertainty_decimal_tl
-\tl_new:N \_l_siunitx_uncertainty_integer_tl
+\int_new:N \l_siunitx_process_decimal_int
+\int_new:N \l_siunitx_process_uncertainty_int
+\tl_new:N \l_siunitx_uncertainty_decimal_tl
+\tl_new:N \l_siunitx_uncertainty_integer_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_process_decimal_zero_bool}
-%\begin{macro}{\_l_siunitx_process_integer_zero_bool}
-%\begin{macro}{\_l_siunitx_process_sign_tl}
-%\begin{macro}{\_l_siunitx_process_plus_tl}
-%\begin{macro}{\_l_siunitx_unity_mantissa_tl}
-%\begin{macro}{\_l_siunitx_process_zero_exponent_bool}
-%\begin{macro}{\_l_siunitx_process_precision_int}
+%\begin{macro}{\l_siunitx_process_decimal_zero_bool}
+%\begin{macro}{\l_siunitx_process_integer_zero_bool}
+%\begin{macro}{\l_siunitx_process_sign_tl}
+%\begin{macro}{\l_siunitx_process_plus_tl}
+%\begin{macro}{\l_siunitx_unity_mantissa_tl}
+%\begin{macro}{\l_siunitx_process_zero_exponent_bool}
+%\begin{macro}{\l_siunitx_process_precision_int}
% First, the options are set up.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- add-decimal-zero .bool_set:N = \_l_siunitx_process_decimal_zero_bool,
- add-integer-zero .bool_set:N = \_l_siunitx_process_integer_zero_bool,
- explicit-sign .tl_set:N = \_l_siunitx_process_sign_tl,
- retain-explicit-plus .bool_set:N = \_l_siunitx_process_plus_tl,
+ add-decimal-zero .bool_set:N = \l_siunitx_process_decimal_zero_bool,
+ add-integer-zero .bool_set:N = \l_siunitx_process_integer_zero_bool,
+ explicit-sign .tl_set:N = \l_siunitx_process_sign_tl,
+ retain-explicit-plus .bool_set:N = \l_siunitx_process_plus_tl,
retain-unity-mantissa .bool_set:N =
- \_l_siunitx_process_unity_mantissa_bool,
+ \l_siunitx_process_unity_mantissa_bool,
retain-zero-exponent .bool_set:N =
- \_l_siunitx_process_zero_exponent_bool,
+ \l_siunitx_process_zero_exponent_bool,
round-mode .choice: ,
round-mode / figures .code:n =
- { \tl_set:Nn \_l_siunitx_round_tl { figures } },
- round-mode / off .code:n = { \tl_clear:N \_l_siunitx_round_tl },
+ { \tl_set:Nn \l_siunitx_round_tl { figures } },
+ round-mode / off .code:n = { \tl_clear:N \l_siunitx_round_tl },
round-mode / places .code:n =
- { \tl_set:Nn \_l_siunitx_round_tl { places } },
- round-precision .int_set:N = \_l_siunitx_process_precision_int,
+ { \tl_set:Nn \l_siunitx_round_tl { places } },
+ round-precision .int_set:N = \l_siunitx_process_precision_int,
}
\keys_set:nn { siunitx } {
add-decimal-zero = true,
@@ -6147,260 +6189,260 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process:}
+%\begin{macro}{\siunitx_number_process:}
% Post-processing is a series of small tasks.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process: {
- \_siunitx_number_process_sign:
- \_siunitx_number_process_zero_fill:
- \_siunitx_number_process_mantissa:
- \prop_if_in:NnF \_l_siunitx_number_in_prop { symbolic }
+\cs_new_protected_nopar:Npn \siunitx_number_process: {
+ \siunitx_number_process_sign:
+ \siunitx_number_process_zero_fill:
+ \siunitx_number_process_mantissa:
+ \prop_if_in:NnF \l_siunitx_number_in_prop { symbolic }
{
- \_siunitx_number_process_exponent:
- \_siunitx_number_process_uncertainty:
- \prop_if_in:NnF \_l_siunitx_number_in_prop { uncertainty }
- { \_siunitx_number_process_round: }
+ \siunitx_number_process_exponent:
+ \siunitx_number_process_uncertainty:
+ \prop_if_in:NnF \l_siunitx_number_in_prop { uncertainty }
+ { \siunitx_number_process_round: }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_exponent:}
-%\begin{macro}[aux]{\_siunitx_number_process_exponent_aux:n}
+%\begin{macro}{\siunitx_number_process_exponent:}
+%\begin{macro}[aux]{\siunitx_number_process_exponent_aux:n}
% To check for a totally zero exponent, the possibility that one or more
% of the exponent storage areas is zero needs to be considered.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_exponent: {
- \bool_if:NF \_l_siunitx_process_zero_exponent_bool
+\cs_new_protected_nopar:Npn \siunitx_number_process_exponent: {
+ \bool_if:NF \l_siunitx_process_zero_exponent_bool
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
{
- \bool_set_false:N \_l_siunitx_tmp_bool
- \_siunitx_number_process_exponent_aux:n { integer }
- \bool_if:NF \_l_siunitx_tmp_bool
- { \_siunitx_number_process_exponent_aux:n { decimal } }
- \bool_if:NF \_l_siunitx_tmp_bool
+ \bool_set_false:N \l_siunitx_tmp_bool
+ \siunitx_number_process_exponent_aux:n { integer }
+ \bool_if:NF \l_siunitx_tmp_bool
+ { \siunitx_number_process_exponent_aux:n { decimal } }
+ \bool_if:NF \l_siunitx_tmp_bool
{
- \prop_del:Nn \_l_siunitx_number_in_prop { exponent }
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop { exponent }
+ \prop_del:Nn \l_siunitx_number_in_prop
{ exponent-integer }
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop
{ exponent-decimal }
}
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_exponent_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { exponent- #1 }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_exponent_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { exponent- #1 }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \intexpr_compare:nNnF { \_l_siunitx_tmpa_tl } = { 0 }
- { \bool_set_true:N \_l_siunitx_tmp_bool }
+ \intexpr_compare:nNnF { \l_siunitx_tmpa_tl } = { 0 }
+ { \bool_set_true:N \l_siunitx_tmp_bool }
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_figures:n}
-%\begin{macro}[aux]{\_siunitx_number_process_figures_aux:n}
-%\begin{macro}[aux]{\_siunitx_number_process_figures_init:n}
+%\begin{macro}{\siunitx_number_process_figures:n}
+%\begin{macro}[aux]{\siunitx_number_process_figures_aux:n}
+%\begin{macro}[aux]{\siunitx_number_process_figures_init:n}
% Rather than count figures to start with, a completely different
% approach is used here.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop {#1}
- { \_siunitx_number_process_figures_aux:n {#1} }
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop {#1}
+ { \siunitx_number_process_figures_aux:n {#1} }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_aux:n #1 {
- \_siunitx_number_process_figures_init:n {#1}
- \_siunitx_number_process_figures_count:n { integer }
- \_siunitx_number_process_figures_count:n { decimal }
- \bool_if:NTF \_l_siunitx_round_bool
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_aux:n #1 {
+ \siunitx_number_process_figures_init:n {#1}
+ \siunitx_number_process_figures_count:n { integer }
+ \siunitx_number_process_figures_count:n { decimal }
+ \bool_if:NTF \l_siunitx_round_bool
{
- \bool_set_false:N \_l_siunitx_round_bool
+ \bool_set_false:N \l_siunitx_round_bool
\intexpr_compare:nNnTF
- { \_l_siunitx_round_int } >
- { \_l_siunitx_process_precision_int }
+ { \l_siunitx_round_int } >
+ { \l_siunitx_process_precision_int }
{
- \_siunitx_number_process_figures_round:
- \_siunitx_number_process_round_tidy:n {#1}
+ \siunitx_number_process_figures_round:
+ \siunitx_number_process_round_tidy:n {#1}
}
- { \_siunitx_number_process_figures_pad:n {#1} }
+ { \siunitx_number_process_figures_pad:n {#1} }
}
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { #1 -integer } { 0 }
- \prop_del:Nn \_l_siunitx_number_in_prop { #1 -decimal }
+ \prop_put:Nnn \l_siunitx_number_in_prop { #1 -integer } { 0 }
+ \prop_del:Nn \l_siunitx_number_in_prop { #1 -decimal }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_init:n #1 {
- \int_zero:N \_l_siunitx_round_int
- \bool_set_false:N \_l_siunitx_round_bool
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_in_tl
- \quark_if_no_value:NT \_l_siunitx_round_decimal_in_tl
- { \tl_clear:N \_l_siunitx_round_decimal_in_tl }
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_in_tl
- \quark_if_no_value:NT \_l_siunitx_round_integer_in_tl
- { \tl_clear:N \_l_siunitx_round_integer_in_tl }
- \tl_clear:N \_l_siunitx_round_decimal_out_tl
- \tl_clear:N \_l_siunitx_round_integer_out_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_init:n #1 {
+ \int_zero:N \l_siunitx_round_int
+ \bool_set_false:N \l_siunitx_round_bool
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_in_tl
+ \quark_if_no_value:NT \l_siunitx_round_decimal_in_tl
+ { \tl_clear:N \l_siunitx_round_decimal_in_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_in_tl
+ \quark_if_no_value:NT \l_siunitx_round_integer_in_tl
+ { \tl_clear:N \l_siunitx_round_integer_in_tl }
+ \tl_clear:N \l_siunitx_round_decimal_out_tl
+ \tl_clear:N \l_siunitx_round_integer_out_tl
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_figures_count:n}
-%\begin{macro}[aux]{\_siunitx_number_process_figures_count_aux:n}
+%\begin{macro}{\siunitx_number_process_figures_count:n}
+%\begin{macro}[aux]{\siunitx_number_process_figures_count_aux:n}
% The counting code has to check that characters are actually
% significant.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_figures_count:n #1 {
- \tl_if_empty:cF { _l_siunitx_round_ #1 _in_tl }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_figures_count:n #1 {
+ \tl_if_empty:cF { l_siunitx_round_ #1 _in_tl }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -uncertainty }
- { \_siunitx_number_process_figures_count_aux:n {#1} }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -uncertainty }
+ { \siunitx_number_process_figures_count_aux:n {#1} }
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_figures_count_aux:n #1 {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:Nv \tl_head:n { _l_siunitx_round_ #1 _in_tl } }
- \tl_set:cx { _l_siunitx_round_ #1 _in_tl }
- { \exp_args:Nv \tl_tail:n { _l_siunitx_round_ #1 _in_tl } }
- \tl_put_left:cV { _l_siunitx_round_ #1 _out_tl } \_l_siunitx_tmp_int
- \bool_if:NF \_l_siunitx_round_bool
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_figures_count_aux:n #1 {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:Nv \tl_head:n { l_siunitx_round_ #1 _in_tl } }
+ \tl_set:cx { l_siunitx_round_ #1 _in_tl }
+ { \exp_args:Nv \tl_tail:n { l_siunitx_round_ #1 _in_tl } }
+ \tl_put_left:cV { l_siunitx_round_ #1 _out_tl } \l_siunitx_tmp_int
+ \bool_if:NF \l_siunitx_round_bool
{
- \intexpr_compare:nNnF { \_l_siunitx_tmp_int } = { 0 }
- { \bool_set_true:N \_l_siunitx_round_bool }
+ \intexpr_compare:nNnF { \l_siunitx_tmp_int } = { 0 }
+ { \bool_set_true:N \l_siunitx_round_bool }
}
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_round_int }
- \tl_if_empty:cTF { _l_siunitx_round_ #1 _in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_round_int }
+ \tl_if_empty:cTF { l_siunitx_round_ #1 _in_tl }
{
- \tl_set_eq:cc { _l_siunitx_round_ #1 _in_tl }
- { _l_siunitx_round_ #1 _out_tl }
- \tl_clear:c { _l_siunitx_round_ #1 _out_tl }
+ \tl_set_eq:cc { l_siunitx_round_ #1 _in_tl }
+ { l_siunitx_round_ #1 _out_tl }
+ \tl_clear:c { l_siunitx_round_ #1 _out_tl }
}
- { \_siunitx_number_process_figures_count_aux:n {#1} }
+ { \siunitx_number_process_figures_count_aux:n {#1} }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_figures_round:}
-%\begin{macro}[aux]{\_siunitx_number_process_figures_round_loop:}
+%\begin{macro}{\siunitx_number_process_figures_round:}
+%\begin{macro}[aux]{\siunitx_number_process_figures_round_loop:}
% The control macro for rounding to figures does the decimal part
% then the integer part as loops. There is then some tidying up if a
% digit is carried at the end.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_round: {
- \int_set:Nn \_l_siunitx_round_int
- { \_l_siunitx_round_int - \_l_siunitx_process_precision_int }
- \tl_if_empty:NF \_l_siunitx_round_decimal_in_tl
- { \_siunitx_number_process_figures_round_loop: }
- \tl_if_empty:NF \_l_siunitx_round_integer_in_tl
- { \_siunitx_number_process_figures_integer: }
- \bool_if:NT \_l_siunitx_round_bool
- {
- \tl_put_left:Nn \_l_siunitx_round_integer_out_tl { 1 }
- \tl_if_empty:NF \_l_siunitx_round_decimal_out_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_round: {
+ \int_set:Nn \l_siunitx_round_int
+ { \l_siunitx_round_int - \l_siunitx_process_precision_int }
+ \tl_if_empty:NF \l_siunitx_round_decimal_in_tl
+ { \siunitx_number_process_figures_round_loop: }
+ \tl_if_empty:NF \l_siunitx_round_integer_in_tl
+ { \siunitx_number_process_figures_integer: }
+ \bool_if:NT \l_siunitx_round_bool
+ {
+ \tl_put_left:Nn \l_siunitx_round_integer_out_tl { 1 }
+ \tl_if_empty:NF \l_siunitx_round_decimal_out_tl
{
- \tl_reverse:N \_l_siunitx_round_decimal_out_tl
- \tl_set:Nx \_l_siunitx_round_decimal_out_tl
- { \tl_tail:n \_l_siunitx_round_decimal_out_tl }
- \tl_reverse:N \_l_siunitx_round_decimal_out_tl
+ \tl_reverse:N \l_siunitx_round_decimal_out_tl
+ \tl_set:Nx \l_siunitx_round_decimal_out_tl
+ { \tl_tail:n \l_siunitx_round_decimal_out_tl }
+ \tl_reverse:N \l_siunitx_round_decimal_out_tl
}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_figures_round_loop: {
- \_siunitx_number_process_round_decimal:
- \tl_if_empty:NF \_l_siunitx_round_decimal_in_tl
- { \_siunitx_number_process_figures_round_loop: }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_figures_round_loop: {
+ \siunitx_number_process_round_decimal:
+ \tl_if_empty:NF \l_siunitx_round_decimal_in_tl
+ { \siunitx_number_process_figures_round_loop: }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_figures_integer:}
+%\begin{macro}{\siunitx_number_process_figures_integer:}
% For figures, the integer part is a little complicated as zeros need
% to be included.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_integer: {
- \intexpr_compare:nNnT { \_l_siunitx_round_int } > { 0 }
- { \tl_put_left:Nn \_l_siunitx_round_integer_out_tl { 0 } }
- \intexpr_compare:nNnF { \_l_siunitx_round_int } > { 1 }
- {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:NV \tl_head:n \_l_siunitx_round_integer_in_tl }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_tmp_int }
- \bool_set_false:N \_l_siunitx_round_bool
- \intexpr_compare:nNnTF { \_l_siunitx_round_int } = { 1 }
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_integer: {
+ \intexpr_compare:nNnT { \l_siunitx_round_int } > { 0 }
+ { \tl_put_left:Nn \l_siunitx_round_integer_out_tl { 0 } }
+ \intexpr_compare:nNnF { \l_siunitx_round_int } > { 1 }
+ {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:NV \tl_head:n \l_siunitx_round_integer_in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_tmp_int }
+ \bool_set_false:N \l_siunitx_round_bool
+ \intexpr_compare:nNnTF { \l_siunitx_round_int } = { 1 }
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } > { 4 }
- { \bool_set_true:N \_l_siunitx_round_bool }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } > { 4 }
+ { \bool_set_true:N \l_siunitx_round_bool }
}
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } > { 10 }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } > { 10 }
{
- \bool_set_true:N \_l_siunitx_round_bool
- \int_zero:N \_l_siunitx_tmp_int
+ \bool_set_true:N \l_siunitx_round_bool
+ \int_zero:N \l_siunitx_tmp_int
}
- \tl_put_left:NV \_l_siunitx_round_integer_out_tl
- \_l_siunitx_tmp_int
+ \tl_put_left:NV \l_siunitx_round_integer_out_tl
+ \l_siunitx_tmp_int
}
}
- \int_decr:N \_l_siunitx_round_int
- \tl_set:Nx \_l_siunitx_round_integer_in_tl
- { \exp_args:NV \tl_tail:n \_l_siunitx_round_integer_in_tl }
- \tl_if_empty:NF \_l_siunitx_round_integer_in_tl
- { \_siunitx_number_process_figures_integer: }
+ \int_decr:N \l_siunitx_round_int
+ \tl_set:Nx \l_siunitx_round_integer_in_tl
+ { \exp_args:NV \tl_tail:n \l_siunitx_round_integer_in_tl }
+ \tl_if_empty:NF \l_siunitx_round_integer_in_tl
+ { \siunitx_number_process_figures_integer: }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_figures_pad:n}
+%\begin{macro}{\siunitx_number_process_figures_pad:n}
% If the number is too short, then the reversal is undone and the
% padding routine is called.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_pad:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_in_tl
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_in_tl
- \int_set:Nn \_l_siunitx_round_int
- { \_l_siunitx_process_precision_int - \_l_siunitx_round_int }
- \_siunitx_number_process_pad:n {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_pad:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_in_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_in_tl
+ \int_set:Nn \l_siunitx_round_int
+ { \l_siunitx_process_precision_int - \l_siunitx_round_int }
+ \siunitx_number_process_pad:n {#1}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_c_siunitx_unity_tl}
-%\begin{macro}{\_siunitx_number_process_mantissa:}
+%\begin{macro}{\c_siunitx_unity_tl}
+%\begin{macro}{\siunitx_number_process_mantissa:}
% A check for the mantissa consisting only of the token \texttt{1}, when
% an exponent is also available.
% \begin{macrocode}
-\tl_new:N \_c_siunitx_unity_tl
-\tl_set:Nn \_c_siunitx_unity_tl { 1 }
-\cs_set_protected_nopar:Npn \_siunitx_number_process_mantissa: {
- \bool_if:NF \_l_siunitx_process_unity_mantissa_bool
+\tl_new:N \c_siunitx_unity_tl
+\tl_set:Nn \c_siunitx_unity_tl { 1 }
+\cs_new_protected_nopar:Npn \siunitx_number_process_mantissa: {
+ \bool_if:NF \l_siunitx_process_unity_mantissa_bool
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
{
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-integer }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-integer }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_if_eq:NNT \_c_siunitx_unity_tl \_l_siunitx_tmpa_tl
+ \tl_if_eq:NNT \c_siunitx_unity_tl \l_siunitx_tmpa_tl
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop
+ \prop_if_in:NnF \l_siunitx_number_in_prop
{ mantissa-decimal-marker }
{
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop
{ mantissa }
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop
{ mantissa-integer }
}
}
@@ -6412,63 +6454,63 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_pad:n}
+%\begin{macro}{\siunitx_number_process_pad:n}
% For padding a number by adding zero to the end repeatedly. This can
% happen if the input was zero or if the number is too short.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_pad:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_pad:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \intexpr_while_do:nNnn { \_l_siunitx_round_int } > { 0 }
+ \intexpr_while_do:nNnn { \l_siunitx_round_int } > { 0 }
{
- \tl_put_right:Nn \_l_siunitx_tmpa_tl { 0 }
- \int_decr:N \_l_siunitx_round_int
+ \tl_put_right:Nn \l_siunitx_tmpa_tl { 0 }
+ \int_decr:N \l_siunitx_round_int
}
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_tmpa_tl
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_places:n}
-%\begin{macro}[aux]{\_siunitx_number_process_places_aux_i:n}
+%\begin{macro}{\siunitx_number_process_places:n}
+%\begin{macro}[aux]{\siunitx_number_process_places_aux_i:n}
% For rounding to a fixed number of places, a check is made to see if
% the decimal part is exactly zero. If it is, just create the
% appropriate number of zeros in the padding routine. Otherwise, do the
% real work.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_process_places:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop {#1}
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -uncertainty }
- { \_siunitx_number_process_places_aux_i:n {#1} }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -uncertainty }
+ { \siunitx_number_process_places_aux_i:n {#1} }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places_aux_i:n #1 {
- \intexpr_compare:nNnTF { \_l_siunitx_process_precision_int } = { 0 }
- { \prop_del:Nn \_l_siunitx_number_in_prop { #1 -decimal } }
+\cs_new_protected_nopar:Npn \siunitx_number_process_places_aux_i:n #1 {
+ \intexpr_compare:nNnTF { \l_siunitx_process_precision_int } = { 0 }
+ { \prop_del:Nn \l_siunitx_number_in_prop { #1 -decimal } }
{
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_if_empty:NT \_l_siunitx_tmpa_tl
- { \tl_set:Nn \_l_siunitx_tmpa_tl { 0 } }
- \intexpr_compare:nNnTF { \_l_siunitx_tmpa_tl } = { 0 }
+ \tl_if_empty:NT \l_siunitx_tmpa_tl
+ { \tl_set:Nn \l_siunitx_tmpa_tl { 0 } }
+ \intexpr_compare:nNnTF { \l_siunitx_tmpa_tl } = { 0 }
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { #1 -decimal }
+ \prop_put:Nnn \l_siunitx_number_in_prop { #1 -decimal }
{ }
- \int_set:Nn \_l_siunitx_round_int
- { \_l_siunitx_process_precision_int }
- \_siunitx_number_process_pad:n {#1}
+ \int_set:Nn \l_siunitx_round_int
+ { \l_siunitx_process_precision_int }
+ \siunitx_number_process_pad:n {#1}
}
{
- \int_set:Nn \_l_siunitx_round_int
- { \tl_elt_count:N \_l_siunitx_tmpa_tl }
- \_siunitx_number_process_places_aux_ii:n {#1}
+ \int_set:Nn \l_siunitx_round_int
+ { \tl_elt_count:N \l_siunitx_tmpa_tl }
+ \siunitx_number_process_places_aux_ii:n {#1}
}
}
}
@@ -6476,379 +6518,379 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_process_places_aux_ii:n}
+%\begin{macro}[aux]{\siunitx_number_process_places_aux_ii:n}
% For rounding to a fixed number of places, the package finds the
% difference in length between what is present and what is required.
% If the number is too short, there is some simple padding to do.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_places_aux_ii:n #1 {
- \int_sub:Nn \_l_siunitx_round_int
- { \_l_siunitx_process_precision_int }
- \intexpr_compare:nNnTF { \_l_siunitx_round_int } < { 0 }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_places_aux_ii:n #1 {
+ \int_sub:Nn \l_siunitx_round_int
+ { \l_siunitx_process_precision_int }
+ \intexpr_compare:nNnTF { \l_siunitx_round_int } < { 0 }
{
- \int_set:Nn \_l_siunitx_round_int { - \_l_siunitx_round_int }
- \_siunitx_number_process_pad:n {#1}
+ \int_set:Nn \l_siunitx_round_int { - \l_siunitx_round_int }
+ \siunitx_number_process_pad:n {#1}
}
{
- \_siunitx_number_process_places_init:n {#1}
- \_siunitx_number_process_places_loop:n {#1}
- \_siunitx_number_process_round_tidy:n {#1}
+ \siunitx_number_process_places_init:n {#1}
+ \siunitx_number_process_places_loop:n {#1}
+ \siunitx_number_process_round_tidy:n {#1}
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_places_init:n}
+%\begin{macro}{\siunitx_number_process_places_init:n}
% To keep the code a little clearer.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places_init:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_in_tl
- \quark_if_no_value:NT \_l_siunitx_round_integer_in_tl
- { \tl_clear:N \_l_siunitx_round_integer_in_tl }
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_in_tl
- \tl_reverse:N \_l_siunitx_round_integer_in_tl
- \tl_reverse:N \_l_siunitx_round_decimal_in_tl
- \tl_clear:N \_l_siunitx_round_integer_out_tl
- \tl_clear:N \_l_siunitx_round_decimal_out_tl
- \bool_set_false:N \_l_siunitx_round_bool
+\cs_new_protected_nopar:Npn \siunitx_number_process_places_init:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_in_tl
+ \quark_if_no_value:NT \l_siunitx_round_integer_in_tl
+ { \tl_clear:N \l_siunitx_round_integer_in_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_in_tl
+ \tl_reverse:N \l_siunitx_round_integer_in_tl
+ \tl_reverse:N \l_siunitx_round_decimal_in_tl
+ \tl_clear:N \l_siunitx_round_integer_out_tl
+ \tl_clear:N \l_siunitx_round_decimal_out_tl
+ \bool_set_false:N \l_siunitx_round_bool
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_process_places_loop:n}
+%\begin{macro}[aux]{\siunitx_number_process_places_loop:n}
% If there is a decimal, do the decimal processing then come back here.
% If there is an integer, do the same. Only if both are empty does the
% loop stop.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places_loop:n #1 {
- \tl_if_empty:NTF \_l_siunitx_round_decimal_in_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_places_loop:n #1 {
+ \tl_if_empty:NTF \l_siunitx_round_decimal_in_tl
{
- \tl_if_empty:NF \_l_siunitx_round_integer_in_tl
+ \tl_if_empty:NF \l_siunitx_round_integer_in_tl
{
- \_siunitx_number_process_places_integer:n {#1}
- \_siunitx_number_process_places_loop:n {#1}
+ \siunitx_number_process_places_integer:n {#1}
+ \siunitx_number_process_places_loop:n {#1}
}
- \bool_if:NT \_l_siunitx_round_bool
+ \bool_if:NT \l_siunitx_round_bool
{
- \tl_put_left:Nn \_l_siunitx_round_integer_out_tl { 1 }
- \bool_set_false:N \_l_siunitx_round_bool
+ \tl_put_left:Nn \l_siunitx_round_integer_out_tl { 1 }
+ \bool_set_false:N \l_siunitx_round_bool
}
}
{
- \_siunitx_number_process_round_decimal:
- \_siunitx_number_process_places_loop:n {#1}
+ \siunitx_number_process_round_decimal:
+ \siunitx_number_process_places_loop:n {#1}
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_process_places_integer:n}
+%\begin{macro}[aux]{\siunitx_number_process_places_integer:n}
% Rounding for integers is just a case of carrying digits.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_places_integer:n #1 {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:NV \tl_head:n \_l_siunitx_round_integer_in_tl }
- \tl_set:Nx \_l_siunitx_round_integer_in_tl
- { \exp_args:NV \tl_tail:n \_l_siunitx_round_integer_in_tl }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_tmp_int }
- \bool_set_false:N \_l_siunitx_round_bool
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } = { 10 }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_places_integer:n #1 {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:NV \tl_head:n \l_siunitx_round_integer_in_tl }
+ \tl_set:Nx \l_siunitx_round_integer_in_tl
+ { \exp_args:NV \tl_tail:n \l_siunitx_round_integer_in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_tmp_int }
+ \bool_set_false:N \l_siunitx_round_bool
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } = { 10 }
{
- \int_zero:N \_l_siunitx_tmp_int
- \bool_set_true:N \_l_siunitx_round_bool
+ \int_zero:N \l_siunitx_tmp_int
+ \bool_set_true:N \l_siunitx_round_bool
}
- \tl_put_left:NV \_l_siunitx_round_integer_out_tl \_l_siunitx_tmp_int
+ \tl_put_left:NV \l_siunitx_round_integer_out_tl \l_siunitx_tmp_int
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_round:}
+%\begin{macro}{\siunitx_number_process_round:}
% The lead-off for rounding is the same for decimal places and
% significant figures.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_round: {
- \tl_if_empty:NF \_l_siunitx_round_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_round: {
+ \tl_if_empty:NF \l_siunitx_round_tl
{
- \cs_set_nopar:Npx \_siunitx_tmp:w
+ \cs_set_nopar:Npx \siunitx_tmp:w
{
\exp_not:N \clist_map_function:nN
{ mantissa , complex }
\exp_not:c
- { _siunitx_number_process_ \_l_siunitx_round_tl :n }
+ { siunitx_number_process_ \l_siunitx_round_tl :n }
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_round_decimal:}
-%\begin{macro}[aux]{\_siunitx_number_process_round_decimal_aux:}
+%\begin{macro}{\siunitx_number_process_round_decimal:}
+%\begin{macro}[aux]{\siunitx_number_process_round_decimal_aux:}
% The rounding routine for decimals is the same for figures and places,
% so there is a generalised function here. Unfortunately, it is also
% complicated!
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_round_decimal: {
- \intexpr_compare:nNnF { \_l_siunitx_round_int } > { 1 }
- { \_siunitx_number_process_round_decimal_aux: }
- \tl_set:Nx \_l_siunitx_round_decimal_in_tl
- { \exp_args:NV \tl_tail:n \_l_siunitx_round_decimal_in_tl }
+\cs_new_protected_nopar:Npn \siunitx_number_process_round_decimal: {
+ \intexpr_compare:nNnF { \l_siunitx_round_int } > { 1 }
+ { \siunitx_number_process_round_decimal_aux: }
+ \tl_set:Nx \l_siunitx_round_decimal_in_tl
+ { \exp_args:NV \tl_tail:n \l_siunitx_round_decimal_in_tl }
- \int_decr:N \_l_siunitx_round_int
+ \int_decr:N \l_siunitx_round_int
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_round_decimal_aux: {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:NV \tl_head:n \_l_siunitx_round_decimal_in_tl }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_tmp_int }
- \bool_set_false:N \_l_siunitx_round_bool
- \intexpr_compare:nNnTF { \_l_siunitx_round_int } = { 1 }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_round_decimal_aux: {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:NV \tl_head:n \l_siunitx_round_decimal_in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_tmp_int }
+ \bool_set_false:N \l_siunitx_round_bool
+ \intexpr_compare:nNnTF { \l_siunitx_round_int } = { 1 }
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } > { 4 }
- { \bool_set_true:N \_l_siunitx_round_bool }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } > { 4 }
+ { \bool_set_true:N \l_siunitx_round_bool }
}
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } = { 10 }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } = { 10 }
{
- \bool_set_true:N \_l_siunitx_round_bool
- \int_zero:N \_l_siunitx_tmp_int
+ \bool_set_true:N \l_siunitx_round_bool
+ \int_zero:N \l_siunitx_tmp_int
}
- \tl_put_left:NV \_l_siunitx_round_decimal_out_tl
- \_l_siunitx_tmp_int
+ \tl_put_left:NV \l_siunitx_round_decimal_out_tl
+ \l_siunitx_tmp_int
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_round_tidy:n}
+%\begin{macro}{\siunitx_number_process_round_tidy:n}
% To put data back again.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_round_tidy:n #1 {
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_out_tl
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_out_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_round_tidy:n #1 {
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_out_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_out_tl
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_sign:}
+%\begin{macro}{\siunitx_number_process_sign:}
% Sorting out signs consists of two parts: retaining a plus if necessary
% and adding an explicit sign.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_sign: {
- \bool_if:NF \_l_siunitx_process_plus_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_sign: {
+ \bool_if:NF \l_siunitx_process_plus_tl
{
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { mantissa-sign }
- { \_siunitx_number_process_sign_plus:n { mantissa } }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { mantissa-sign }
+ { \siunitx_number_process_sign_plus:n { mantissa } }
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex-sign }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex-sign }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { mantissa }
- { \_siunitx_number_process_sign_plus:n { complex } }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { mantissa }
+ { \siunitx_number_process_sign_plus:n { complex } }
}
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent-sign }
- { \_siunitx_number_process_sign_plus:n { exponent } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent-sign }
+ { \siunitx_number_process_sign_plus:n { exponent } }
}
- \tl_if_empty:NF \_l_siunitx_process_sign_tl
+ \tl_if_empty:NF \l_siunitx_process_sign_tl
{
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { mantissa }
- { \_siunitx_number_process_sign_add:n { mantissa } }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { mantissa }
+ { \siunitx_number_process_sign_add:n { mantissa } }
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex }
- { \_siunitx_number_process_sign_add:n { complex } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex }
+ { \siunitx_number_process_sign_add:n { complex } }
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- { \_siunitx_number_process_sign_add:n { exponent } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ { \siunitx_number_process_sign_add:n { exponent } }
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_process_sign_add:n}
+%\begin{macro}[aux]{\siunitx_number_process_sign_add:n}
% Adding a sign to an existing number needs a couple of to make sure
% there is a number to add to, and to see if there is a sign already.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_sign_add:n #1 {
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -sign }
+\cs_new_protected_nopar:Npn \siunitx_number_process_sign_add:n #1 {
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -sign }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -had-sign }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -had-sign }
{
- \prop_get:NnN \_l_siunitx_number_in_prop {#1}
- \_l_siunitx_tmpa_tl
- \tl_if_empty:NTF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop {#1}
+ \l_siunitx_tmpa_tl
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop { sign }
- \_l_siunitx_process_sign_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { sign }
+ \l_siunitx_process_sign_tl
}
{
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -sign }
- \_l_siunitx_process_sign_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -sign }
+ \l_siunitx_process_sign_tl
}
}
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_c_siunitx_plus_tl}
-%\begin{macro}[aux]{\_siunitx_number_process_sign_plus:n}
+%\begin{macro}{\c_siunitx_plus_tl}
+%\begin{macro}[aux]{\siunitx_number_process_sign_plus:n}
% Holding onto a plus works very much in the same way as adding a sign:
% some quick tests and an assignment. Using a pre-defined token list is
% a speed-related choice: very slightly faster comparison.
% \begin{macrocode}
-\tl_new:N \_c_siunitx_plus_tl
-\tl_set:Nn \_c_siunitx_plus_tl { + }
-\cs_set_protected_nopar:Npn \_siunitx_number_process_sign_plus:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -sign }
- \_l_siunitx_tmpa_tl
- \tl_if_eq:NNT \_c_siunitx_plus_tl \_l_siunitx_tmpa_tl
+\tl_new:N \c_siunitx_plus_tl
+\tl_set:Nn \c_siunitx_plus_tl { + }
+\cs_new_protected_nopar:Npn \siunitx_number_process_sign_plus:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -sign }
+ \l_siunitx_tmpa_tl
+ \tl_if_eq:NNT \c_siunitx_plus_tl \l_siunitx_tmpa_tl
{
- \prop_del:Nn \_l_siunitx_number_in_prop { #1 -sign }
- \prop_put:Nnn \_l_siunitx_number_in_prop { #1 -had-sign } { true }
+ \prop_del:Nn \l_siunitx_number_in_prop { #1 -sign }
+ \prop_put:Nnn \l_siunitx_number_in_prop { #1 -had-sign } { true }
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_uncertainty:}
-%\begin{macro}[aux]{\_siunitx_number_process_uncertainty_aux:n}
+%\begin{macro}{\siunitx_number_process_uncertainty:}
+%\begin{macro}[aux]{\siunitx_number_process_uncertainty_aux:n}
% There may be a need to expand uncertainties into a decimal and integer
% part. This is done here so that the core \texttt{in} code is faster.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_uncertainty: {
+\cs_new_protected_nopar:Npn \siunitx_number_process_uncertainty: {
\clist_map_function:nN { mantissa , complex }
- \_siunitx_number_process_uncertainty_aux:n
+ \siunitx_number_process_uncertainty_aux:n
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_aux:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { #1 -uncertainty }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_aux:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { #1 -uncertainty }
{
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { #1 -decimal-marker }
- { \_siunitx_number_process_uncertainty_decimal:n {#1} }
- { \_siunitx_number_process_uncertainty_integer:n {#1} }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { #1 -decimal-marker }
+ { \siunitx_number_process_uncertainty_decimal:n {#1} }
+ { \siunitx_number_process_uncertainty_integer:n {#1} }
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_uncertainty_decimal:n}
-%\begin{macro}[aux]{\_siunitx_number_process_uncertainty_count:nn}
+%\begin{macro}{\siunitx_number_process_uncertainty_decimal:n}
+%\begin{macro}[aux]{\siunitx_number_process_uncertainty_count:nn}
% To deal with an error in the decimal part, care needs to be taken to
% correctly pad with zeros and also to allow for the possibility that
% the error crosses the decimal--integer boundary.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_decimal:n #1 {
- \_siunitx_number_process_uncertainty_count:nn {#1} { decimal }
- \_siunitx_number_process_uncertainty_count:nn {#1} { uncertainty }
- \tl_clear:N \_l_siunitx_uncertainty_decimal_tl
- \tl_clear:N \_l_siunitx_uncertainty_integer_tl
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_decimal:n #1 {
+ \siunitx_number_process_uncertainty_count:nn {#1} { decimal }
+ \siunitx_number_process_uncertainty_count:nn {#1} { uncertainty }
+ \tl_clear:N \l_siunitx_uncertainty_decimal_tl
+ \tl_clear:N \l_siunitx_uncertainty_integer_tl
\intexpr_compare:nNnTF
- { \_l_siunitx_process_uncertainty_int } >
- { \_l_siunitx_process_decimal_int }
- { \_siunitx_number_process_uncertainty_separate: }
- { \_siunitx_number_process_uncertainty_pad: }
- \tl_if_empty:NF \_l_siunitx_uncertainty_integer_tl
+ { \l_siunitx_process_uncertainty_int } >
+ { \l_siunitx_process_decimal_int }
+ { \siunitx_number_process_uncertainty_separate: }
+ { \siunitx_number_process_uncertainty_pad: }
+ \tl_if_empty:NF \l_siunitx_uncertainty_integer_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop
+ \prop_put:NnV \l_siunitx_number_in_prop
{ #1 -uncertainty-integer }
- \_l_siunitx_uncertainty_integer_tl
+ \l_siunitx_uncertainty_integer_tl
}
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -uncertainty-decimal }
- \_l_siunitx_uncertainty_decimal_tl
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal-marker }
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_in_prop
- { #1 -uncertainty-decimal-marker } \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -uncertainty-decimal }
+ \l_siunitx_uncertainty_decimal_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal-marker }
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop
+ { #1 -uncertainty-decimal-marker } \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_count:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 - #2 }
- \_l_siunitx_tmpa_tl
- \int_set:cn { _l_siunitx_process_ #2 _int }
- { \tl_elt_count:N \_l_siunitx_tmpa_tl }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_count:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 - #2 }
+ \l_siunitx_tmpa_tl
+ \int_set:cn { l_siunitx_process_ #2 _int }
+ { \tl_elt_count:N \l_siunitx_tmpa_tl }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_uncertainty_pad:}
+%\begin{macro}{\siunitx_number_process_uncertainty_pad:}
% Uncertainty is short: add zeros.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_uncertainty_pad: {
+\cs_new_protected_nopar:Npn \siunitx_number_process_uncertainty_pad: {
\intexpr_while_do:nNnn
- { \_l_siunitx_process_uncertainty_int } <
- { \_l_siunitx_process_decimal_int }
+ { \l_siunitx_process_uncertainty_int } <
+ { \l_siunitx_process_decimal_int }
{
- \tl_put_right:Nn \_l_siunitx_uncertainty_decimal_tl {0}
- \int_incr:N \_l_siunitx_process_uncertainty_int
+ \tl_put_right:Nn \l_siunitx_uncertainty_decimal_tl {0}
+ \int_incr:N \l_siunitx_process_uncertainty_int
}
- \tl_put_right:NV \_l_siunitx_uncertainty_decimal_tl
- \_l_siunitx_tmpa_tl
+ \tl_put_right:NV \l_siunitx_uncertainty_decimal_tl
+ \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_uncertainty_separate:}
-%\begin{macro}{\_siunitx_number_process_uncertainty_separate_aux:N}
+%\begin{macro}{\siunitx_number_process_uncertainty_separate:}
+%\begin{macro}{\siunitx_number_process_uncertainty_separate_aux:N}
% Find the integer--decimal boundary and work appropriately.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_separate: {
- \tl_map_function:NN \_l_siunitx_tmpa_tl
- \_siunitx_number_process_uncertainty_separate_aux:N
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_separate: {
+ \tl_map_function:NN \l_siunitx_tmpa_tl
+ \siunitx_number_process_uncertainty_separate_aux:N
}
-\cs_set_protected:Npn
- \_siunitx_number_process_uncertainty_separate_aux:N #1 {
+\cs_new_protected:Npn
+ \siunitx_number_process_uncertainty_separate_aux:N #1 {
\intexpr_compare:nNnTF
- { \_l_siunitx_process_uncertainty_int } >
- { \_l_siunitx_process_decimal_int }
- { \tl_put_right:Nn \_l_siunitx_uncertainty_integer_tl {#1} }
- { \tl_put_right:Nn \_l_siunitx_uncertainty_decimal_tl {#1} }
- \int_decr:N \_l_siunitx_process_uncertainty_int
+ { \l_siunitx_process_uncertainty_int } >
+ { \l_siunitx_process_decimal_int }
+ { \tl_put_right:Nn \l_siunitx_uncertainty_integer_tl {#1} }
+ { \tl_put_right:Nn \l_siunitx_uncertainty_decimal_tl {#1} }
+ \int_decr:N \l_siunitx_process_uncertainty_int
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_process_uncertainty_integer:n}
+%\begin{macro}{\siunitx_number_process_uncertainty_integer:n}
% Relatively easy: the uncertainty is in the integer part of the number,
% and so there is no need to generate zeros.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_integer:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -uncertainty }
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -uncertainty-integer }
- \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_integer:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -uncertainty }
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -uncertainty-integer }
+ \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_process_zero_fill:}
-%\begin{macro}[aux]{\_siunitx_number_process_zero_fill_aux:n}
-%\begin{macro}[aux]{\_siunitx_number_process_zero_fill_aux:nn}
+%\begin{macro}{\siunitx_number_process_zero_fill:}
+%\begin{macro}[aux]{\siunitx_number_process_zero_fill_aux:n}
+%\begin{macro}[aux]{\siunitx_number_process_zero_fill_aux:nn}
% Checks for adding zeros to each component are carried out. The nesting
% here makes checking the appropriate flag a little more efficient.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_zero_fill: {
- \_siunitx_number_process_zero_fill_aux:n { integer }
- \_siunitx_number_process_zero_fill_aux:n { decimal }
+\cs_new_protected_nopar:Npn \siunitx_number_process_zero_fill: {
+ \siunitx_number_process_zero_fill_aux:n { integer }
+ \siunitx_number_process_zero_fill_aux:n { decimal }
}
-\cs_set_nopar:Npn \_siunitx_number_process_zero_fill_aux:n #1 {
- \bool_if:cT { _l_siunitx_process_ #1 _zero_bool }
+\cs_new_nopar:Npn \siunitx_number_process_zero_fill_aux:n #1 {
+ \bool_if:cT { l_siunitx_process_ #1 _zero_bool }
{
- \_siunitx_number_process_zero_fill_aux:nn { mantissa } {#1}
- \_siunitx_number_process_zero_fill_aux:nn { complex } {#1}
- \_siunitx_number_process_zero_fill_aux:nn { exponent } {#1}
+ \siunitx_number_process_zero_fill_aux:nn { mantissa } {#1}
+ \siunitx_number_process_zero_fill_aux:nn { complex } {#1}
+ \siunitx_number_process_zero_fill_aux:nn { exponent } {#1}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_zero_fill_aux:nn #1#2 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { #1 -decimal-marker }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_zero_fill_aux:nn #1#2 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { #1 -decimal-marker }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 - #2 }
- { \prop_put:Nnn \_l_siunitx_number_in_prop { #1 - #2 } { 0 } }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 - #2 }
+ { \prop_put:Nnn \l_siunitx_number_in_prop { #1 - #2 } { 0 } }
}
}
% \end{macrocode}
@@ -6865,92 +6907,92 @@ This work consists of the file siunitx.dtx
% \texttt{out} store is that the later can include formatting such as
% hard spaces.
%
-%\begin{macro}{\_l_siunitx_number_out_prop}
+%\begin{macro}{\l_siunitx_number_out_prop}
% Like the \texttt{in} version!
% \begin{macrocode}
-\prop_new:N \_l_siunitx_number_out_prop
+\prop_new:N \l_siunitx_number_out_prop
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_group_sep_tl}
-%\begin{macro}{\_l_siunitx_output_decimal_tl}
+%\begin{macro}{\l_siunitx_group_sep_tl}
+%\begin{macro}{\l_siunitx_output_decimal_tl}
% A couple of variables are declared here, as they need a little more
% work than just storage.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_group_sep_tl
-\tl_new:N \_l_siunitx_output_decimal_tl
+\tl_new:N \l_siunitx_group_sep_tl
+\tl_new:N \l_siunitx_output_decimal_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_complex_after_bool}
+%\begin{macro}{\l_siunitx_complex_after_bool}
% A setting for where complex numbers go.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_complex_after_bool
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\_l_siunitx_brackets_bool}
-%\begin{macro}{\_l_siunitx_bracket_close_tl}
-%\begin{macro}{\_l_siunitx_output_decimal_copy_bool}
-%\begin{macro}{\_l_siunitx_exponent_base_tl}
-%\begin{macro}{\_l_siunitx_exponent_product_tl}
-%\begin{macro}{\_l_siunitx_group_decimal_bool}
-%\begin{macro}{\_l_siunitx_group_four_bool}
-%\begin{macro}{\_l_siunitx_group_integer_bool}
-%\begin{macro}{\_l_siunitx_negative_color_tl}
-%\begin{macro}{\_l_siunitx_bracket_open_tl}
-%\begin{macro}{\_l_siunitx_output_uncert_close_tl}
-%\begin{macro}{\_l_siunitx_output_complex_tl}
-%\begin{macro}{\_l_siunitx_output_uncert_open_tl}
-%\begin{macro}{\_l_siunitx_uncert_sep_bool}
-%\begin{macro}{\_l_siunitx_tight_bool}
-%\begin{macro}{\_l_siunitx_uncert_sep_tl}
+\bool_new:N \l_siunitx_complex_after_bool
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\l_siunitx_brackets_bool}
+%\begin{macro}{\l_siunitx_bracket_close_tl}
+%\begin{macro}{\l_siunitx_output_decimal_copy_bool}
+%\begin{macro}{\l_siunitx_exponent_base_tl}
+%\begin{macro}{\l_siunitx_exponent_product_tl}
+%\begin{macro}{\l_siunitx_group_decimal_bool}
+%\begin{macro}{\l_siunitx_group_four_bool}
+%\begin{macro}{\l_siunitx_group_integer_bool}
+%\begin{macro}{\l_siunitx_negative_color_tl}
+%\begin{macro}{\l_siunitx_bracket_open_tl}
+%\begin{macro}{\l_siunitx_output_uncert_close_tl}
+%\begin{macro}{\l_siunitx_output_complex_tl}
+%\begin{macro}{\l_siunitx_output_uncert_open_tl}
+%\begin{macro}{\l_siunitx_uncert_sep_bool}
+%\begin{macro}{\l_siunitx_tight_bool}
+%\begin{macro}{\l_siunitx_uncert_sep_tl}
% Lots of settings, some used only for numbers, some more widely.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- bracket-numbers .bool_set:N = \_l_siunitx_brackets_bool,
- close-bracket .tl_set:N = \_l_siunitx_bracket_close_tl,
+ bracket-numbers .bool_set:N = \l_siunitx_brackets_bool,
+ close-bracket .tl_set:N = \l_siunitx_bracket_close_tl,
complex-root-position .choice:,
complex-root-position
/ after-number .code:n =
- { \bool_set_true:N \_l_siunitx_complex_after_bool } ,
+ { \bool_set_true:N \l_siunitx_complex_after_bool } ,
complex-root-position
/ before-number .code:n =
- { \bool_set_false:N \_l_siunitx_complex_after_bool } ,
+ { \bool_set_false:N \l_siunitx_complex_after_bool } ,
copy-decimal-marker .bool_set:N =
- \_l_siunitx_output_decimal_copy_bool,
- exponent-base .tl_set:N = \_l_siunitx_exponent_base_tl,
+ \l_siunitx_output_decimal_copy_bool,
+ exponent-base .tl_set:N = \l_siunitx_exponent_base_tl,
exponent-product .tl_set:N =
- \_l_siunitx_exponent_product_tl,
+ \l_siunitx_exponent_product_tl,
group-decimal-digits .bool_set:N =
- \_l_siunitx_group_decimal_bool,
+ \l_siunitx_group_decimal_bool,
group-digits .meta:n =
{
group-decimal-digits = #1,
group-integer-digits = #1
},
- group-four-digits .bool_set:N = \_l_siunitx_group_four_bool,
+ group-four-digits .bool_set:N = \l_siunitx_group_four_bool,
group-integer-digits .bool_set:N =
- \_l_siunitx_group_integer_bool,
+ \l_siunitx_group_integer_bool,
group-separator .code:n =
{
- \tl_set:Nn \_l_siunitx_group_sep_tl { {#1} }
+ \tl_set:Nn \l_siunitx_group_sep_tl { {#1} }
},
- negative-color .tl_set:N = \_l_siunitx_negative_color_tl,
- open-bracket .tl_set:N = \_l_siunitx_bracket_open_tl,
+ negative-color .tl_set:N = \l_siunitx_negative_color_tl,
+ open-bracket .tl_set:N = \l_siunitx_bracket_open_tl,
output-close-uncertainty .tl_set:N =
- \_l_siunitx_output_uncert_close_tl,
- output-complex-root .tl_set:N = \_l_siunitx_output_complex_tl,
+ \l_siunitx_output_uncert_close_tl,
+ output-complex-root .tl_set:N = \l_siunitx_output_complex_tl,
output-decimal-marker .code:n =
{
- \tl_set:Nn \_l_siunitx_output_decimal_tl { {#1} }
+ \tl_set:Nn \l_siunitx_output_decimal_tl { {#1} }
},
output-open-uncertainty .tl_set:N =
- \_l_siunitx_output_uncert_open_tl,
- separate-uncertainty .bool_set:N = \_l_siunitx_uncert_sep_bool,
- tight-spacing .bool_set:N = \_l_siunitx_tight_bool,
- uncertainty-separator .tl_set:N = \_l_siunitx_uncert_sep_tl,
+ \l_siunitx_output_uncert_open_tl,
+ separate-uncertainty .bool_set:N = \l_siunitx_uncert_sep_bool,
+ tight-spacing .bool_set:N = \l_siunitx_tight_bool,
+ uncertainty-separator .tl_set:N = \l_siunitx_uncert_sep_tl,
}
\keys_set:nn { siunitx } {
bracket-numbers = true, % (
@@ -6986,82 +7028,82 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format:}
+%\begin{macro}{\siunitx_number_format:}
% The master control function for formatting output: the usual set up.
% The number is put back together in stages.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format: {
- \prop_if_empty:NF \_l_siunitx_number_in_prop
+\cs_new_protected_nopar:Npn \siunitx_number_format: {
+ \prop_if_empty:NF \l_siunitx_number_in_prop
{
- \prop_clear:N \_l_siunitx_number_out_prop
- \_siunitx_number_format_reassemble:
- \_siunitx_number_format_complex:
- \_siunitx_number_format_sign:n { mantissa }
- \_siunitx_number_format_sign:n { exponent }
- \_siunitx_number_format_color:
- \_siunitx_number_format_final:
+ \prop_clear:N \l_siunitx_number_out_prop
+ \siunitx_number_format_reassemble:
+ \siunitx_number_format_complex:
+ \siunitx_number_format_sign:n { mantissa }
+ \siunitx_number_format_sign:n { exponent }
+ \siunitx_number_format_color:
+ \siunitx_number_format_final:
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_brackets:n}
-%\begin{macro}{\_siunitx_number_format_brackets_aux:n}
+%\begin{macro}{\siunitx_number_format_brackets:n}
+%\begin{macro}{\siunitx_number_format_brackets_aux:n}
% There are various points at which brackets might be added to
% avoid ambiguity. The function here adds the appropriate tokens
% around whatever is in the supplied named store.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_brackets:n #1 {
- \bool_if:NT \_l_siunitx_brackets_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_brackets:n #1 {
+ \bool_if:NT \l_siunitx_brackets_bool
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { #1 -bracket }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { #1 -bracket }
{
- \_siunitx_number_format_brackets_aux:n {#1}
- \prop_del:Nn \_l_siunitx_number_out_prop { #1 -bracket }
+ \siunitx_number_format_brackets_aux:n {#1}
+ \prop_del:Nn \l_siunitx_number_out_prop { #1 -bracket }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_brackets_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_brackets_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
{
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
}
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_bracket_open_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_bracket_close_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_bracket_open_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_bracket_close_tl
\tl_if_eq:nnTF {#1} { result }
- { \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl }
+ { \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl }
{
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_color:}
-%\begin{macro}{\_siunitx_number_format_color_aux:n}
+%\begin{macro}{\siunitx_number_format_color:}
+%\begin{macro}{\siunitx_number_format_color_aux:n}
% If the mantissa is negative, then any colour for output might change.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_color: {
- \tl_if_empty:NF \_l_siunitx_negative_color_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_color: {
+ \tl_if_empty:NF \l_siunitx_negative_color_tl
{
- \_siunitx_number_format_color_aux:n { mantissa-sign }
- \_siunitx_number_format_color_aux:n { sign }
+ \siunitx_number_format_color_aux:n { mantissa-sign }
+ \siunitx_number_format_color_aux:n { sign }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_color_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_color_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_if_eq:nVT { - } \_l_siunitx_tmpa_tl
+ \tl_if_eq:nVT { - } \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_out_prop { color }
- \_l_siunitx_negative_color_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { color }
+ \l_siunitx_negative_color_tl
}
}
}
@@ -7069,72 +7111,72 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_complex:}
-%\begin{macro}[aux]{\_siunitx_number_format_complex_aux:n}
+%\begin{macro}{\siunitx_number_format_complex:}
+%\begin{macro}[aux]{\siunitx_number_format_complex_aux:n}
% The real and complex parts of each number are reassembled, with
% brackets if needed.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_complex: {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex-root }
+\cs_new_protected_nopar:Npn \siunitx_number_format_complex: {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex-root }
{
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { complex }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { complex }
{
- \_siunitx_number_format_brackets:n { complex }
- \_siunitx_number_format_complex_aux:n { complex }
- \_siunitx_number_format_complex_aux:n { complex-result }
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ \siunitx_number_format_brackets:n { complex }
+ \siunitx_number_format_complex_aux:n { complex }
+ \siunitx_number_format_complex_aux:n { complex-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ complex-uncertainty }
{
- \_siunitx_number_format_complex_aux:n
+ \siunitx_number_format_complex_aux:n
{ complex-uncertainty }
}
}
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_output_complex_tl }
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_output_complex_tl }
}
- \prop_put:NnV \_l_siunitx_number_out_prop { complex }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { complex }
+ \l_siunitx_tmpa_tl
}
- \_siunitx_number_format_join_complex:
+ \siunitx_number_format_join_complex:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_complex_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- \bool_if:NTF \_l_siunitx_complex_after_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_complex_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ \bool_if:NTF \l_siunitx_complex_after_bool
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_complex_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_complex_tl
}
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_complex_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_complex_tl
}
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_copy:n}
-%\begin{macro}{\_siunitx_number_format_copy:nn}
+%\begin{macro}{\siunitx_number_format_copy:n}
+%\begin{macro}{\siunitx_number_format_copy:nn}
% Just copy across.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_copy:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_copy:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_copy:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#2} \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_copy:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#2} \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_final:}
+%\begin{macro}{\siunitx_number_format_final:}
% For numbers which do not contain an exponent, the mantissa result is
% simply copied to the final output position. On the other hand, for
% exponents there are further checks, which are handed off to dedicated
@@ -7142,218 +7184,218 @@ This work consists of the file siunitx.dtx
% part, which needs to be \enquote{copied} to the standard result
% slot.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_final: {
- \prop_if_in:NnT \_l_siunitx_number_out_prop { complex }
+\cs_new_protected_nopar:Npn \siunitx_number_format_final: {
+ \prop_if_in:NnT \l_siunitx_number_out_prop { complex }
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { mantissa-result }
{
- \_siunitx_number_format_copy:nn { complex }
+ \siunitx_number_format_copy:nn { complex }
{ mantissa-result }
}
}
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { exponent }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { exponent }
{
- \_siunitx_number_format_final_exponent:
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { mantissa-result }
- { \_siunitx_number_format_final_combined: }
- { \_siunitx_number_format_final_exponent_only: }
+ \siunitx_number_format_final_exponent:
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { mantissa-result }
+ { \siunitx_number_format_final_combined: }
+ { \siunitx_number_format_final_exponent_only: }
}
- { \_siunitx_number_format_copy:nn { mantissa-result } { result } }
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-bracket }
+ { \siunitx_number_format_copy:nn { mantissa-result } { result } }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-bracket }
{
- \prop_put:Nnn \_l_siunitx_number_out_prop { result-bracket }
+ \prop_put:Nnn \l_siunitx_number_out_prop { result-bracket }
{ true }
- \prop_del:Nn \_l_siunitx_number_out_prop { mantissa-bracket }
+ \prop_del:Nn \l_siunitx_number_out_prop { mantissa-bracket }
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_format_final_combined:}
+%\begin{macro}{\siunitx_number_format_final_combined:}
% When there is both a mantissa and an exponent, the mantissa is
% combined with the product sign before adding the exponent part on.
% The combined result is then stored. The marker
% \texttt{result-bracket-exponent} indicates that the number needs
% brackets due to the exponent part, but not in other cases.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_final_combined: {
- \_siunitx_number_format_brackets:n { mantissa }
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-result }
- \_l_siunitx_tmpa_tl
- \tl_set_eq:NN \_l_siunitx_tmpb_tl \_l_siunitx_exponent_product_tl
- \bool_if:NT \_l_siunitx_tight_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_final_combined: {
+ \siunitx_number_format_brackets:n { mantissa }
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-result }
+ \l_siunitx_tmpa_tl
+ \tl_set_eq:NN \l_siunitx_tmpb_tl \l_siunitx_exponent_product_tl
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { { \exp_not:V \_l_siunitx_tmpb_tl } }
- }
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpb_tl
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { result }
- \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_out_prop
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { \exp_not:V \l_siunitx_tmpb_tl } }
+ }
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpb_tl
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { result }
+ \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_out_prop
{ result-bracket-exponent } { true }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_format_final_exponent:}
+%\begin{macro}{\siunitx_number_format_final_exponent:}
% When there is an exponent, the base always needs to be added to the
% front of the number itself. The number must be superscripted, of
% course.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_final_exponent: {
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent }
- \_l_siunitx_tmpa_tl
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { ^ { \exp_not:V \_l_siunitx_tmpa_tl } }
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_exponent_base_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_final_exponent: {
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent }
+ \l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { ^ { \exp_not:V \l_siunitx_tmpa_tl } }
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_exponent_base_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_format_final_exponent_only:}
+%\begin{macro}{\siunitx_number_format_final_exponent_only:}
% When there is only an exponent, a check must be made for a
% sign in the mantissa part. If there is one, it is copied across.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_format_final_exponent_only: {
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn
+ \siunitx_number_format_final_exponent_only: {
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \bool_if:NT \_l_siunitx_tight_bool
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpb_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpb_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpb_tl
}
- \_siunitx_number_format_copy:nn { exponent-result } { result }
+ \siunitx_number_format_copy:nn { exponent-result } { result }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_group:n}
-%\begin{macro}[aux]{\_siunitx_number_format_group_aux:nn}
+%\begin{macro}{\siunitx_number_format_group:n}
+%\begin{macro}[aux]{\siunitx_number_format_group_aux:nn}
% Grouping digits only happens if there are no symbols in the input, and
% of course if grouping has been requested.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group:n #1 {
- \_siunitx_number_format_group_aux:nn {#1} { integer }
- \_siunitx_number_format_group_aux:nn {#1} { decimal }
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { #1 -integer }
- { \_siunitx_number_format_copy:nn { #1 -integer } {#1} }
- { \tl_clear:N \_l_siunitx_tmpa_tl }
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal-marker }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NF \_l_siunitx_tmpb_tl
- {
- \bool_if:NTF \_l_siunitx_output_decimal_copy_bool
- { \tl_set:Nx \_l_siunitx_tmpb_tl { { \_l_siunitx_tmpb_tl } } }
+\cs_new_protected_nopar:Npn \siunitx_number_format_group:n #1 {
+ \siunitx_number_format_group_aux:nn {#1} { integer }
+ \siunitx_number_format_group_aux:nn {#1} { decimal }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { #1 -integer }
+ { \siunitx_number_format_copy:nn { #1 -integer } {#1} }
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal-marker }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NF \l_siunitx_tmpb_tl
+ {
+ \bool_if:NTF \l_siunitx_output_decimal_copy_bool
+ { \tl_set:Nx \l_siunitx_tmpb_tl { { \l_siunitx_tmpb_tl } } }
{
- \tl_set_eq:NN \_l_siunitx_tmpb_tl
- \_l_siunitx_output_decimal_tl
+ \tl_set_eq:NN \l_siunitx_tmpb_tl
+ \l_siunitx_output_decimal_tl
}
- \tl_set:Nx \_l_siunitx_tmpb_tl
+ \tl_set:Nx \l_siunitx_tmpb_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_tmpb_tl }
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_tmpb_tl }
}
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -decimal-marker }
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -decimal }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NT \_l_siunitx_tmpb_tl
- { \tl_clear:N \_l_siunitx_tmpb_tl }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_aux:nn #1#2 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { #1 - #2 }
- {
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { symbolic }
- { \_siunitx_number_format_copy:n { #1 - #2 } }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -decimal-marker }
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -decimal }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_aux:nn #1#2 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { #1 - #2 }
+ {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { symbolic }
+ { \siunitx_number_format_copy:n { #1 - #2 } }
{
- \bool_if:cTF { _l_siunitx_group_ #2 _bool }
- { \_siunitx_number_format_group_four:nn {#1} {#2} }
- { \_siunitx_number_format_copy:n { #1 - #2 } }
+ \bool_if:cTF { l_siunitx_group_ #2 _bool }
+ { \siunitx_number_format_group_four:nn {#1} {#2} }
+ { \siunitx_number_format_copy:n { #1 - #2 } }
}
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_format_group_four:nn}
-%\begin{macro}[aux]{\_siunitx_number_format_group_four_aux:NNNNNNw}
-%\begin{macro}[aux]{\_siunitx_number_format_group_four_aux:nn}
+%\begin{macro}{\siunitx_number_format_group_four:nn}
+%\begin{macro}[aux]{\siunitx_number_format_group_four_aux:NNNNNNw}
+%\begin{macro}[aux]{\siunitx_number_format_group_four_aux:nn}
% The idea here is that grouping is only needed for items with at
% least four tokens in them, and perhaps five if the grouping of
% four-digit numbers is turned off.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_four:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 - #2 }
- \_l_siunitx_tmpa_tl
- \bool_if:NTF \_l_siunitx_group_four_bool
- { \_siunitx_number_format_group_four_aux:nn {#1} {#2} }
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_four:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 - #2 }
+ \l_siunitx_tmpa_tl
+ \bool_if:NTF \l_siunitx_group_four_bool
+ { \siunitx_number_format_group_four_aux:nn {#1} {#2} }
{
- \exp_after:wN \_siunitx_number_format_group_four_aux:NNNNNNw
- \_l_siunitx_tmpa_tl \q_no_value \q_no_value \q_no_value
+ \exp_after:wN \siunitx_number_format_group_four_aux:NNNNNNw
+ \l_siunitx_tmpa_tl \q_no_value \q_no_value \q_no_value
\q_no_value \q_no_value \q_nil
- { \_siunitx_number_format_copy:n {#1 - #2} }
- { \_siunitx_number_format_group_four_aux:nn {#1} {#2} }
+ { \siunitx_number_format_copy:n {#1 - #2} }
+ { \siunitx_number_format_group_four_aux:nn {#1} {#2} }
}
}
-\cs_set_protected:Npn \_siunitx_number_format_group_four_aux:NNNNNNw
+\cs_new_protected:Npn \siunitx_number_format_group_four_aux:NNNNNNw
#1#2#3#4#5#6 \q_nil {
\quark_if_no_value:NTF #5
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_four_aux:nn
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_four_aux:nn
#1#2 {
- \tl_clear:N \_l_siunitx_tmpb_tl
- \use:c { _siunitx_number_format_group_ #2 : }
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 - #2 }
- \_l_siunitx_tmpb_tl
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \use:c { siunitx_number_format_group_ #2 : }
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 - #2 }
+ \l_siunitx_tmpb_tl
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_format_group_decimal:}
-%\begin{macro}[aux]{\_siunitx_number_format_group_decimal_aux:}
+%\begin{macro}{\siunitx_number_format_group_decimal:}
+%\begin{macro}[aux]{\siunitx_number_format_group_decimal_aux:}
% Using the \enquote{keep everything on the stack} approach, relatively
% simple recursion is needed. This trick is taken more or less directly
% from \pkg{numprint}.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_decimal: {
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_decimal: {
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \exp_after:wN \_siunitx_number_format_group_decimal_aux:NNNN
- \_l_siunitx_tmpa_tl { } { } { }
+ \exp_after:wN \siunitx_number_format_group_decimal_aux:NNNN
+ \l_siunitx_tmpa_tl { } { } { }
}
}
-\cs_set_protected:Npn \_siunitx_number_format_group_decimal_aux:NNNN
+\cs_new_protected:Npn \siunitx_number_format_group_decimal_aux:NNNN
#1#2#3#4 {
\tl_if_empty:nTF {#2}
- { \tl_put_right:Nn \_l_siunitx_tmpb_tl {#1} }
+ { \tl_put_right:Nn \l_siunitx_tmpb_tl {#1} }
{
\tl_if_empty:nTF {#3}
- { \tl_put_right:Nn \_l_siunitx_tmpb_tl { #1 #2 } }
+ { \tl_put_right:Nn \l_siunitx_tmpb_tl { #1 #2 } }
{
- \tl_put_right:Nn \_l_siunitx_tmpb_tl { #1 #2 #3 }
+ \tl_put_right:Nn \l_siunitx_tmpb_tl { #1 #2 #3 }
\tl_if_empty:nF {#4}
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_group_sep_tl
- \_siunitx_number_format_group_decimal_aux:NNNN #4
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_group_sep_tl
+ \siunitx_number_format_group_decimal_aux:NNNN #4
}
}
}
@@ -7361,57 +7403,57 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_number_format_group_integer:}
-%\begin{macro}[aux]{\_siunitx_number_format_group_integer_setup:n}
-%\begin{macro}[aux]{\_siunitx_number_format_group_integer_setup:V}
-%\begin{macro}[aux]{\_siunitx_number_format_group_integer_setup_aux:NNNN}
-%\begin{macro}[aux]{\_siunitx_number_format_group_integer_aux:NNNN}
+%\begin{macro}{\siunitx_number_format_group_integer:}
+%\begin{macro}[aux]{\siunitx_number_format_group_integer_setup:n}
+%\begin{macro}[aux]{\siunitx_number_format_group_integer_setup:V}
+%\begin{macro}[aux]{\siunitx_number_format_group_integer_setup_aux:NNNN}
+%\begin{macro}[aux]{\siunitx_number_format_group_integer_aux:NNNN}
% By keeping everything on the stack, recursion can occur quite
% efficiently here.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_integer: {
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_integer: {
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \_siunitx_number_format_group_integer_setup:V \_l_siunitx_tmpa_tl
+ \siunitx_number_format_group_integer_setup:V \l_siunitx_tmpa_tl
}
}
-\cs_set_protected:Npn \_siunitx_number_format_group_integer_setup:n #1 {
- \_siunitx_number_format_group_integer_setup_aux:NNNN
+\cs_new_protected:Npn \siunitx_number_format_group_integer_setup:n #1 {
+ \siunitx_number_format_group_integer_setup_aux:NNNN
{ } #1 { } { } { }
}
-\cs_generate_variant:Nn \_siunitx_number_format_group_integer_setup:n
+\cs_generate_variant:Nn \siunitx_number_format_group_integer_setup:n
{ V }
-\cs_set_protected:Npn
- \_siunitx_number_format_group_integer_setup_aux:NNNN #1#2#3#4 {
+\cs_new_protected:Npn
+ \siunitx_number_format_group_integer_setup_aux:NNNN #1#2#3#4 {
\tl_if_empty:nTF {#2}
- { \_siunitx_number_format_group_integer_aux:NNNN #1 \q_nil }
+ { \siunitx_number_format_group_integer_aux:NNNN #1 \q_nil }
{
\tl_if_empty:nTF {#3}
{
- \_siunitx_number_format_group_integer_aux:NNNN { } { } #1#2
+ \siunitx_number_format_group_integer_aux:NNNN { } { } #1#2
\q_nil
}
{
\tl_if_empty:nTF {#4}
{
- \_siunitx_number_format_group_integer_aux:NNNN { } #1#2#3
+ \siunitx_number_format_group_integer_aux:NNNN { } #1#2#3
\q_nil
}
{
- \_siunitx_number_format_group_integer_setup_aux:NNNN
+ \siunitx_number_format_group_integer_setup_aux:NNNN
{#1#2#3#4}
}
}
}
}
-\cs_set_protected:Npn
- \_siunitx_number_format_group_integer_aux:NNNN #1#2#3#4 {
- \tl_put_right:Nn \_l_siunitx_tmpb_tl {#1#2#3}
+\cs_new_protected:Npn
+ \siunitx_number_format_group_integer_aux:NNNN #1#2#3#4 {
+ \tl_put_right:Nn \l_siunitx_tmpb_tl {#1#2#3}
\quark_if_nil:nF {#4}
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_group_sep_tl
- \_siunitx_number_format_group_integer_aux:NNNN #4
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_group_sep_tl
+ \siunitx_number_format_group_integer_aux:NNNN #4
}
}
% \end{macrocode}
@@ -7421,71 +7463,71 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_join_complex:}
+%\begin{macro}{\siunitx_number_format_join_complex:}
% For adding the complex part to the main part of a number.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_complex: {
- \_siunitx_number_format_sign_complex:
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa }
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_complex: {
+ \siunitx_number_format_sign_complex:
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa }
{
- \_siunitx_number_format_brackets:n { mantissa }
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-result }
- \_l_siunitx_tmpa_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { complex-result }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NT \_l_siunitx_tmpb_tl
+ \siunitx_number_format_brackets:n { mantissa }
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-result }
+ \l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { complex-result }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
{
- \prop_get:NnN \_l_siunitx_number_out_prop { complex }
- \_l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { complex }
+ \l_siunitx_tmpb_tl
}
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { mantissa-result }
- \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_out_prop { mantissa-bracket }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { mantissa-result }
+ \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_out_prop { mantissa-bracket }
{ true }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_join_uncert:}
-%\begin{macro}{\_siunitx_number_format_join_uncert:n}
-%\begin{macro}[aux]{\_siunitx_number_format_join_uncert_pm:}
+%\begin{macro}{\siunitx_number_format_join_uncert:}
+%\begin{macro}{\siunitx_number_format_join_uncert:n}
+%\begin{macro}[aux]{\siunitx_number_format_join_uncert_pm:}
% For adding separated uncertainties to the main part of a number.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_uncert: {
- \_siunitx_number_format_join_uncert:n { mantissa }
- \_siunitx_number_format_join_uncert:n { complex }
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_uncert: {
+ \siunitx_number_format_join_uncert:n { mantissa }
+ \siunitx_number_format_join_uncert:n { complex }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_uncert:n #1 {
- \prop_get:NnN \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_uncert:n #1 {
+ \prop_get:NnN \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -uncertainty }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpb_tl
- { \_siunitx_number_format_copy:nn {#1} { #1 -result } }
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -uncertainty }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpb_tl
+ { \siunitx_number_format_copy:nn {#1} { #1 -result } }
{
- \bool_if:NT \_l_siunitx_uncert_sep_bool
- { \_siunitx_number_format_join_uncert_pm: }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_out_prop { #1 -bracket }
+ \bool_if:NT \l_siunitx_uncert_sep_bool
+ { \siunitx_number_format_join_uncert_pm: }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_out_prop { #1 -bracket }
{ true }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_uncert_pm: {
- \bool_if:NTF \_l_siunitx_tight_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_uncert_pm: {
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \tl_put_left:Nn \_l_siunitx_tmpb_tl
- { \_siunitx_ensuremath:n { { \pm } } }
+ \tl_put_left:Nn \l_siunitx_tmpb_tl
+ { \siunitx_ensuremath:n { { \pm } } }
}
{
- \tl_put_left:Nn \_l_siunitx_tmpb_tl
- { \_siunitx_ensuremath:n { { } \pm { } } }
+ \tl_put_left:Nn \l_siunitx_tmpb_tl
+ { \siunitx_ensuremath:n { { } \pm { } } }
}
}
% \end{macrocode}
@@ -7493,104 +7535,104 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_reassemble:}
+%\begin{macro}{\siunitx_number_format_reassemble:}
% The integer, decimal and any non-separated uncertainty parts are
% put back together. This gives a \enquote{minimal} unit which cannot
% need any brackets or repeated units (if applicable). If the
% uncertainty is separate, it is stored at this stage pending later
% re-attachment.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_reassemble: {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { mantissa }
+\cs_new_protected_nopar:Npn \siunitx_number_format_reassemble: {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { mantissa }
{
- \_siunitx_number_format_group:n { mantissa }
- \_siunitx_number_format_uncertainty:n { mantissa }
+ \siunitx_number_format_group:n { mantissa }
+ \siunitx_number_format_uncertainty:n { mantissa }
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex }
{
- \_siunitx_number_format_group:n { complex }
- \_siunitx_number_format_uncertainty:n { complex }
+ \siunitx_number_format_group:n { complex }
+ \siunitx_number_format_uncertainty:n { complex }
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- { \_siunitx_number_format_group:n { exponent } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ { \siunitx_number_format_group:n { exponent } }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_sign:n}
-%\begin{macro}{\_siunitx_number_format_sign_complex:}
-%\begin{macro}[aux]{\_siunitx_number_format_sign_complex:n}
+%\begin{macro}{\siunitx_number_format_sign:n}
+%\begin{macro}{\siunitx_number_format_sign_complex:}
+%\begin{macro}[aux]{\siunitx_number_format_sign_complex:n}
% Some simple sign manipulation: for tight signs, a little shuffling.
% In the complex number case, there is a need for a correction to get
% the right formatting in text mode. For speed reasons, this is done in
% a separate function.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_sign:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop {#1}
{
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \bool_if:NT \_l_siunitx_tight_bool
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
- \tl_clear:N \_l_siunitx_tmpb_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -sign }
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -sign }
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
}
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_sign_complex: {
- \_siunitx_number_format_sign_complex:n { complex }
- \_siunitx_number_format_sign_complex:n { complex-result }
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign_complex: {
+ \siunitx_number_format_sign_complex:n { complex }
+ \siunitx_number_format_sign_complex:n { complex-result }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_sign_complex:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign_complex:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop {#1}
{
- \prop_get:NnN \_l_siunitx_number_in_prop { complex-sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \bool_if:NTF \_l_siunitx_tight_bool
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa }
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { } \exp_not:V \_l_siunitx_tmpa_tl { } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { } \exp_not:V \l_siunitx_tmpa_tl { } }
}
}
- \tl_clear:N \_l_siunitx_tmpb_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { complex-sign }
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { complex-sign }
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
}
}
}
@@ -7599,51 +7641,51 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_format_uncertainty:n}
-%\begin{macro}{\_siunitx_number_format_uncertainty_joined:n}
-%\begin{macro}{\_siunitx_number_format_uncertainty_sep:n}
+%\begin{macro}{\siunitx_number_format_uncertainty:n}
+%\begin{macro}{\siunitx_number_format_uncertainty_joined:n}
+%\begin{macro}{\siunitx_number_format_uncertainty_sep:n}
% Uncertainty output varies depending on whether there is a need to
% separate the error form the number in the output.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_uncertainty:n #1 {
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { #1 -uncertainty }
- {
- \bool_if:NTF \_l_siunitx_uncert_sep_bool
- { \_siunitx_number_format_uncertainty_sep:n {#1} }
- { \_siunitx_number_format_uncertainty_joined:n {#1} }
- \_siunitx_number_format_join_uncert:
- }
- { \_siunitx_number_format_copy:nn {#1} { #1 -result } }
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_format_uncertainty_joined:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -uncertainty }
- \_l_siunitx_tmpa_tl
- \prop_del:Nn \_l_siunitx_number_in_prop { #1 -uncertainty }
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_uncert_open_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_uncert_sep_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_uncert_close_tl
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpb_tl
- \tl_put_right:NV \_l_siunitx_tmpb_tl \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpb_tl
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_format_uncertainty_sep:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop { #1 -integer }
- {
- \prop_if_in:NnF \_l_siunitx_number_out_prop
+\cs_new_protected_nopar:Npn \siunitx_number_format_uncertainty:n #1 {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { #1 -uncertainty }
+ {
+ \bool_if:NTF \l_siunitx_uncert_sep_bool
+ { \siunitx_number_format_uncertainty_sep:n {#1} }
+ { \siunitx_number_format_uncertainty_joined:n {#1} }
+ \siunitx_number_format_join_uncert:
+ }
+ { \siunitx_number_format_copy:nn {#1} { #1 -result } }
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_format_uncertainty_joined:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -uncertainty }
+ \l_siunitx_tmpa_tl
+ \prop_del:Nn \l_siunitx_number_in_prop { #1 -uncertainty }
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_uncert_open_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_uncert_sep_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_uncert_close_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpb_tl
+ \tl_put_right:NV \l_siunitx_tmpb_tl \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpb_tl
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_format_uncertainty_sep:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop { #1 -integer }
+ {
+ \prop_if_in:NnF \l_siunitx_number_out_prop
{ #1 -uncertainty-integer }
{
- \prop_put:Nnn \_l_siunitx_number_out_prop
+ \prop_put:Nnn \l_siunitx_number_out_prop
{ #1 -uncertainty-integer } { 0 }
}
}
- \_siunitx_number_format_group:n { #1 -uncertainty }
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -uncertainty }
- \_l_siunitx_tmpa_tl
+ \siunitx_number_format_group:n { #1 -uncertainty }
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -uncertainty }
+ \l_siunitx_tmpa_tl
}
% \end{macrocode}
%\end{macro}
@@ -7654,60 +7696,60 @@ This work consists of the file siunitx.dtx
%
% The outer level of number processing for actually printing things.
%
-%\begin{macro}{\_l_siunitx_number_out_tl}
-%\begin{macro}{\_l_siunitx_number_out_saved_tl}
+%\begin{macro}{\l_siunitx_number_out_tl}
+%\begin{macro}{\l_siunitx_number_out_saved_tl}
% The final result, plus a version for loops.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_out_tl
-\tl_new:N \_l_siunitx_number_out_saved_tl
+\tl_new:N \l_siunitx_number_out_tl
+\tl_new:N \l_siunitx_number_out_saved_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_fraction_tl}
+%\begin{macro}{\l_siunitx_number_fraction_tl}
% Fractions need to be build separately, so that there is no problem
% with stack order.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_fraction_tl
+\tl_new:N \l_siunitx_number_fraction_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_compound_bool}
+%\begin{macro}{\l_siunitx_number_compound_bool}
% To help with brackets.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_number_compound_bool
+\bool_new:N \l_siunitx_number_compound_bool
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_quotient_mode_tl}
+%\begin{macro}{\l_siunitx_quotient_mode_tl}
% The action for quotients is stored as a token list variable.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_quotient_mode_tl
+\tl_new:N \l_siunitx_quotient_mode_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_fraction:nn}
+%\begin{macro}{\siunitx_fraction:nn}
% The function used for fractions should be stored here.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_fraction:nn { }
+\cs_new_protected:Npn \siunitx_fraction:nn { }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_output_quotient_tl}
+%\begin{macro}{\l_siunitx_output_quotient_tl}
%\begin{macro}{\l_siunix_number_parse_bool}
% Some options related to numbers at the output stage.
% \begin{macrocode}
\keys_define:nn { siunitx } {
fraction-function .code:n =
- { \cs_set_eq:NN \_siunitx_fraction:nn #1 },
- output-product .tl_set:N = \_l_siunitx_output_product_tl,
- output-quotient .tl_set:N = \_l_siunitx_output_quotient_tl,
- parse-numbers .bool_set:N = \_l_siunitx_number_parse_bool,
+ { \cs_set_eq:NN \siunitx_fraction:nn #1 },
+ output-product .tl_set:N = \l_siunitx_output_product_tl,
+ output-quotient .tl_set:N = \l_siunitx_output_quotient_tl,
+ parse-numbers .bool_set:N = \l_siunitx_number_parse_bool,
quotient-mode .choice:,
quotient-mode / fraction .code:n =
- { \tl_set:Nn \_l_siunitx_quotient_mode_tl { fraction } },
+ { \tl_set:Nn \l_siunitx_quotient_mode_tl { fraction } },
quotient-mode / symbol .code:n =
- { \tl_set:Nn \_l_siunitx_quotient_mode_tl { symbol } },
+ { \tl_set:Nn \l_siunitx_quotient_mode_tl { symbol } },
}
\keys_set:nn { siunitx } {
fraction-function = \frac,
@@ -7720,67 +7762,67 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output:n}
-%\begin{macro}{\_siunitx_number_output:V}
+%\begin{macro}{\siunitx_number_output:n}
+%\begin{macro}{\siunitx_number_output:V}
% The number output system simply sets up for the combined number and
% unit system.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_output:n #1 {
- \tl_clear:N \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_preunit_tl
- \_siunitx_combined_output:n {#1}
+\cs_new_protected:Npn \siunitx_number_output:n #1 {
+ \tl_clear:N \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_preunit_tl
+ \siunitx_combined_output:n {#1}
}
-\cs_generate_variant:Nn \_siunitx_number_output:n { V }
+\cs_generate_variant:Nn \siunitx_number_output:n { V }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_bracket:}
+%\begin{macro}{\siunitx_number_output_bracket:}
% Compound numbers may need brackets adding.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_bracket: {
- \bool_if:NF \_l_siunitx_error_bool
+\cs_new_protected_nopar:Npn \siunitx_number_output_bracket: {
+ \bool_if:NF \l_siunitx_error_bool
{
- \bool_if:NT \_l_siunitx_number_compound_bool
- { \_siunitx_number_format_brackets:n { result } }
+ \bool_if:NT \l_siunitx_number_compound_bool
+ { \siunitx_number_format_brackets:n { result } }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_color:}
+%\begin{macro}{\siunitx_number_output_color:}
% If a colour needs to be set, it is recovered here and put into the
% appropriate place.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_color: {
- \prop_if_in:NnT \_l_siunitx_number_out_prop { color }
+\cs_new_protected_nopar:Npn \siunitx_number_output_color: {
+ \prop_if_in:NnT \l_siunitx_number_out_prop { color }
{
- \prop_get:NnN \_l_siunitx_number_out_prop { color }
- \_l_siunitx_number_color_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { color }
+ \l_siunitx_number_color_tl
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_parse:n}
-%\begin{macro}{\_siunitx_number_output_parse:V}
-%\begin{macro}[aux]{\_siunitx_number_output_parse_aux:}
+%\begin{macro}{\siunitx_number_output_parse:n}
+%\begin{macro}{\siunitx_number_output_parse:V}
+%\begin{macro}[aux]{\siunitx_number_output_parse_aux:}
% The parsing system just has to check if there are multiple parts to
% worry about.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_number_output_parse:n #1 {
- \_siunitx_number_preprocess:n {#1}
- \bool_if:NF \_l_siunitx_error_bool
+\cs_new_protected:Npn \siunitx_number_output_parse:n #1 {
+ \siunitx_number_preprocess:n {#1}
+ \bool_if:NF \l_siunitx_error_bool
{
- \tl_if_empty:NTF \_l_siunitx_number_multi_tl
- { \_siunitx_number_output_parse_aux: }
+ \tl_if_empty:NTF \l_siunitx_number_multi_tl
+ { \siunitx_number_output_parse_aux: }
{
\use:c
- { _siunitx_number_output_ \_l_siunitx_number_multi_tl : }
+ { siunitx_number_output_ \l_siunitx_number_multi_tl : }
}
}
}
-\cs_generate_variant:Nn \_siunitx_number_output_parse:n { V }
+\cs_generate_variant:Nn \siunitx_number_output_parse:n { V }
% \end{macrocode}
% There are a few additional tests for printing partwise, as this is
% only needed if there are brackets to add and these are not due to
@@ -7788,22 +7830,22 @@ This work consists of the file siunitx.dtx
% the units to come at the end of the number, and there then have to
% be brackets in the output if there are any separate parts.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parse_aux: {
- \_siunitx_number_in_parse:V \_l_siunitx_number_arg_tl
- \bool_if:NF \_l_siunitx_error_bool
- {
- \_siunitx_number_process:
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- { \bool_set_true:N \_l_siunitx_brackets_bool }
- \_siunitx_number_format:
- \_siunitx_number_output_color:
- \bool_if:NTF \_l_siunitx_brackets_bool
- { \_siunitx_number_output_single: }
+\cs_new_protected_nopar:Npn \siunitx_number_output_parse_aux: {
+ \siunitx_number_in_parse:V \l_siunitx_number_arg_tl
+ \bool_if:NF \l_siunitx_error_bool
+ {
+ \siunitx_number_process:
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ { \bool_set_true:N \l_siunitx_brackets_bool }
+ \siunitx_number_format:
+ \siunitx_number_output_color:
+ \bool_if:NTF \l_siunitx_brackets_bool
+ { \siunitx_number_output_single: }
{
- \prop_if_in:NnTF \_l_siunitx_number_out_prop
+ \prop_if_in:NnTF \l_siunitx_number_out_prop
{ result-bracket }
- { \_siunitx_number_output_parts: }
- { \_siunitx_number_output_single: }
+ { \siunitx_number_output_parts: }
+ { \siunitx_number_output_single: }
}
}
}
@@ -7812,76 +7854,76 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_parts:}
-%\begin{macro}[aux]{\_siunitx_number_output_parts_aux:}
-%\begin{macro}[aux]{\_siunitx_number_output_parts_aux:n}
-%\begin{macro}[aux]{\_siunitx_number_output_parts_print:n}
+%\begin{macro}{\siunitx_number_output_parts:}
+%\begin{macro}[aux]{\siunitx_number_output_parts_aux:}
+%\begin{macro}[aux]{\siunitx_number_output_parts_aux:n}
+%\begin{macro}[aux]{\siunitx_number_output_parts_print:n}
% Printing numbers by parts is necessary when there are units to
% repeat. That means doing things that have already been done by the
% number formatter again.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts: {
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts: {
\bool_if:nTF
{
- \tl_if_empty_p:N \_l_siunitx_pre_unit_tl &&
- \tl_if_empty_p:N \_l_siunitx_unit_tl
+ \tl_if_empty_p:N \l_siunitx_pre_unit_tl &&
+ \tl_if_empty_p:N \l_siunitx_unit_tl
}
- { \_siunitx_number_output_single: }
- { \_siunitx_number_output_parts_aux: }
+ { \siunitx_number_output_single: }
+ { \siunitx_number_output_parts_aux: }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts_aux: {
- \bool_if:NTF \_l_siunitx_multi_repeat_bool
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts_aux: {
+ \bool_if:NTF \l_siunitx_multi_repeat_bool
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-result }
{
- \_siunitx_number_output_parts_aux:n { mantissa }
- \_siunitx_number_output_parts_aux:n { complex }
+ \siunitx_number_output_parts_aux:n { mantissa }
+ \siunitx_number_output_parts_aux:n { complex }
}
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-result }
{
- \tl_set_eq:NN \_l_siunitx_tmpb_tl
- \_l_siunitx_exponent_product_tl
- \bool_if:NT \_l_siunitx_tight_bool
+ \tl_set_eq:NN \l_siunitx_tmpb_tl
+ \l_siunitx_exponent_product_tl
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { { \exp_not:V \_l_siunitx_tmpb_tl } }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { \exp_not:V \l_siunitx_tmpb_tl } }
}
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { exponent }
- \_l_siunitx_tmpa_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { exponent }
+ \l_siunitx_tmpa_tl
}
- \_siunitx_number_output_parts_print:n { exponent }
+ \siunitx_number_output_parts_print:n { exponent }
}
}
- { \_siunitx_number_output_single: }
+ { \siunitx_number_output_single: }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts_aux:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop {#1}
- { \_siunitx_number_output_parts_print:n {#1} }
- \prop_if_in:NnT \_l_siunitx_number_out_prop { #1 -uncertainty }
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts_aux:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop {#1}
+ { \siunitx_number_output_parts_print:n {#1} }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { #1 -uncertainty }
{
- \bool_if:NTF \_l_siunitx_tight_bool
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { { \pm } } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { { \pm } } }
}
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { { } \pm { } } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { { } \pm { } } }
}
- \_siunitx_number_output_parts_print:n { #1 -uncertainty }
+ \siunitx_number_output_parts_print:n { #1 -uncertainty }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts_print:n #1 {
- \_siunitx_unit_output_pre_print:
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
- \_siunitx_unit_output_print:
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts_print:n #1 {
+ \siunitx_unit_output_pre_print:
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
+ \siunitx_unit_output_print:
}
% \end{macrocode}
%\end{macro}
@@ -7889,177 +7931,177 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_product:}
+%\begin{macro}{\siunitx_number_output_product:}
% For products, there may need to be the addition of brackets if there
% are units about. When not repeating units, some work has to be done to
% print everything correctly. The extra group here is necessary
% otherwise looping will delete the units entirely!
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_product: {
- \bool_if:NTF \_l_siunitx_product_brackets_bool
+\cs_new_protected_nopar:Npn \siunitx_number_output_product: {
+ \bool_if:NTF \l_siunitx_product_brackets_bool
{
\bool_if:nTF
{
- \tl_if_empty_p:N \_l_siunitx_pre_unit_tl &&
- \tl_if_empty_p:N \_l_siunitx_unit_tl
+ \tl_if_empty_p:N \l_siunitx_pre_unit_tl &&
+ \tl_if_empty_p:N \l_siunitx_unit_tl
}
- { \_siunitx_number_output_product_aux: }
- { \_siunitx_number_output_product_brackets: }
+ { \siunitx_number_output_product_aux: }
+ { \siunitx_number_output_product_brackets: }
}
{
- \bool_if:NTF \_l_siunitx_product_repeat_bool
- { \_siunitx_number_output_product_aux: }
+ \bool_if:NTF \l_siunitx_product_repeat_bool
+ { \siunitx_number_output_product_aux: }
{
- \_siunitx_unit_output_pre_print:
- \tl_set_eq:NN \_l_siunitx_unit_saved_tl \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_pre_unit_tl
- \tl_clear:N \_l_siunitx_unit_tl
+ \siunitx_unit_output_pre_print:
+ \tl_set_eq:NN \l_siunitx_unit_saved_tl \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_pre_unit_tl
+ \tl_clear:N \l_siunitx_unit_tl
\group_begin:
- \_siunitx_number_output_product_aux:
+ \siunitx_number_output_product_aux:
\group_end:
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_saved_tl
- \_siunitx_unit_output_print:
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_saved_tl
+ \siunitx_unit_output_print:
}
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_output_product_brackets:}
+%\begin{macro}[aux]{\siunitx_number_output_product_brackets:}
% When printing products that have to be bracketed, there is a need to
% shuffle the units about a bit.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_product_brackets: {
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_open_tl } }
+\cs_new_protected_nopar:Npn \siunitx_number_output_product_brackets: {
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_open_tl } }
\nobreak
- \tl_set_eq:NN \_l_siunitx_unit_saved_tl \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_pre_unit_tl
- \tl_clear:N \_l_siunitx_unit_tl
- \_siunitx_number_output_product_aux:
+ \tl_set_eq:NN \l_siunitx_unit_saved_tl \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_pre_unit_tl
+ \tl_clear:N \l_siunitx_unit_tl
+ \siunitx_number_output_product_aux:
\nobreak
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_saved_tl
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_close_tl } }
- \_siunitx_unit_output_print:
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_saved_tl
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_close_tl } }
+ \siunitx_unit_output_print:
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_output_product_aux:}
+%\begin{macro}[aux]{\siunitx_number_output_product_aux:}
% Printing the products needs a looping function.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_product_aux: {
- \bool_set_true:N \_l_siunitx_number_compound_bool
- \_siunitx_number_preprocess:V \_l_siunitx_number_arg_tl
- \bool_if:NF \_l_siunitx_error_bool
+\cs_new_protected_nopar:Npn \siunitx_number_output_product_aux: {
+ \bool_set_true:N \l_siunitx_number_compound_bool
+ \siunitx_number_preprocess:V \l_siunitx_number_arg_tl
+ \bool_if:NF \l_siunitx_error_bool
{
- \tl_if_empty:NTF \_l_siunitx_number_multi_tl
- { \_siunitx_number_output_parse_aux: }
- { \_siunitx_number_output_quotient: }
- \tl_if_empty:NF \_l_siunitx_number_next_tl
+ \tl_if_empty:NTF \l_siunitx_number_multi_tl
+ { \siunitx_number_output_parse_aux: }
+ { \siunitx_number_output_quotient: }
+ \tl_if_empty:NF \l_siunitx_number_next_tl
{
- \bool_if:NTF \_l_siunitx_tight_bool
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \_siunitx_print:nn { number }
+ \siunitx_print:nn { number }
{
- \_siunitx_ensuremath:n
- { \_l_siunitx_output_product_tl }
+ \siunitx_ensuremath:n
+ { \l_siunitx_output_product_tl }
}
}
{
- \_siunitx_print:nn { number }
+ \siunitx_print:nn { number }
{
- \_siunitx_ensuremath:n
- { { } \_l_siunitx_output_product_tl { } }
+ \siunitx_ensuremath:n
+ { { } \l_siunitx_output_product_tl { } }
}
}
- \_siunitx_number_output_parse:V \_l_siunitx_number_next_tl
+ \siunitx_number_output_parse:V \l_siunitx_number_next_tl
}
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_quotient:}
+%\begin{macro}{\siunitx_number_output_quotient:}
% For quotients, there are two options.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient: {
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient: {
\use:c
- { _siunitx_number_output_quotient_ \_l_siunitx_quotient_mode_tl : }
+ { siunitx_number_output_quotient_ \l_siunitx_quotient_mode_tl : }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_output_quotient_fraction:}
+%\begin{macro}{\siunitx_number_output_quotient_fraction:}
% For fraction output, there are quite a lot of braces to construct,
% unfortunately.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_fraction: {
- \bool_set_false:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_quotient_aux_i:
- \tl_set:Nx \_l_siunitx_number_out_tl
- { { \exp_not:V \_l_siunitx_number_numerator_tl } }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_number_denominator_tl } }
- \tl_put_right:NV \_l_siunitx_number_out_tl \_l_siunitx_tmpa_tl
- \tl_put_left:Nn \_l_siunitx_number_out_tl { \_siunitx_fraction:nn }
- \tl_set:Nx \_l_siunitx_number_out_tl
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_fraction: {
+ \bool_set_false:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_quotient_aux_i:
+ \tl_set:Nx \l_siunitx_number_out_tl
+ { { \exp_not:V \l_siunitx_number_numerator_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_number_denominator_tl } }
+ \tl_put_right:NV \l_siunitx_number_out_tl \l_siunitx_tmpa_tl
+ \tl_put_left:Nn \l_siunitx_number_out_tl { \siunitx_fraction:nn }
+ \tl_set:Nx \l_siunitx_number_out_tl
{
\exp_not:N \ensuremath
- { \exp_not:V \_l_siunitx_number_out_tl }
+ { \exp_not:V \l_siunitx_number_out_tl }
}
- \_siunitx_number_output_single_aux:
+ \siunitx_number_output_single_aux:
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_number_output_quotient_symbol:}
+%\begin{macro}{\siunitx_number_output_quotient_symbol:}
% If a symbol is used for the division, the build process is less
% complex.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_symbol: {
- \bool_set_true:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_quotient_aux_i:
- \tl_set_eq:NN \_l_siunitx_number_out_tl
- \_l_siunitx_number_numerator_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_number_out_tl
- \_l_siunitx_output_quotient_tl
- \tl_put_right:NV \_l_siunitx_number_out_tl
- \_l_siunitx_number_denominator_tl
- \_siunitx_number_output_single_aux:
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_symbol: {
+ \bool_set_true:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_quotient_aux_i:
+ \tl_set_eq:NN \l_siunitx_number_out_tl
+ \l_siunitx_number_numerator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_number_out_tl
+ \l_siunitx_output_quotient_tl
+ \tl_put_right:NV \l_siunitx_number_out_tl
+ \l_siunitx_number_denominator_tl
+ \siunitx_number_output_single_aux:
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_number_output_quotient_aux_i:}
-%\begin{macro}[aux]{\_siunitx_number_output_quotient_aux_ii:}
+%\begin{macro}[aux]{\siunitx_number_output_quotient_aux_i:}
+%\begin{macro}[aux]{\siunitx_number_output_quotient_aux_ii:}
% The two parts of the number are parsed and formatted.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_aux_i: {
- \_siunitx_number_in_parse:V \_l_siunitx_number_numerator_tl
- \_siunitx_number_output_quotient_aux_ii:
- \_siunitx_number_output_color:
- \prop_get:NnN \_l_siunitx_number_out_prop { result }
- \_l_siunitx_number_numerator_tl
- \_siunitx_number_in_parse:V \_l_siunitx_number_denominator_tl
- \_siunitx_number_output_quotient_aux_ii:
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_aux_i: {
+ \siunitx_number_in_parse:V \l_siunitx_number_numerator_tl
+ \siunitx_number_output_quotient_aux_ii:
+ \siunitx_number_output_color:
+ \prop_get:NnN \l_siunitx_number_out_prop { result }
+ \l_siunitx_number_numerator_tl
+ \siunitx_number_in_parse:V \l_siunitx_number_denominator_tl
+ \siunitx_number_output_quotient_aux_ii:
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ result-bracket-exponent }
{
- \prop_put:Nnn \_l_siunitx_number_out_prop { result-bracket }
+ \prop_put:Nnn \l_siunitx_number_out_prop { result-bracket }
{ true }
}
- \_siunitx_number_output_bracket:
- \prop_get:NnN \_l_siunitx_number_out_prop { result }
- \_l_siunitx_number_denominator_tl
+ \siunitx_number_output_bracket:
+ \prop_get:NnN \l_siunitx_number_out_prop { result }
+ \l_siunitx_number_denominator_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_aux_ii: {
- \_siunitx_number_process:
- \_siunitx_number_format:
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_aux_ii: {
+ \siunitx_number_process:
+ \siunitx_number_format:
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_number_output_single:}
-%\begin{macro}[aux]{\_siunitx_number_output_single_aux:}
+%\begin{macro}{\siunitx_number_output_single:}
+%\begin{macro}[aux]{\siunitx_number_output_single_aux:}
% Printing a number with no multiple parts is easy. There is a check for
% any units, which if present may force the number to have brackets
% added. there is then simply a short run to print the units and number.
@@ -8067,25 +8109,25 @@ This work consists of the file siunitx.dtx
% exponent: if there is, any other parts will already be bracketed and
% mathematically there is no need for brackets at this point.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_single: {
+\cs_new_protected_nopar:Npn \siunitx_number_output_single: {
\bool_if:nF
{
- \tl_if_empty_p:N \_l_siunitx_pre_unit_tl &&
- \tl_if_empty_p:N \_l_siunitx_unit_tl
+ \tl_if_empty_p:N \l_siunitx_pre_unit_tl &&
+ \tl_if_empty_p:N \l_siunitx_unit_tl
}
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { exponent }
- { \_siunitx_number_format_brackets:n { result } }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { exponent }
+ { \siunitx_number_format_brackets:n { result } }
}
- \_siunitx_number_output_bracket:
- \prop_get:NnN \_l_siunitx_number_out_prop { result }
- \_l_siunitx_number_out_tl
- \_siunitx_number_output_single_aux:
+ \siunitx_number_output_bracket:
+ \prop_get:NnN \l_siunitx_number_out_prop { result }
+ \l_siunitx_number_out_tl
+ \siunitx_number_output_single_aux:
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_single_aux: {
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nV { number } \_l_siunitx_number_out_tl
- \_siunitx_unit_output_print:
+\cs_new_protected_nopar:Npn \siunitx_number_output_single_aux: {
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nV { number } \l_siunitx_number_out_tl
+ \siunitx_unit_output_print:
}
% \end{macrocode}
%\end{macro}
@@ -8098,71 +8140,71 @@ This work consists of the file siunitx.dtx
% possible input syntaxes, "\ang{1.23}" and "\ang{1;2;3}". Both need
% to be handled correctly.
%
-%\begin{macro}{\_l_siunitx_angle_degree_space_bool}
-%\begin{macro}{\_l_siunitx_angle_minute_space_bool}
+%\begin{macro}{\l_siunitx_angle_degree_space_bool}
+%\begin{macro}{\l_siunitx_angle_minute_space_bool}
% The need for spaces between parts of an arc needs to be accommodated:
% this is achieved by flagging up the need for such spaces using two
% switches.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_angle_degree_space_bool
-\bool_new:N \_l_siunitx_angle_minute_space_bool
+\bool_new:N \l_siunitx_angle_degree_space_bool
+\bool_new:N \l_siunitx_angle_minute_space_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_angle_marker_box}
-%\begin{macro}{\_l_siunitx_angle_unit_box}
-%\begin{macro}{\_l_siunitx_angle_marker_dim}
-%\begin{macro}{\_l_siunitx_angle_unit_dim}
+%\begin{macro}{\l_siunitx_angle_marker_box}
+%\begin{macro}{\l_siunitx_angle_unit_box}
+%\begin{macro}{\l_siunitx_angle_marker_dim}
+%\begin{macro}{\l_siunitx_angle_unit_dim}
% When creating astronomy-style angles, the decimal marker and angle
% symbol have to be boxed up and measured.
% \begin{macrocode}
-\box_new:N \_l_siunitx_angle_marker_box
-\box_new:N \_l_siunitx_angle_unit_box
-\dim_new:N \_l_siunitx_angle_marker_dim
-\dim_new:N \_l_siunitx_angle_unit_dim
+\box_new:N \l_siunitx_angle_marker_box
+\box_new:N \l_siunitx_angle_unit_box
+\dim_new:N \l_siunitx_angle_marker_dim
+\dim_new:N \l_siunitx_angle_unit_dim
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_angle_degree_prop}
-%\begin{macro}{\_l_siunitx_angle_minute_prop}
-%\begin{macro}{\_l_siunitx_angle_second_prop}
+%\begin{macro}{\l_siunitx_angle_degree_prop}
+%\begin{macro}{\l_siunitx_angle_minute_prop}
+%\begin{macro}{\l_siunitx_angle_second_prop}
% As there are potentially three numbers to parse, three properly lists
% are made available to hold the results. This allows the code to be
% generalised, with only the name of the storage area varying.
% \begin{macrocode}
-\prop_new:N \_l_siunitx_angle_degree_prop
-\prop_new:N \_l_siunitx_angle_minute_prop
-\prop_new:N \_l_siunitx_angle_second_prop
+\prop_new:N \l_siunitx_angle_degree_prop
+\prop_new:N \l_siunitx_angle_minute_prop
+\prop_new:N \l_siunitx_angle_second_prop
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_angle_degree_zero_bool}
-%\begin{macro}{\_l_siunitx_angle_minute_zero_bool}
-%\begin{macro}{\_l_siunitx_angle_second_zero_bool}
-%\begin{macro}{\_l_siunitx_angle_arc_separator_tl}
-%\begin{macro}{\_l_siunitx_angle_astronomy_bool}
-%\begin{macro}{\_l_siunitx_angle_unit_separator_tl}
+%\begin{macro}{\l_siunitx_angle_degree_zero_bool}
+%\begin{macro}{\l_siunitx_angle_minute_zero_bool}
+%\begin{macro}{\l_siunitx_angle_second_zero_bool}
+%\begin{macro}{\l_siunitx_angle_arc_separator_tl}
+%\begin{macro}{\l_siunitx_angle_astronomy_bool}
+%\begin{macro}{\l_siunitx_angle_unit_separator_tl}
% The angle-specific options are created here.
% \begin{macrocode}
\keys_define:nn { siunitx } {
add-arc-degree-zero .bool_set:N =
- \_l_siunitx_angle_degree_zero_bool ,
+ \l_siunitx_angle_degree_zero_bool ,
add-arc-minute-zero .bool_set:N =
- \_l_siunitx_angle_minute_zero_bool ,
+ \l_siunitx_angle_minute_zero_bool ,
add-arc-second-zero .bool_set:N =
- \_l_siunitx_angle_second_zero_bool ,
+ \l_siunitx_angle_second_zero_bool ,
angle-symbol-over-decimal .bool_set:N =
- \_l_siunitx_angle_astronomy_bool ,
+ \l_siunitx_angle_astronomy_bool ,
arc-separator .tl_set:N =
- \_l_siunitx_angle_arc_separator_tl ,
+ \l_siunitx_angle_arc_separator_tl ,
number-angle-separator .tl_set:N =
- \_l_siunitx_angle_unit_separator_tl ,
+ \l_siunitx_angle_unit_separator_tl ,
}
% \end{macrocode}
%\end{macro}
@@ -8172,108 +8214,108 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_output:nnn}
-%\begin{macro}[aux]{\_siunitx_angle_output_aux:nnn}
+%\begin{macro}{\siunitx_angle_output:nnn}
+%\begin{macro}[aux]{\siunitx_angle_output_aux:nnn}
% The input will have been split up by \pkg{xparse}, and so the various
% possible inputs can be picked up. To keep to a minimal route through
% the code, a decimal angle is simply treated like an arc, but with
% any zero-filling disabled.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_angle_output:nnn #1#2#3 {
- \_siunitx_angle_init:
+\cs_new_protected:Npn \siunitx_angle_output:nnn #1#2#3 {
+ \siunitx_angle_init:
\IfNoValueTF {#2}
{
- \bool_set_false:N \_l_siunitx_angle_minute_zero_bool
- \bool_set_false:N \_l_siunitx_angle_second_zero_bool
- \_siunitx_angle_output_aux:nnn {#1} { } { }
+ \bool_set_false:N \l_siunitx_angle_minute_zero_bool
+ \bool_set_false:N \l_siunitx_angle_second_zero_bool
+ \siunitx_angle_output_aux:nnn {#1} { } { }
}
{
\IfNoValueTF {#3}
- { \_siunitx_error:nx { invalid-arc-format } { #1 ; #2 } }
- { \_siunitx_angle_output_aux:nnn {#1} {#2} {#3} }
+ { \siunitx_error:nx { invalid-arc-format } { #1 ; #2 } }
+ { \siunitx_angle_output_aux:nnn {#1} {#2} {#3} }
}
}
-\cs_set_protected:Npn \_siunitx_angle_output_aux:nnn #1#2#3 {
+\cs_new_protected:Npn \siunitx_angle_output_aux:nnn #1#2#3 {
\tl_if_empty:nTF { #1#2#3 }
- { \_siunitx_error:n { empty-arc } }
+ { \siunitx_error:n { empty-arc } }
{
- \bool_if:NTF \_l_siunitx_number_parse_bool
- { \_siunitx_angle_parse:nnn {#1} {#2} {#3} }
- { \_siunitx_angle_direct:nnn {#1} {#2} {#3} }
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ { \siunitx_angle_parse:nnn {#1} {#2} {#3} }
+ { \siunitx_angle_direct:nnn {#1} {#2} {#3} }
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_init:}
+%\begin{macro}{\siunitx_angle_init:}
% The usual separation of initial storage resets.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_angle_init: {
- \bool_set_false:N \_l_siunitx_angle_degree_space_bool
- \bool_set_false:N \_l_siunitx_angle_minute_space_bool
- \prop_clear:N \_l_siunitx_angle_degree_prop
- \prop_clear:N \_l_siunitx_angle_minute_prop
- \prop_clear:N \_l_siunitx_angle_second_prop
- \tl_clear:N \_l_siunitx_preunit_tl
- \tl_set_eq:NN \_l_siunitx_number_unit_separator_tl
- \_l_siunitx_angle_unit_separator_tl
- \cs_set_eq:NN \_siunitx_number_in_parse_more:N
- \_siunitx_number_in_parse_restricted:N
+\cs_new_protected_nopar:Npn \siunitx_angle_init: {
+ \bool_set_false:N \l_siunitx_angle_degree_space_bool
+ \bool_set_false:N \l_siunitx_angle_minute_space_bool
+ \prop_clear:N \l_siunitx_angle_degree_prop
+ \prop_clear:N \l_siunitx_angle_minute_prop
+ \prop_clear:N \l_siunitx_angle_second_prop
+ \tl_clear:N \l_siunitx_preunit_tl
+ \tl_set_eq:NN \l_siunitx_number_unit_separator_tl
+ \l_siunitx_angle_unit_separator_tl
+ \cs_set_eq:NN \siunitx_number_in_parse_more:N
+ \siunitx_number_in_parse_restricted:N
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_direct:nnn}
-%\begin{macro}[aux]{\_siunitx_angle_direct_aux_i:nnn}
-%\begin{macro}[aux]{\_siunitx_angle_direct_aux_ii:nnn}
-%\begin{macro}[aux]{\_siunitx_angle_direct_aux_iii:nnn}
+%\begin{macro}{\siunitx_angle_direct:nnn}
+%\begin{macro}[aux]{\siunitx_angle_direct_aux_i:nnn}
+%\begin{macro}[aux]{\siunitx_angle_direct_aux_ii:nnn}
+%\begin{macro}[aux]{\siunitx_angle_direct_aux_iii:nnn}
% When printing an arc directly, there is still the need to fill in
% any zero values required and to check the spacing is correct. That
% is done using a chain approach, which is easy to implement and
% reasonably clear.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_angle_direct:nnn #1 {
+\cs_new_protected:Npn \siunitx_angle_direct:nnn #1 {
\tl_if_empty:nTF {#1}
{
- \bool_if:NTF \_l_siunitx_angle_degree_zero_bool
- { \_siunitx_angle_direct_aux_i:nnn { 0 } }
- { \_siunitx_angle_direct_aux_i:nnn { } }
+ \bool_if:NTF \l_siunitx_angle_degree_zero_bool
+ { \siunitx_angle_direct_aux_i:nnn { 0 } }
+ { \siunitx_angle_direct_aux_i:nnn { } }
}
- { \_siunitx_angle_direct_aux_i:nnn {#1} }
+ { \siunitx_angle_direct_aux_i:nnn {#1} }
}
-\cs_set_protected:Npn \_siunitx_angle_direct_aux_i:nnn #1#2 {
+\cs_new_protected:Npn \siunitx_angle_direct_aux_i:nnn #1#2 {
\tl_if_empty:nTF {#2}
{
- \bool_if:NTF \_l_siunitx_angle_minte_zero_bool
- { \_siunitx_angle_direct_aux_ii:nnn {#1} { 0 } }
- { \_siunitx_angle_direct_aux_ii:nnn {#1} { } }
+ \bool_if:NTF \l_siunitx_angle_minte_zero_bool
+ { \siunitx_angle_direct_aux_ii:nnn {#1} { 0 } }
+ { \siunitx_angle_direct_aux_ii:nnn {#1} { } }
}
- { \_siunitx_angle_direct_aux_ii:nnn {#1} {#2} }
+ { \siunitx_angle_direct_aux_ii:nnn {#1} {#2} }
}
-\cs_set_protected:Npn \_siunitx_angle_direct_aux_ii:nnn #1#2#3 {
+\cs_new_protected:Npn \siunitx_angle_direct_aux_ii:nnn #1#2#3 {
\tl_if_empty:nTF {#3}
{
- \bool_if:NTF \_l_siunitx_angle_second_zero_bool
- { \_siunitx_angle_direct_aux_iii:nnn {#1} {#2} { 0 } }
- { \_siunitx_angle_direct_aux_iii:nnn {#1} {#2} { } }
+ \bool_if:NTF \l_siunitx_angle_second_zero_bool
+ { \siunitx_angle_direct_aux_iii:nnn {#1} {#2} { 0 } }
+ { \siunitx_angle_direct_aux_iii:nnn {#1} {#2} { } }
}
- { \_siunitx_angle_direct_aux_iii:nnn {#1} {#2} {#3} }
+ { \siunitx_angle_direct_aux_iii:nnn {#1} {#2} {#3} }
}
-\cs_set_protected:Npn \_siunitx_angle_direct_aux_iii:nnn #1#2#3 {
+\cs_new_protected:Npn \siunitx_angle_direct_aux_iii:nnn #1#2#3 {
\tl_if_empty:nF {#1}
{
\tl_if_empty:nF {#2#3}
- { \bool_set_true:N \_l_siunitx_angle_degree_space_bool }
+ { \bool_set_true:N \l_siunitx_angle_degree_space_bool }
}
\tl_if_empty:nF {#2}
{
\tl_if_empty:nF {#3}
- { \bool_set_true:N \_l_siunitx_angle_minute_space_bool }
+ { \bool_set_true:N \l_siunitx_angle_minute_space_bool }
}
- \_siunitx_angle_print_direct:nnn {#1} {#2} {#3}
+ \siunitx_angle_print_direct:nnn {#1} {#2} {#3}
}
% \end{macrocode}
%\end{macro}
@@ -8281,13 +8323,13 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_parse:nnn}
-%\begin{macro}[aux]{\_siunitx_angle_parse_aux:nnn}
-%\begin{macro}{\_siunitx_angle_check_sign:}
-%\begin{macro}[aux]{\_siunitx_angle_check_sign:n}
-%\begin{macro}{\_siunitx_angle_zero_fill:}
-%\begin{macro}{\_siunitx_angle_sign_shuffle:nn}
-%\begin{macro}[aux]{\_siunitx_angle_sign_shuffle_aux:nnn}
+%\begin{macro}{\siunitx_angle_parse:nnn}
+%\begin{macro}[aux]{\siunitx_angle_parse_aux:nnn}
+%\begin{macro}{\siunitx_angle_check_sign:}
+%\begin{macro}[aux]{\siunitx_angle_check_sign:n}
+%\begin{macro}{\siunitx_angle_zero_fill:}
+%\begin{macro}{\siunitx_angle_sign_shuffle:nn}
+%\begin{macro}[aux]{\siunitx_angle_sign_shuffle_aux:nnn}
% Parsing an arc requires a number of stages. First, there is the
% basic conversion of the input numbers into three property lists,
% which will contain the data required. There is then a zero-filling
@@ -8295,65 +8337,65 @@ This work consists of the file siunitx.dtx
% After that, a check to make sure there is only one sign for an arc
% before setting up the inter-part spacing and actually printing.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_angle_parse:nnn #1#2#3 {
- \_siunitx_angle_parse_aux:nn {#1} { degree }
- \_siunitx_angle_parse_aux:nn {#2} { minute }
- \_siunitx_angle_parse_aux:nn {#3} { second }
- \_siunitx_angle_check_sign:
- \_siunitx_angle_zero_fill:
- \prop_if_empty:NF \_l_siunitx_angle_degree_prop
+\cs_new_protected:Npn \siunitx_angle_parse:nnn #1#2#3 {
+ \siunitx_angle_parse_aux:nn {#1} { degree }
+ \siunitx_angle_parse_aux:nn {#2} { minute }
+ \siunitx_angle_parse_aux:nn {#3} { second }
+ \siunitx_angle_check_sign:
+ \siunitx_angle_zero_fill:
+ \prop_if_empty:NF \l_siunitx_angle_degree_prop
{
- \prop_if_empty:NF \_l_siunitx_angle_minute_prop
- { \bool_set_true:N \_l_siunitx_angle_degree_space_bool }
- \prop_if_empty:NF \_l_siunitx_angle_second_prop
- { \bool_set_true:N \_l_siunitx_angle_degree_space_bool }
+ \prop_if_empty:NF \l_siunitx_angle_minute_prop
+ { \bool_set_true:N \l_siunitx_angle_degree_space_bool }
+ \prop_if_empty:NF \l_siunitx_angle_second_prop
+ { \bool_set_true:N \l_siunitx_angle_degree_space_bool }
}
- \prop_if_empty:NF \_l_siunitx_angle_minute_prop
+ \prop_if_empty:NF \l_siunitx_angle_minute_prop
{
- \prop_if_empty:NF \_l_siunitx_angle_second_prop
- { \bool_set_true:N \_l_siunitx_angle_minute_space_bool }
+ \prop_if_empty:NF \l_siunitx_angle_second_prop
+ { \bool_set_true:N \l_siunitx_angle_minute_space_bool }
}
- \_siunitx_angle_print:
+ \siunitx_angle_print:
}
-\cs_set_protected:Npn \_siunitx_angle_parse_aux:nn #1#2 {
- \prop_clear:N \_l_siunitx_number_in_prop
+\cs_new_protected:Npn \siunitx_angle_parse_aux:nn #1#2 {
+ \prop_clear:N \l_siunitx_number_in_prop
\tl_if_empty:nF {#1}
{
- \_siunitx_number_in_init:
- \_siunitx_number_in_parse_aux:n {#1}
+ \siunitx_number_in_init:
+ \siunitx_number_in_parse_aux:n {#1}
}
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-sign-deleted }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign-deleted }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop { mantissa-sign }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { mantissa-sign }
+ \l_siunitx_tmpa_tl
}
- \_siunitx_number_process:
- \prop_set_eq:cN { _l_siunitx_angle_ #2 _prop }
- \_l_siunitx_number_in_prop
+ \siunitx_number_process:
+ \prop_set_eq:cN { l_siunitx_angle_ #2 _prop }
+ \l_siunitx_number_in_prop
}
% \end{macrocode}
% Only the highest-order part of an arc can have a sign. This is checked
% now so that the shuffling code is easier to write.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_angle_check_sign: {
- \prop_if_empty:NTF \_l_siunitx_angle_degree_prop
+\cs_new_protected_nopar:Npn \siunitx_angle_check_sign: {
+ \prop_if_empty:NTF \l_siunitx_angle_degree_prop
{
- \prop_if_empty:NF \_l_siunitx_angle_minute_prop
- { \_siunitx_angle_check_sign_aux:n { second } }
+ \prop_if_empty:NF \l_siunitx_angle_minute_prop
+ { \siunitx_angle_check_sign_aux:n { second } }
}
{
- \_siunitx_angle_check_sign_aux:n { minute }
- \_siunitx_angle_check_sign_aux:n { second }
+ \siunitx_angle_check_sign_aux:n { minute }
+ \siunitx_angle_check_sign_aux:n { second }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_check_sign_aux:n #1 {
- \prop_if_in:cnTF { _l_siunitx_angle_ #1 _prop }
+\cs_new_protected_nopar:Npn \siunitx_angle_check_sign_aux:n #1 {
+ \prop_if_in:cnTF { l_siunitx_angle_ #1 _prop }
{ mantissa-sign }
{ \msg_error:nn { siunitx } { bad-arc-sign } }
{
- \prop_if_in:cnT { _l_siunitx_angle_ #1 _prop }
+ \prop_if_in:cnT { l_siunitx_angle_ #1 _prop }
{ mantissa-sign-deleted }
{ \msg_error:nn { siunitx } { bad-arc-sign } }
}
@@ -8363,57 +8405,57 @@ This work consists of the file siunitx.dtx
% to worry about. There is therefore a shuffle to move them into the
% correct places.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_angle_zero_fill: {
+\cs_new_protected_nopar:Npn \siunitx_angle_zero_fill: {
\bool_if:nT
{
- \prop_if_empty_p:N \_l_siunitx_angle_second_prop &&
- \_l_siunitx_angle_second_zero_bool
+ \prop_if_empty_p:N \l_siunitx_angle_second_prop &&
+ \l_siunitx_angle_second_zero_bool
}
{
- \prop_put:Nnn \_l_siunitx_angle_second_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_angle_second_prop { mantissa }
{ true }
- \prop_put:Nnn \_l_siunitx_angle_second_prop { mantissa-integer }
+ \prop_put:Nnn \l_siunitx_angle_second_prop { mantissa-integer }
{ 0 }
}
\bool_if:nT
{
- \prop_if_empty_p:N \_l_siunitx_angle_minute_prop &&
- \_l_siunitx_angle_minute_zero_bool
+ \prop_if_empty_p:N \l_siunitx_angle_minute_prop &&
+ \l_siunitx_angle_minute_zero_bool
}
{
- \prop_put:Nnn \_l_siunitx_angle_minute_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_angle_minute_prop { mantissa }
{ true }
- \prop_put:Nnn \_l_siunitx_angle_minute_prop { mantissa-integer }
+ \prop_put:Nnn \l_siunitx_angle_minute_prop { mantissa-integer }
{ 0 }
- \_siunitx_angle_sign_shuffle:nn { second } { minute }
+ \siunitx_angle_sign_shuffle:nn { second } { minute }
}
\bool_if:nT
{
- \prop_if_empty_p:N \_l_siunitx_angle_degree_prop &&
- \_l_siunitx_angle_degree_zero_bool
+ \prop_if_empty_p:N \l_siunitx_angle_degree_prop &&
+ \l_siunitx_angle_degree_zero_bool
}
{
- \prop_put:Nnn \_l_siunitx_angle_degree_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_angle_degree_prop { mantissa }
{ true }
- \prop_put:Nnn \_l_siunitx_angle_degree_prop { mantissa-integer }
+ \prop_put:Nnn \l_siunitx_angle_degree_prop { mantissa-integer }
{ 0 }
- \_siunitx_angle_sign_shuffle:nn { second } { degree }
- \_siunitx_angle_sign_shuffle:nn { minute } { degree }
+ \siunitx_angle_sign_shuffle:nn { second } { degree }
+ \siunitx_angle_sign_shuffle:nn { minute } { degree }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_sign_shuffle:nn #1#2 {
- \_siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { }
- \_siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { -deleted }
+\cs_new_protected_nopar:Npn \siunitx_angle_sign_shuffle:nn #1#2 {
+ \siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { }
+ \siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { -deleted }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_sign_shuffle_aux:nnn
+\cs_new_protected_nopar:Npn \siunitx_angle_sign_shuffle_aux:nnn
#1#2#3 {
- \prop_get:cnN { _l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
- \_l_siunitx_tmpa_tl
- \prop_del:cn { _l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:cnN { l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
+ \l_siunitx_tmpa_tl
+ \prop_del:cn { l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_put:cnV { _l_siunitx_angle_ #2 _prop } { mantissa-sign #3 }
- \_l_siunitx_tmpa_tl
+ \prop_put:cnV { l_siunitx_angle_ #2 _prop } { mantissa-sign #3 }
+ \l_siunitx_tmpa_tl
}
}
% \end{macrocode}
@@ -8425,50 +8467,50 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_print:}
-%\begin{macro}[aux]{\_siunitx_angle_print:nn}
+%\begin{macro}{\siunitx_angle_print:}
+%\begin{macro}[aux]{\siunitx_angle_print:nn}
% The standard printing routine examines each part of the arc in turn
% and either does a standard format or calls the special astronomy-style
% routine. There may also be some spaces to add.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print: {
- \_siunitx_angle_print_aux:nn { degree } { \SIUnitSymbolDegree }
- \bool_if:NT \_l_siunitx_angle_degree_space_bool
+\cs_new_protected_nopar:Npn \siunitx_angle_print: {
+ \siunitx_angle_print_aux:nn { degree } { \SIUnitSymbolDegree }
+ \bool_if:NT \l_siunitx_angle_degree_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_aux:nn { minute } { \SIUnitSymbolArcminute }
- \bool_if:NT \_l_siunitx_angle_minute_space_bool
+ \siunitx_angle_print_aux:nn { minute } { \SIUnitSymbolArcminute }
+ \bool_if:NT \l_siunitx_angle_minute_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_aux:nn { second } { \SIUnitSymbolArcsecond }
+ \siunitx_angle_print_aux:nn { second } { \SIUnitSymbolArcsecond }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_aux:nn #1#2 {
- \prop_if_empty:cF { _l_siunitx_angle_ #1 _prop }
+\cs_new_protected_nopar:Npn \siunitx_angle_print_aux:nn #1#2 {
+ \prop_if_empty:cF { l_siunitx_angle_ #1 _prop }
{
- \prop_set_eq:Nc \_l_siunitx_number_in_prop
- { _l_siunitx_angle_ #1 _prop }
- \tl_set:Nn \_l_siunitx_unit_tl {#2}
- \tl_clear:N \_l_siunitx_number_out_tl
- \_siunitx_number_format:
- \_siunitx_number_output_color:
- \bool_if:NTF \_l_siunitx_angle_astronomy_bool
- { \_siunitx_angle_print_astronomy: }
- { \_siunitx_number_output_single: }
+ \prop_set_eq:Nc \l_siunitx_number_in_prop
+ { l_siunitx_angle_ #1 _prop }
+ \tl_set:Nn \l_siunitx_unit_tl {#2}
+ \tl_clear:N \l_siunitx_number_out_tl
+ \siunitx_number_format:
+ \siunitx_number_output_color:
+ \bool_if:NTF \l_siunitx_angle_astronomy_bool
+ { \siunitx_angle_print_astronomy: }
+ { \siunitx_number_output_single: }
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_print_astronomy:}
-%\begin{macro}[aux]{\_siunitx_angle_print_astronomy_aux:}
-%\begin{macro}[aux]{\_siunitx_angle_print_astronomy_aux:n}
-%\begin{macro}[aux]{\_siunitx_angle_print_astronomy_marker:}
-%\begin{macro}[aux]{\_siunitx_angle_print_astronomy_unit:}
+%\begin{macro}{\siunitx_angle_print_astronomy:}
+%\begin{macro}[aux]{\siunitx_angle_print_astronomy_aux:}
+%\begin{macro}[aux]{\siunitx_angle_print_astronomy_aux:n}
+%\begin{macro}[aux]{\siunitx_angle_print_astronomy_marker:}
+%\begin{macro}[aux]{\siunitx_angle_print_astronomy_unit:}
% The first check for astronomy-style angles is that there is a decimal
% marker in the current input: if not, the standard method can be used.
% The method for the astronomy-style angle is not straight-forward, so
@@ -8483,72 +8525,72 @@ This work consists of the file siunitx.dtx
% added in after superscripts, which otherwise messes up the
% calculation.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy: {
- \prop_if_in:NnTF \_l_siunitx_number_in_prop
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy: {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop
{ mantissa-decimal-marker }
- { \_siunitx_angle_print_astronomy_aux: }
- { \_siunitx_number_output_single: }
+ { \siunitx_angle_print_astronomy_aux: }
+ { \siunitx_number_output_single: }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_aux: {
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-integer }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
- \hbox_set:Nn \_l_siunitx_angle_marker_box
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_aux: {
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-integer }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \hbox_set:Nn \l_siunitx_angle_marker_box
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { { \_l_siunitx_output_decimal_tl } } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { { \l_siunitx_output_decimal_tl } } }
}
- \hbox_set:Nn \_l_siunitx_angle_unit_box
+ \hbox_set:Nn \l_siunitx_angle_unit_box
{
- \_siunitx_print:nV { unit } \_l_siunitx_unit_tl
+ \siunitx_print:nV { unit } \l_siunitx_unit_tl
\skip_horizontal:n { -\scriptspace }
}
- \_siunitx_angle_print_astronomy_aux:n { marker }
- \_siunitx_angle_print_astronomy_aux:n { unit }
- \hbox_set:Nn \_l_siunitx_angle_marker_box
+ \siunitx_angle_print_astronomy_aux:n { marker }
+ \siunitx_angle_print_astronomy_aux:n { unit }
+ \hbox_set:Nn \l_siunitx_angle_marker_box
{
- \box_use:N \_l_siunitx_angle_marker_box
- \box_use:N \_l_siunitx_angle_unit_box
+ \box_use:N \l_siunitx_angle_marker_box
+ \box_use:N \l_siunitx_angle_unit_box
}
\dim_compare:nNnTF
- { \_l_siunitx_angle_marker_dim } > { \_l_siunitx_angle_unit_dim }
- { \_siunitx_angle_print_astronomy_marker: }
- { \_siunitx_angle_print_astronomy_unit: }
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-decimal }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_aux:n #1 {
- \dim_set:cn { _l_siunitx_angle_ #1 _dim }
- { \box_wd:c { _l_siunitx_angle_ #1 _box } }
- \hbox_set_to_wd:cnn { _l_siunitx_angle_ #1 _box } { \c_zero_skip }
+ { \l_siunitx_angle_marker_dim } > { \l_siunitx_angle_unit_dim }
+ { \siunitx_angle_print_astronomy_marker: }
+ { \siunitx_angle_print_astronomy_unit: }
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_aux:n #1 {
+ \dim_set:cn { l_siunitx_angle_ #1 _dim }
+ { \box_wd:c { l_siunitx_angle_ #1 _box } }
+ \hbox_set_to_wd:cnn { l_siunitx_angle_ #1 _box } { \c_zero_skip }
{
\tex_hss:D
- \hbox_unpack:c { _l_siunitx_angle_ #1_box }
+ \hbox_unpack:c { l_siunitx_angle_ #1_box }
\tex_hss:D
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_marker: {
- \hbox_set_to_wd:Nnn \_l_siunitx_angle_marker_box
- { \_l_siunitx_angle_marker_dim }
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_marker: {
+ \hbox_set_to_wd:Nnn \l_siunitx_angle_marker_box
+ { \l_siunitx_angle_marker_dim }
{
\tex_hss:D
- \hbox_unpack:N \_l_siunitx_angle_marker_box
+ \hbox_unpack:N \l_siunitx_angle_marker_box
\tex_hss:D
}
- \box_use:N \_l_siunitx_angle_marker_box
+ \box_use:N \l_siunitx_angle_marker_box
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_unit: {
- \hbox_set_to_wd:Nnn \_l_siunitx_angle_marker_box
- { \_l_siunitx_angle_unit_dim }
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_unit: {
+ \hbox_set_to_wd:Nnn \l_siunitx_angle_marker_box
+ { \l_siunitx_angle_unit_dim }
{
\tex_hss:D
- \hbox_unpack:N \_l_siunitx_angle_marker_box
+ \hbox_unpack:N \l_siunitx_angle_marker_box
\tex_hss:D
}
- \box_use:N \_l_siunitx_angle_marker_box
+ \box_use:N \l_siunitx_angle_marker_box
\skip_horizontal:N \scriptspace
}
% \end{macrocode}
@@ -8558,32 +8600,32 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_angle_print_direct:nnn}
-%\begin{macro}[aux]{\_siunitx_angle_print_direct_aux:nn}
+%\begin{macro}{\siunitx_angle_print_direct:nnn}
+%\begin{macro}[aux]{\siunitx_angle_print_direct_aux:nn}
% The direct printing routine is rather similar to the standard
% one, with just a modified final step.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_angle_print_direct:nnn #1#2#3 {
- \_siunitx_angle_print_direct_aux:nn {#1} { \SIUnitSymbolDegree }
- \bool_if:NT \_l_siunitx_angle_degree_space_bool
+\cs_new_protected:Npn \siunitx_angle_print_direct:nnn #1#2#3 {
+ \siunitx_angle_print_direct_aux:nn {#1} { \SIUnitSymbolDegree }
+ \bool_if:NT \l_siunitx_angle_degree_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_direct_aux:nn {#2} { \SIUnitSymbolArcminute }
- \bool_if:NT \_l_siunitx_angle_minute_space_bool
+ \siunitx_angle_print_direct_aux:nn {#2} { \SIUnitSymbolArcminute }
+ \bool_if:NT \l_siunitx_angle_minute_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_direct_aux:nn {#3} { \SIUnitSymbolArcsecond }
+ \siunitx_angle_print_direct_aux:nn {#3} { \SIUnitSymbolArcsecond }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_direct_aux:nn #1#2 {
+\cs_new_protected_nopar:Npn \siunitx_angle_print_direct_aux:nn #1#2 {
\tl_if_empty:nF {#1}
{
- \tl_set:Nn \_l_siunitx_unit_tl {#2}
- \_siunitx_print:nn { number } { \_siunitx_ensuremath:n {#1} }
- \_siunitx_unit_output_print:
+ \tl_set:Nn \l_siunitx_unit_tl {#2}
+ \siunitx_print:nn { number } { \siunitx_ensuremath:n {#1} }
+ \siunitx_unit_output_print:
}
}
% \end{macrocode}
@@ -8597,95 +8639,95 @@ This work consists of the file siunitx.dtx
% method only makes these available inside the unit-processing functions
% (\cs{SI}, \cs{si} and the \texttt{S} column).
%
-%\begin{macro}{\_l_siunitx_declare_list_tl}
+%\begin{macro}{\l_siunitx_declare_list_tl}
% A list of all unit and related functions.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_declare_list_tl
-\tl_set:Nn \_l_siunitx_declare_list_tl { \of \per \raiseto \tothe }
+\tl_new:N \l_siunitx_declare_list_tl
+\tl_set:Nn \l_siunitx_declare_list_tl { \of \per \raiseto \tothe }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_declare_power_after:Nn}
-%\begin{macro}{\_siunitx_declare_power_before:Nn}
+%\begin{macro}{\siunitx_declare_power_after:Nn}
+%\begin{macro}{\siunitx_declare_power_before:Nn}
% Creating powers is all about storing values.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_declare_power_after:Nn #1#2 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w }
+\cs_new_protected:Npn \siunitx_declare_power_after:Nn #1#2 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w }
{ \textsuperscript {#2} }
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
- { \_siunitx_unit_parse_power_after:n {#2} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_power_after:n {#2} }
}
-\cs_set_protected:Npn \_siunitx_declare_power_before:Nn #1#2 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w } ##1
+\cs_new_protected:Npn \siunitx_declare_power_before:Nn #1#2 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w } ##1
{ ##1 \textsuperscript {#2} }
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
- { \_siunitx_unit_parse_power_before:n {#2} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_power_before:n {#2} }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_declare_prefix:Nnnn}
+%\begin{macro}{\siunitx_declare_prefix:Nnnn}
% Prefixes need to store both the symbol and the power they represent.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_declare_prefix:Nnnn #1#2#3#4 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w } {#2}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
+\cs_new_protected:Npn \siunitx_declare_prefix:Nnnn #1#2#3#4 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w } {#2}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
{
- \bool_if:NTF \_l_siunitx_prefix_symbols_bool
- { \_siunitx_unit_parse_prefix:n {#2} }
- { \_siunitx_unit_parse_prefix:nn {#3} {#4} }
+ \bool_if:NTF \l_siunitx_prefix_symbols_bool
+ { \siunitx_unit_parse_prefix:n {#2} }
+ { \siunitx_unit_parse_prefix:nn {#3} {#4} }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_declare_qualifier:Nn}
+%\begin{macro}{\siunitx_declare_qualifier:Nn}
% Qualifiers just need storing.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_declare_qualifier:Nn #1#2 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w }
+\cs_new_protected:Npn \siunitx_declare_qualifier:Nn #1#2 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w }
{ \text { ~ } ( #2 ) }
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
- { \_siunitx_unit_parse_qualifier:n {#2} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_qualifier:n {#2} }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_declare_unit:Nnn}
-%\begin{macro}[aux]{\_siunitx_unit_first_token:n}
+%\begin{macro}{\siunitx_declare_unit:Nnn}
+%\begin{macro}[aux]{\siunitx_unit_first_token:n}
% Creating units requires various things to be stored. This is done
% with several storage bins to keep the code clear. For the
% \texttt{macro} definition, the test occurs at use so that there is no
% problem with the creation order for units.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_declare_unit:Nnn #1#2#3 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w } {#2}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
+\cs_new_protected:Npn \siunitx_declare_unit:Nnn #1#2#3 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w } {#2}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
{
- \_siunitx_unit_if_literal:nTF {#2}
- { \_siunitx_unit_parse_unit:Nn #1 {#2} }
+ \siunitx_unit_if_literal:nTF {#2}
+ { \siunitx_unit_parse_unit:Nn #1 {#2} }
{#2}
}
\tl_if_empty:nTF {#3}
{
- \cs_if_free:cF { _l_siunitx_ \token_to_str:N #1 _options_tl }
+ \cs_if_free:cF { l_siunitx_ \token_to_str:N #1 _options_tl }
{
- \cs_gundefine:c { _l_siunitx_ \token_to_str:N #1 _options_tl }
+ \cs_gundefine:c { l_siunitx_ \token_to_str:N #1 _options_tl }
}
}
{
- \cs_if_free:cT { _l_siunitx_ \token_to_str:N #1 _options_tl }
- { \tl_new:c { _l_siunitx_ \token_to_str:N #1 _options_tl } }
- \tl_set:cn { _l_siunitx_ \token_to_str:N #1 _options_tl } {#3}
+ \cs_if_free:cT { l_siunitx_ \token_to_str:N #1 _options_tl }
+ { \tl_new:c { l_siunitx_ \token_to_str:N #1 _options_tl } }
+ \tl_set:cn { l_siunitx_ \token_to_str:N #1 _options_tl } {#3}
}
}
-\cs_set_protected:Npn \_siunitx_unit_first_token:n #1 {
+\cs_new_protected:Npn \siunitx_unit_first_token:n #1 {
\exp_after:wN \token_to_str:N \tl_head_i:w #1 \q_nil
}
% \end{macrocode}
@@ -8695,10 +8737,10 @@ This work consists of the file siunitx.dtx
%\begin{macro}{\per}
% The \cs{per} function is pretty simple.
% \begin{macrocode}
-\cs_set:cpn { _siunitx_ \token_to_str:N \per _literal:w } { / }
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \per _function:w } {
- \bool_set_true:N \_l_siunitx_per_bool
- \_siunitx_unit_parse_per:
+\cs_new:cpn { siunitx_ \token_to_str:N \per _literal:w } { / }
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \per _function:w } {
+ \bool_set_true:N \l_siunitx_per_bool
+ \siunitx_unit_parse_per:
}
% \end{macrocode}
%\end{macro}
@@ -8707,20 +8749,20 @@ This work consists of the file siunitx.dtx
%\begin{macro}{\tothe}
% Generic versions of the pre-set powers.
% \begin{macrocode}
-\cs_set:cpn { _siunitx_ \token_to_str:N \raiseto _literal:w } #1#2 {
+\cs_new:cpn { siunitx_ \token_to_str:N \raiseto _literal:w } #1#2 {
#2
\textsuperscript {#1}
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \raiseto _function:w }
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \raiseto _function:w }
#1 {
- \_siunitx_unit_parse_power_before:n {#1}
+ \siunitx_unit_parse_power_before:n {#1}
}
-\cs_set:cpn { _siunitx_ \token_to_str:N \tothe _literal:w } #1 {
+\cs_new:cpn { siunitx_ \token_to_str:N \tothe _literal:w } #1 {
\textsuperscript {#1}
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \tothe _function:w }
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \tothe _function:w }
#1 {
- \_siunitx_unit_parse_power_after:n {#1}
+ \siunitx_unit_parse_power_after:n {#1}
}
% \end{macrocode}
%\end{macro}
@@ -8729,11 +8771,11 @@ This work consists of the file siunitx.dtx
%\begin{macro}{\of}
% A flexible qualifier as well.
% \begin{macrocode}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \of _literal:w } #1 {
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \of _literal:w } #1 {
\text { ~ } ( #1 )
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \of _function:w } #1 {
- \_siunitx_unit_parse_qualifier:n {#1}
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \of _function:w } #1 {
+ \siunitx_unit_parse_qualifier:n {#1}
}
% \end{macrocode}
%\end{macro}
@@ -8744,23 +8786,23 @@ This work consists of the file siunitx.dtx
% document body. If so, then these are created at the start of the
% document body.
%
-%\begin{macro}{\_l_siunitx_create_free_bool}
-%\begin{macro}{\_l_siunitx_create_overwrite_bool}
-%\begin{macro}{\_l_siunitx_create_prespace_bool}
-%\begin{macro}{\_l_siunitx_create_optional_bool}
-%\begin{macro}{\_l_siunitx_create_xspace_bool}
+%\begin{macro}{\l_siunitx_create_free_bool}
+%\begin{macro}{\l_siunitx_create_overwrite_bool}
+%\begin{macro}{\l_siunitx_create_prespace_bool}
+%\begin{macro}{\l_siunitx_create_optional_bool}
+%\begin{macro}{\l_siunitx_create_xspace_bool}
% There are a few options which control this behaviour: these are all
% preamble-only.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- free-standing-units .bool_set:N = \_l_siunitx_create_free_bool,
+ free-standing-units .bool_set:N = \l_siunitx_create_free_bool,
overwrite-functions .bool_set:N =
- \_l_siunitx_create_overwrite_bool,
- space-before-unit .bool_set:N = \_l_siunitx_create_prespace_bool,
- unit-optional-argument .bool_set:N = \_l_siunitx_create_optional_bool,
- use-xspace .bool_set:N = \_l_siunitx_create_xspace_bool
+ \l_siunitx_create_overwrite_bool,
+ space-before-unit .bool_set:N = \l_siunitx_create_prespace_bool,
+ unit-optional-argument .bool_set:N = \l_siunitx_create_optional_bool,
+ use-xspace .bool_set:N = \l_siunitx_create_xspace_bool
}
-\_siunitx_option_deactivate:n {
+\siunitx_option_deactivate:n {
free-standing-units,
overwrite-functions,
space-before-unit,
@@ -8777,110 +8819,110 @@ This work consists of the file siunitx.dtx
% The master control macro which occurs at the start of the document.
% \begin{macrocode}
\AtBeginDocument {
- \bool_if:NTF \_l_siunitx_create_free_bool
- { \_siunitx_unit_create_functions: }
- { \_siunitx_unit_create_empty_functions: }
+ \bool_if:NTF \l_siunitx_create_free_bool
+ { \siunitx_unit_create_functions: }
+ { \siunitx_unit_create_empty_functions: }
}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_unit_create_empty_functions:}
-%\begin{macro}[aux]{\_siunitx_unit_create_empty_functions_aux:N}
+%\begin{macro}{\siunitx_unit_create_empty_functions:}
+%\begin{macro}[aux]{\siunitx_unit_create_empty_functions_aux:N}
% Without this, horrible things happen with \pkg{memoir} and
% \pkg{hyperref}.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_create_empty_functions: {
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_create_empty_functions_aux:N
+\cs_new_protected_nopar:Npn \siunitx_unit_create_empty_functions: {
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_create_empty_functions_aux:N
}
-\cs_set_protected_nopar:Npn
- \_siunitx_unit_create_empty_functions_aux:N #1 {
+\cs_new_protected_nopar:Npn
+ \siunitx_unit_create_empty_functions_aux:N #1 {
\cs_if_free:NT #1 { \cs_set_protected_nopar:Npn #1 { \ERROR } }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_create_functions:}
+%\begin{macro}{\siunitx_unit_create_functions:}
% Creation of macros essentially involves picking up a couple of loops.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_create_functions: {
- \bool_if:NT \_l_siunitx_create_overwrite_bool
- { \tl_map_function:NN \_l_siunitx_declare_list_tl \cs_gundefine:N }
- \bool_if:NTF \_l_siunitx_create_optional_bool
+\cs_new_protected_nopar:Npn \siunitx_unit_create_functions: {
+ \bool_if:NT \l_siunitx_create_overwrite_bool
+ { \tl_map_function:NN \l_siunitx_declare_list_tl \cs_gundefine:N }
+ \bool_if:NTF \l_siunitx_create_optional_bool
{
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_create_with_arg:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_create_with_arg:N
}
{
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_create:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_create:N
}
- \bool_if:NT \_l_siunitx_create_xspace_bool
+ \bool_if:NT \l_siunitx_create_xspace_bool
{ \RequirePackage { xspace } }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_create:N}
-%\begin{macro}{\_siunitx_unit_create_with_arg:N}
+%\begin{macro}{\siunitx_unit_create:N}
+%\begin{macro}{\siunitx_unit_create_with_arg:N}
% The creation functions expand everything as far as possible so that
% there is less to do in the document.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_create:N #1 {
+\cs_new_protected:Npn \siunitx_unit_create:N #1 {
\cs_if_free:NT #1
{
- \cs_set:Npx \_siunitx_tmp:w
+ \cs_set:Npx \siunitx_tmp:w
{
\ProvideDocumentCommand \exp_not:N #1 { }
{
- \bool_if:NT \_l_siunitx_create_prespace_bool
+ \bool_if:NT \l_siunitx_create_prespace_bool
{
\exp_not:n
{
- \_siunitx_ensuremath:n
- { \_l_siunitx_number_unit_sep_tl }
+ \siunitx_ensuremath:n
+ { \l_siunitx_number_unit_sep_tl }
}
}
- \exp_not:n { \_siunitx_unit_output:nn {#1} { } }
- \bool_if:NT \_l_siunitx_create_xspace_bool
+ \exp_not:n { \siunitx_unit_output:nn {#1} { } }
+ \bool_if:NT \l_siunitx_create_xspace_bool
{ \exp_not:N \xspace }
}
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
}
-\cs_set_protected:Npn \_siunitx_unit_create_with_arg:N #1 {
+\cs_new_protected:Npn \siunitx_unit_create_with_arg:N #1 {
\cs_if_free:NT #1
{
- \cs_set:Npx \_siunitx_tmp:w
+ \cs_set:Npx \siunitx_tmp:w
{
\ProvideDocumentCommand \exp_not:N #1 { o }
{
\exp_not:N \IfNoValueTF {####1}
- { \exp_not:n { \_siunitx_unit_output:nn {#1} { } } }
+ { \exp_not:n { \siunitx_unit_output:nn {#1} { } } }
{
- \bool_if:NT \_l_siunitx_create_prespace_bool
+ \bool_if:NT \l_siunitx_create_prespace_bool
{
\exp_not:n
{
- \_siunitx_ensuremath:n
- { \_l_siunitx_number_unit_sep_tl }
+ \siunitx_ensuremath:n
+ { \l_siunitx_number_unit_sep_tl }
}
}
\SI {####1} { \exp_not:N #1 }
}
- \bool_if:NT \_l_siunitx_create_xspace_bool
+ \bool_if:NT \l_siunitx_create_xspace_bool
{ \exp_not:N \xspace }
}
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_protect_symbols:N}
+%\begin{macro}{\siunitx_protect_symbols:N}
% There are a few unit names which may be defined by other parts of
% LaTeX. They need to be unexpandable, as in an \texttt{s} column
% TeX will look for \cs{omit} \emph{before} starting the internal
@@ -8890,12 +8932,12 @@ This work consists of the file siunitx.dtx
% \begin{macrocode}
\AtBeginDocument {
\tl_map_function:nN { \bar \color \ng \pm }
- \_siunitx_protect_symbols:N
+ \siunitx_protect_symbols:N
}
-\cs_set_protected_nopar:Npn \_siunitx_protect_symbols:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_protect_symbols:N #1 {
\cs_if_exist:NT #1
{
- \_siunitx_cs_if_macro:NT #1
+ \siunitx_cs_if_macro:NT #1
{ \cs_set_protected_nopar:Npx #1 { \exp_not:V #1 } }
}
}
@@ -8908,14 +8950,14 @@ This work consists of the file siunitx.dtx
% or may contain literal input) into formatted text for output. The
% input part of the process is used to sort out parsed or literal units.
%
-%\begin{macro}{\_l_siunitx_unit_forbid_literal_bool}
-%\begin{macro}{\_l_siunitx_unit_parse_bool}
+%\begin{macro}{\l_siunitx_unit_forbid_literal_bool}
+%\begin{macro}{\l_siunitx_unit_parse_bool}
% One option is related to how units are pre-processed.
% \begin{macrocode}
\keys_define:nn { siunitx } {
forbid-literal-units .bool_set:N =
- \_l_siunitx_unit_forbid_literal_bool,
- parse-units .bool_set:N = \_l_siunitx_unit_parse_bool
+ \l_siunitx_unit_forbid_literal_bool,
+ parse-units .bool_set:N = \l_siunitx_unit_parse_bool
}
\keys_set:nn { siunitx } {
forbid-literal-units = false,
@@ -8925,66 +8967,66 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_in:nn}
-%\begin{macro}{\_siunitx_unit_in:Vn}
+%\begin{macro}{\siunitx_unit_in:nn}
+%\begin{macro}{\siunitx_unit_in:Vn}
% The master function does a very simple checks then hands off.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_in:nn #1#2 {
- \bool_if:NTF \_l_siunitx_unit_parse_bool
+\cs_new_protected:Npn \siunitx_unit_in:nn #1#2 {
+ \bool_if:NTF \l_siunitx_unit_parse_bool
{
\tl_if_empty:nF {#1}
{
- \_siunitx_unit_if_literal:nTF {#1}
+ \siunitx_unit_if_literal:nTF {#1}
{
- \bool_if:NTF \_l_siunitx_unit_forbid_literal_bool
+ \bool_if:NTF \l_siunitx_unit_forbid_literal_bool
{ \msg_error:nnx { siunitx } { literal-unit } {#1} }
- { \_siunitx_unit_format_literal:n {#1} }
+ { \siunitx_unit_format_literal:n {#1} }
}
{
- \bool_if:NT \_l_siunitx_per_auto_bool
+ \bool_if:NT \l_siunitx_per_auto_bool
{
- \tl_set:Nn \_l_siunitx_per_mode_tl { symbol }
+ \tl_set:Nn \l_siunitx_per_mode_tl { symbol }
\mode_if_inner:F
{
\mode_if_math:T
{
- \tl_set:Nn \_l_siunitx_per_mode_tl
+ \tl_set:Nn \l_siunitx_per_mode_tl
{ fraction }
}
}
}
- \_siunitx_unit_parse:nn {#1} {#2}
- \_siunitx_unit_format:
+ \siunitx_unit_parse:nn {#1} {#2}
+ \siunitx_unit_format:
}
}
}
- { \_siunitx_unit_format_literal:n {#1} }
+ { \siunitx_unit_format_literal:n {#1} }
}
-\cs_generate_variant:Nn \_siunitx_unit_in:nn { V }
+\cs_generate_variant:Nn \siunitx_unit_in:nn { V }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_if_literal:nTF}
-%\begin{macro}[aux]{\_siunitx_unit_if_literal_aux:N}
+%\begin{macro}{\siunitx_unit_if_literal:nTF}
+%\begin{macro}[aux]{\siunitx_unit_if_literal_aux:N}
% A test is needed to see if the input only contains unit macros. This
% is done by altering setting all of the unit macros to expand to
% nothing at all. Thus there will only be anything left if there is
% a literal in the unit.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_if_literal:nTF #1#2#3 {
+\cs_new_protected:Npn \siunitx_unit_if_literal:nTF #1#2#3 {
\group_begin:
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_if_literal_aux:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_if_literal_aux:N
\cs_set_eq:NN \of \use_none:n
\cs_set_eq:NN \raiseto \use_none:n
\cs_set_eq:NN \tothe \use_none:n
- \protected@edef \_l_siunitx_tmpa_tl {#1}
+ \protected@edef \l_siunitx_tmpa_tl {#1}
\exp_args:NNNV \group_end:
- \tl_set:Nn \_l_siunitx_tmpa_tl \_l_siunitx_tmpa_tl
- \tl_if_empty:NTF \_l_siunitx_tmpa_tl {#3} {#2}
+ \tl_set:Nn \l_siunitx_tmpa_tl \l_siunitx_tmpa_tl
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl {#3} {#2}
}
-\cs_set_protected:Npn \_siunitx_unit_if_literal_aux:N #1 {
+\cs_new_protected:Npn \siunitx_unit_if_literal_aux:N #1 {
\cs_set_eq:NN #1 \prg_do_nothing:
}
% \end{macrocode}
@@ -8998,32 +9040,32 @@ This work consists of the file siunitx.dtx
% input to collect up the units, before re-combining everything into
% a single block at the end of the process.
%
-%\begin{macro}{\_l_siunitx_unit_int}
-%\begin{macro}{\_l_siunitx_unit_prop}
+%\begin{macro}{\l_siunitx_unit_int}
+%\begin{macro}{\l_siunitx_unit_prop}
% Parsed units are stored in a property list, to keep things compact.
% An integer is also needed to count up units.
% \begin{macrocode}
-\int_new:N \_l_siunitx_unit_int
-\prop_new:N \_l_siunitx_unit_prop
+\int_new:N \l_siunitx_unit_int
+\prop_new:N \l_siunitx_unit_prop
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_per_bool}
+%\begin{macro}{\l_siunitx_per_bool}
% To allow \cs{per} to be \enquote{sticky}.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_per_bool
+\bool_new:N \l_siunitx_per_bool
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_prefix_symbols_bool}
-%\begin{macro}{\_l_siunitx_sticky_per_bool}
+%\begin{macro}{\l_siunitx_prefix_symbols_bool}
+%\begin{macro}{\l_siunitx_sticky_per_bool}
% Some options are directly related to how units are handled at this
% stage, so need be created before the reconstruction part of the code.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- prefixes-as-symbols .bool_set:N = \_l_siunitx_prefix_symbols_bool,
- sticky-per .bool_set:N = \_l_siunitx_sticky_per_bool,
+ prefixes-as-symbols .bool_set:N = \l_siunitx_prefix_symbols_bool,
+ sticky-per .bool_set:N = \l_siunitx_sticky_per_bool,
}
\keys_set:nn { siunitx } {
prefixes-as-symbols = true
@@ -9032,57 +9074,57 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse:nn}
+%\begin{macro}{\siunitx_unit_parse:nn}
% The unit to be parsed is received here along with any options given.
% The later are needed so that the user can override any saved options
% on a one-off basis.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_parse:nn #1#2 {
- \_siunitx_unit_parse_init:
- \_siunitx_unit_parse_options:nn {#1} {#2}
+\cs_new_protected:Npn \siunitx_unit_parse:nn #1#2 {
+ \siunitx_unit_parse_init:
+ \siunitx_unit_parse_options:nn {#1} {#2}
#1
- \cs_set_eq:NN \pm \_siunitx_pm:
+ \cs_set_eq:NN \pm \siunitx_pm:
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_init:}
-%\begin{macro}[aux]{\_siunitx_unit_parse_init_aux:N}
-%\begin{macro}{\_siunitx_pm:}
+%\begin{macro}{\siunitx_unit_parse_init:}
+%\begin{macro}[aux]{\siunitx_unit_parse_init_aux:N}
+%\begin{macro}{\siunitx_pm:}
% As always, the initialisation is a separate routine to make life a
% little clearer. The definition of \cs{pm} is saved here as it
% is used by units and numbers.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_init: {
- \prop_clear:N \_l_siunitx_unit_prop
- \int_zero:N \_l_siunitx_unit_int
- \bool_set_false:N \_l_siunitx_per_bool
- \cs_set_eq:NN \_siunitx_pm: \pm
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_parse_init_aux:N
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_init: {
+ \prop_clear:N \l_siunitx_unit_prop
+ \int_zero:N \l_siunitx_unit_int
+ \bool_set_false:N \l_siunitx_per_bool
+ \cs_set_eq:NN \siunitx_pm: \pm
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_parse_init_aux:N
}
-\cs_set_protected:Npn \_siunitx_unit_parse_init_aux:N #1 {
- \cs_set_eq:Nc #1 { _siunitx_ \token_to_str:N #1 _function:w }
+\cs_new_protected:Npn \siunitx_unit_parse_init_aux:N #1 {
+ \cs_set_eq:Nc #1 { siunitx_ \token_to_str:N #1 _function:w }
}
-\cs_set_protected_nopar:Npn \_siunitx_pm: { }
+\cs_new_protected_nopar:Npn \siunitx_pm: { }
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_options:n}
+%\begin{macro}{\siunitx_unit_parse_options:n}
% Any unit-specific options are loaded, followed by re-applying any
% options given for this particular macro. The second call to
% \cs{keys_set:nn} is needed to allow the local overriding of settings.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_parse_options:nn #1#2 {
+\cs_new_protected:Npn \siunitx_unit_parse_options:nn #1#2 {
\tl_if_single:nT {#1}
{
\cs_if_free:cF
- { _l_siunitx_ \_siunitx_unit_first_token:n {#1} _options_tl }
+ { l_siunitx_ \siunitx_unit_first_token:n {#1} _options_tl }
{
\keys_set:nv { siunitx }
- { _l_siunitx_ \_siunitx_unit_first_token:n {#1} _options_tl }
+ { l_siunitx_ \siunitx_unit_first_token:n {#1} _options_tl }
\keys_set:nn { siunitx } {#2}
}
}
@@ -9090,112 +9132,112 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_power_before:n}
-%\begin{macro}{\_siunitx_unit_parse_power_after:n}
+%\begin{macro}{\siunitx_unit_parse_power_before:n}
+%\begin{macro}{\siunitx_unit_parse_power_after:n}
% Storing powers depends on whether they are given before or after
% the unit.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_parse_power_before:n #1 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \intexpr_eval:n { \_l_siunitx_unit_int + 1 } }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
+\cs_new_protected:Npn \siunitx_unit_parse_power_before:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \intexpr_eval:n { \l_siunitx_unit_int + 1 } }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
}
-\cs_set_protected:Npn \_siunitx_unit_parse_power_after:n #1 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
+\cs_new_protected:Npn \siunitx_unit_parse_power_after:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_prefix:n}
-%\begin{macro}{\_siunitx_unit_parse_prefix:nn}
+%\begin{macro}{\siunitx_unit_parse_prefix:n}
+%\begin{macro}{\siunitx_unit_parse_prefix:nn}
% Saving prefixes always increments the counter. For non-symbolic
% mode, the base needs to be saved along with the power.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_parse_prefix:n #1 {
- \int_incr:N \_l_siunitx_unit_int
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
+\cs_new_protected:Npn \siunitx_unit_parse_prefix:n #1 {
+ \int_incr:N \l_siunitx_unit_int
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
}
-\cs_set_protected:Npn \_siunitx_unit_parse_prefix:nn #1#2 {
- \_siunitx_unit_parse_prefix:n {#2}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix-base- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
+\cs_new_protected:Npn \siunitx_unit_parse_prefix:nn #1#2 {
+ \siunitx_unit_parse_prefix:n {#2}
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix-base- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_per:}
+%\begin{macro}{\siunitx_unit_parse_per:}
% The \cs{per} function always applies to the next unit seen, so
% the counter has to be advanced by one.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_per: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \intexpr_eval:n { \_l_siunitx_unit_int + 1 } }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl { true }
- \bool_if:NT \_l_siunitx_sticky_per_bool
- { \cs_set_eq:NN \per \_siunitx_unit_parse_per_error: }
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_per: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \intexpr_eval:n { \l_siunitx_unit_int + 1 } }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl { true }
+ \bool_if:NT \l_siunitx_sticky_per_bool
+ { \cs_set_eq:NN \per \siunitx_unit_parse_per_error: }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_per_error: {
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_per_error: {
\msg_error:nn { siunitx } { duplicate-sticky-per }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_qualifier:n}
+%\begin{macro}{\siunitx_unit_parse_qualifier:n}
% Qualifiers never alter the number of units.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_parse_qualifier:n #1 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_unit_parse_qualifier:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{ \msg_error:nn { siunitx } { qualifier-before-unit } }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { qualifier- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { qualifier- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_parse_unit:Nn}
-%\begin{macro}[aux]{\_siunitx_unit_parse_unit_per:}
+%\begin{macro}{\siunitx_unit_parse_unit:Nn}
+%\begin{macro}[aux]{\siunitx_unit_parse_unit_per:}
% For units, there is a check in case a prefix is present (which will
% have incremented the counter). With the counter correct, simply add
% the literal to the property list. There is also a check to see if
% there is a \enquote{sticky} \cs{per} to think about.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_parse_unit:Nn #1#2 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVTF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- { \int_incr:N \_l_siunitx_unit_int }
- }
- { \int_incr:N \_l_siunitx_unit_int }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { unit- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#2}
- \_siunitx_unit_parse_unit_per:
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_unit_per: {
- \bool_if:NT \_l_siunitx_sticky_per_bool
- {
- \bool_if:NT \_l_siunitx_per_bool
+\cs_new_protected:Npn \siunitx_unit_parse_unit:Nn #1#2 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVTF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ { \int_incr:N \l_siunitx_unit_int }
+ }
+ { \int_incr:N \l_siunitx_unit_int }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { unit- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#2}
+ \siunitx_unit_parse_unit_per:
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_unit_per: {
+ \bool_if:NT \l_siunitx_sticky_per_bool
+ {
+ \bool_if:NT \l_siunitx_per_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{ true }
}
}
@@ -9206,20 +9248,20 @@ This work consists of the file siunitx.dtx
%
%\subsection{Unit formatting}
%
-%\begin{macro}{\_l_siunitx_preunit_tl}
-%\begin{macro}{\_l_siunitx_unit_tl}
-%\begin{macro}{\_l_siunitx_unit_current_tl}
-%\begin{macro}{\_l_siunitx_unit_denominator_tl}
-%\begin{macro}{\_l_siunitx_unit_numerator_tl}
-%\begin{macro}{\_l_siunitx_unit_saved_tl}
+%\begin{macro}{\l_siunitx_preunit_tl}
+%\begin{macro}{\l_siunitx_unit_tl}
+%\begin{macro}{\l_siunitx_unit_current_tl}
+%\begin{macro}{\l_siunitx_unit_denominator_tl}
+%\begin{macro}{\l_siunitx_unit_numerator_tl}
+%\begin{macro}{\l_siunitx_unit_saved_tl}
% Storage space for creating unit output.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_preunit_tl
-\tl_new:N \_l_siunitx_unit_tl
-\tl_new:N \_l_siunitx_unit_current_tl
-\tl_new:N \_l_siunitx_unit_denominator_tl
-\tl_new:N \_l_siunitx_unit_numerator_tl
-\tl_new:N \_l_siunitx_unit_saved_tl
+\tl_new:N \l_siunitx_preunit_tl
+\tl_new:N \l_siunitx_unit_tl
+\tl_new:N \l_siunitx_unit_current_tl
+\tl_new:N \l_siunitx_unit_denominator_tl
+\tl_new:N \l_siunitx_unit_numerator_tl
+\tl_new:N \l_siunitx_unit_saved_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -9228,49 +9270,49 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_unit_denominator_int}
-%\begin{macro}{\_l_siunitx_unit_numerator_int}
+%\begin{macro}{\l_siunitx_unit_denominator_int}
+%\begin{macro}{\l_siunitx_unit_numerator_int}
% For tracking in case brackets are needed.
% \begin{macrocode}
-\int_new:N \_l_siunitx_unit_denominator_int
-\int_new:N \_l_siunitx_unit_numerator_int
+\int_new:N \l_siunitx_unit_denominator_int
+\int_new:N \l_siunitx_unit_numerator_int
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_unit_prefix_int}
-%\begin{macro}{\_l_siunitx_unit_prefix_base_int}
-%\begin{macro}{\_l_siunitx_unit_prefix_current_tl}
+%\begin{macro}{\l_siunitx_unit_prefix_int}
+%\begin{macro}{\l_siunitx_unit_prefix_base_int}
+%\begin{macro}{\l_siunitx_unit_prefix_current_tl}
% Used to calculate the overall prefix value.
% \begin{macrocode}
-\int_new:N \_l_siunitx_unit_prefix_int
-\int_new:N \_l_siunitx_unit_prefix_base_int
-\tl_new:N \_l_siunitx_unit_prefix_current_tl
+\int_new:N \l_siunitx_unit_prefix_int
+\int_new:N \l_siunitx_unit_prefix_base_int
+\tl_new:N \l_siunitx_unit_prefix_current_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_unit_prefix_gram_int}
+%\begin{macro}{\l_siunitx_unit_prefix_gram_int}
% Formatting units is complicated by the fact that the kilogram is a
% base unit, making conversions a little more awkward.
% \begin{macrocode}
-\int_new:N \_l_siunitx_unit_prefix_gram_int
+\int_new:N \l_siunitx_unit_prefix_gram_int
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_per_auto_bool}
-%\begin{macro}{\_l_siunitx_per_fraction_bool}
-%\begin{macro}{\_l_siunitx_per_mode_tl}
-%\begin{macro}{\_l_siunitx_qualifier_mode_tl}
-%\begin{macro}{\_l_siunitx_per_two_parts_bool}
+%\begin{macro}{\l_siunitx_per_auto_bool}
+%\begin{macro}{\l_siunitx_per_fraction_bool}
+%\begin{macro}{\l_siunitx_per_mode_tl}
+%\begin{macro}{\l_siunitx_qualifier_mode_tl}
+%\begin{macro}{\l_siunitx_per_two_parts_bool}
% For saving settings.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_per_auto_bool
-\bool_new:N \_l_siunitx_per_fraction_bool
-\tl_new:N \_l_siunitx_per_mode_tl
-\bool_new:N \_l_siunitx_two_parts_bool
-\tl_new:N \_l_siunitx_qualifier_mode_tl
+\bool_new:N \l_siunitx_per_auto_bool
+\bool_new:N \l_siunitx_per_fraction_bool
+\tl_new:N \l_siunitx_per_mode_tl
+\bool_new:N \l_siunitx_two_parts_bool
+\tl_new:N \l_siunitx_qualifier_mode_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -9278,68 +9320,68 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_unit_denominator_bracket_bool}
-%\begin{macro}{\_l_siunitx_unit_separator_tl}
-%\begin{macro}{\_l_siunitx_per_symbol_tl}
+%\begin{macro}{\l_siunitx_unit_denominator_bracket_bool}
+%\begin{macro}{\l_siunitx_unit_separator_tl}
+%\begin{macro}{\l_siunitx_per_symbol_tl}
% At this stage, output formatting options are created.
% \begin{macrocode}
\keys_define:nn { siunitx } {
bracket-unit-denominator .bool_set:N
- = \_l_siunitx_unit_denominator_bracket_bool,
- inter-unit-separator .tl_set:N = \_l_siunitx_unit_separator_tl ,
+ = \l_siunitx_unit_denominator_bracket_bool,
+ inter-unit-separator .tl_set:N = \l_siunitx_unit_separator_tl ,
per-mode .choice:,
per-mode / fraction .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_true:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
- \tl_set:Nn \_l_siunitx_per_mode_tl { fraction }
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_true:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
+ \tl_set:Nn \l_siunitx_per_mode_tl { fraction }
},
per-mode / power .meta:n = { per-mode = reciprocal } ,
per-mode / power-positive-first .meta:n =
{ per-mode = reciprocal-positive-first } ,
per-mode / reciprocal .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_false:N \_l_siunitx_per_fraction_bool
- \bool_set_false:N \_l_siunitx_per_two_parts_bool
- \tl_clear:N \_l_siunitx_per_mode_tl
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_false:N \l_siunitx_per_fraction_bool
+ \bool_set_false:N \l_siunitx_per_two_parts_bool
+ \tl_clear:N \l_siunitx_per_mode_tl
},
per-mode / reciprocal-positive-first .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_false:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
- \tl_clear:N \_l_siunitx_per_mode_tl
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_false:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
+ \tl_clear:N \l_siunitx_per_mode_tl
},
per-mode / repeated-symbol .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_false:N \_l_siunitx_per_fraction_bool
- \bool_set_false:N \_l_siunitx_per_two_parts_bool
- \tl_set:Nn \_l_siunitx_per_mode_tl { repeat }
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_false:N \l_siunitx_per_fraction_bool
+ \bool_set_false:N \l_siunitx_per_two_parts_bool
+ \tl_set:Nn \l_siunitx_per_mode_tl { repeat }
},
per-mode / symbol .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_true:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
- \tl_set:Nn \_l_siunitx_per_mode_tl { symbol }
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_true:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
+ \tl_set:Nn \l_siunitx_per_mode_tl { symbol }
},
per-mode / symbol-or-fraction .code:n =
{
- \bool_set_true:N \_l_siunitx_per_auto_bool
- \bool_set_true:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
+ \bool_set_true:N \l_siunitx_per_auto_bool
+ \bool_set_true:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
},
- per-symbol .tl_set:N = \_l_siunitx_per_symbol_tl,
+ per-symbol .tl_set:N = \l_siunitx_per_symbol_tl,
qualifier-mode .choice:,
qualifier-mode / brackets .code:n =
- { \tl_set:Nn \_l_siunitx_qualifier_mode_tl { brackets } },
+ { \tl_set:Nn \l_siunitx_qualifier_mode_tl { brackets } },
qualifier-mode / space .code:n =
- { \tl_set:Nn \_l_siunitx_qualifier_mode_tl { space } },
+ { \tl_set:Nn \l_siunitx_qualifier_mode_tl { space } },
qualifier-mode / subscript .code:n =
- { \tl_set:Nn \_l_siunitx_qualifier_mode_tl { subscript } },
+ { \tl_set:Nn \l_siunitx_qualifier_mode_tl { subscript } },
}
\keys_set:nn { siunitx } {
bracket-unit-denominator = true,
@@ -9353,151 +9395,151 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format:}
+%\begin{macro}{\siunitx_unit_format:}
% Most of the work is done by the loop, with a little tidying up for
% fraction-like output. Before starting the loop, there is a check for
% the case of a single reciprocal unit when per is set up to create a
% symbol. In that special case, the space between a number and a unit
% has to be removed.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format: {
- \_siunitx_unit_format_init:
- \intexpr_compare:nNnT { \_l_siunitx_unit_int } = { 1 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format: {
+ \siunitx_unit_format_init:
+ \intexpr_compare:nNnT { \l_siunitx_unit_int } = { 1 }
{
- \tl_if_eq:VnT \_l_siunitx_per_mode_tl { symbol }
+ \tl_if_eq:VnT \l_siunitx_per_mode_tl { symbol }
{
- \prop_if_in:NnT \_l_siunitx_unit_prop { per-1 }
- { \tl_clear:N \_l_siunitx_number_unit_separator_tl }
+ \prop_if_in:NnT \l_siunitx_unit_prop { per-1 }
+ { \tl_clear:N \l_siunitx_number_unit_separator_tl }
}
}
- \intexpr_while_do:nNnn { \_l_siunitx_unit_int } > { 0 }
+ \intexpr_while_do:nNnn { \l_siunitx_unit_int } > { 0 }
{
- \_siunitx_unit_format_prefix:
- \_siunitx_unit_format_symbol:
- \_siunitx_unit_format_qualifier:
- \_siunitx_unit_format_power:
- \_siunitx_unit_format_add:
- \int_decr:N \_l_siunitx_unit_int
+ \siunitx_unit_format_prefix:
+ \siunitx_unit_format_symbol:
+ \siunitx_unit_format_qualifier:
+ \siunitx_unit_format_power:
+ \siunitx_unit_format_add:
+ \int_decr:N \l_siunitx_unit_int
}
- \bool_if:NT \_l_siunitx_per_two_parts_bool
+ \bool_if:NT \l_siunitx_per_two_parts_bool
{
- \bool_if:NTF \_l_siunitx_per_fraction_bool
- { \_siunitx_unit_format_fraction: }
- { \_siunitx_unit_format_sorted: }
+ \bool_if:NTF \l_siunitx_per_fraction_bool
+ { \siunitx_unit_format_fraction: }
+ { \siunitx_unit_format_sorted: }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_add:}
-%\begin{macro}[aux]{\_siunitx_unit_format_add_aux:n}
+%\begin{macro}{\siunitx_unit_format_add:}
+%\begin{macro}[aux]{\siunitx_unit_format_add_aux:n}
% Adding the current unit to the output means checking where it goes.
% The odd code when adding a space is to pick up repeated per symbols,
% which need to suppress the space.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_add: {
- \bool_if:NTF \_l_siunitx_per_two_parts_bool
+\cs_new_protected_nopar:Npn \siunitx_unit_format_add: {
+ \bool_if:NTF \l_siunitx_per_two_parts_bool
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVTF \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVTF \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \_siunitx_unit_format_add_aux:n { _denominator }
- \int_incr:N \_l_siunitx_unit_denominator_int
+ \siunitx_unit_format_add_aux:n { _denominator }
+ \int_incr:N \l_siunitx_unit_denominator_int
}
{
- \_siunitx_unit_format_add_aux:n { _numerator }
- \int_incr:N \_l_siunitx_unit_numerator_int
+ \siunitx_unit_format_add_aux:n { _numerator }
+ \int_incr:N \l_siunitx_unit_numerator_int
}
}
- { \_siunitx_unit_format_add_aux:n { } }
- \tl_clear:N \_l_siunitx_unit_current_tl
+ { \siunitx_unit_format_add_aux:n { } }
+ \tl_clear:N \l_siunitx_unit_current_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_add_aux:n #1 {
- \tl_if_empty:cF { _l_siunitx_unit #1 _tl }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_add_aux:n #1 {
+ \tl_if_empty:cF { l_siunitx_unit #1 _tl }
{
- \tl_if_eq:nVTF { repeat } \_l_siunitx_per_mode_tl
+ \tl_if_eq:nVTF { repeat } \l_siunitx_per_mode_tl
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \intexpr_eval:n { \_l_siunitx_unit_int + 1 } }
- \prop_if_in:NVF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \intexpr_eval:n { \l_siunitx_unit_int + 1 } }
+ \prop_if_in:NVF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_unit_separator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_unit_separator_tl
}
}
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_unit_separator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_unit_separator_tl
}
}
- \tl_put_left:cV { _l_siunitx_unit #1 _tl } \_l_siunitx_unit_current_tl
+ \tl_put_left:cV { l_siunitx_unit #1 _tl } \l_siunitx_unit_current_tl
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_fraction:}
-%\begin{macro}[aux]{\_siunitx_unit_format_fraction:}
-%\begin{macro}[aux]{\_siunitx_unit_format_symbol:}
-%\begin{macro}[aux]{\_siunitx_unit_format_symbol_aux:}
-%\begin{macro}[aux]{\_siunitx_unit_format_symbol_aux_alt:}
+%\begin{macro}{\siunitx_unit_format_fraction:}
+%\begin{macro}[aux]{\siunitx_unit_format_fraction:}
+%\begin{macro}[aux]{\siunitx_unit_format_symbol:}
+%\begin{macro}[aux]{\siunitx_unit_format_symbol_aux:}
+%\begin{macro}[aux]{\siunitx_unit_format_symbol_aux_alt:}
% When making (\emph{psuedo}-)fractions there is a check to place a
% \( 1 \) in the numerator is it's blank. For symbol mode, this is
% only done if there is no number. Then some construction work.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction: {
- \intexpr_compare:nNnTF { \_l_siunitx_unit_denominator_int } > { 0 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction: {
+ \intexpr_compare:nNnTF { \l_siunitx_unit_denominator_int } > { 0 }
{
\use:c
- { _siunitx_unit_format_fraction_ \_l_siunitx_per_mode_tl : }
+ { siunitx_unit_format_fraction_ \l_siunitx_per_mode_tl : }
}
- { \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl }
+ { \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction_fraction: {
- \tl_if_empty:NT \_l_siunitx_unit_numerator_tl
- { \tl_set:Nn \_l_siunitx_unit_numerator_tl { 1 } }
- \tl_set:Nx \_l_siunitx_unit_numerator_tl
- { { \exp_not:V \_l_siunitx_unit_numerator_tl } }
- \tl_put_left:Nn \_l_siunitx_unit_numerator_tl
- { \_siunitx_print:nn { unit } }
- \tl_set:Nx \_l_siunitx_unit_numerator_tl
- { { \exp_not:V \_l_siunitx_unit_numerator_tl } }
- \tl_set:Nx \_l_siunitx_unit_denominator_tl
- { { \exp_not:V \_l_siunitx_unit_denominator_tl } }
- \tl_put_left:Nn \_l_siunitx_unit_denominator_tl
- { \_siunitx_print:nn { unit } }
- \tl_set:Nx \_l_siunitx_unit_denominator_tl
- { { \exp_not:V \_l_siunitx_unit_denominator_tl } }
- \tl_set:Nn \_l_siunitx_unit_tl { \_siunitx_fraction:nn }
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_denominator_tl
- \tl_set:Nx \_l_siunitx_unit_tl
- { \exp_not:N \ensuremath { \exp_not:V \_l_siunitx_unit_tl } }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction_fraction: {
+ \tl_if_empty:NT \l_siunitx_unit_numerator_tl
+ { \tl_set:Nn \l_siunitx_unit_numerator_tl { 1 } }
+ \tl_set:Nx \l_siunitx_unit_numerator_tl
+ { { \exp_not:V \l_siunitx_unit_numerator_tl } }
+ \tl_put_left:Nn \l_siunitx_unit_numerator_tl
+ { \siunitx_print:nn { unit } }
+ \tl_set:Nx \l_siunitx_unit_numerator_tl
+ { { \exp_not:V \l_siunitx_unit_numerator_tl } }
+ \tl_set:Nx \l_siunitx_unit_denominator_tl
+ { { \exp_not:V \l_siunitx_unit_denominator_tl } }
+ \tl_put_left:Nn \l_siunitx_unit_denominator_tl
+ { \siunitx_print:nn { unit } }
+ \tl_set:Nx \l_siunitx_unit_denominator_tl
+ { { \exp_not:V \l_siunitx_unit_denominator_tl } }
+ \tl_set:Nn \l_siunitx_unit_tl { \siunitx_fraction:nn }
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
+ \tl_set:Nx \l_siunitx_unit_tl
+ { \exp_not:N \ensuremath { \exp_not:V \l_siunitx_unit_tl } }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction_symbol: {
- \_siunitx_unit_format_fraction_symbol_aux:
- \intexpr_compare:nNnT { \_l_siunitx_unit_denominator_int } > { 1 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction_symbol: {
+ \siunitx_unit_format_fraction_symbol_aux:
+ \intexpr_compare:nNnT { \l_siunitx_unit_denominator_int } > { 1 }
{
- \bool_if:NT \_l_siunitx_unit_denominator_bracket_bool
+ \bool_if:NT \l_siunitx_unit_denominator_bracket_bool
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_unit_denominator_tl
- \_l_siunitx_bracket_open_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_denominator_tl
- \_l_siunitx_bracket_close_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_unit_denominator_tl
+ \l_siunitx_bracket_open_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_denominator_tl
+ \l_siunitx_bracket_close_tl
}
}
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_tl
- \_l_siunitx_per_symbol_tl
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_denominator_tl
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_tl
+ \l_siunitx_per_symbol_tl
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction_symbol_aux: {
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction_symbol_aux: {
}
-\cs_set_protected_nopar:Npn
- \_siunitx_unit_format_fraction_symbol_aux_alt: {
- \tl_if_empty:NT \_l_siunitx_unit_numerator_tl
- { \tl_set:Nn \_l_siunitx_unit_numerator_tl { 1 } }
+\cs_new_protected_nopar:Npn
+ \siunitx_unit_format_fraction_symbol_aux_alt: {
+ \tl_if_empty:NT \l_siunitx_unit_numerator_tl
+ { \tl_set:Nn \l_siunitx_unit_numerator_tl { 1 } }
}
% \end{macrocode}
%\end{macro}
@@ -9506,78 +9548,78 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_init:}
+%\begin{macro}{\siunitx_unit_format_init:}
% The normal initialisation stuff.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_init: {
- \tl_clear:N \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_unit_current_tl
- \tl_clear:N \_l_siunitx_unit_denominator_tl
- \int_zero:N \_l_siunitx_unit_prefix_gram_int
- \tl_clear:N \_l_siunitx_unit_numerator_tl
- \int_zero:N \_l_siunitx_unit_prefix_base_int
- \int_zero:N \_l_siunitx_unit_prefix_int
- \int_zero:N \_l_siunitx_unit_denominator_int
- \int_zero:N \_l_siunitx_unit_numerator_int
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_print_literal_aux:N
+\cs_new_protected_nopar:Npn \siunitx_unit_format_init: {
+ \tl_clear:N \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_unit_current_tl
+ \tl_clear:N \l_siunitx_unit_denominator_tl
+ \int_zero:N \l_siunitx_unit_prefix_gram_int
+ \tl_clear:N \l_siunitx_unit_numerator_tl
+ \int_zero:N \l_siunitx_unit_prefix_base_int
+ \int_zero:N \l_siunitx_unit_prefix_int
+ \int_zero:N \l_siunitx_unit_denominator_int
+ \int_zero:N \l_siunitx_unit_numerator_int
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_print_literal_aux:N
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_literal:n}
-%\begin{macro}{\_siunitx_unit_format_literal_aux:N}
+%\begin{macro}{\siunitx_unit_format_literal:n}
+%\begin{macro}{\siunitx_unit_format_literal_aux:N}
% If the unit given contains anything which is not a unit macro, then
% any unit macros that are there simply dump literal meanings. There is
% then a little work to do sorting out "~" and \texttt{.} characters at
% the outer level.
% \begin{macrocode}
\char_make_active:N \~
-\cs_set_protected:Npn \_siunitx_unit_format_literal:n #1 {
- \int_zero:N \_l_siunitx_unit_prefix_int
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_print_literal_aux:N
- \tl_set:Nn \_l_siunitx_unit_tl {#1}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- {
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_unit_separator_tl }
- }
- \tl_replace_all_in:NnV \_l_siunitx_unit_tl { . }
- \_l_siunitx_tmpa_tl
- \tl_replace_all_in:NnV \_l_siunitx_unit_tl { ~ }
- \_l_siunitx_tmpa_tl
- \_siunitx_unit_format_literal_extras:
-}
-\cs_set_protected:Npn \_siunitx_unit_print_literal_aux:N #1 {
- \cs_set_eq:Nc #1 { _siunitx_ \token_to_str:N #1 _literal:w }
+\cs_new_protected:Npn \siunitx_unit_format_literal:n #1 {
+ \int_zero:N \l_siunitx_unit_prefix_int
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_print_literal_aux:N
+ \tl_set:Nn \l_siunitx_unit_tl {#1}
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ {
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_unit_separator_tl }
+ }
+ \tl_replace_all_in:NnV \l_siunitx_unit_tl { . }
+ \l_siunitx_tmpa_tl
+ \tl_replace_all_in:NnV \l_siunitx_unit_tl { ~ }
+ \l_siunitx_tmpa_tl
+ \siunitx_unit_format_literal_extras:
+}
+\cs_new_protected:Npn \siunitx_unit_print_literal_aux:N #1 {
+ \cs_set_eq:Nc #1 { siunitx_ \token_to_str:N #1 _literal:w }
}
\char_make_space:N \~
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_literal_extras:}
-%\begin{macro}[aux]{\_siunitx_unit_format_literal_extras_aux:nN}
+%\begin{macro}{\siunitx_unit_format_literal_extras:}
+%\begin{macro}[aux]{\siunitx_unit_format_literal_extras_aux:nN}
% The code here deals with characters outside the normal range that
% can appear in units in UTF-8 and related encodings. The idea is to
% do a search and replace, thus avoiding any active characters.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_literal_extras: {
- \_siunitx_unit_format_literal_extras_aux:nN { 176 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_literal_extras: {
+ \siunitx_unit_format_literal_extras_aux:nN { 176 }
\SIUnitSymbolDegree
- \_siunitx_unit_format_literal_extras_aux:nN { 181 }
+ \siunitx_unit_format_literal_extras_aux:nN { 181 }
\SIUnitSymbolMicro
- \_siunitx_unit_format_literal_extras_aux:nN { 197 }
+ \siunitx_unit_format_literal_extras_aux:nN { 197 }
\SIUnitSymbolAngstrom
}
-\cs_set_protected_nopar:Npn
- \_siunitx_unit_format_literal_extras_aux:nN #1#2 {
+\cs_new_protected_nopar:Npn
+ \siunitx_unit_format_literal_extras_aux:nN #1#2 {
\char_set_lccode:nn { `\@ } {#1}
\tl_to_lowercase:n
{
- \tl_replace_all_in:NnV \_l_siunitx_unit_tl { @ }
- \_l_siunitx_unit_tl
+ \tl_replace_all_in:NnV \l_siunitx_unit_tl { @ }
+ \l_siunitx_unit_tl
}
}
\xetex_if_engine:F {
@@ -9585,15 +9627,15 @@ This work consists of the file siunitx.dtx
{
\@ifpackageloaded { inputenc }
{
- \tl_set:Nn \_l_siunitx_tmpa_tl { latin1 , latin5 , latin9 }
- \clist_if_in:NVF \_l_siunitx_tmpa_tl \inputencodingname
+ \tl_set:Nn \l_siunitx_tmpa_tl { latin1 , latin5 , latin9 }
+ \clist_if_in:NVF \l_siunitx_tmpa_tl \inputencodingname
{
- \cs_set_eq:NN \_siunitx_unit_format_literal_extras:
+ \cs_set_eq:NN \siunitx_unit_format_literal_extras:
\scan_stop:
}
}
{
- \cs_set_eq:NN \_siunitx_unit_format_literal_extras:
+ \cs_set_eq:NN \siunitx_unit_format_literal_extras:
\scan_stop:
}
}
@@ -9602,153 +9644,153 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_power:}
+%\begin{macro}{\siunitx_unit_format_power:}
% To format powers, there are a few issues: are brackets needed, is
% the power reciprocal and is fraction-formatting in operation. Repeated
% per symbols make life a little more complex, as they have to be
% handled here as well.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \tl_set:Nn \_l_siunitx_tmpa_tl { 1 }
- \_siunitx_unit_format_power_aux:
+ \tl_set:Nn \l_siunitx_tmpa_tl { 1 }
+ \siunitx_unit_format_power_aux:
}
}
- { \_siunitx_unit_format_power_aux: }
+ { \siunitx_unit_format_power_aux: }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_unit_format_power_aux:}
-%\begin{macro}[aux]{\_siunitx_unit_format_power_aux:n}
+%\begin{macro}[aux]{\siunitx_unit_format_power_aux:}
+%\begin{macro}[aux]{\siunitx_unit_format_power_aux:n}
% The auxiliary function needs to make sure that the printing routine
% prints the power as a number, not as text: the two modes may be
% different. A search and replace function is needed for superscripts
% in text mode so that negative signs get printed correctly.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_aux: {
- \tl_if_eq:nVTF { repeat } \_l_siunitx_per_mode_tl
- { \_siunitx_unit_format_power_repeat: }
- { \_siunitx_unit_format_power_per: }
- \tl_if_eq:nVF { 1 } \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_aux: {
+ \tl_if_eq:nVTF { repeat } \l_siunitx_per_mode_tl
+ { \siunitx_unit_format_power_repeat: }
+ { \siunitx_unit_format_power_per: }
+ \tl_if_eq:nVF { 1 } \l_siunitx_tmpa_tl
{
- \_siunitx_unit_format_power_brackets:
- \tl_put_right:Nx \_l_siunitx_unit_current_tl
+ \siunitx_unit_format_power_brackets:
+ \tl_put_right:Nx \l_siunitx_unit_current_tl
{
^
{
- \_siunitx_unit_format_power_aux:n
- { \exp_not:V \_l_siunitx_tmpa_tl }
+ \siunitx_unit_format_power_aux:n
+ { \exp_not:V \l_siunitx_tmpa_tl }
}
}
}
}
-\cs_set_protected:Npn \_siunitx_unit_format_power_aux:n #1 {
- \bool_if:NTF \_l_siunitx_number_math_mode_bool
- { \_siunitx_print:nn { number } {#1} }
+\cs_new_protected:Npn \siunitx_unit_format_power_aux:n #1 {
+ \bool_if:NTF \l_siunitx_number_math_mode_bool
+ { \siunitx_print:nn { number } {#1} }
{
- \tl_set:Nn \_l_siunitx_tmpa_tl {#1}
- \tl_replace_all_in:Nnn \_l_siunitx_tmpa_tl { - }
- { \text { \_c_siunitx_minus_tl } }
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \tl_set:Nn \l_siunitx_tmpa_tl {#1}
+ \tl_replace_all_in:Nnn \l_siunitx_tmpa_tl { - }
+ { \text { \c_siunitx_minus_tl } }
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_unit_format_power_brackets:}
+%\begin{macro}[aux]{\siunitx_unit_format_power_brackets:}
% A check is made for a qualifier with a space, which needs brackets
% if there is also a power.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_brackets: {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { bracket- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_brackets: {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { bracket- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_open_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_close_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_open_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_close_tl
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_unit_format_power_per:}
-%\begin{macro}[aux]{\_siunitx_unit_format_power_repeat:}
+%\begin{macro}[aux]{\siunitx_unit_format_power_per:}
+%\begin{macro}[aux]{\siunitx_unit_format_power_repeat:}
% For dealing with \cs{per} and repeated \cs{per} symbols. The sign
% change does not use any numbers, as this makes life easier with
% non-integer values.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_per: {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_per: {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \bool_if:NF \_l_siunitx_per_fraction_bool
+ \bool_if:NF \l_siunitx_per_fraction_bool
{
- \tl_if_in:NnTF \_l_siunitx_tmpa_tl { - }
+ \tl_if_in:NnTF \l_siunitx_tmpa_tl { - }
{
- \cs_set:Npn \_siunitx_tmp:w ##1 - ##2 \q_stop
- { \tl_set:Nn \_l_siunitx_tmpa_tl {##2} }
- \exp_afer:wN \_siunitx_tmp:w \_l_siunitx_tmpa_tl \q_stop
+ \cs_set:Npn \siunitx_tmp:w ##1 - ##2 \q_stop
+ { \tl_set:Nn \l_siunitx_tmpa_tl {##2} }
+ \exp_afer:wN \siunitx_tmp:w \l_siunitx_tmpa_tl \q_stop
}
- { \tl_put_left:Nn \_l_siunitx_tmpa_tl { - } }
+ { \tl_put_left:Nn \l_siunitx_tmpa_tl { - } }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_repeat: {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_repeat: {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_per_symbol_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_per_symbol_tl
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_prefix:}
-%\begin{macro}[aux]{\_siunitx_unit_format_prefix_number:}
-%\begin{macro}[aux]{\_siunitx_unit_format_prefix_number_calc:}
-%\begin{macro}[aux]{\_siunitx_unit_format_prefix_symbol:}
+%\begin{macro}{\siunitx_unit_format_prefix:}
+%\begin{macro}[aux]{\siunitx_unit_format_prefix_number:}
+%\begin{macro}[aux]{\siunitx_unit_format_prefix_number_calc:}
+%\begin{macro}[aux]{\siunitx_unit_format_prefix_symbol:}
% If there is a prefix, it is added to the output. When using numerical
% output, some conversion is needed instead.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_unit_prefix_current_tl
- \bool_if:NTF \_l_siunitx_prefix_symbols_bool
- { \_siunitx_unit_format_prefix_symbol: }
- { \_siunitx_unit_format_prefix_number: }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_unit_prefix_current_tl
+ \bool_if:NTF \l_siunitx_prefix_symbols_bool
+ { \siunitx_unit_format_prefix_symbol: }
+ { \siunitx_unit_format_prefix_number: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix_number: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix-base- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \intexpr_compare:nNnT { \_l_siunitx_unit_prefix_base_int } = { 0 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix_number: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix-base- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \intexpr_compare:nNnT { \l_siunitx_unit_prefix_base_int } = { 0 }
{
- \int_set:Nn \_l_siunitx_unit_prefix_base_int
- { \_l_siunitx_tmpa_tl }
+ \int_set:Nn \l_siunitx_unit_prefix_base_int
+ { \l_siunitx_tmpa_tl }
}
\intexpr_compare:nNnTF
- { \_l_siunitx_unit_prefix_base_int } = { \_l_siunitx_tmpa_tl }
- { \_siunitx_unit_format_prefix_number_calc: }
+ { \l_siunitx_unit_prefix_base_int } = { \l_siunitx_tmpa_tl }
+ { \siunitx_unit_format_prefix_number_calc: }
{ \msg_error:nn { siunitx } { prefix-base-mismatch } }
}
% \end{macrocode}
@@ -9757,51 +9799,51 @@ This work consists of the file siunitx.dtx
% is the kilogram and so there is some code to convert the number
% back correctly.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix_number_calc: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_set:Nn \_l_siunitx_tmpa_tl { 1 } }
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { unit- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpb_tl
- \tl_if_eq:nVT { \gram } \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix_number_calc: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_set:Nn \l_siunitx_tmpa_tl { 1 } }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { unit- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpb_tl
+ \l_siunitx_tmpb_tl
+ \tl_if_eq:nVT { \gram } \l_siunitx_tmpb_tl
{
- \tl_set:Nx \_l_siunitx_unit_prefix_current_tl
- { \intexpr_eval:n { \_l_siunitx_unit_prefix_current_tl - 3 } }
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl { kg }
+ \tl_set:Nx \l_siunitx_unit_prefix_current_tl
+ { \intexpr_eval:n { \l_siunitx_unit_prefix_current_tl - 3 } }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpb_tl { kg }
}
- \tl_set:Nx \_l_siunitx_unit_prefix_current_tl
+ \tl_set:Nx \l_siunitx_unit_prefix_current_tl
{
\intexpr_eval:n
- { \_l_siunitx_unit_prefix_current_tl * \_l_siunitx_tmpa_tl }
+ { \l_siunitx_unit_prefix_current_tl * \l_siunitx_tmpa_tl }
}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVTF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVTF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \int_set:Nn \_l_siunitx_unit_prefix_int
+ \int_set:Nn \l_siunitx_unit_prefix_int
{
- \_l_siunitx_unit_prefix_int
- - \_l_siunitx_unit_prefix_current_tl
+ \l_siunitx_unit_prefix_int
+ - \l_siunitx_unit_prefix_current_tl
}
}
{
- \int_set:Nn \_l_siunitx_unit_prefix_int
+ \int_set:Nn \l_siunitx_unit_prefix_int
{
- \_l_siunitx_unit_prefix_int
- + \_l_siunitx_unit_prefix_current_tl
+ \l_siunitx_unit_prefix_int
+ + \l_siunitx_unit_prefix_current_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix_symbol: {
- \tl_set_eq:NN \_l_siunitx_unit_current_tl
- \_l_siunitx_unit_prefix_current_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix_symbol: {
+ \tl_set_eq:NN \l_siunitx_unit_current_tl
+ \l_siunitx_unit_prefix_current_tl
}
% \end{macrocode}
%\end{macro}
@@ -9809,42 +9851,42 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_qualifier:}
-%\begin{macro}{\_siunitx_unit_format_qualifier_brackets:}
-%\begin{macro}{\_siunitx_unit_format_qualifier_space:}
-%\begin{macro}{\_siunitx_unit_format_qualifier_subscript:}
+%\begin{macro}{\siunitx_unit_format_qualifier:}
+%\begin{macro}{\siunitx_unit_format_qualifier_brackets:}
+%\begin{macro}{\siunitx_unit_format_qualifier_space:}
+%\begin{macro}{\siunitx_unit_format_qualifier_subscript:}
% Three methods for showing qualifiers, each with its own sub-function.
% For the \texttt{space} methods, a warning is set in the property list
% as if there is a power then some brackets will be needed.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { qualifier- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { qualifier- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
\use:c
{
_siunitx_unit_format_qualifier_
- \_l_siunitx_qualifier_mode_tl :
+ \l_siunitx_qualifier_mode_tl :
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier_brackets: {
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_open_tl
- \tl_put_right:NV \_l_siunitx_unit_current_tl \_l_siunitx_tmpa_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_close_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier_brackets: {
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_open_tl
+ \tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_close_tl
}
\char_make_active:N \~
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier_space: {
- \tl_put_right:Nn \_l_siunitx_unit_current_tl { \text { ~ } }
- \tl_put_right:NV \_l_siunitx_unit_current_tl \_l_siunitx_tmpa_tl
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { bracket- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl { true }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier_space: {
+ \tl_put_right:Nn \l_siunitx_unit_current_tl { \text { ~ } }
+ \tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { bracket- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl { true }
}
\char_make_space:N \~
\group_begin:
@@ -9852,10 +9894,10 @@ This work consists of the file siunitx.dtx
\char_make_math_subscript:N \@
\tl_to_lowercase:n {
\group_end:
- \cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier_subscript:
+ \cs_set_protected_nopar:Npn \siunitx_unit_format_qualifier_subscript:
{
- \tl_put_right:No \_l_siunitx_unit_current_tl
- { \exp_after:wN @ \exp_after:wN { \_l_siunitx_tmpa_tl } }
+ \tl_put_right:No \l_siunitx_unit_current_tl
+ { \exp_after:wN @ \exp_after:wN { \l_siunitx_tmpa_tl } }
}
}
% \end{macrocode}
@@ -9864,52 +9906,52 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_sorted:}
+%\begin{macro}{\siunitx_unit_format_sorted:}
% For when the powers are sorted with the positive ones first. The only
% slight issue is making sure that the additional space is included
% between the two units, if needed.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_sorted: {
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl
- \tl_if_empty:NF \_l_siunitx_unit_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_sorted: {
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl
+ \tl_if_empty:NF \l_siunitx_unit_tl
{
- \tl_if_empty:NF \_l_siunitx_unit_denominator_tl
+ \tl_if_empty:NF \l_siunitx_unit_denominator_tl
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_tl
- \_l_siunitx_unit_separator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_tl
+ \l_siunitx_unit_separator_tl
}
}
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_denominator_tl
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_format_symbol:}
-%\begin{macro}[aux]{\_siunitx_unit_format_symbol_aux:}
-%\begin{macro}[aux]{\_siunitx_unit_format_symbol_aux_alt:}
+%\begin{macro}{\siunitx_unit_format_symbol:}
+%\begin{macro}[aux]{\siunitx_unit_format_symbol_aux:}
+%\begin{macro}[aux]{\siunitx_unit_format_symbol_aux_alt:}
% If there is no symbol, something is wrong! The only exception is
% when the code is inside the \cs{si} function (or similar) and there
% is only a prefix with nothing else present at all.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_symbol: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpa_tl
- { \_siunitx_unit_format_symbol_aux: }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_symbol: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
+ { \siunitx_unit_format_symbol_aux: }
{
- \tl_put_right:NV \_l_siunitx_unit_current_tl \_l_siunitx_tmpa_tl
+ \tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_symbol_aux: {
+\cs_new_protected_nopar:Npn \siunitx_unit_format_symbol_aux: {
\msg_error:nn { siunitx } { prefix-only }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_symbol_aux_alt: {
- \intexpr_compare:nNnTF { \_l_siunitx_unit_int } = { 1 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_symbol_aux_alt: {
+ \intexpr_compare:nNnTF { \l_siunitx_unit_int } = { 1 }
{
- \prop_del:Nn \_l_siunitx_unit_prop { prefix-1 }
- \prop_if_empty:NF \_l_siunitx_unit_prop
+ \prop_del:Nn \l_siunitx_unit_prop { prefix-1 }
+ \prop_if_empty:NF \l_siunitx_unit_prop
{ \msg_error:nn { siunitx } { prefix-only } }
}
{ \msg_error:nn { siunitx } { prefix-only } }
@@ -9923,92 +9965,92 @@ This work consists of the file siunitx.dtx
%
% A collection of the internal parts of various user functions.
%
-%\begin{macro}{\_l_siunitx_multi_brackets_bool}
-%\begin{macro}{\_l_siunitx_multi_repeat_bool}
+%\begin{macro}{\l_siunitx_multi_brackets_bool}
+%\begin{macro}{\l_siunitx_multi_repeat_bool}
% Flags for multi-part numbers.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_multi_brackets_bool
-\bool_new:N \_l_siunitx_multi_repeat_bool
+\bool_new:N \l_siunitx_multi_brackets_bool
+\bool_new:N \l_siunitx_multi_repeat_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_product_brackets_bool}
-%\begin{macro}{\_l_siunitx_product_power_bool}
-%\begin{macro}{\_l_siunitx_number_unit_repeat_bool}
+%\begin{macro}{\l_siunitx_product_brackets_bool}
+%\begin{macro}{\l_siunitx_product_power_bool}
+%\begin{macro}{\l_siunitx_number_unit_repeat_bool}
% Flags for product units.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_product_brackets_bool
-\bool_new:N \_l_siunitx_product_power_bool
-\bool_new:N \_l_siunitx_number_unit_repeat_bool
+\bool_new:N \l_siunitx_product_brackets_bool
+\bool_new:N \l_siunitx_product_power_bool
+\bool_new:N \l_siunitx_number_unit_repeat_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_unit_breaks_bool}
-%\begin{macro}{\_l_siunitx_number_unit_separator_tl}
+%\begin{macro}{\l_siunitx_number_unit_breaks_bool}
+%\begin{macro}{\l_siunitx_number_unit_separator_tl}
% Options for printing units or units with numbers.
% \begin{macrocode}
\keys_define:nn { siunitx } {
allow-number-unit-breaks .bool_set:N =
- \_l_siunitx_number_unit_breaks_bool,
+ \l_siunitx_number_unit_breaks_bool,
multi-part-units .choice:,
multi-part-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_multi_brackets_bool
- \bool_set_false:N \_l_siunitx_multi_repeat_bool
+ \bool_set_true:N \l_siunitx_multi_brackets_bool
+ \bool_set_false:N \l_siunitx_multi_repeat_bool
},
multi-part-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_multi_brackets_bool
- \bool_set_true:N \_l_siunitx_multi_repeat_bool
+ \bool_set_false:N \l_siunitx_multi_brackets_bool
+ \bool_set_true:N \l_siunitx_multi_repeat_bool
},
multi-part-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_multi_brackets_bool
- \bool_set_false:N \_l_siunitx_multi_repeat_bool
+ \bool_set_false:N \l_siunitx_multi_brackets_bool
+ \bool_set_false:N \l_siunitx_multi_repeat_bool
},
number-unit-separator .tl_set:N =
- \_l_siunitx_number_unit_separator_tl,
+ \l_siunitx_number_unit_separator_tl,
product-units .choice:,
product-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_product_brackets_bool
- \bool_set_false:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_true:N \l_siunitx_product_brackets_bool
+ \bool_set_false:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
product-units
/ brackets-power .code:n =
{
- \bool_set_true:N \_l_siunitx_product_brackets_bool
- \bool_set_true:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_true:N \l_siunitx_product_brackets_bool
+ \bool_set_true:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
product-units
/ power .code:n =
{
- \bool_set_false:N \_l_siunitx_product_brackets_bool
- \bool_set_true:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_false:N \l_siunitx_product_brackets_bool
+ \bool_set_true:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
product-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_product_brackets_bool
- \bool_set_false:N \_l_siunitx_product_power_bool
- \bool_set_true:N \_l_siunitx_product_repeat_bool
+ \bool_set_false:N \l_siunitx_product_brackets_bool
+ \bool_set_false:N \l_siunitx_product_power_bool
+ \bool_set_true:N \l_siunitx_product_repeat_bool
},
product-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_product_brackets_bool
- \bool_set_false:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_false:N \l_siunitx_product_brackets_bool
+ \bool_set_false:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
}
\keys_set:nn { siunitx } {
@@ -10020,74 +10062,74 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_output:nn}
-%\begin{macro}{\_siunitx_unit_output:Vn}
+%\begin{macro}{\siunitx_unit_output:nn}
+%\begin{macro}{\siunitx_unit_output:Vn}
% For typesetting a unit directly: used by \cs{si} and the \texttt{s}
% column. The second argument is any options to set locally.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_unit_output:nn #1#2 {
- \cs_set_eq:NN \_siunitx_unit_format_symbol_aux:
- \_siunitx_unit_format_symbol_aux_alt:
- \cs_set_eq:NN \_siunitx_unit_format_fraction_symbol_aux:
- \_siunitx_unit_format_fraction_symbol_aux_alt:
- \_siunitx_unit_in:nn {#1} {#2}
- \intexpr_compare:nNnF { \_l_siunitx_unit_prefix_int } = { 0 }
+\cs_new_protected:Npn \siunitx_unit_output:nn #1#2 {
+ \cs_set_eq:NN \siunitx_unit_format_symbol_aux:
+ \siunitx_unit_format_symbol_aux_alt:
+ \cs_set_eq:NN \siunitx_unit_format_fraction_symbol_aux:
+ \siunitx_unit_format_fraction_symbol_aux_alt:
+ \siunitx_unit_in:nn {#1} {#2}
+ \intexpr_compare:nNnF { \l_siunitx_unit_prefix_int } = { 0 }
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \int_use:N \_l_siunitx_unit_prefix_base_int
- ^ { \int_use:N \_l_siunitx_unit_prefix_int }
+ \int_use:N \l_siunitx_unit_prefix_base_int
+ ^ { \int_use:N \l_siunitx_unit_prefix_int }
}
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
- \_siunitx_unit_output_number_sep:
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
+ \siunitx_unit_output_number_sep:
}
- \_siunitx_print:nV { unit } \_l_siunitx_unit_tl
+ \siunitx_print:nV { unit } \l_siunitx_unit_tl
}
-\cs_generate_variant:Nn \_siunitx_unit_output:nn { V }
+\cs_generate_variant:Nn \siunitx_unit_output:nn { V }
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_output_number_sep:}
+%\begin{macro}{\siunitx_unit_output_number_sep:}
% For printing the number separator.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_output_number_sep: {
- \bool_if:NTF \_l_siunitx_number_unit_breaks_bool
+\cs_new_protected_nopar:Npn \siunitx_unit_output_number_sep: {
+ \bool_if:NTF \l_siunitx_number_unit_breaks_bool
{ \allowbreak } { \nobreak }
- \_siunitx_ensuremath:n { \_l_siunitx_number_unit_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_number_unit_separator_tl }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_unit_output_pre_print:}
-%\begin{macro}{\_siunitx_unit_output_print:}
+%\begin{macro}{\siunitx_unit_output_pre_print:}
+%\begin{macro}{\siunitx_unit_output_print:}
% The printing functions for units do some simple tests then
% actually print there output.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_unit_output_pre_print: {
- \tl_if_empty:NF \_l_siunitx_pre_unit_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_output_pre_print: {
+ \tl_if_empty:NF \l_siunitx_pre_unit_tl
{
\nobreak
- \_siunitx_print:nV { unit } \_l_siunitx_pre_unit_tl
+ \siunitx_print:nV { unit } \l_siunitx_pre_unit_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_output_print: {
- \intexpr_compare:nNnF { \_l_siunitx_unit_prefix_int } = { 0 }
+\cs_new_protected_nopar:Npn \siunitx_unit_output_print: {
+ \intexpr_compare:nNnF { \l_siunitx_unit_prefix_int } = { 0 }
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \bool_if:NTF \_l_siunitx_tight_bool
- { { \exp_not:V \_l_siunitx_exponent_product_tl } }
- { { } \exp_not:V \_l_siunitx_exponent_product_tl { } }
- \int_use:N \_l_siunitx_unit_prefix_base_int
- ^ { \int_use:N \_l_siunitx_unit_prefix_int }
+ \bool_if:NTF \l_siunitx_tight_bool
+ { { \exp_not:V \l_siunitx_exponent_product_tl } }
+ { { } \exp_not:V \l_siunitx_exponent_product_tl { } }
+ \int_use:N \l_siunitx_unit_prefix_base_int
+ ^ { \int_use:N \l_siunitx_unit_prefix_int }
}
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
}
- \tl_if_empty:NF \_l_siunitx_unit_tl
+ \tl_if_empty:NF \l_siunitx_unit_tl
{
- \_siunitx_unit_output_number_sep:
- \_siunitx_print:nV { unit } \_l_siunitx_unit_tl
+ \siunitx_unit_output_number_sep:
+ \siunitx_print:nV { unit } \l_siunitx_unit_tl
}
}
% \end{macrocode}
@@ -10099,104 +10141,104 @@ This work consists of the file siunitx.dtx
% Numbers with units have to be formatted in a more complex way than
% simply sticking the two together.
%
-%\begin{macro}{\_l_siunitx_pre_unit_tl}
+%\begin{macro}{\l_siunitx_pre_unit_tl}
% When there is a pre-unit, it gets stored here.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_pre_unit_tl
+\tl_new:N \l_siunitx_pre_unit_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_product_int}
+%\begin{macro}{\l_siunitx_number_product_int}
% Used to count up the number of product tokens in a number.
% \begin{macrocode}
-\int_new:N \_l_siunitx_number_product_int
+\int_new:N \l_siunitx_number_product_int
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_combined:nnnn}
+%\begin{macro}{\siunitx_combined:nnnn}
% Printing numbers and units means first processing the units, then
% handing off this information to the combined number and unit
% processor.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_combined:nnnn #1#2#3#4 {
+\cs_new_protected:Npn \siunitx_combined:nnnn #1#2#3#4 {
\IfNoValueTF {#3}
- { \tl_clear:N \_l_siunitx_pre_unit_tl }
+ { \tl_clear:N \l_siunitx_pre_unit_tl }
{
- \_siunitx_unit_in:nn {#3} {#1}
- \cs_set_eq:NN \_l_siunitx_pre_unit_tl \_l_siunitx_unit_tl
+ \siunitx_unit_in:nn {#3} {#1}
+ \cs_set_eq:NN \l_siunitx_pre_unit_tl \l_siunitx_unit_tl
}
- \cs_set_eq:NN \_l_siunitx_brackets_bool
- \_l_siunitx_multi_brackets_bool
- \_siunitx_combined_unit:nnn {#2} {#4} {#1}
- \_siunitx_combined_output:n {#2}
+ \cs_set_eq:NN \l_siunitx_brackets_bool
+ \l_siunitx_multi_brackets_bool
+ \siunitx_combined_unit:nnn {#2} {#4} {#1}
+ \siunitx_combined_output:n {#2}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_combined_output:n}
+%\begin{macro}{\siunitx_combined_output:n}
% Printing the combination of a number and a unit means checking for
% parsing then parsing the number part.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_combined_output:n #1 {
- \bool_if:NTF \_l_siunitx_number_parse_bool
+\cs_new_protected:Npn \siunitx_combined_output:n #1 {
+ \bool_if:NTF \l_siunitx_number_parse_bool
{
- \tl_clear:N \_l_siunitx_number_out_tl
- \bool_set_false:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_parse:n {#1}
+ \tl_clear:N \l_siunitx_number_out_tl
+ \bool_set_false:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_parse:n {#1}
}
{
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nn { number } { \_siunitx_ensuremath:n {#1} }
- \_siunitx_unit_output_print:
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nn { number } { \siunitx_ensuremath:n {#1} }
+ \siunitx_unit_output_print:
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_combined_unit:nnn}
+%\begin{macro}{\siunitx_combined_unit:nnn}
% In most cases, sorting out the main unit is easy: simply set up for
% printing using \cs{siunitx_unit_in:nn}. However, if there are multiple
% parts to the number, and they are to be combined into the unit, then
% there is more work to do. In either case, the result is the
-% correctly-prepared unit stored in \cs{_l_siunitx_unit_tl}.
+% correctly-prepared unit stored in \cs{l_siunitx_unit_tl}.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_combined_unit:nnn #1#2#3 {
- \bool_if:NTF \_l_siunitx_product_power_bool
+\cs_new_protected:Npn \siunitx_combined_unit:nnn #1#2#3 {
+ \bool_if:NTF \l_siunitx_product_power_bool
{
- \_siunitx_combined_product_count:n {#1}
- \intexpr_compare:nNnTF { \_l_siunitx_number_product_int } > { 0 }
+ \siunitx_combined_product_count:n {#1}
+ \intexpr_compare:nNnTF { \l_siunitx_number_product_int } > { 0 }
{
- \int_incr:N \_l_siunitx_number_product_int
- \tl_set:Nn \_l_siunitx_tmpa_tl {#2}
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { \tothe { \exp_not:V \_l_siunitx_number_product_int } }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \_siunitx_unit_in:Vn \_l_siunitx_tmpa_tl {#3}
+ \int_incr:N \l_siunitx_number_product_int
+ \tl_set:Nn \l_siunitx_tmpa_tl {#2}
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { \tothe { \exp_not:V \l_siunitx_number_product_int } }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \siunitx_unit_in:Vn \l_siunitx_tmpa_tl {#3}
}
- { \_siunitx_unit_in:nn {#2} {#3} }
+ { \siunitx_unit_in:nn {#2} {#3} }
}
- { \_siunitx_unit_in:nn {#2} {#3} }
+ { \siunitx_unit_in:nn {#2} {#3} }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_combined_product_count:n}
-%\begin{macro}[aux]{\_siunitx_combined_product_count_aux:n}
+%\begin{macro}{\siunitx_combined_product_count:n}
+%\begin{macro}[aux]{\siunitx_combined_product_count_aux:n}
% For counting how many products are in a number, so that the unit
% can be adjusted if needed.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_combined_product_count:n #1 {
- \int_zero:N \_l_siunitx_number_product_int
- \tl_set:Nn \_l_siunitx_tmpa_tl {#1}
- \tl_map_function:NN \_l_siunitx_input_product_tl
- \_siunitx_combined_product_count_aux:N
+\cs_new_protected:Npn \siunitx_combined_product_count:n #1 {
+ \int_zero:N \l_siunitx_number_product_int
+ \tl_set:Nn \l_siunitx_tmpa_tl {#1}
+ \tl_map_function:NN \l_siunitx_input_product_tl
+ \siunitx_combined_product_count_aux:N
}
-\cs_set_protected:Npn \_siunitx_combined_product_count_aux:N #1 {
- \tl_if_in:NnT \_l_siunitx_tmpa_tl {#1}
+\cs_new_protected:Npn \siunitx_combined_product_count_aux:N #1 {
+ \tl_if_in:NnT \l_siunitx_tmpa_tl {#1}
{
- \int_incr:N \_l_siunitx_number_product_int
- \tl_remove_in:Nn \_l_siunitx_tmpa_tl {#1}
- \_siunitx_combined_product_count_aux:N #1
+ \int_incr:N \l_siunitx_number_product_int
+ \tl_remove_in:Nn \l_siunitx_tmpa_tl {#1}
+ \siunitx_combined_product_count_aux:N #1
}
}
% \end{macrocode}
@@ -10205,51 +10247,51 @@ This work consists of the file siunitx.dtx
%
%\subsection{Lists of numbers}
%
-%\begin{macro}{\_l_siunitx_list_brackets_bool}
-%\begin{macro}{\_l_siunitx_list_repeat_bool}
+%\begin{macro}{\l_siunitx_list_brackets_bool}
+%\begin{macro}{\l_siunitx_list_repeat_bool}
% For storing the behaviour of list items with respect to units.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_list_brackets_bool
-\bool_new:N \_l_siunitx_list_repeat_bool
+\bool_new:N \l_siunitx_list_brackets_bool
+\bool_new:N \l_siunitx_list_repeat_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_list_current_tl}
-%\begin{macro}{\_l_siunitx_list_tl}
+%\begin{macro}{\l_siunitx_list_current_tl}
+%\begin{macro}{\l_siunitx_list_tl}
% Two token list variables used to store the list for output.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_list_current_tl
-\tl_new:N \_l_siunitx_list_tl
+\tl_new:N \l_siunitx_list_current_tl
+\tl_new:N \l_siunitx_list_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_list_separator_tl}
-%\begin{macro}{\_l_siunitx_list_separator_final_tl}
+%\begin{macro}{\l_siunitx_list_separator_tl}
+%\begin{macro}{\l_siunitx_list_separator_final_tl}
% Settings for lists.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- list-final-separator .tl_set:N = \_l_siunitx_list_separator_final_tl,
- list-separator .tl_set:N = \_l_siunitx_list_separator_tl,
+ list-final-separator .tl_set:N = \l_siunitx_list_separator_final_tl,
+ list-separator .tl_set:N = \l_siunitx_list_separator_tl,
list-units .choice:,
list-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_list_brackets_bool
- \bool_set_false:N \_l_siunitx_list_repeat_bool
+ \bool_set_true:N \l_siunitx_list_brackets_bool
+ \bool_set_false:N \l_siunitx_list_repeat_bool
},
list-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_list_brackets_bool
- \bool_set_true:N \_l_siunitx_list_repeat_bool
+ \bool_set_false:N \l_siunitx_list_brackets_bool
+ \bool_set_true:N \l_siunitx_list_repeat_bool
},
list-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_list_brackets_bool
- \bool_set_false:N \_l_siunitx_list_repeat_bool
+ \bool_set_false:N \l_siunitx_list_brackets_bool
+ \bool_set_false:N \l_siunitx_list_repeat_bool
},
}
\keys_set:nn { siunitx } {
@@ -10261,71 +10303,71 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_list_numbers:n}
-%\begin{macro}{\_siunitx_list_numbers_aux_i:n}
-%\begin{macro}{\_siunitx_list_numbers_aux_ii:n}
+%\begin{macro}{\siunitx_list_numbers:n}
+%\begin{macro}{\siunitx_list_numbers_aux_i:n}
+%\begin{macro}{\siunitx_list_numbers_aux_ii:n}
% Lists of numbers are handled in a very simple fashion. The input
% list is traversed, and the items are simply placed on a list for
% output. This uses the internal function \cs{_siunitx_number_output:n}
% for speed, but does not make any other optimisation. The output list
% also adds the relevant separators.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_list_numbers:n #1 {
- \tl_clear:N \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_preunit_tl
- \_siunitx_list_numbers_aux_i:n {#1}
-}
-\cs_set_protected:Npn \_siunitx_list_numbers_aux_i:n #1 {
- \tl_clear:N \_l_siunitx_list_tl
- \tl_clear:N \_l_siunitx_list_current_tl
- \tl_map_function:nN {#1} \_siunitx_list_numbers_aux_ii:n
- \tl_put_right:NV \_l_siunitx_list_tl
- \_l_siunitx_list_separator_final_tl
- \tl_put_right:NV \_l_siunitx_list_tl \_l_siunitx_list_current_tl
- \tl_use:N \_l_siunitx_list_tl
-}
-\cs_set_protected:Npn \_siunitx_list_numbers_aux_ii:n #1 {
- \tl_if_empty:NTF \_l_siunitx_list_tl
- { \tl_set_eq:NN \_l_siunitx_list_tl \_l_siunitx_list_current_tl }
+\cs_new_protected:Npn \siunitx_list_numbers:n #1 {
+ \tl_clear:N \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_preunit_tl
+ \siunitx_list_numbers_aux_i:n {#1}
+}
+\cs_new_protected:Npn \siunitx_list_numbers_aux_i:n #1 {
+ \tl_clear:N \l_siunitx_list_tl
+ \tl_clear:N \l_siunitx_list_current_tl
+ \tl_map_function:nN {#1} \siunitx_list_numbers_aux_ii:n
+ \tl_put_right:NV \l_siunitx_list_tl
+ \l_siunitx_list_separator_final_tl
+ \tl_put_right:NV \l_siunitx_list_tl \l_siunitx_list_current_tl
+ \tl_use:N \l_siunitx_list_tl
+}
+\cs_new_protected:Npn \siunitx_list_numbers_aux_ii:n #1 {
+ \tl_if_empty:NTF \l_siunitx_list_tl
+ { \tl_set_eq:NN \l_siunitx_list_tl \l_siunitx_list_current_tl }
{
- \tl_put_right:NV \_l_siunitx_list_tl
- \_l_siunitx_list_separator_tl
- \tl_put_right:NV \_l_siunitx_list_tl \_l_siunitx_list_current_tl
+ \tl_put_right:NV \l_siunitx_list_tl
+ \l_siunitx_list_separator_tl
+ \tl_put_right:NV \l_siunitx_list_tl \l_siunitx_list_current_tl
}
- \tl_set:Nn \_l_siunitx_list_current_tl
- { \_siunitx_combined_output:n {#1} }
+ \tl_set:Nn \l_siunitx_list_current_tl
+ { \siunitx_combined_output:n {#1} }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_list_units:nnn}
+%\begin{macro}{\siunitx_list_units:nnn}
% For a list of items with units, the method is to first parse the
% unit when repeating (to save time), then to use the number loop above
% for the actual work. On the other hand, when the unit is only printed
% once life is easier as the normal unit printer can operate.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_list_units:nnn #1#2#3 {
- \bool_if:NTF \_l_siunitx_list_repeat_bool
+\cs_new_protected:Npn \siunitx_list_units:nnn #1#2#3 {
+ \bool_if:NTF \l_siunitx_list_repeat_bool
{
- \_siunitx_unit_in:nn {#2} {#3}
- \_siunitx_list_numbers_aux_i:n {#1}
+ \siunitx_unit_in:nn {#2} {#3}
+ \siunitx_list_numbers_aux_i:n {#1}
}
{
- \bool_if:NT \_l_siunitx_list_brackets_bool
+ \bool_if:NT \l_siunitx_list_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_open_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_open_tl } }
}
- \_siunitx_list_numbers:n {#1}
- \bool_if:NT \_l_siunitx_list_brackets_bool
+ \siunitx_list_numbers:n {#1}
+ \bool_if:NT \l_siunitx_list_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_close_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_close_tl } }
}
- \_siunitx_unit_output_number_sep:
- \_siunitx_unit_output:nn {#2} {#3}
+ \siunitx_unit_output_number_sep:
+ \siunitx_unit_output:nn {#2} {#3}
}
}
% \end{macrocode}
@@ -10333,39 +10375,39 @@ This work consists of the file siunitx.dtx
%
%\subsection{Ranges}
%
-%\begin{macro}{\_l_siunitx_range_brackets_bool}
-%\begin{macro}{\_l_siunitx_range_repeat_bool}
+%\begin{macro}{\l_siunitx_range_brackets_bool}
+%\begin{macro}{\l_siunitx_range_repeat_bool}
% Settings for ranges with units.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_range_brackets_bool
-\bool_new:N \_l_siunitx_range_repeat_bool
+\bool_new:N \l_siunitx_range_brackets_bool
+\bool_new:N \l_siunitx_range_repeat_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_range_phrase_tl}
+%\begin{macro}{\l_siunitx_range_phrase_tl}
% Simple settings for ranges.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- range-phrase .tl_set:N = \_l_siunitx_range_phrase_tl,
+ range-phrase .tl_set:N = \l_siunitx_range_phrase_tl,
range-units .choice:,
range-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_range_brackets_bool
- \bool_set_false:N \_l_siunitx_range_repeat_bool
+ \bool_set_true:N \l_siunitx_range_brackets_bool
+ \bool_set_false:N \l_siunitx_range_repeat_bool
},
range-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_range_brackets_bool
- \bool_set_true:N \_l_siunitx_range_repeat_bool
+ \bool_set_false:N \l_siunitx_range_brackets_bool
+ \bool_set_true:N \l_siunitx_range_repeat_bool
},
range-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_range_brackets_bool
- \bool_set_false:N \_l_siunitx_range_repeat_bool
+ \bool_set_false:N \l_siunitx_range_brackets_bool
+ \bool_set_false:N \l_siunitx_range_repeat_bool
},
}
\keys_set:nn { siunitx } {
@@ -10375,61 +10417,61 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_range_numbers:nn}
-%\begin{macro}{\_siunitx_range_numbers_aux:n}
+%\begin{macro}{\siunitx_range_numbers:nn}
+%\begin{macro}{\siunitx_range_numbers_aux:n}
% A range of numbers. This is more restrictive than the \cs{num}
% function: nothing compound.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_range_numbers:nn #1#2 {
- \_siunitx_range_numbers_aux:n {#1}
- \text { \_l_siunitx_range_phrase_tl }
- \_siunitx_range_numbers_aux:n {#2}
+\cs_new_protected:Npn \siunitx_range_numbers:nn #1#2 {
+ \siunitx_range_numbers_aux:n {#1}
+ \text { \l_siunitx_range_phrase_tl }
+ \siunitx_range_numbers_aux:n {#2}
}
-\cs_set_protected:Npn \_siunitx_range_numbers_aux:n #1 {
- \bool_if:NTF \_l_siunitx_number_parse_bool
+\cs_new_protected:Npn \siunitx_range_numbers_aux:n #1 {
+ \bool_if:NTF \l_siunitx_number_parse_bool
{
- \tl_clear:N \_l_siunitx_number_out_tl
- \tl_clear:N \_l_siunitx_number_out_saved_tl
- \bool_set_false:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_parse:n {#1}
- \bool_if:NT \_l_siunitx_number_compound_bool
+ \tl_clear:N \l_siunitx_number_out_tl
+ \tl_clear:N \l_siunitx_number_out_saved_tl
+ \bool_set_false:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_parse:n {#1}
+ \bool_if:NT \l_siunitx_number_compound_bool
{ \msg_error:nnx { siunitx } { multi-part-range } {#1} }
}
{
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nn { number } {#1}
- \_siunitx_unit_output_print:
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nn { number } {#1}
+ \siunitx_unit_output_print:
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_range_unit:nnnn}
+%\begin{macro}{\siunitx_range_unit:nnnn}
% Unit printing is also simple: basically a past-up job.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_range_unit:nnnn #1#2#3#4 {
- \bool_if:NTF \_l_siunitx_range_repeat_bool
+\cs_new_protected:Npn \siunitx_range_unit:nnnn #1#2#3#4 {
+ \bool_if:NTF \l_siunitx_range_repeat_bool
{
- \_siunitx_unit_in:nn {#1} {#2}
- \_siunitx_range_numbers_aux:n {#3}
- \text { \_l_siunitx_range_phrase_tl }
- \_siunitx_range_numbers_aux:n {#4}
+ \siunitx_unit_in:nn {#1} {#2}
+ \siunitx_range_numbers_aux:n {#3}
+ \text { \l_siunitx_range_phrase_tl }
+ \siunitx_range_numbers_aux:n {#4}
}
{
- \bool_if:NT \_l_siunitx_range_brackets_bool
+ \bool_if:NT \l_siunitx_range_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_open_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_open_tl } }
}
- \_siunitx_range_numbers:nn {#3} {#4}
- \bool_if:NT \_l_siunitx_range_brackets_bool
+ \siunitx_range_numbers:nn {#3} {#4}
+ \bool_if:NT \l_siunitx_range_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_close_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_close_tl } }
}
- \_siunitx_unit_output_number_sep:
- \_siunitx_unit_output:nn {#1} {#2}
+ \siunitx_unit_output_number_sep:
+ \siunitx_unit_output:nn {#1} {#2}
}
}
% \end{macrocode}
@@ -10449,16 +10491,16 @@ This work consists of the file siunitx.dtx
{
\newcolumntype { C } [1]
{ > { \bcolumn #1 \@nil } #1 < { \ecolumn } }
- \cs_set:Npn \_siunitx_tmp:w #1 \NC@do S #2 \q_stop
+ \cs_set:Npn \siunitx_tmp:w #1 \NC@do S #2 \q_stop
{ \toks_set:Nn \NC@list { #1 #2 } }
- \exp_last_unbraced:NV \_siunitx_tmp:w \NC@list \q_stop
+ \exp_last_unbraced:NV \siunitx_tmp:w \NC@list \q_stop
\cs_gundefine:N \NC@find@S
}
{ }
}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_table_rewrite_create:N}
+%\begin{macro}{\siunitx_table_rewrite_create:N}
% The \texttt{s} and \texttt{S} column types are both created using
% the \pkg{array} package, but with the internal macros redefined
% to work with optional argument. First, there is a need to do a
@@ -10467,24 +10509,24 @@ This work consists of the file siunitx.dtx
% arguments do not work correctly. So they are added \enquote{by hand}
% to the appropriate macro.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_rewrite_create:N #1 {
- \tl_set:Nn \_l_siunitx_tmpa_tl { \NC@do #1 }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \NC@list
+\cs_new_protected_nopar:Npn \siunitx_table_rewrite_create:N #1 {
+ \tl_set:Nn \l_siunitx_tmpa_tl { \NC@do #1 }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \NC@list
\newcolumntype {#1} { }
- \toks_set:NV \NC@list \_l_siunitx_tmpa_tl
+ \toks_set:NV \NC@list \l_siunitx_tmpa_tl
\exp_args:NNc \renewcommand * { NC@rewrite@ #1 } [1] [ ]
{
\toks_put_right:Nn \@temptokena
{
- > { \_siunitx_table_collect_begin:Nn #1 {##1} }
+ > { \siunitx_table_collect_begin:Nn #1 {##1} }
c
- < { \_siunitx_table_print: }
+ < { \siunitx_table_print: }
}
\NC@find
}
}
-\AtBeginDocument { \_siunitx_table_rewrite_create:N s }
-\AtBeginDocument { \_siunitx_table_rewrite_create:N S }
+\AtBeginDocument { \siunitx_table_rewrite_create:N s }
+\AtBeginDocument { \siunitx_table_rewrite_create:N S }
% \end{macrocode}
%\end{macro}
%
@@ -10494,112 +10536,112 @@ This work consists of the file siunitx.dtx
% the result. The collection routine tries to ensure that the
% typesetting part only receives real cell contents.
%
-%\begin{macro}{\_l_siunitx_table_collect_tl}
-%\begin{macro}{\_l_siunitx_table_collect_pre_tl}
-%\begin{macro}{\_l_siunitx_table_collect_post_tl}
+%\begin{macro}{\l_siunitx_table_collect_tl}
+%\begin{macro}{\l_siunitx_table_collect_pre_tl}
+%\begin{macro}{\l_siunitx_table_collect_post_tl}
% Three storage areas.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_table_collect_tl
-\tl_new:N \_l_siunitx_table_collect_pre_tl
-\tl_new:N \_l_siunitx_table_collect_post_tl
+\tl_new:N \l_siunitx_table_collect_tl
+\tl_new:N \l_siunitx_table_collect_pre_tl
+\tl_new:N \l_siunitx_table_collect_post_tl
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_number_valid_tl}
+%\begin{macro}{\l_siunitx_number_valid_tl}
% As the \texttt{S} column has to make a judgement about tokens which
% can be part of a number, there is a need to have a list of valid
% tokens.
% \begin{macrocode}
-\tl_new:N \_l_siunitx_number_valid_tl
+\tl_new:N \l_siunitx_number_valid_tl
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_collect_pre_bool}
-%\begin{macro}{\_l_siunitx_table_collect_post_bool}
+%\begin{macro}{\l_siunitx_table_collect_pre_bool}
+%\begin{macro}{\l_siunitx_table_collect_post_bool}
% Flags for having found a number in an \texttt{S} column.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_table_collect_pre_bool
-\bool_new:N \_l_siunitx_table_collect_post_bool
+\bool_new:N \l_siunitx_table_collect_pre_bool
+\bool_new:N \l_siunitx_table_collect_post_bool
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_begin:Nn}
-%\begin{macro}[aux]{\_siunitx_table_collect_begin_s:}
-%\begin{macro}[aux]{\_siunitx_table_collect_begin_S:}
+%\begin{macro}{\siunitx_table_collect_begin:Nn}
+%\begin{macro}[aux]{\siunitx_table_collect_begin_s:}
+%\begin{macro}[aux]{\siunitx_table_collect_begin_S:}
% The collector starts by setting up local options, then clears and
% initialises the storage and testing system.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_table_collect_begin:Nn #1#2 {
+\cs_new_protected:Npn \siunitx_table_collect_begin:Nn #1#2 {
\keys_set:nn { siunitx } {#2}
- \use:c { _siunitx_table_collect_begin_ #1 : }
+ \use:c { siunitx_table_collect_begin_ #1 : }
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_begin_s: {
- \cs_set_eq:NN \_siunitx_table_collect_token:N
- \_siunitx_table_collect_token_s:N
- \cs_set_eq:NN \_siunitx_table_print: \_siunitx_table_print_s:
- \_siunitx_table_collect_init_s:
- \_siunitx_table_collect_get:
+\cs_new_protected_nopar:Npn \siunitx_table_collect_begin_s: {
+ \cs_set_eq:NN \siunitx_table_collect_token:N
+ \siunitx_table_collect_token_s:N
+ \cs_set_eq:NN \siunitx_table_print: \siunitx_table_print_s:
+ \siunitx_table_collect_init_s:
+ \siunitx_table_collect_get:
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_begin_S: {
- \cs_set_eq:NN \_siunitx_table_collect_token:N
- \_siunitx_table_collect_token_S:N
- \cs_set_eq:NN \_siunitx_table_print: \_siunitx_table_print_S:
- \_siunitx_table_collect_init_S:
- \bool_if:NTF \_l_siunitx_number_parse_bool
- { \_siunitx_table_collect_get: }
- { \_siunitx_table_direct: }
+\cs_new_protected_nopar:Npn \siunitx_table_collect_begin_S: {
+ \cs_set_eq:NN \siunitx_table_collect_token:N
+ \siunitx_table_collect_token_S:N
+ \cs_set_eq:NN \siunitx_table_print: \siunitx_table_print_S:
+ \siunitx_table_collect_init_S:
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ { \siunitx_table_collect_get: }
+ { \siunitx_table_direct: }
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_braced:n}
+%\begin{macro}{\siunitx_table_collect_braced:n}
% The collection of braced items depends on the column type. So we
% start of with an empty definition.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_table_collect_braced:n #1 { }
+\cs_new_protected:Npn \siunitx_table_collect_braced:n #1 { }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_expand:N}
+%\begin{macro}{\siunitx_table_collect_expand:N}
% The idea here is to expand content if possible. There are a few
% things to note. Only macros which are not long or protected are
% expanded. There is the possibility that the macro may need the
% contents of the pre-numeral part to be executed, for example see
% \cref{tab:xmpl:calc} in the user part of the documentation.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_table_collect_expand:N #1 {
+\cs_new_protected:Npn \siunitx_table_collect_expand:N #1 {
\cs_if_eq:NNTF #1 \color
{
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
{
- \tl_clear:N \_l_siunitx_number_color_tl
- \tl_clear:N \_l_siunitx_unit_color_tl
- \tl_put_right:Nn \_l_siunitx_table_collect_pre_tl {#1}
+ \tl_clear:N \l_siunitx_number_color_tl
+ \tl_clear:N \l_siunitx_unit_color_tl
+ \tl_put_right:Nn \l_siunitx_table_collect_pre_tl {#1}
}
{
- \bool_set_true:N \_l_siunitx_table_collect_post_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_post_tl {#1}
+ \bool_set_true:N \l_siunitx_table_collect_post_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_post_tl {#1}
}
}
{
- \_siunitx_cs_if_tl:NTF #1
+ \siunitx_cs_if_tl:NTF #1
{
- \tl_use:N \_l_siunitx_table_collect_pre_tl
- \tl_clear:N \_l_siunitx_table_collect_pre_tl
- \cs_set_nopar:Npx \_siunitx_table_collect_next:
- { \exp_not:N \_siunitx_table_collect_get: \exp_not:V #1 }
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \tl_clear:N \l_siunitx_table_collect_pre_tl
+ \cs_set_nopar:Npx \siunitx_table_collect_next:
+ { \exp_not:N \siunitx_table_collect_get: \exp_not:V #1 }
}
{
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
- { \tl_put_right:Nn \_l_siunitx_table_collect_pre_tl {#1} }
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
+ { \tl_put_right:Nn \l_siunitx_table_collect_pre_tl {#1} }
{
- \bool_set_true:N \_l_siunitx_table_collect_post_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_post_tl {#1}
+ \bool_set_true:N \l_siunitx_table_collect_post_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_post_tl {#1}
}
}
}
@@ -10607,8 +10649,8 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_get:}
-%\begin{macro}{\_siunitx_table_collect_get_aux:}
+%\begin{macro}{\siunitx_table_collect_get:}
+%\begin{macro}{\siunitx_table_collect_get_aux:}
% The token collection system first has to check that the next argument
% does not start with an opening-brace character. If it does, the
% testing is skipped and the braced token is stored. Otherwise, a check
@@ -10616,15 +10658,15 @@ This work consists of the file siunitx.dtx
% broken with \pkg{expl3}'s \cs{peek_catcode_ignore_spaces:NTF}, so
% everything is done by hand.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_get: {
- \cs_set_eq:NN \_siunitx_table_collect_next:
- \_siunitx_table_collect_get:
+\cs_new_protected_nopar:Npn \siunitx_table_collect_get: {
+ \cs_set_eq:NN \siunitx_table_collect_next:
+ \siunitx_table_collect_get:
\cs_set_nopar:Npn \peek_execute_branches:
{
\if_catcode:w \exp_not:N \l_peek_token \c_group_begin_token
- \exp_after:wN \_siunitx_table_collect_braced:n
+ \exp_after:wN \siunitx_table_collect_braced:n
\else:
- \exp_after:wN \_siunitx_table_collect_not_braced:N
+ \exp_after:wN \siunitx_table_collect_not_braced:N
\fi:
}
\peek_after:NN \peek_ignore_spaces_execute_branches:
@@ -10633,153 +10675,153 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_init:}
+%\begin{macro}{\siunitx_table_collect_init:}
% The usual spin-out of basics.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_init: {
- \tl_clear:N \_l_siunitx_table_collect_tl
- \tl_clear:N \_l_siunitx_table_collect_pre_tl
- \tl_clear:N \_l_siunitx_table_collect_post_tl
- \bool_set_false:N \_l_siunitx_table_collect_post_bool
+\cs_new_protected_nopar:Npn \siunitx_table_collect_init: {
+ \tl_clear:N \l_siunitx_table_collect_tl
+ \tl_clear:N \l_siunitx_table_collect_pre_tl
+ \tl_clear:N \l_siunitx_table_collect_post_tl
+ \bool_set_false:N \l_siunitx_table_collect_post_bool
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_collect_init_s:}
-%\begin{macro}{\_siunitx_table_collect_init_S:}
+%\begin{macro}{\siunitx_table_collect_init_s:}
+%\begin{macro}{\siunitx_table_collect_init_S:}
% Some type-specific definitions. In the \texttt{S} case, the
% initialisation function for numbers is used to set
-% \cs{_l_siunitx_number_valid_tl} correctly.
+% \cs{l_siunitx_number_valid_tl} correctly.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_init_s: {
- \_siunitx_table_collect_init:
- \bool_set_false:N \_l_siunitx_table_collect_pre_bool
- \cs_set:Npn \_siunitx_table_collect_braced:n ##1
+\cs_new_protected_nopar:Npn \siunitx_table_collect_init_s: {
+ \siunitx_table_collect_init:
+ \bool_set_false:N \l_siunitx_table_collect_pre_bool
+ \cs_set:Npn \siunitx_table_collect_braced:n ##1
{
- \tl_put_right:Nn \_l_siunitx_table_collect_tl { {##1} }
- \_siunitx_table_collect_next:
+ \tl_put_right:Nn \l_siunitx_table_collect_tl { {##1} }
+ \siunitx_table_collect_next:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_init_S: {
- \_siunitx_number_in_init:
- \tl_set:Nx \_l_siunitx_number_valid_tl
+\cs_new_protected_nopar:Npn \siunitx_table_collect_init_S: {
+ \siunitx_number_in_init:
+ \tl_set:Nx \l_siunitx_number_valid_tl
{
- \exp_not:V \_l_siunitx_input_complex_tl
- \exp_not:V \_l_siunitx_input_decimal_tl
- \exp_not:V \_l_siunitx_input_digit_tl
- \exp_not:V \_l_siunitx_input_exponent_tl
- \exp_not:V \_l_siunitx_input_ignore_tl
- \exp_not:V \_l_siunitx_input_uncert_close_tl
- \exp_not:V \_l_siunitx_input_uncert_open_tl
- \exp_not:V \_l_siunitx_input_sign_tl
- \exp_not:V \_l_siunitx_input_symbol_tl
+ \exp_not:V \l_siunitx_input_complex_tl
+ \exp_not:V \l_siunitx_input_decimal_tl
+ \exp_not:V \l_siunitx_input_digit_tl
+ \exp_not:V \l_siunitx_input_exponent_tl
+ \exp_not:V \l_siunitx_input_ignore_tl
+ \exp_not:V \l_siunitx_input_uncert_close_tl
+ \exp_not:V \l_siunitx_input_uncert_open_tl
+ \exp_not:V \l_siunitx_input_sign_tl
+ \exp_not:V \l_siunitx_input_symbol_tl
}
- \bool_set_true:N \_l_siunitx_table_collect_pre_bool
- \cs_set:Npn \_siunitx_table_collect_braced:n ##1
+ \bool_set_true:N \l_siunitx_table_collect_pre_bool
+ \cs_set:Npn \siunitx_table_collect_braced:n ##1
{
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
- { \tl_put_right:Nn \_l_siunitx_table_collect_pre_tl { {##1} } }
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
+ { \tl_put_right:Nn \l_siunitx_table_collect_pre_tl { {##1} } }
{
- \bool_set_true:N \_l_siunitx_table_collect_post_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_post_tl { {##1} }
+ \bool_set_true:N \l_siunitx_table_collect_post_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_post_tl { {##1} }
}
- \_siunitx_table_collect_next:
+ \siunitx_table_collect_next:
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_next:}
+%\begin{macro}{\siunitx_table_collect_next:}
% A holder for the next thing to do.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_next: { }
+\cs_new_protected_nopar:Npn \siunitx_table_collect_next: { }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_newline:}
+%\begin{macro}{\siunitx_table_collect_newline:}
% The end macro needs to come before the new line is called. The
% print function is redefined so that it only actually does stuff once.
% As each cell is a group anyway, there is no need to save the
% definition of \cs{siunitx_table_print:}, as it will re-appear on its
% own.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_newline: {
- \_siunitx_table_print:
- \cs_set_eq:NN \_siunitx_table_print: \prg_do_nothing:
+\cs_new_protected_nopar:Npn \siunitx_table_collect_newline: {
+ \siunitx_table_print:
+ \cs_set_eq:NN \siunitx_table_print: \prg_do_nothing:
\tabularnewline
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_not_braced:N}
-%\begin{macro}[aux]{\_siunitx_table_collect_not_braced_aux_i:N}
-%\begin{macro}[aux]{\_siunitx_table_collect_not_braced_aux_ii:N}
+%\begin{macro}{\siunitx_table_collect_not_braced:N}
+%\begin{macro}[aux]{\siunitx_table_collect_not_braced_aux_i:N}
+%\begin{macro}[aux]{\siunitx_table_collect_not_braced_aux_ii:N}
% A few macros are simply passed through to be executed; this is mainly
% so that the table actually works. The newline function needs its own
% function, which is picked up by hand.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_table_collect_not_braced:N #1 {
+\cs_new_protected:Npn \siunitx_table_collect_not_braced:N #1 {
\token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
{
\token_if_eq_meaning:NNF #1 \tex_unskip:D
- { \_siunitx_table_collect_not_braced_aux_i:N #1 }
+ { \siunitx_table_collect_not_braced_aux_i:N #1 }
}
- \_siunitx_table_collect_next:
+ \siunitx_table_collect_next:
}
-\cs_set_protected:Npn \_siunitx_table_collect_not_braced_aux_i:N #1 {
- \cs_set:Npn \_siunitx_table_collect_not_braced_aux_ii:N ##1
+\cs_new_protected:Npn \siunitx_table_collect_not_braced_aux_i:N #1 {
+ \cs_set:Npn \siunitx_table_collect_not_braced_aux_ii:N ##1
{
\token_if_eq_meaning:NNT #1 ##1
- { \cs_set_eq:NN \_siunitx_table_collect_next: ##1 }
+ { \cs_set_eq:NN \siunitx_table_collect_next: ##1 }
}
\tl_map_function:nN
- { \cs:w \end \endtabular \scan_stop: \_siunitx_table_print: }
- \_siunitx_table_collect_not_braced_aux_ii:N
- \token_if_eq_meaning:NNT \_siunitx_table_collect_next:
- \_siunitx_table_collect_get:
+ { \cs:w \end \endtabular \scan_stop: \siunitx_table_print: }
+ \siunitx_table_collect_not_braced_aux_ii:N
+ \token_if_eq_meaning:NNT \siunitx_table_collect_next:
+ \siunitx_table_collect_get:
{
\token_if_eq_meaning:NNTF #1 \tabularnewline
{
- \cs_set_eq:NN \_siunitx_table_collect_next:
- \_siunitx_table_collect_newline:
+ \cs_set_eq:NN \siunitx_table_collect_next:
+ \siunitx_table_collect_newline:
}
- { \_siunitx_table_collect_token:N #1 }
+ { \siunitx_table_collect_token:N #1 }
}
}
-\cs_set_protected:Npn \_siunitx_table_collect_not_braced_aux_ii:N #1 { }
+\cs_new_protected:Npn \siunitx_table_collect_not_braced_aux_ii:N #1 { }
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_collect_token:N}
-%\begin{macro}{\_siunitx_table_collect_token_s:N}
+%\begin{macro}{\siunitx_table_collect_token:N}
+%\begin{macro}{\siunitx_table_collect_token_s:N}
% For the \texttt{s} column, every token is added to the same storage
% area, so life is simple.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_table_collect_token:N #1 { }
-\cs_set_protected:Npn \_siunitx_table_collect_token_s:N #1 {
- \tl_put_right:Nn \_l_siunitx_table_collect_tl {#1}
+\cs_new_protected:Npn \siunitx_table_collect_token:N #1 { }
+\cs_new_protected:Npn \siunitx_table_collect_token_s:N #1 {
+ \tl_put_right:Nn \l_siunitx_table_collect_tl {#1}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_table_collect_token_S:N}
+%\begin{macro}{\siunitx_table_collect_token_S:N}
% Not so easy for the \texttt{S} column type. If the content is after
% a number, things are easy. On the other hand, if the token might be
% a number, then a check is made. It the token is still unmatched, then
% it is passed on to the expansion handler.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_table_collect_token_S:N #1 {
- \bool_if:NTF \_l_siunitx_table_collect_post_bool
- { \tl_put_right:Nn \_l_siunitx_table_collect_post_tl {#1} }
+\cs_new_protected:Npn \siunitx_table_collect_token_S:N #1 {
+ \bool_if:NTF \l_siunitx_table_collect_post_bool
+ { \tl_put_right:Nn \l_siunitx_table_collect_post_tl {#1} }
{
- \tl_if_in:NnTF \_l_siunitx_number_valid_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_number_valid_tl {#1}
{
- \bool_set_false:N \_l_siunitx_table_collect_pre_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_tl {#1}
+ \bool_set_false:N \l_siunitx_table_collect_pre_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_tl {#1}
}
- { \_siunitx_table_collect_expand:N #1 }
+ { \siunitx_table_collect_expand:N #1 }
}
}
% \end{macrocode}
@@ -10787,55 +10829,55 @@ This work consists of the file siunitx.dtx
%
%\subsection{Table printing: general code}
%
-%\begin{macro}{\_c_siunitx_one_fill_skip}
+%\begin{macro}{\c_siunitx_one_fill_skip}
% A fixed skip of one \texttt{fill}.
% \begin{macrocode}
-\skip_new:N \_c_siunitx_one_fill_skip
-\skip_set:Nn \_c_siunitx_one_fill_skip { \c_zero_skip plus 1 fill }
+\skip_new:N \c_siunitx_one_fill_skip
+\skip_set:Nn \c_siunitx_one_fill_skip { \c_zero_skip plus 1 fill }
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_c_siunitx_table_correction_skip}
-%\begin{macro}{\_siunitx_table_colortbl_correction:}
+%\begin{macro}{\c_siunitx_table_correction_skip}
+%\begin{macro}{\siunitx_table_colortbl_correction:}
% If the package \pkg{colortbl} is loaded, there is a need to allow
% that it changes how centring is carried out.
% \begin{macrocode}
-\skip_new:N \_c_siunitx_table_correction_skip
+\skip_new:N \c_siunitx_table_correction_skip
\AtBeginDocument {
\@ifpackageloaded { colortbl }
{
- \skip_set:Nn \_c_siunitx_table_correction_skip
+ \skip_set:Nn \c_siunitx_table_correction_skip
{ \c_zero_skip plus -0.5 fill }
}
{
- \skip_set:Nn \_c_siunitx_table_correction_skip
+ \skip_set:Nn \c_siunitx_table_correction_skip
{ \c_zero_skip }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_colortbl_correction: {
- \skip_horizontal:n { \_c_siunitx_table_correction_skip }
+\cs_new_protected_nopar:Npn \siunitx_table_colortbl_correction: {
+ \skip_horizontal:n { \c_siunitx_table_correction_skip }
\tex_kern:D \c_zero_skip
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_align_left:n}
-%\begin{macro}{\_siunitx_table_align_right:n}
+%\begin{macro}{\siunitx_table_align_left:n}
+%\begin{macro}{\siunitx_table_align_right:n}
% These are simple shortcuts to keep life clearer in the rest of the
% code. The idea is that the kern acts as a \enquote{stop} for the
% horizontal skip. The correction for \pkg{colortbl} is separate as the
% spacing needs to be explicitly deleted.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_align_left:n #1 {
- \_siunitx_table_colortbl_correction:
+\cs_new_protected_nopar:Npn \siunitx_table_align_left:n #1 {
+ \siunitx_table_colortbl_correction:
\skip_horizontal:n {#1}
\tex_kern:D \c_zero_skip
}
-\cs_set_protected_nopar:Npn \_siunitx_table_align_right:n #1 {
- \skip_horizontal:n { \_c_siunitx_one_fill_skip - #1 }
+\cs_new_protected_nopar:Npn \siunitx_table_align_right:n #1 {
+ \skip_horizontal:n { \c_siunitx_one_fill_skip - #1 }
\tex_kern:D \c_zero_skip
- \_siunitx_table_colortbl_correction:
+ \siunitx_table_colortbl_correction:
}
% \end{macrocode}
%\end{macro}
@@ -10848,10 +10890,10 @@ This work consists of the file siunitx.dtx
% collected input as the argument to the internal part of an \cs{si}
% function.
%
-%\begin{macro}{\_l_siunitx_table_unit_align_skip}
+%\begin{macro}{\l_siunitx_table_unit_align_skip}
% The spacing used is stored as a skip, which needs to be set up first.
% \begin{macrocode}
-\skip_new:N \_l_siunitx_table_unit_align_skip
+\skip_new:N \l_siunitx_table_unit_align_skip
% \end{macrocode}
%\end{macro}
%
@@ -10860,17 +10902,17 @@ This work consists of the file siunitx.dtx
table-unit-alignment .choice:,
table-unit-alignment / center .code:n =
{
- \skip_set:Nn \_l_siunitx_table_unit_align_skip
+ \skip_set:Nn \l_siunitx_table_unit_align_skip
{ \c_zero_skip plus 0.5 fill }
},
table-unit-alignment / left .code:n =
{
- \skip_set:Nn \_l_siunitx_table_unit_align_skip
+ \skip_set:Nn \l_siunitx_table_unit_align_skip
{ \c_zero_skip }
},
table-unit-alignment / right .code:n =
{
- \skip_set:Nn \_l_siunitx_table_unit_align_skip
+ \skip_set:Nn \l_siunitx_table_unit_align_skip
{ \c_zero_skip plus 1 fill }
},
}
@@ -10879,15 +10921,15 @@ This work consists of the file siunitx.dtx
}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_table_print_s:}
+%\begin{macro}{\siunitx_table_print_s:}
% Actually printing an \texttt{s} column is not very complex. There is
% some spacing to do at each side, with the main part of the job being
% to print the material using the internal version of \cs{si}.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_s: {
- \_siunitx_table_align_left:n { \_l_siunitx_table_unit_align_skip }
- \_siunitx_unit_output:Vn \_l_siunitx_table_collect_tl { }
- \_siunitx_table_align_right:n { \_l_siunitx_table_unit_align_skip }
+\cs_new_protected_nopar:Npn \siunitx_table_print_s: {
+ \siunitx_table_align_left:n { \l_siunitx_table_unit_align_skip }
+ \siunitx_unit_output:Vn \l_siunitx_table_collect_tl { }
+ \siunitx_table_align_right:n { \l_siunitx_table_unit_align_skip }
}
% \end{macrocode}
%\end{macro}
@@ -10898,63 +10940,63 @@ This work consists of the file siunitx.dtx
% output then print it. Most of the formatting is done elsewhere, so
% most of the work here is in printing.
%
-%\begin{macro}{\_l_siunitx_table_center_decimal_bool}
+%\begin{macro}{\l_siunitx_table_center_decimal_bool}
% A switch for the basic \enquote{decimal marker in the middle}
% mode.
% \begin{macrocode}
-\bool_new:N \_l_siunitx_table_center_decimal_bool
+\bool_new:N \l_siunitx_table_center_decimal_bool
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_fill_box}
+%\begin{macro}{\l_siunitx_table_fill_box}
% A box which is only ever filled with \texttt{fil} glue, for padding
% out numbers.
% \begin{macrocode}
-\box_new:N \_l_siunitx_table_fill_box
+\box_new:N \l_siunitx_table_fill_box
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_fill_dim}
+%\begin{macro}{\l_siunitx_table_fill_dim}
% Calculating the fill needed can be a bit complicated, so is best
% done using a dedicated dimension.
% \begin{macrocode}
-\dim_new:N \_l_siunitx_table_fill_dim
+\dim_new:N \l_siunitx_table_fill_dim
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_pre_box}
-%\begin{macro}{\_l_siunitx_table_post_box}
+%\begin{macro}{\l_siunitx_table_pre_box}
+%\begin{macro}{\l_siunitx_table_post_box}
% Boxes for the content before and after the numerical part.
% \begin{macrocode}
-\box_new:N \_l_siunitx_table_pre_box
-\box_new:N \_l_siunitx_table_post_box
+\box_new:N \l_siunitx_table_pre_box
+\box_new:N \l_siunitx_table_post_box
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_result_box}
+%\begin{macro}{\l_siunitx_table_result_box}
% The box which is actually needed for printing.
% \begin{macrocode}
-\box_new:N \_l_siunitx_table_result_box
+\box_new:N \l_siunitx_table_result_box
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_decimal_dim}
-%\begin{macro}{\_l_siunitx_table_exponent_dim}
-%\begin{macro}{\_l_siunitx_table_integer_dim}
-%\begin{macro}{\_l_siunitx_table_mantissa_dim}
-%\begin{macro}{\_l_siunitx_table_marker_dim}
-%\begin{macro}{\_l_siunitx_table_result_dim}
-%\begin{macro}{\_l_siunitx_table_uncert_dim}
+%\begin{macro}{\l_siunitx_table_decimal_dim}
+%\begin{macro}{\l_siunitx_table_exponent_dim}
+%\begin{macro}{\l_siunitx_table_integer_dim}
+%\begin{macro}{\l_siunitx_table_mantissa_dim}
+%\begin{macro}{\l_siunitx_table_marker_dim}
+%\begin{macro}{\l_siunitx_table_result_dim}
+%\begin{macro}{\l_siunitx_table_uncert_dim}
% Dimensions for the various model measurements.
% \begin{macrocode}
-\dim_new:N \_l_siunitx_table_decimal_dim
-\dim_new:N \_l_siunitx_table_exponent_dim
-\dim_new:N \_l_siunitx_table_integer_dim
-\dim_new:N \_l_siunitx_table_mantissa_dim
-\dim_new:N \_l_siunitx_table_marker_dim
-\dim_new:N \_l_siunitx_table_result_dim
-\dim_new:N \_l_siunitx_table_uncert_dim
+\dim_new:N \l_siunitx_table_decimal_dim
+\dim_new:N \l_siunitx_table_exponent_dim
+\dim_new:N \l_siunitx_table_integer_dim
+\dim_new:N \l_siunitx_table_mantissa_dim
+\dim_new:N \l_siunitx_table_marker_dim
+\dim_new:N \l_siunitx_table_result_dim
+\dim_new:N \l_siunitx_table_uncert_dim
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -10964,111 +11006,111 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_gap_dim}
+%\begin{macro}{\l_siunitx_table_gap_dim}
% This is used to work out the potential gap between a number and
% any following material.
% \begin{macrocode}
-\dim_new:N \_l_siunitx_table_gap_dim
+\dim_new:N \l_siunitx_table_gap_dim
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_model_prop}
+%\begin{macro}{\l_siunitx_table_model_prop}
% To store the model version of a number, used when reserving space.
% \begin{macrocode}
-\prop_new:N \_l_siunitx_table_model_prop
+\prop_new:N \l_siunitx_table_model_prop
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_text_align_skip}
-%\begin{macro}{\_l_siunitx_table_number_align_skip}
+%\begin{macro}{\l_siunitx_table_text_align_skip}
+%\begin{macro}{\l_siunitx_table_number_align_skip}
% Skips for aligning text and numbers.
% \begin{macrocode}
-\skip_new:N \_l_siunitx_table_number_align_skip
-\skip_new:N \_l_siunitx_table_text_align_skip
+\skip_new:N \l_siunitx_table_number_align_skip
+\skip_new:N \l_siunitx_table_text_align_skip
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_l_siunitx_table_align_post_bool}
-%\begin{macro}{\_l_siunitx_table_auto_bool}
-%\begin{macro}{\_l_siunitx_table_decimal_int}
-%\begin{macro}{\_l_siunitx_table_exponent_int}
-%\begin{macro}{\_l_siunitx_table_integer_int}
-%\begin{macro}{\_l_siunitx_table_uncert_int}
-%\begin{macro}{\_l_siunitx_table_parse_only_bool}
-%\begin{macro}{\_l_siunitx_table_pre_tl}
-%\begin{macro}{\_l_siunitx_table_post_tl}
-%\begin{macro}{\_l_siunitx_table_sign_exponent_bool}
-%\begin{macro}{\_l_siunitx_table_sign_manitssa_bool}
+%\begin{macro}{\l_siunitx_table_align_post_bool}
+%\begin{macro}{\l_siunitx_table_auto_bool}
+%\begin{macro}{\l_siunitx_table_decimal_int}
+%\begin{macro}{\l_siunitx_table_exponent_int}
+%\begin{macro}{\l_siunitx_table_integer_int}
+%\begin{macro}{\l_siunitx_table_uncert_int}
+%\begin{macro}{\l_siunitx_table_parse_only_bool}
+%\begin{macro}{\l_siunitx_table_pre_tl}
+%\begin{macro}{\l_siunitx_table_post_tl}
+%\begin{macro}{\l_siunitx_table_sign_exponent_bool}
+%\begin{macro}{\l_siunitx_table_sign_manitssa_bool}
% As usual, set up the options.
% \begin{macrocode}
\keys_define:nn { siunitx } {
table-align-text-post .bool_set:N
- = \_l_siunitx_table_align_post_bool,
+ = \l_siunitx_table_align_post_bool,
table-number-alignment .choice:,
table-number-alignment /
center .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip plus 0.5 fill }
- \bool_set_false:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_false:N \l_siunitx_table_center_decimal_bool
},
table-number-alignment /
center-decimal-marker .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip plus 0.5 fill }
- \bool_set_true:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_true:N \l_siunitx_table_center_decimal_bool
},
table-number-alignment /
left .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip }
- \bool_set_false:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_false:N \l_siunitx_table_center_decimal_bool
},
table-number-alignment /
right .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip plus 1 fill }
- \bool_set_false:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_false:N \l_siunitx_table_center_decimal_bool
},
table-text-alignment .choice:,
table-text-alignment /
center .code:n =
{
- \skip_set:Nn \_l_siunitx_table_text_align_skip
+ \skip_set:Nn \l_siunitx_table_text_align_skip
{ \c_zero_skip plus 0.5 fill }
},
table-text-alignment /
left .code:n =
{
- \skip_set:Nn \_l_siunitx_table_text_align_skip
+ \skip_set:Nn \l_siunitx_table_text_align_skip
{ \c_zero_skip }
},
table-text-alignment /
right .code:n =
{
- \skip_set:Nn \_l_siunitx_table_text_align_skip
+ \skip_set:Nn \l_siunitx_table_text_align_skip
{ \c_zero_skip plus 1 fill }
},
- table-auto-round .bool_set:N = \_l_siunitx_table_auto_bool,
- table-figures-decimal .int_set:N = \_l_siunitx_table_decimal_int,
+ table-auto-round .bool_set:N = \l_siunitx_table_auto_bool,
+ table-figures-decimal .int_set:N = \l_siunitx_table_decimal_int,
table-figures-exponent .int_set:N =
- \_l_siunitx_table_exponent_int,
- table-figures-integer .int_set:N = \_l_siunitx_table_integer_int,
- table-figures-uncertainty .int_set:N = \_l_siunitx_table_uncert_int ,
+ \l_siunitx_table_exponent_int,
+ table-figures-integer .int_set:N = \l_siunitx_table_integer_int,
+ table-figures-uncertainty .int_set:N = \l_siunitx_table_uncert_int ,
table-parse-only .bool_set:N =
- \_l_siunitx_table_parse_only_bool,
+ \l_siunitx_table_parse_only_bool,
table-space-text-pre .tl_set:N =
- \_l_siunitx_table_pre_tl,
+ \l_siunitx_table_pre_tl,
table-space-text-post .tl_set:N =
- \_l_siunitx_table_post_tl,
+ \l_siunitx_table_post_tl,
table-sign-exponent .bool_set:N =
- \_l_siunitx_table_sign_exponent_bool,
+ \l_siunitx_table_sign_exponent_bool,
table-sign-mantissa .bool_set:N =
- \_l_siunitx_table_sign_mantissa_bool
+ \l_siunitx_table_sign_mantissa_bool
}
\keys_set:nn { siunitx } {
table-align-text-post = true,
@@ -11102,105 +11144,105 @@ This work consists of the file siunitx.dtx
}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_table_format_convert:nn}
+%\begin{macro}{\siunitx_table_format_convert:nn}
% Another special option. This converts a number format in compacted
% form into the various internal settings needed. The function is used
% for the conversion to keep code down.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_format_convert:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpa_tl
- { \int_set:cn { _l_siunitx_table_ #2 _int } { 0 } }
+\cs_new_protected_nopar:Npn \siunitx_table_format_convert:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
+ { \int_set:cn { l_siunitx_table_ #2 _int } { 0 } }
{
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \int_set:cn { _l_siunitx_table_ #2 _int } { \_l_siunitx_tmpa_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \int_set:cn { l_siunitx_table_ #2 _int } { \l_siunitx_tmpa_tl }
}
}
\keys_define:nn { siunitx } {
table-format .code:n =
{
- \_siunitx_number_in_parse:n {#1}
- \_siunitx_table_format_convert:nn { mantissa-integer } { integer }
- \_siunitx_table_format_convert:nn { mantissa-decimal } { decimal }
- \_siunitx_table_format_convert:nn { mantissa-uncertainty }
+ \siunitx_number_in_parse:n {#1}
+ \siunitx_table_format_convert:nn { mantissa-integer } { integer }
+ \siunitx_table_format_convert:nn { mantissa-decimal } { decimal }
+ \siunitx_table_format_convert:nn { mantissa-uncertainty }
{ uncert }
- \_siunitx_table_format_convert:nn { exponent-integer }
+ \siunitx_table_format_convert:nn { exponent-integer }
{ exponent }
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { mantissa-sign }
- { \bool_set_true:N \_l_siunitx_table_sign_mantissa_bool }
- { \bool_set_false:N \_l_siunitx_table_sign_mantissa_bool }
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { exponent-sign }
- { \bool_set_true:N \_l_siunitx_table_sign_mantissa_bool }
- { \bool_set_false:N \_l_siunitx_table_sign_mantissa_bool }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { mantissa-sign }
+ { \bool_set_true:N \l_siunitx_table_sign_mantissa_bool }
+ { \bool_set_false:N \l_siunitx_table_sign_mantissa_bool }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { exponent-sign }
+ { \bool_set_true:N \l_siunitx_table_sign_exponent_bool }
+ { \bool_set_false:N \l_siunitx_table_sign_exponent_bool }
\keys_set:nn { siunitx } { table-number-alignment = center }
},
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_print_S:}
+%\begin{macro}{\siunitx_table_print_S:}
% The main printing function does a simple test: was there anything
% found that counts as a number. If there was, most of the detail
% is handled elsewhere. If there is only test (such as a heading)
% then it can be printed.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S: {
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
+\cs_new_protected_nopar:Npn \siunitx_table_print_S: {
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
{
- \_siunitx_table_align_left:n { \_l_siunitx_table_text_align_skip }
- \tl_use:N \_l_siunitx_table_collect_pre_tl
- \_siunitx_table_align_right:n
- { \_l_siunitx_table_text_align_skip }
+ \siunitx_table_align_left:n { \l_siunitx_table_text_align_skip }
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \siunitx_table_align_right:n
+ { \l_siunitx_table_text_align_skip }
}
{
- \_siunitx_table_align_left:n
- { \_l_siunitx_table_number_align_skip }
- \_siunitx_table_print_S_aux:
- \_siunitx_table_align_right:n
- { \_l_siunitx_table_number_align_skip }
+ \siunitx_table_align_left:n
+ { \l_siunitx_table_number_align_skip }
+ \siunitx_table_print_S_aux:
+ \siunitx_table_align_right:n
+ { \l_siunitx_table_number_align_skip }
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_table_print_S_aux:}
+%\begin{macro}[aux]{\siunitx_table_print_S_aux:}
% The auxiliary function now splits the path. If the number is only
% being parsed, then it is printed with no more fuss. Otherwise, there
% is a second choice based on the alignment approach.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_aux: {
- \bool_if:NTF \_l_siunitx_table_parse_only_bool
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_aux: {
+ \bool_if:NTF \l_siunitx_table_parse_only_bool
{
- \tl_use:N \_l_siunitx_table_collect_pre_tl
- \_siunitx_number_output:V \_l_siunitx_table_collect_tl
- \tl_use:N \_l_siunitx_table_collect_post_tl
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \siunitx_number_output:V \l_siunitx_table_collect_tl
+ \tl_use:N \l_siunitx_table_collect_post_tl
}
{
- \bool_if:NTF \_l_siunitx_table_center_decimal_bool
- { \_siunitx_table_print_S_centered: }
- { \_siunitx_table_print_S_reserved: }
+ \bool_if:NTF \l_siunitx_table_center_decimal_bool
+ { \siunitx_table_print_S_centered: }
+ { \siunitx_table_print_S_reserved: }
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}[aux]{\_siunitx_table_print_S_parse:}
+%\begin{macro}[aux]{\siunitx_table_print_S_parse:}
% A modified version of the number parser for tables.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_parse: {
- \bool_set_false:N \_l_siunitx_error_bool
- \_siunitx_number_in_parse:V \_l_siunitx_table_collect_tl
- \bool_if:NF \_l_siunitx_error_bool
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_parse: {
+ \bool_set_false:N \l_siunitx_error_bool
+ \siunitx_number_in_parse:V \l_siunitx_table_collect_tl
+ \bool_if:NF \l_siunitx_error_bool
{
- \_siunitx_number_process:
- \_siunitx_number_format:
- \_siunitx_number_output_color:
+ \siunitx_number_process:
+ \siunitx_number_format:
+ \siunitx_number_output_color:
}
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_print_S_centered:}
+%\begin{macro}{\siunitx_table_print_S_centered:}
% When centring the decimal marker, the logic is relatively simple.
% First, box up the integer part of the number, the entire number and
% the decimal marker itself. There is then a measurement to see
@@ -11210,312 +11252,312 @@ This work consists of the file siunitx.dtx
% space needed will be equal to the correction required to place notes,
% \emph{etc}.~flush with the number.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered: {
- \_siunitx_table_print_S_centered_ends:
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered: {
+ \siunitx_table_print_S_centered_ends:
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } = { \c_zero_skip }
- { \tl_use:N \_l_siunitx_table_collect_pre_tl }
- { \box_use:N \_l_siunitx_table_pre_box }
- \_siunitx_table_print_S_parse:
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_number_out_prop
+ { \box_wd:N \l_siunitx_table_pre_box } = { \c_zero_skip }
+ { \tl_use:N \l_siunitx_table_collect_pre_tl }
+ { \box_use:N \l_siunitx_table_pre_box }
+ \siunitx_table_print_S_parse:
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_number_out_prop
{ integer } { mantissa }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_number_out_prop
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_number_out_prop
{ marker } { mantissa }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_number_out_prop
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_number_out_prop
{ result } { }
- \box_set_eq:NN \_l_siunitx_table_result_box \_l_siunitx_tmp_box
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_result_dim - \_l_siunitx_table_integer_dim }
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ \box_set_eq:NN \l_siunitx_table_result_box \l_siunitx_tmp_box
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_result_dim - \l_siunitx_table_integer_dim }
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ mantissa-decimal-marker }
{
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_fill_dim - \_l_siunitx_table_marker_dim }
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_fill_dim - \l_siunitx_table_marker_dim }
}
\dim_compare:nNnTF
- { \_l_siunitx_table_integer_dim } > { \_l_siunitx_table_fill_dim }
- { \_siunitx_table_print_S_centered_integer: }
- { \_siunitx_table_print_S_centered_decimal: }
- \bool_if:NTF \_l_siunitx_table_align_post_bool
- { \box_use:N \_l_siunitx_table_post_box }
+ { \l_siunitx_table_integer_dim } > { \l_siunitx_table_fill_dim }
+ { \siunitx_table_print_S_centered_integer: }
+ { \siunitx_table_print_S_centered_decimal: }
+ \bool_if:NTF \l_siunitx_table_align_post_bool
+ { \box_use:N \l_siunitx_table_post_box }
{
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { - \dim_use:N \_l_siunitx_table_fill_dim }
- \skip_horizontal:N \_l_siunitx_table_fill_dim
- \box_use:N \_l_siunitx_table_post_box
- \box_use:N \_l_siunitx_table_fill_box
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { - \dim_use:N \l_siunitx_table_fill_dim }
+ \skip_horizontal:N \l_siunitx_table_fill_dim
+ \box_use:N \l_siunitx_table_post_box
+ \box_use:N \l_siunitx_table_fill_box
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_table_print_S_centered_ends:}
+%\begin{macro}[aux]{\siunitx_table_print_S_centered_ends:}
% Here, the material before and after the numerical content is boxed up.
% The shorter one is then re-boxed so that both sides are the same
% length: this stops the alignment going out.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered_ends: {
- \hbox_set:Nn \_l_siunitx_table_pre_box
- { { \tl_use:N \_l_siunitx_table_collect_pre_tl } }
- \hbox_set:Nn \_l_siunitx_table_post_box
- { \tl_use:N \_l_siunitx_table_collect_post_tl }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered_ends: {
+ \hbox_set:Nn \l_siunitx_table_pre_box
+ { { \tl_use:N \l_siunitx_table_collect_pre_tl } }
+ \hbox_set:Nn \l_siunitx_table_post_box
+ { \tl_use:N \l_siunitx_table_collect_post_tl }
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } >
- { \box_wd:N \_l_siunitx_table_post_box }
+ { \box_wd:N \l_siunitx_table_pre_box } >
+ { \box_wd:N \l_siunitx_table_post_box }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_table_pre_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_table_pre_box }
{
- \hbox_unpack:N \_l_siunitx_table_post_box
+ \hbox_unpack:N \l_siunitx_table_post_box
\tex_hfil:D
}
}
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \box_wd:N \_l_siunitx_table_post_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \box_wd:N \l_siunitx_table_post_box }
{
\tex_hfil:D
- \hbox_unpack:N \_l_siunitx_table_pre_box
+ \hbox_unpack:N \l_siunitx_table_pre_box
}
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}[aux]{\_siunitx_table_print_S_centered_integer:}
-%\begin{macro}[aux]{\_siunitx_table_print_S_centered_decimal:}
+%\begin{macro}[aux]{\siunitx_table_print_S_centered_integer:}
+%\begin{macro}[aux]{\siunitx_table_print_S_centered_decimal:}
% Actually printing the content is a case of calculating a suitable
% filler box, then printing it and the content.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered_integer: {
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_integer_dim - \_l_siunitx_table_fill_dim }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \_l_siunitx_table_fill_dim } { \tex_hfil:D }
- \box_use:N \_l_siunitx_table_result_box
- \box_use:N \_l_siunitx_table_fill_box
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered_integer: {
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_integer_dim - \l_siunitx_table_fill_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \l_siunitx_table_fill_dim } { \tex_hfil:D }
+ \box_use:N \l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_fill_box
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered_decimal: {
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_fill_dim - \_l_siunitx_table_integer_dim }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \_l_siunitx_table_fill_dim } { \tex_hfil:D }
- \box_use:N \_l_siunitx_table_fill_box
- \box_use:N \_l_siunitx_table_result_box
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered_decimal: {
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_fill_dim - \l_siunitx_table_integer_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \l_siunitx_table_fill_dim } { \tex_hfil:D }
+ \box_use:N \l_siunitx_table_fill_box
+ \box_use:N \l_siunitx_table_result_box
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_print_S_reserved:}
+%\begin{macro}{\siunitx_table_print_S_reserved:}
% Sorting out a number with reserved space means checking each part
% in turn. After sorting out the ends, a model number is constructed,
% and this is then used by the various sub-routines to get the spacing
% correct.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved: {
- \dim_zero:N \_l_siunitx_table_gap_dim
- \_siunitx_table_print_S_reserved_ends:
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved: {
+ \dim_zero:N \l_siunitx_table_gap_dim
+ \siunitx_table_print_S_reserved_ends:
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } = { \c_zero_skip }
- { \tl_use:N \_l_siunitx_table_collect_pre_tl }
- { \box_use:N \_l_siunitx_table_pre_box }
- \_siunitx_table_print_S_model_create:
- \bool_if:NT \_l_siunitx_table_auto_bool
+ { \box_wd:N \l_siunitx_table_pre_box } = { \c_zero_skip }
+ { \tl_use:N \l_siunitx_table_collect_pre_tl }
+ { \box_use:N \l_siunitx_table_pre_box }
+ \siunitx_table_print_S_model_create:
+ \bool_if:NT \l_siunitx_table_auto_bool
{
- \int_set:Nn \_l_siunitx_process_precision_int
- { \_l_siunitx_table_decimal_int }
- \tl_set:Nn \_l_siunitx_round_tl { places }
+ \int_set:Nn \l_siunitx_process_precision_int
+ { \l_siunitx_table_decimal_int }
+ \tl_set:Nn \l_siunitx_round_tl { places }
}
- \_siunitx_table_print_S_parse:
+ \siunitx_table_print_S_parse:
\intexpr_compare:nNnTF
- { \_l_siunitx_table_integer_int + \_l_siunitx_table_decimal_int } >
+ { \l_siunitx_table_integer_int + \l_siunitx_table_decimal_int } >
{ 0 }
- { \_siunitx_table_print_S_reserved_mantissa: }
+ { \siunitx_table_print_S_reserved_mantissa: }
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-result }
{
\msg_error:nnx { siunitx } { table-partial-number }
{ a~mantissa }
}
}
- \prop_if_in:NnT \_l_siunitx_number_out_prop { complex-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { complex-result }
{
\msg_error:nnx { siunitx } { table-partial-number }
{ a~complex }
}
- \intexpr_compare:nNnTF { \_l_siunitx_table_exponent_int } > { 0 }
- { \_siunitx_table_print_S_reserved_exponent: }
+ \intexpr_compare:nNnTF { \l_siunitx_table_exponent_int } > { 0 }
+ { \siunitx_table_print_S_reserved_exponent: }
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { exponent-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { exponent-result }
{
\msg_error:nnx { siunitx } { table-partial-number }
{ an~exponent }
}
}
- \bool_if:NTF \_l_siunitx_table_align_post_bool
- { \box_use:N \_l_siunitx_table_post_box }
+ \bool_if:NTF \l_siunitx_table_align_post_bool
+ { \box_use:N \l_siunitx_table_post_box }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \dim_use:N \_l_siunitx_table_gap_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \dim_use:N \l_siunitx_table_gap_dim }
{ \tex_hfil:D }
- \dim_set:Nn \_l_siunitx_table_gap_dim
- { - \dim_use:N \_l_siunitx_table_gap_dim }
- \skip_horizontal:N \_l_siunitx_table_gap_dim
- \box_use:N \_l_siunitx_table_post_box
- \box_use:N \_l_siunitx_table_fill_box
+ \dim_set:Nn \l_siunitx_table_gap_dim
+ { - \dim_use:N \l_siunitx_table_gap_dim }
+ \skip_horizontal:N \l_siunitx_table_gap_dim
+ \box_use:N \l_siunitx_table_post_box
+ \box_use:N \l_siunitx_table_fill_box
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_reserved_ends:}
+%\begin{macro}{\siunitx_table_print_S_reserved_ends:}
% For the reserved case, the two ends are simply boxed up in correctly
% created spaces.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved_ends: {
- \hbox_set:Nn \_l_siunitx_tmp_box { \_l_siunitx_table_pre_tl }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \box_wd:N \_l_siunitx_tmp_box }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved_ends: {
+ \hbox_set:Nn \l_siunitx_tmp_box { \l_siunitx_table_pre_tl }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \box_wd:N \l_siunitx_tmp_box }
{
\tex_hfil:D
- { \tl_use:N \_l_siunitx_table_collect_pre_tl }
+ { \tl_use:N \l_siunitx_table_collect_pre_tl }
}
- \hbox_set:Nn \_l_siunitx_tmp_box { \_l_siunitx_table_post_tl }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set:Nn \l_siunitx_tmp_box { \l_siunitx_table_post_tl }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
{
- \tl_use:N \_l_siunitx_table_collect_post_tl
+ \tl_use:N \l_siunitx_table_collect_post_tl
\tex_hfil:D
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_model_create:}
-%\begin{macro}[aux]{\_siunitx_table_print_S_model_aux:nn}
+%\begin{macro}{\siunitx_table_print_S_model_create:}
+%\begin{macro}[aux]{\siunitx_table_print_S_model_aux:nn}
% A model value is created from the various numbers set up as
% options. The main formatting routine is used to get everything sorted
% out, so that there is no code copying here.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_model_create: {
- \prop_clear:N \_l_siunitx_number_in_prop
- \_siunitx_table_print_S_model_aux:nn { integer } { mantissa-integer }
- \_siunitx_table_print_S_model_aux:nn { decimal } { mantissa-decimal }
- \_siunitx_table_print_S_model_aux:nn { uncert }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_model_create: {
+ \prop_clear:N \l_siunitx_number_in_prop
+ \siunitx_table_print_S_model_aux:nn { integer } { mantissa-integer }
+ \siunitx_table_print_S_model_aux:nn { decimal } { mantissa-decimal }
+ \siunitx_table_print_S_model_aux:nn { uncert }
{ mantissa-uncertainty }
- \_siunitx_table_print_S_model_aux:nn { exponent } { exponent-integer }
+ \siunitx_table_print_S_model_aux:nn { exponent } { exponent-integer }
\intexpr_compare:nNnF
- { \_l_siunitx_table_integer_int + \_l_siunitx_table_decimal_int } =
+ { \l_siunitx_table_integer_int + \l_siunitx_table_decimal_int } =
{ 0 }
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_number_in_prop { mantissa }
{ true }
}
- \intexpr_compare:nNnT { \_l_siunitx_table_decimal_int } > { 0 }
+ \intexpr_compare:nNnT { \l_siunitx_table_decimal_int } > { 0 }
{
- \prop_put:NnV \_l_siunitx_number_in_prop
+ \prop_put:NnV \l_siunitx_number_in_prop
{ mantissa-decimal-marker }
- \_l_siunitx_output_decimal_tl
+ \l_siunitx_output_decimal_tl
}
- \bool_if:NT \_l_siunitx_table_sign_mantissa_bool
- { \prop_put:Nnn \_l_siunitx_number_in_prop { mantissa-sign } { - } }
- \intexpr_compare:nNnT { \_l_siunitx_table_exponent_int } > { 0 }
+ \bool_if:NT \l_siunitx_table_sign_mantissa_bool
+ { \prop_put:Nnn \l_siunitx_number_in_prop { mantissa-sign } { - } }
+ \intexpr_compare:nNnT { \l_siunitx_table_exponent_int } > { 0 }
{
- \bool_if:NT \_l_siunitx_table_sign_exponent_bool
+ \bool_if:NT \l_siunitx_table_sign_exponent_bool
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { exponent-sign }
+ \prop_put:Nnn \l_siunitx_number_in_prop { exponent-sign }
{ - }
}
}
- \_siunitx_number_process:
- \_siunitx_number_format:
- \prop_set_eq:NN \_l_siunitx_table_model_prop
- \_l_siunitx_number_out_prop
+ \siunitx_number_process:
+ \siunitx_number_format:
+ \prop_set_eq:NN \l_siunitx_table_model_prop
+ \l_siunitx_number_out_prop
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_model_aux:nn #1#2 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_model_aux:nn #1#2 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \prg_replicate:nn { \int_use:c { _l_siunitx_table_ #1 _int } }
+ \prg_replicate:nn { \int_use:c { l_siunitx_table_ #1 _int } }
{ 8 }
}
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop {#2} \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_in_prop {#1} { true }
+ \prop_put:NnV \l_siunitx_number_in_prop {#2} \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_in_prop {#1} { true }
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_reserved_mantissa:}
-%\begin{macro}[aux]{\_siunitx_table_print_S_reserved_mantissa_aux:n}
+%\begin{macro}{\siunitx_table_print_S_reserved_mantissa:}
+%\begin{macro}[aux]{\siunitx_table_print_S_reserved_mantissa_aux:n}
% Printing the mantissa is done by measuring the integer part of the
% model and the real number, and padding out if necessary. Everything
% else is straight forward.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved_mantissa: {
- \_siunitx_table_print_S_reserved_mantissa_aux:n { mantissa }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved_mantissa: {
+ \siunitx_table_print_S_reserved_mantissa_aux:n { mantissa }
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ mantissa } { }
- \_siunitx_table_print_S_get_mantissa:Nn
- \_l_siunitx_number_out_prop { }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \_l_siunitx_table_mantissa_dim }
+ \siunitx_table_print_S_get_mantissa:Nn
+ \l_siunitx_number_out_prop { }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \l_siunitx_table_mantissa_dim }
{
- \box_use:N \_l_siunitx_table_fill_box
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \box_use:N \l_siunitx_table_fill_box
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
\tex_hfil:D
}
- \box_use:N \_l_siunitx_table_result_box
- \_siunitx_table_print_S_reserved_uncert:n { mantissa }
+ \box_use:N \l_siunitx_table_result_box
+ \siunitx_table_print_S_reserved_uncert:n { mantissa }
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_mantissa_aux:n #1 {
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_mantissa_aux:n #1 {
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ integer } {#1}
- \_siunitx_table_print_S_get_integer:Nn
- \_l_siunitx_number_out_prop {#1}
- \box_clear:N \_l_siunitx_tmp_box
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+ \siunitx_table_print_S_get_integer:Nn
+ \l_siunitx_number_out_prop {#1}
+ \box_clear:N \l_siunitx_tmp_box
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
}
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \_l_siunitx_table_integer_dim - \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \l_siunitx_table_integer_dim - \box_wd:N \l_siunitx_tmp_box }
{ \tex_hfil:D }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ decimal } {#1}
- \box_clear:N \_l_siunitx_tmp_box
- \_siunitx_table_print_S_get_decimal:Nn
- \_l_siunitx_number_out_prop {#1}
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+ \box_clear:N \l_siunitx_tmp_box
+ \siunitx_table_print_S_get_decimal:Nn
+ \l_siunitx_number_out_prop {#1}
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
}
- \dim_set:Nn \_l_siunitx_table_gap_dim
+ \dim_set:Nn \l_siunitx_table_gap_dim
{
- \dim_use:N \_l_siunitx_table_decimal_dim -
- \box_wd:N \_l_siunitx_tmp_box
+ \dim_use:N \l_siunitx_table_decimal_dim -
+ \box_wd:N \l_siunitx_tmp_box
}
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_print_S_reserved_uncert:n}
-%\begin{macro}[aux]{\_siunitx_table_print_S_reserved_uncert_aux:n}
+%\begin{macro}{\siunitx_table_print_S_reserved_uncert:n}
+%\begin{macro}[aux]{\siunitx_table_print_S_reserved_uncert_aux:n}
% The uncertainty code is generalised for both real and complex parts.
% A lot of the logic is similar to the exponent part (the \cs{pm}
% symbol) or the mantissa (the number measuring). So some of the
% code is shared.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_uncert:n #1 {
- \bool_if:NT \_l_siunitx_uncert_sep_bool
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_uncert:n #1 {
+ \bool_if:NT \l_siunitx_uncert_sep_bool
{
- \intexpr_compare:nNnTF { \_l_siunitx_table_uncert_int } > { 0 }
- { \_siunitx_table_print_S_reserved_uncert_aux:n {#1} }
+ \intexpr_compare:nNnTF { \l_siunitx_table_uncert_int } > { 0 }
+ { \siunitx_table_print_S_reserved_uncert_aux:n {#1} }
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ #1 -uncertainty }
{
\msg_error:nn { siunitx } { table-partial-number }
@@ -11524,109 +11566,109 @@ This work consists of the file siunitx.dtx
}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_uncert_aux:n #1 {
- \_siunitx_table_print_S_reserved_uncert_pm:n {#1}
- \_siunitx_table_print_S_reserved_mantissa_aux:n { #1 -uncertainty }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_uncert_aux:n #1 {
+ \siunitx_table_print_S_reserved_uncert_pm:n {#1}
+ \siunitx_table_print_S_reserved_mantissa_aux:n { #1 -uncertainty }
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ uncert } {#1}
- \_siunitx_table_print_S_get_uncert:Nn \_l_siunitx_number_out_prop {#1}
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \_l_siunitx_table_uncert_dim }
+ \siunitx_table_print_S_get_uncert:Nn \l_siunitx_number_out_prop {#1}
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \l_siunitx_table_uncert_dim }
{
- \box_use:N \_l_siunitx_table_fill_box
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \box_use:N \l_siunitx_table_fill_box
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
\tex_hfil:D
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_uncert_pm:n #1 {
- \tl_clear:N \_l_siunitx_tmpb_tl
- \_siunitx_number_format_join_uncert_pm:
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { { } \exp_not:V \_l_siunitx_tmpb_tl { } }
- \hbox_set:Nn \_l_siunitx_table_result_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpb_tl }
- \prop_if_in:NnF \_l_siunitx_number_out_prop { #1 -uncertainty }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_uncert_pm:n #1 {
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \siunitx_number_format_join_uncert_pm:
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { } \exp_not:V \l_siunitx_tmpb_tl { } }
+ \hbox_set:Nn \l_siunitx_table_result_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpb_tl }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { #1 -uncertainty }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \box_wd:N \_l_siunitx_table_result_box } { \tex_hfil:D }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \box_wd:N \l_siunitx_table_result_box } { \tex_hfil:D }
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_reserved_exponent:}
-%\begin{macro}[aux]{\_siunitx_table_print_S_reserved_exponent_product:}
+%\begin{macro}{\siunitx_table_print_S_reserved_exponent:}
+%\begin{macro}[aux]{\siunitx_table_print_S_reserved_exponent_product:}
%\begin{macro}[aux]
-% {\_siunitx_table_print_S_reserved_exponent_product_aux_i:}
+% {\siunitx_table_print_S_reserved_exponent_product_aux_i:}
%\begin{macro}[aux]
-% {\_siunitx_table_print_S_reserved_exponent_product_aux_ii:}
+% {\siunitx_table_print_S_reserved_exponent_product_aux_ii:}
% Most of the code for the exponent is concerned with getting the
% product sign correct.Other than that, the exponent result is quite
% easy to handle: just print it with some filling.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved_exponent: {
- \dim_zero:N \_l_siunitx_table_gap_dim
- \_siunitx_table_print_S_reserved_exponent_product:
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved_exponent: {
+ \dim_zero:N \l_siunitx_table_gap_dim
+ \siunitx_table_print_S_reserved_exponent_product:
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ exponent } { }
- \_siunitx_table_print_S_get_exponent:Nn
- \_l_siunitx_number_out_prop { }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \_l_siunitx_table_exponent_dim }
+ \siunitx_table_print_S_get_exponent:Nn
+ \l_siunitx_number_out_prop { }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \l_siunitx_table_exponent_dim }
{
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
\tex_hfil:D
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_exponent_product: {
- \tl_clear:N \_l_siunitx_tmpa_tl
- \box_clear:N \_l_siunitx_table_result_box
- \prop_if_in:NnTF \_l_siunitx_table_model_prop { mantissa-result }
- { \_siunitx_table_print_S_reserved_exponent_product_aux_i: }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_exponent_product: {
+ \tl_clear:N \l_siunitx_tmpa_tl
+ \box_clear:N \l_siunitx_table_result_box
+ \prop_if_in:NnTF \l_siunitx_table_model_prop { mantissa-result }
+ { \siunitx_table_print_S_reserved_exponent_product_aux_i: }
{
- \prop_if_in:NnT \_l_siunitx_table_model_prop { complex-result }
- { \_siunitx_table_print_S_reserved_exponent_product_aux_i: }
+ \prop_if_in:NnT \l_siunitx_table_model_prop { complex-result }
+ { \siunitx_table_print_S_reserved_exponent_product_aux_i: }
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_exponent_product_aux_i: {
- \tl_set_eq:NN \_l_siunitx_tmpa_tl \_l_siunitx_exponent_product_tl
- \bool_if:NT \_l_siunitx_tight_bool
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_exponent_product_aux_i: {
+ \tl_set_eq:NN \l_siunitx_tmpa_tl \l_siunitx_exponent_product_tl
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { { } \exp_not:V \_l_siunitx_tmpa_tl { } }
+ \exp_not:N \siunitx_ensuremath:n
+ { { } \exp_not:V \l_siunitx_tmpa_tl { } }
}
- \hbox_set:Nn \_l_siunitx_table_result_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { exponent-result }
+ \hbox_set:Nn \l_siunitx_table_result_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { exponent-result }
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { mantissa-result }
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { complex-result }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { complex-result }
{
- \_siunitx_table_print_S_reserved_exponent_product_aux_ii:
+ \siunitx_table_print_S_reserved_exponent_product_aux_ii:
}
}
}
- { \_siunitx_table_print_S_reserved_exponent_product_aux_ii: }
+ { \siunitx_table_print_S_reserved_exponent_product_aux_ii: }
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_exponent_product_aux_ii: {
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \box_wd:N \_l_siunitx_table_result_box } { \tex_hfil:D }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_exponent_product_aux_ii: {
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \box_wd:N \l_siunitx_table_result_box } { \tex_hfil:D }
}
% \end{macrocode}
%\end{macro}
@@ -11634,106 +11676,106 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_print_S_measure:Nnn}
+%\begin{macro}{\siunitx_table_print_S_measure:Nnn}
% The measuring code recovers whatever is needed into
-% \cs{_l_siunitx_tmpa_tl} (as this is internal code, that is okay).
+% \cs{l_siunitx_tmpa_tl} (as this is internal code, that is okay).
% The content is then boxed up and measured: if there is nothing to do,
% a bit of time can be saved by not boxing up at all.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_measure:Nnn #1#2#3 {
- \use:c { _siunitx_table_print_S_get_ #2 :Nn } #1 {#3}
- \tl_if_empty:NTF \_l_siunitx_tmpa_tl
- { \dim_set:cn { _l_siunitx_table_ #2 _dim } { \c_zero_skip } }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_measure:Nnn #1#2#3 {
+ \use:c { siunitx_table_print_S_get_ #2 :Nn } #1 {#3}
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl
+ { \dim_set:cn { l_siunitx_table_ #2 _dim } { \c_zero_skip } }
{
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
- \dim_set:cn { _l_siunitx_table_ #2 _dim }
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \dim_set:cn { l_siunitx_table_ #2 _dim }
+ { \box_wd:N \l_siunitx_tmp_box }
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_decimal:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_decimal:Nn}
% Grabbing the decimal part is a simple operation.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_decimal:Nn #1#2 {
- \prop_get:NnN #1 { #2 -decimal } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_decimal:Nn #1#2 {
+ \prop_get:NnN #1 { #2 -decimal } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_exponent:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_exponent:Nn}
% Getting the exponent part is quite easy.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_exponent:Nn #1#2 {
- \prop_get:NnN #1 { exponent-result } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_exponent:Nn #1#2 {
+ \prop_get:NnN #1 { exponent-result } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_integer:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_integer:Nn}
% Getting the integer part of a number means that the sign also has be
% considered, even if there is no actual integer. This leas to a
% slightly odd approach here.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_integer:Nn #1#2 {
- \prop_get:NnN #1 { #2 -sign } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
- \prop_get:NnN #1 { #2 -integer } \_l_siunitx_tmpb_tl
- \quark_if_no_value:NT \_l_siunitx_tmpb_tl
- { \tl_clear:N \_l_siunitx_tmpb_tl }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_integer:Nn #1#2 {
+ \prop_get:NnN #1 { #2 -sign } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+ \prop_get:NnN #1 { #2 -integer } \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_mantissa:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_mantissa:Nn}
% The mantissa without any uncertainty is needed by the reserved
% space routine.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_mantissa:Nn #1#2 {
- \prop_get:NnN #1 { mantissa } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_mantissa:Nn #1#2 {
+ \prop_get:NnN #1 { mantissa } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_marker:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_marker:Nn}
% The decimal marker is always going to be boxed up using the
% standard version, not any possible copied value. So the code can be
% kept quite clear.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_get_marker:Nn #1#2 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_marker:Nn #1#2 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_output_decimal_tl }
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_output_decimal_tl }
}
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_result:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_result:Nn}
% Getting the result values is easy.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_get_result:Nn #1#2 {
- \prop_get:NnN #1 { result } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_result:Nn #1#2 {
+ \prop_get:NnN #1 { result } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_table_print_S_get_uncert:Nn}
+%\begin{macro}{\siunitx_table_print_S_get_uncert:Nn}
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_get_uncert:Nn #1#2 {
- \prop_get:NnN #1 { #2 -uncertainty } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_uncert:Nn #1#2 {
+ \prop_get:NnN #1 { #2 -uncertainty } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
}
% \end{macrocode}
%\end{macro}
@@ -11745,154 +11787,154 @@ This work consists of the file siunitx.dtx
% \pkg{dcolumn} can be applied, which requires the decimal marker to
% be made active in math mode.
%
-%\begin{macro}{\_siunitx_table_direct:}
+%\begin{macro}{\siunitx_table_direct:}
% The main part of the system simply makes a choice about the
% methods to use.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_table_direct: {
+\cs_new_protected_nopar:Npn \siunitx_table_direct: {
\m@th
- \bool_if:NTF \_l_siunitx_table_center_decimal_bool
- { \_siunitx_table_direct_centered: }
- { \_siunitx_table_direct_reserved: }
+ \bool_if:NTF \l_siunitx_table_center_decimal_bool
+ { \siunitx_table_direct_centered: }
+ { \siunitx_table_direct_reserved: }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_direct_centered:}
-%\begin{macro}[aux]{\_siunitx_table_direct_centered_aux:N}
-%\begin{macro}{\_siunitx_table_direct_centered_end:}
+%\begin{macro}{\siunitx_table_direct_centered:}
+%\begin{macro}[aux]{\siunitx_table_direct_centered_aux:N}
+%\begin{macro}{\siunitx_table_direct_centered_end:}
% When centring the content about a decimal marker, the trick is
% to collect everything into two boxes and then compare the sizes.
% In that sense this is very similar to the normal method, except that
% it will work with non-numerical input.
% \begin{macrocode}
\char_make_active:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_centered: {
- \cs_set_eq:NN \_siunitx_table_print:
- \_siunitx_table_direct_centered_end:
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_ensuremath:n { \_l_siunitx_output_decimal_tl } }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+\cs_new_protected_nopar:Npn \siunitx_table_direct_centered: {
+ \cs_set_eq:NN \siunitx_table_print:
+ \siunitx_table_direct_centered_end:
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_ensuremath:n { \l_siunitx_output_decimal_tl } }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
{ \tex_hfil:D }
- \hbox_set:Nn \_l_siunitx_table_pre_box
+ \hbox_set:Nn \l_siunitx_table_pre_box
\c_group_begin_token
\c_math_shift_token
- \tl_map_function:NN \_l_siunitx_input_decimal_tl
- \_siunitx_table_direct_centered_aux:N
+ \tl_map_function:NN \l_siunitx_input_decimal_tl
+ \siunitx_table_direct_centered_aux:N
}
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_centered_aux:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_centered_aux:N #1 {
\char_set_lccode:nn { `\@ } { `#1 }
\char_set_mathcode:nn { `#1 } { 32768 }
\tl_to_lowercase:n { \cs_set_nopar:Npn @ }
{
\c_math_shift_token
\c_group_end_token
- \hbox_set:Nn \_l_siunitx_table_post_box
+ \hbox_set:Nn \l_siunitx_table_post_box
\c_group_begin_token
\c_math_shift_token
- \_l_siunitx_output_decimal_tl
+ \l_siunitx_output_decimal_tl
}
}
\char_make_letter:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_centered_end: {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_centered_end: {
\c_math_shift_token
\c_group_end_token
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } >
- { \box_wd:N \_l_siunitx_table_post_box }
+ { \box_wd:N \l_siunitx_table_pre_box } >
+ { \box_wd:N \l_siunitx_table_post_box }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_table_pre_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_table_pre_box }
{
- \hbox_unpack:N \_l_siunitx_table_post_box
+ \hbox_unpack:N \l_siunitx_table_post_box
\tex_hfil:D
}
}
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \box_wd:N \_l_siunitx_table_post_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \box_wd:N \l_siunitx_table_post_box }
{
\tex_hfil:D
- \hbox_unpack:N \_l_siunitx_table_pre_box
+ \hbox_unpack:N \l_siunitx_table_pre_box
}
}
- \box_use:N \_l_siunitx_table_pre_box
- \box_use:N \_l_siunitx_table_post_box
+ \box_use:N \l_siunitx_table_pre_box
+ \box_use:N \l_siunitx_table_post_box
}
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_table_direct_reserved:}
-%\begin{macro}[aux]{\_siunitx_table_direct_reserved_aux:N}
-%\begin{macro}{\_siunitx_table_direct_reserved_end:}
+%\begin{macro}{\siunitx_table_direct_reserved:}
+%\begin{macro}[aux]{\siunitx_table_direct_reserved_aux:N}
+%\begin{macro}{\siunitx_table_direct_reserved_end:}
% The plan here is to box up the entire number using the information
% available about the size of the two parts. Relatively easy,
% but needs a bit of measuring. The first box here does need to use
% \cs{tex_hill:D} as \texttt{fil} glue will not work.
% \begin{macrocode}
\char_make_active:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_reserved: {
- \cs_set_eq:NN \_siunitx_table_print:
- \_siunitx_table_direct_reserved_end:
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { \prg_replicate:nn { \_l_siunitx_table_integer_int } { 8 } }
- \hbox_set:Nn \_l_siunitx_tmp_box
+\cs_new_protected_nopar:Npn \siunitx_table_direct_reserved: {
+ \cs_set_eq:NN \siunitx_table_print:
+ \siunitx_table_direct_reserved_end:
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { \prg_replicate:nn { \l_siunitx_table_integer_int } { 8 } }
+ \hbox_set:Nn \l_siunitx_tmp_box
{
- \_siunitx_ensuremath:n
+ \siunitx_ensuremath:n
{
- \bool_if:NT \_l_siunitx_table_sign_mantissa_bool { - }
- \_l_siunitx_tmpa_tl
+ \bool_if:NT \l_siunitx_table_sign_mantissa_bool { - }
+ \l_siunitx_tmpa_tl
}
}
- \dim_set:Nn \_l_siunitx_table_integer_dim
- { \box_wd:N \_l_siunitx_tmp_box }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { \prg_replicate:nn { \_l_siunitx_table_decimal_int } { 8 } }
- \hbox_set:Nn \_l_siunitx_tmp_box
+ \dim_set:Nn \l_siunitx_table_integer_dim
+ { \box_wd:N \l_siunitx_tmp_box }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { \prg_replicate:nn { \l_siunitx_table_decimal_int } { 8 } }
+ \hbox_set:Nn \l_siunitx_tmp_box
{
- \_siunitx_ensuremath:n
+ \siunitx_ensuremath:n
{
- \_l_siunitx_output_decimal_tl
- \_l_siunitx_tmpa_tl
+ \l_siunitx_output_decimal_tl
+ \l_siunitx_tmpa_tl
}
}
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
{ \tex_hfil:D }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \_l_siunitx_table_integer_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \l_siunitx_table_integer_dim }
\c_group_begin_token
\c_math_shift_token
- \tl_map_function:NN \_l_siunitx_input_decimal_tl
- \_siunitx_table_direct_reserved_aux:N
+ \tl_map_function:NN \l_siunitx_input_decimal_tl
+ \siunitx_table_direct_reserved_aux:N
\tex_hfill:D
}
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_reserved_aux:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_reserved_aux:N #1 {
\char_set_lccode:nn { `\@ } { `#1 }
\char_set_mathcode:nn { `#1 } { 32768 }
\tl_to_lowercase:n { \cs_set_nopar:Npn @ }
{
\c_math_shift_token
\c_group_end_token
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
\c_group_begin_token
\c_math_shift_token
- \_l_siunitx_output_decimal_tl
+ \l_siunitx_output_decimal_tl
}
}
\char_make_letter:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_reserved_end: {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_reserved_end: {
\c_math_shift_token
\tex_hfil:D
\c_group_end_token
- \_siunitx_table_align_left:n { \_l_siunitx_table_number_align_skip }
- \box_use:N \_l_siunitx_table_pre_box
- \box_use:N \_l_siunitx_table_post_box
- \_siunitx_table_align_right:n { \_l_siunitx_table_number_align_skip }
+ \siunitx_table_align_left:n { \l_siunitx_table_number_align_skip }
+ \box_use:N \l_siunitx_table_pre_box
+ \box_use:N \l_siunitx_table_post_box
+ \siunitx_table_align_right:n { \l_siunitx_table_number_align_skip }
}
% \end{macrocode}
%\end{macro}
@@ -11905,11 +11947,11 @@ This work consists of the file siunitx.dtx
% problems. First, the symbols need to work in math and in text mode.
% Second, the user needs to be able to adjust each symbol.
%
-%\begin{macro}{\_l_siunitx_redefine_symbols_bool}
+%\begin{macro}{\l_siunitx_redefine_symbols_bool}
% Only one setting applies here!
% \begin{macrocode}
\keys_define:nn { siunitx } {
- redefine-symbols .bool_set:N = \_l_siunitx_redefine_symbols_bool,
+ redefine-symbols .bool_set:N = \l_siunitx_redefine_symbols_bool,
}
\keys_set:nn { siunitx } {
redefine-symbols = true
@@ -11921,7 +11963,7 @@ This work consists of the file siunitx.dtx
% that there are no clashes.
% \begin{macrocode}
\AtBeginDocument {
- \bool_if:NT \_l_siunitx_redefine_symbols_bool
+ \bool_if:NT \l_siunitx_redefine_symbols_bool
{
\@ifpackageloaded { textcomp }
{
@@ -11954,13 +11996,13 @@ This work consists of the file siunitx.dtx
}
% \end{macrocode}
%
-%\begin{macro}{\_l_siunitx_angstrom_math_tl}
-%\begin{macro}{\_l_siunitx_arcminute_math_tl}
-%\begin{macro}{\_l_siunitx_arcsecond_math_tl}
-%\begin{macro}{\_l_siunitx_celsius_math_tl}
-%\begin{macro}{\_l_siunitx_degree_math_tl}
-%\begin{macro}{\_l_siunitx_micro_math_tl}
-%\begin{macro}{\_l_siunitx_ohm_math_tl}
+%\begin{macro}{\l_siunitx_angstrom_math_tl}
+%\begin{macro}{\l_siunitx_arcminute_math_tl}
+%\begin{macro}{\l_siunitx_arcsecond_math_tl}
+%\begin{macro}{\l_siunitx_celsius_math_tl}
+%\begin{macro}{\l_siunitx_degree_math_tl}
+%\begin{macro}{\l_siunitx_micro_math_tl}
+%\begin{macro}{\l_siunitx_ohm_math_tl}
% The symbol storage macros are created separately for math and text
% mode, although this is all pretty similar. The default definitions use
% what is generally available, except for those for micro, where
@@ -11969,13 +12011,13 @@ This work consists of the file siunitx.dtx
% deals with the case where \cs{mathnormal} has the wrong symbol.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- math-angstrom .tl_set:N = \_l_siunitx_angstrom_math_tl,
- math-arcminute .tl_set:N = \_l_siunitx_arcminute_math_tl,
- math-arcsecond .tl_set:N = \_l_siunitx_arcsecond_math_tl,
- math-celsius .tl_set:N = \_l_siunitx_celsius_math_tl,
- math-degree .tl_set:N = \_l_siunitx_degree_math_tl,
- math-micro .tl_set:N = \_l_siunitx_micro_math_tl,
- math-ohm .tl_set:N = \_l_siunitx_ohm_math_tl
+ math-angstrom .tl_set:N = \l_siunitx_angstrom_math_tl,
+ math-arcminute .tl_set:N = \l_siunitx_arcminute_math_tl,
+ math-arcsecond .tl_set:N = \l_siunitx_arcsecond_math_tl,
+ math-celsius .tl_set:N = \l_siunitx_celsius_math_tl,
+ math-degree .tl_set:N = \l_siunitx_degree_math_tl,
+ math-micro .tl_set:N = \l_siunitx_micro_math_tl,
+ math-ohm .tl_set:N = \l_siunitx_ohm_math_tl
}
\keys_set:nn { siunitx } {
math-angstrom = \text { \AA },
@@ -11983,8 +12025,8 @@ This work consists of the file siunitx.dtx
math-arcsecond = { } ^ { \prime \prime },
math-celsius = { } ^ { \circ } \kern - \scriptspace \mathrm { C },
math-degree = { } ^ { \circ },
- math-micro = \text { \_c_siunitx_mu_tl },
- math-ohm = \text { \ensuremath { \_c_siunitx_omega_tl } },
+ math-micro = \text { \c_siunitx_mu_tl },
+ math-ohm = \text { \ensuremath { \c_siunitx_omega_tl } },
}
% \end{macrocode}
%\end{macro}
@@ -11994,23 +12036,23 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%\end{macro}
-%\begin{macro}{\_l_siunitx_angstrom_text_tl}
-%\begin{macro}{\_l_siunitx_arcminute_text_tl}
-%\begin{macro}{\_l_siunitx_arcsecond_text_tl}
-%\begin{macro}{\_l_siunitx_celsius_text_tl}
-%\begin{macro}{\_l_siunitx_degree_text_tl}
-%\begin{macro}{\_l_siunitx_micro_text_tl}
-%\begin{macro}{\_l_siunitx_ohm_text_tl}
+%\begin{macro}{\l_siunitx_angstrom_text_tl}
+%\begin{macro}{\l_siunitx_arcminute_text_tl}
+%\begin{macro}{\l_siunitx_arcsecond_text_tl}
+%\begin{macro}{\l_siunitx_celsius_text_tl}
+%\begin{macro}{\l_siunitx_degree_text_tl}
+%\begin{macro}{\l_siunitx_micro_text_tl}
+%\begin{macro}{\l_siunitx_ohm_text_tl}
% Text versions are similar.
% \begin{macrocode}
\keys_define:nn { siunitx } {
- text-angstrom .tl_set:N = \_l_siunitx_angstrom_text_tl,
- text-arcminute .tl_set:N = \_l_siunitx_arcminute_text_tl,
- text-arcsecond .tl_set:N = \_l_siunitx_arcsecond_text_tl,
- text-celsius .tl_set:N = \_l_siunitx_celsius_text_tl,
- text-degree .tl_set:N = \_l_siunitx_degree_text_tl,
- text-micro .tl_set:N = \_l_siunitx_micro_text_tl,
- text-ohm .tl_set:N = \_l_siunitx_ohm_text_tl,
+ text-angstrom .tl_set:N = \l_siunitx_angstrom_text_tl,
+ text-arcminute .tl_set:N = \l_siunitx_arcminute_text_tl,
+ text-arcsecond .tl_set:N = \l_siunitx_arcsecond_text_tl,
+ text-celsius .tl_set:N = \l_siunitx_celsius_text_tl,
+ text-degree .tl_set:N = \l_siunitx_degree_text_tl,
+ text-micro .tl_set:N = \l_siunitx_micro_text_tl,
+ text-ohm .tl_set:N = \l_siunitx_ohm_text_tl,
}
\keys_set:nn { siunitx } {
text-angstrom = \AA,
@@ -12019,8 +12061,8 @@ This work consists of the file siunitx.dtx
text-celsius =
\ensuremath { { } ^ { \circ } \kern - \scriptspace \text { C } },
text-degree = \ensuremath { { } ^ { \circ } },
- text-micro = \_c_siunitx_mu_tl ,
- text-ohm = \ensuremath { \_c_siunitx_omega_tl },
+ text-micro = \c_siunitx_mu_tl ,
+ text-ohm = \ensuremath { \c_siunitx_omega_tl },
}
% \end{macrocode}
%\end{macro}
@@ -12031,15 +12073,15 @@ This work consists of the file siunitx.dtx
%\end{macro}
%\end{macro}
%
-%\begin{macro}{\_siunitx_symbol_new:n}
+%\begin{macro}{\siunitx_symbol_new:n}
% For creating the outer symbol macro.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_symbol_new:n #1 {
+\cs_new_protected:Npn \siunitx_symbol_new:n #1 {
\cs_set_protected_nopar:cpn { SIUnitSymbol #1 }
{
\mode_if_math:TF
- { \tl_to_lowercase:n { \use:c { _l_siunitx_ #1 _math_tl } } }
- { \tl_to_lowercase:n { \use:c { _l_siunitx_ #1 _text_tl } } }
+ { \tl_to_lowercase:n { \use:c { l_siunitx_ #1 _math_tl } } }
+ { \tl_to_lowercase:n { \use:c { l_siunitx_ #1 _text_tl } } }
}
}
% \end{macrocode}
@@ -12054,13 +12096,13 @@ This work consists of the file siunitx.dtx
%\begin{macro}{\SIUnitSymbolOhm}
% The wrapper macros are created.
% \begin{macrocode}
-\_siunitx_symbol_new:n { Angstrom }
-\_siunitx_symbol_new:n { Arcminute }
-\_siunitx_symbol_new:n { Arcsecond }
-\_siunitx_symbol_new:n { Celsius }
-\_siunitx_symbol_new:n { Degree }
-\_siunitx_symbol_new:n { Micro }
-\_siunitx_symbol_new:n { Ohm }
+\siunitx_symbol_new:n { Angstrom }
+\siunitx_symbol_new:n { Arcminute }
+\siunitx_symbol_new:n { Arcsecond }
+\siunitx_symbol_new:n { Celsius }
+\siunitx_symbol_new:n { Degree }
+\siunitx_symbol_new:n { Micro }
+\siunitx_symbol_new:n { Ohm }
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -12072,78 +12114,78 @@ This work consists of the file siunitx.dtx
%
%\subsection{Working with other packages}
%
-%\begin{macro}{\_l_siunitx_pgf_link_clist}
-%\begin{macro}{\_siunitx_pgf_link:}
+%\begin{macro}{\l_siunitx_pgf_link_clist}
+%\begin{macro}{\siunitx_pgf_link:}
% Here, the settings used by \pkg{siunitx} are translated into those for
% \pkg{pgf}. Things could be done more efficiently, but the logic would
% be more difficult to follow.
% \begin{macrocode}
-\clist_new:N \_l_siunitx_pgf_link_clist
-\cs_set_protected_nopar:Npn \_siunitx_pgf_link: {
- \clist_clear:N \_l_siunitx_pgf_link_clist
- \tl_if_eq:VnT \_l_siunitx_round_tl { figure }
+\clist_new:N \l_siunitx_pgf_link_clist
+\cs_new_protected_nopar:Npn \siunitx_pgf_link: {
+ \clist_clear:N \l_siunitx_pgf_link_clist
+ \tl_if_eq:VnT \l_siunitx_round_tl { figure }
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist { fixed }
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist { fixed }
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ fixed~zerofill = true }
}
- \clist_put_right:Nx \_l_siunitx_pgf_link_clist
- { precision = \int_use:N \_l_siunitx_process_precision_int }
- \clist_put_right:Nx \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nx \l_siunitx_pgf_link_clist
+ { precision = \int_use:N \l_siunitx_process_precision_int }
+ \clist_put_right:Nx \l_siunitx_pgf_link_clist
{
set~decimal~separator =
- { { \exp_not:V \_l_siunitx_output_decimal_tl } }
+ { { \exp_not:V \l_siunitx_output_decimal_tl } }
}
- \clist_put_right:Nx \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nx \l_siunitx_pgf_link_clist
{
set~thousands~separator =
- { \exp_not:V \_l_siunitx_group_sep_tl }
+ { \exp_not:V \l_siunitx_group_sep_tl }
}
- \bool_if:NTF \_l_siunitx_group_four_bool
+ \bool_if:NTF \l_siunitx_group_four_bool
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ min~exponent~for~1000~sep = 3 }
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ min~exponent~for~1000~sep = 4 }
}
\bool_if:nF
{
- \_l_siunitx_group_decimal_bool ||
- \_l_siunitx_group_integer_bool
+ \l_siunitx_group_decimal_bool ||
+ \l_siunitx_group_integer_bool
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ min~exponent~for~1000~sep = 999 }
}
- \bool_if:NTF \_l_siunitx_process_integer_zero_bool
+ \bool_if:NTF \l_siunitx_process_integer_zero_bool
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ skip~0. = false }
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ skip~0. = true }
}
- \tl_if_eq:VnTF \_l_siunitx_process_sign_tl { + }
+ \tl_if_eq:VnTF \l_siunitx_process_sign_tl { + }
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ showpos = true }
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ showpos = false }
}
\group_begin:
- \cs_set_nopar:Npx \_siunitx_tmp:w
+ \cs_set_nopar:Npx \siunitx_tmp:w
{
\group_end:
\exp_not:N \pgfqkeys
{ /pgf/number~format }
- { \exp_not:V \_l_siunitx_pgf_link_clist }
+ { \exp_not:V \l_siunitx_pgf_link_clist }
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
% \end{macrocode}
%\end{macro}
@@ -12318,26 +12360,26 @@ This work consists of the file siunitx.dtx
% The macros for creating units and so on are in design name space.
% Basically, a set of shuffles for arguments.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \DeclareBinaryPrefix #1#2#3 {
- \_siunitx_declare_prefix:Nnnn #1 {#2} { 2 } {#3}
+\cs_new_protected_nopar:Npn \DeclareBinaryPrefix #1#2#3 {
+ \siunitx_declare_prefix:Nnnn #1 {#2} { 2 } {#3}
}
-\cs_set_protected_nopar:Npn \DeclareSIPostPower #1#2 {
- \_siunitx_declare_power_after:Nn #1 {#2}
+\cs_new_protected_nopar:Npn \DeclareSIPostPower #1#2 {
+ \siunitx_declare_power_after:Nn #1 {#2}
}
-\cs_set_protected_nopar:Npn \DeclareSIPrefix #1#2#3 {
- \_siunitx_declare_prefix:Nnnn #1 {#2} { 10 } {#3}
+\cs_new_protected_nopar:Npn \DeclareSIPrefix #1#2#3 {
+ \siunitx_declare_prefix:Nnnn #1 {#2} { 10 } {#3}
}
-\cs_set_protected_nopar:Npn \DeclareSIPrePower #1#2 {
- \_siunitx_declare_power_before:Nn #1 {#2}
+\cs_new_protected_nopar:Npn \DeclareSIPrePower #1#2 {
+ \siunitx_declare_power_before:Nn #1 {#2}
}
-\cs_set_protected_nopar:Npn \DeclareSIQualifier #1#2 {
- \_siunitx_declare_qualifier:Nn #1 {#2}
+\cs_new_protected_nopar:Npn \DeclareSIQualifier #1#2 {
+ \siunitx_declare_qualifier:Nn #1 {#2}
}
-\cs_set_protected_nopar:Npn \DeclareSIUnit #1#2 {
- \_siunitx_declare_unit:Nnn #1 {#2} { }
+\cs_new_protected_nopar:Npn \DeclareSIUnit #1#2 {
+ \siunitx_declare_unit:Nnn #1 {#2} { }
}
-\cs_set_protected_nopar:Npn \DeclareSIUnitWithOptions #1#2#3 {
- \_siunitx_declare_unit:Nnn #1 {#2} {#3}
+\cs_new_protected_nopar:Npn \DeclareSIUnitWithOptions #1#2#3 {
+ \siunitx_declare_unit:Nnn #1 {#2} {#3}
}
% \end{macrocode}
%\end{macro}
@@ -12362,7 +12404,7 @@ This work consists of the file siunitx.dtx
%\begin{macro}{\SendSettingsToPgf}
% A settings transfer function.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \SendSettingsToPgf { \_siunitx_pgf_link: }
+\cs_new_protected_nopar:Npn \SendSettingsToPgf { \siunitx_pgf_link: }
% \end{macrocode}
%\end{macro}
%
@@ -12378,7 +12420,7 @@ This work consists of the file siunitx.dtx
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_angle_output:nnn #2
+ \siunitx_angle_output:nnn #2
\group_end:
}
% \end{macrocode}
@@ -12392,7 +12434,7 @@ This work consists of the file siunitx.dtx
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_number_output:n {#2}
+ \siunitx_number_output:n {#2}
\group_end:
}
% \end{macrocode}
@@ -12405,7 +12447,7 @@ This work consists of the file siunitx.dtx
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_list_numbers:n {#2}
+ \siunitx_list_numbers:n {#2}
\group_end:
}
% \end{macrocode}
@@ -12419,7 +12461,7 @@ This work consists of the file siunitx.dtx
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_range_numbers:nn {#2} {#3}
+ \siunitx_range_numbers:nn {#2} {#3}
\group_end:
}
% \end{macrocode}
@@ -12433,10 +12475,10 @@ This work consists of the file siunitx.dtx
\NewDocumentCommand \si { o m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_unit_output:nn {#2} { } }
+ { \siunitx_unit_output:nn {#2} { } }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_unit_output:nn {#2} {#1}
+ \siunitx_unit_output:nn {#2} {#1}
}
\group_end:
}
@@ -12453,20 +12495,20 @@ This work consists of the file siunitx.dtx
\NewDocumentCommand \SIlist { o > { \SplitList { ; } } m m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_list_units:nnn {#2} {#3} { } }
+ { \siunitx_list_units:nnn {#2} {#3} { } }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_list_units:nnn {#2} {#3} {#1}
+ \siunitx_list_units:nnn {#2} {#3} {#1}
}
\group_end:
}
\NewDocumentCommand \SIrange { o m m m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
+ { \siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
+ \siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
}
\group_end:
}
@@ -12481,10 +12523,10 @@ This work consists of the file siunitx.dtx
\NewDocumentCommand \SI { o m o m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_combined:nnnn { } {#2} {#3} {#4} }
+ { \siunitx_combined:nnnn { } {#2} {#3} {#4} }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_combined:nnnn {#1} {#2} {#3} {#4}
+ \siunitx_combined:nnnn {#1} {#2} {#3} {#4}
}
\group_end:
}
@@ -12509,7 +12551,7 @@ This work consists of the file siunitx.dtx
% \pkg{hyperref}, and ensure that everything works cleanly and with
% no unnecessary warnings.
%
-%\begin{macro}{\_siunitx_contents_add:N}
+%\begin{macro}{\siunitx_contents_add:N}
% An updated version of \cs{addtocontents} which will ensure that
% everything works properly. Using \cs{token_to_str:N} means that
% there is no problem with the asynchronous nature of TeX's writing
@@ -12523,19 +12565,19 @@ This work consists of the file siunitx.dtx
\cs_set_eq:NN \label \use_none:n
\cs_set_eq:NN \index \use_none:n
\cs_set_eq:NN \glossary\use_none:n
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_contents_add:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_contents_add:N
}
{ \token_to_str:N \@writefile {#1} {#2} }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_contents_add:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_contents_add:N #1 {
\cs_set_nopar:Npn #1 { \token_to_str:N #1 }
}
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\_siunitx_contents_bookmarks:}
+%\begin{macro}{\siunitx_contents_bookmarks:}
% The idea here is two-fold. First, all of the unit macros are set
% up to simply print their literal interpretation: this is hopefully
% good enough for most bookmark situations. Secondly, the document
@@ -12543,16 +12585,16 @@ This work consists of the file siunitx.dtx
% of the input, removes any set up options (which are being ignored)
% and stops \pkg{hyperref} issuing a warning.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \_siunitx_contents_bookmarks: {
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_print_literal_aux:N
+\cs_new_protected_nopar:Npn \siunitx_contents_bookmarks: {
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_print_literal_aux:N
\msg_redirect_name:nnn { LaTeX / xparse } { redefine-command }
{ none }
- \cs_set_eq:NN \num \_siunitx_bookmark_num:w
- \cs_set_eq:NN \numrange \_siunitx_bookmark_numrange:w
- \cs_set_eq:NN \si \_siunitx_bookmark_si:w
- \cs_set_eq:NN \SI \_siunitx_bookmark_SI:w
- \cs_set_eq:NN \SIrange \_siunitx_bookmark_SIrange:w
+ \cs_set_eq:NN \num \siunitx_bookmark_num:w
+ \cs_set_eq:NN \numrange \siunitx_bookmark_numrange:w
+ \cs_set_eq:NN \si \siunitx_bookmark_si:w
+ \cs_set_eq:NN \SI \siunitx_bookmark_SI:w
+ \cs_set_eq:NN \SIrange \siunitx_bookmark_SIrange:w
\cs_set_nopar:Npn \SIUnitSymbolAngstrom { \AA }
\cs_set_nopar:Npn \SIUnitSymbolArcminute { ' }
\cs_set_nopar:Npn \SIUnitSymbolArcsecond { '' }
@@ -12563,23 +12605,23 @@ This work consists of the file siunitx.dtx
}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\_siunitx_bookmark_num:w}
-%\begin{macro}{\_siunitx_bookmark_numrange:w}
-%\begin{macro}{\_siunitx_bookmark_si:w}
-%\begin{macro}{\_siunitx_bookmark_SI:w}
-%\begin{macro}{\_siunitx_bookmark_SIrange:w}
+%\begin{macro}{\siunitx_bookmark_num:w}
+%\begin{macro}{\siunitx_bookmark_numrange:w}
+%\begin{macro}{\siunitx_bookmark_si:w}
+%\begin{macro}{\siunitx_bookmark_SI:w}
+%\begin{macro}{\siunitx_bookmark_SIrange:w}
% To keep things fast, expandable versions of the document commands
% are created only once. These are then used if necessary to remove
% and re-order arguments in an expandable fashion.
% \begin{macrocode}
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_num:w { o m } {#2}
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_numrange:w { o m m }
- { #2 \_l_siunitx_range_phrase_tl #3 }
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_si:w { o m } {#2}
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_SI:w { o m o m }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_num:w { o m } {#2}
+\DeclareExpandableDocumentCommand \siunitx_bookmark_numrange:w { o m m }
+ { #2 \l_siunitx_range_phrase_tl #3 }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_si:w { o m } {#2}
+\DeclareExpandableDocumentCommand \siunitx_bookmark_SI:w { o m o m }
{ \IfNoValueF {#3} {#3} #2 ~ #4 }
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_SIrange:w
- { o m m m } { #2 ~ #4 \_l_siunitx_range_phrase_tl #3 ~ #4 }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_SIrange:w
+ { o m m m } { #2 ~ #4 \l_siunitx_range_phrase_tl #3 ~ #4 }
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -12591,7 +12633,7 @@ This work consists of the file siunitx.dtx
% \begin{macrocode}
\AtBeginDocument {
\@ifpackageloaded { hyperref }
- { \pdfstringdefDisableCommands { \_siunitx_contents_bookmarks: } }
+ { \pdfstringdefDisableCommands { \siunitx_contents_bookmarks: } }
{ }
}
% \end{macrocode}
@@ -12927,8 +12969,8 @@ This work consists of the file siunitx.dtx
%
%\subsection{Strict application of the rules}
%
-%\begin{macro}{\_siunitx_strict_option:n}
-%\begin{macro}[aux]{\_siunitx_strict_option_aux:n}
+%\begin{macro}{\siunitx_strict_option:n}
+%\begin{macro}[aux]{\siunitx_strict_option_aux:n}
% When sticking to the rules closely, a few options are not available.
% \begin{macrocode}
\keys_define:nn { siunitx } {
@@ -12945,7 +12987,7 @@ This work consists of the file siunitx.dtx
parse-units = true,
product-units = repeat,
}
- \_siunitx_strict_option:n
+ \siunitx_strict_option:n
{
bracket-numbers ,
detect-italic ,
@@ -12966,14 +13008,14 @@ This work consists of the file siunitx.dtx
}
}
}
-\_siunitx_option_deactivate:n { strict }
-\cs_set_protected_nopar:Npn \_siunitx_strict_option:n #1 {
- \clist_map_function:nN {#1} \_siunitx_strict_option_aux:n
+\siunitx_option_deactivate:n { strict }
+\cs_new_protected_nopar:Npn \siunitx_strict_option:n #1 {
+ \clist_map_function:nN {#1} \siunitx_strict_option_aux:n
}
-\cs_set_protected_nopar:Npn \_siunitx_strict_option_aux:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_strict_option_aux:n #1 {
\keys_define:nn { siunitx }
{ #1 .code:n =
- { \msg_warning:nnx { _siunitx} { option-not-available } {#1} }
+ { \msg_warning:nnx { siunitx } { option-not-available } {#1} }
}
}
% \end{macrocode}
@@ -12986,41 +13028,41 @@ This work consists of the file siunitx.dtx
% \begin{macrocode}
\keys_define:nn { siunitx } {
load-configurations .code:n =
- { \_siunitx_load_configuration:n {#1} }
+ { \siunitx_load_configuration:n {#1} }
}
% \end{macrocode}
%
-%\begin{macro}{\_siunitx_load_configuration:n}
-%\begin{macro}[aux]{\_siunitx_load_configuration_aux:n}
-%\begin{macro}{\_c_siunitx_configuration_ext_tl}
+%\begin{macro}{\siunitx_load_configuration:n}
+%\begin{macro}[aux]{\siunitx_load_configuration_aux:n}
+%\begin{macro}{\c_siunitx_configuration_ext_tl}
% Loading configuration files is made slightly complex by the need
% to remove spaces in the file names (none of the files contain any at
% all, so this is easy). Secondly, the LaTeX2e \cs{@onefilewithoptions}
% function is used for file loading, as LaTeX3 currently needs the
% LaTeX2e category code stack to keep things sane.
% \begin{macrocode}
-\cs_set_protected:Npn \_siunitx_load_configuration:n #1 {
- \tl_set_rescan:Nnn \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_load_configuration:n #1 {
+ \tl_set_rescan:Nnn \l_siunitx_tmpa_tl
{ \char_make_ignore:N \ } {#1}
- \clist_map_function:NN \_l_siunitx_tmpa_tl
- \_siunitx_load_configuration_aux:n
+ \clist_map_function:NN \l_siunitx_tmpa_tl
+ \siunitx_load_configuration_aux:n
}
-\cs_set_protected:Npn \_siunitx_load_configuration_aux:n #1 {
+\cs_new_protected:Npn \siunitx_load_configuration_aux:n #1 {
\tl_if_empty:nF {#1}
{
\file_if_exist:nTF
- { siunitx- #1 . \_c_siunitx_configuration_ext_tl }
+ { siunitx- #1 . \c_siunitx_configuration_ext_tl }
{
\@onefilewithoptions { siunitx- #1 } [ ] [ ]
- \_c_siunitx_configuration_ext_tl
+ \c_siunitx_configuration_ext_tl
}
{
\msg_error:nnx { siunitx } { unknown-configuration-file } {#1}
}
}
}
-\tl_new:N \_c_siunitx_configuration_ext_tl
-\tl_set:Nn \_c_siunitx_configuration_ext_tl { cfg }
+\tl_new:N \c_siunitx_configuration_ext_tl
+\tl_set:Nn \c_siunitx_configuration_ext_tl { cfg }
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -13028,10 +13070,10 @@ This work consists of the file siunitx.dtx
%
% Load any local configuration file.
% \begin{macrocode}
-\file_if_exist:nT { siunitx . \_c_siunitx_configuration_ext_tl }
+\file_if_exist:nT { siunitx . \c_siunitx_configuration_ext_tl }
{
\@onefilewithoptions { siunitx } [ ] [ ]
- \_c_siunitx_configuration_ext_tl
+ \c_siunitx_configuration_ext_tl
}
% \end{macrocode}
%
@@ -13051,7 +13093,7 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplFile {siunitx-version-1.cfg} {2010/06/07} {2.0c}
+\ProvidesExplFile {siunitx-version-1.cfg} {2010/06/10} {2.0d}
{siunitx: Version 1 settings}
% \end{macrocode}
%
@@ -13694,11 +13736,11 @@ This work consists of the file siunitx.dtx
% \begin{macrocode}
\NewDocumentCommand \newunit { o m m } {
\IfNoValueTF {#1}
- { \_siunitx_declare_unit:Nnn #2 {#3} { } }
- { \_siunitx_declare_unit:Nnn #2 {#3} {#1} }
+ { \siunitx_declare_unit:Nnn #2 {#3} { } }
+ { \siunitx_declare_unit:Nnn #2 {#3} {#1} }
}
-\cs_set_eq:NN \renewunit \newunit
-\cs_set_eq:NN \provideunit \newunit
+\cs_new_eq:NN \renewunit \newunit
+\cs_new_eq:NN \provideunit \newunit
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -13764,10 +13806,10 @@ This work consists of the file siunitx.dtx
% The functions for creating qualifiers are easy to create again.
% \begin{macrocode}
\NewDocumentCommand \newqualifier { m m } {
- \_siunitx_declare_qualifier:Nn #1 {#2}
+ \siunitx_declare_qualifier:Nn #1 {#2}
}
-\cs_set_eq:NN \renewqualifier \newqualifier
-\cs_set_eq:NN \providequalifier \newqualifier
+\cs_new_eq:NN \renewqualifier \newqualifier
+\cs_new_eq:NN \providequalifier \newqualifier
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -14014,15 +14056,15 @@ This work consists of the file siunitx.dtx
%\end{macro}
%
%\begin{macro}{\requiresiconfigs}
-%\begin{macro}{\_siunitx_requireconfig:n}
+%\begin{macro}{\siunitx_requireconfig:n}
% Version one provides this, and it might pop up so should not
% cause errors.
% \begin{macrocode}
\NewDocumentCommand \requiresiconfigs { m } {
\keys_set:nn { siunitx } { load-configurations = version-1 }
- \clist_map_function:nN {#1} \_siunitx_requireconfig:n
+ \clist_map_function:nN {#1} \siunitx_requireconfig:n
}
-\cs_set_protected_nopar:Npn \_siunitx_requireconfig:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_requireconfig:n #1 {
\tl_if_eq:nnT {#1} { synchem }
{ \keys_set:nn { siunitx } { load-configurations = chemistry } }
}
@@ -14041,7 +14083,7 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplFile {siunitx-abbreviations.cfg} {2010/06/07} {2.0c}
+\ProvidesExplFile {siunitx-abbreviations.cfg} {2010/06/10} {2.0d}
{siunitx: Abbreviated units}
% \end{macrocode}
%
@@ -14249,7 +14291,7 @@ This work consists of the file siunitx.dtx
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplFile {siunitx-binary.cfg} {2010/06/07} {2.0c}
+\ProvidesExplFile {siunitx-binary.cfg} {2010/06/10} {2.0d}
{siunitx: Binary units}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/siunitx-abbreviations.cfg b/Master/texmf-dist/tex/latex/siunitx/config/siunitx-abbreviations.cfg
index c317b8970c1..7d66ca50f87 100644
--- a/Master/texmf-dist/tex/latex/siunitx/config/siunitx-abbreviations.cfg
+++ b/Master/texmf-dist/tex/latex/siunitx/config/siunitx-abbreviations.cfg
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesExplFile {siunitx-abbreviations.cfg} {2010/06/07} {2.0c}
+\ProvidesExplFile {siunitx-abbreviations.cfg} {2010/06/10} {2.0d}
{siunitx: Abbreviated units}
\DeclareSIUnit \pA { \pico \ampere }
\DeclareSIUnit \nA { \nano \ampere }
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/siunitx-binary.cfg b/Master/texmf-dist/tex/latex/siunitx/config/siunitx-binary.cfg
index ae339cf9794..297e235fd6c 100644
--- a/Master/texmf-dist/tex/latex/siunitx/config/siunitx-binary.cfg
+++ b/Master/texmf-dist/tex/latex/siunitx/config/siunitx-binary.cfg
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesExplFile {siunitx-binary.cfg} {2010/06/07} {2.0c}
+\ProvidesExplFile {siunitx-binary.cfg} {2010/06/10} {2.0d}
{siunitx: Binary units}
\DeclareBinaryPrefix \kibi { Ki } { 10 }
\DeclareBinaryPrefix \mebi { Mi } { 20 }
diff --git a/Master/texmf-dist/tex/latex/siunitx/config/siunitx-version-1.cfg b/Master/texmf-dist/tex/latex/siunitx/config/siunitx-version-1.cfg
index ee515005a75..ebddd042773 100644
--- a/Master/texmf-dist/tex/latex/siunitx/config/siunitx-version-1.cfg
+++ b/Master/texmf-dist/tex/latex/siunitx/config/siunitx-version-1.cfg
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ---------------------------------------------------------------
%%
-\ProvidesExplFile {siunitx-version-1.cfg} {2010/06/07} {2.0c}
+\ProvidesExplFile {siunitx-version-1.cfg} {2010/06/10} {2.0d}
{siunitx: Version 1 settings}
\keys_set:nn { siunitx }
{ load-configurations = { abbreviations , binary } }
@@ -628,11 +628,11 @@
}
\NewDocumentCommand \newunit { o m m } {
\IfNoValueTF {#1}
- { \_siunitx_declare_unit:Nnn #2 {#3} { } }
- { \_siunitx_declare_unit:Nnn #2 {#3} {#1} }
+ { \siunitx_declare_unit:Nnn #2 {#3} { } }
+ { \siunitx_declare_unit:Nnn #2 {#3} {#1} }
}
-\cs_set_eq:NN \renewunit \newunit
-\cs_set_eq:NN \provideunit \newunit
+\cs_new_eq:NN \renewunit \newunit
+\cs_new_eq:NN \provideunit \newunit
\NewDocumentCommand \newpower { o m m } {
\IfNoValueTF {#1}
{ \DeclareSIPrePower #2 {#3} }
@@ -664,10 +664,10 @@
{ \DeclareBinaryPrefix #2 {#3} {#4} }
}
\NewDocumentCommand \newqualifier { m m } {
- \_siunitx_declare_qualifier:Nn #1 {#2}
+ \siunitx_declare_qualifier:Nn #1 {#2}
}
-\cs_set_eq:NN \renewqualifier \newqualifier
-\cs_set_eq:NN \providequalifier \newqualifier
+\cs_new_eq:NN \renewqualifier \newqualifier
+\cs_new_eq:NN \providequalifier \newqualifier
\DeclareSIPrePower \Square { 2 }
\DeclareSIPrePower \ssquare { 2 }
\DeclareSIUnit \BAR { \bar }
@@ -734,9 +734,9 @@
\DeclareSIUnit \yb { \yocto \barn }
\NewDocumentCommand \requiresiconfigs { m } {
\keys_set:nn { siunitx } { load-configurations = version-1 }
- \clist_map_function:nN {#1} \_siunitx_requireconfig:n
+ \clist_map_function:nN {#1} \siunitx_requireconfig:n
}
-\cs_set_protected_nopar:Npn \_siunitx_requireconfig:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_requireconfig:n #1 {
\tl_if_eq:nnT {#1} { synchem }
{ \keys_set:nn { siunitx } { load-configurations = chemistry } }
}
diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
index 7f7e41f5d48..03faef9490a 100644
--- a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
+++ b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
@@ -14,12 +14,12 @@
%% ---------------------------------------------------------------
%%
\RequirePackage{expl3}
-\ProvidesExplPackage {siunitx} {2010/06/07} {2.0c}
+\ProvidesExplPackage {siunitx} {2010/06/10} {2.0d}
{A comprehensive (SI) units package}
\msg_set:nnnn { siunitx } { incompatible-package }
{ Package~'#1'~incompatible. }
{ The~#1~package~and~siunitx~are~incompatible. }
-\cs_set_protected_nopar:Npn \_siunitx_load_check:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_load_check:n #1 {
\group_begin:
\@ifpackageloaded {#1}
{ \msg_error:nnx { siunitx } { incompatible-package } {#1} }
@@ -28,30 +28,30 @@
}
\clist_map_function:nN
{ SIunits , sistyle , siunits , SIstyle , unitsdef , fancyunits }
- \_siunitx_load_check:n
+ \siunitx_load_check:n
\AtBeginDocument {
\clist_map_function:nN { SIunits , sistyle , siunits , SIstyle }
- \_siunitx_load_check:n
+ \siunitx_load_check:n
}
\RequirePackage{ amstext , array , l3keys2e }
-\cs_set:Npn \_siunitx_tmp:w { }
-\bool_new:N \_l_siunitx_tmp_bool
-\box_new:N \_l_siunitx_tmp_box
-\int_new:N \_l_siunitx_tmp_int
-\tl_new:N \_l_siunitx_tmpa_tl
-\tl_new:N \_l_siunitx_tmpb_tl
-\bool_new:N \_l_siunitx_error_bool
-\cs_set_protected:Npn \_siunitx_error:nxx #1#2#3 {
- \bool_set_true:N \_l_siunitx_error_bool
+\cs_new:Npn \siunitx_tmp:w { }
+\bool_new:N \l_siunitx_tmp_bool
+\box_new:N \l_siunitx_tmp_box
+\int_new:N \l_siunitx_tmp_int
+\tl_new:N \l_siunitx_tmpa_tl
+\tl_new:N \l_siunitx_tmpb_tl
+\bool_new:N \l_siunitx_error_bool
+\cs_new_protected:Npn \siunitx_error:nxx #1#2#3 {
+ \bool_set_true:N \l_siunitx_error_bool
\msg_error:nnxx { siunitx } {#1} {#2} {#3}
}
-\cs_set_protected:Npn \_siunitx_error:nx #1#2 {
- \_siunitx_error:nxx {#1} {#2} { }
+\cs_new_protected:Npn \siunitx_error:nx #1#2 {
+ \siunitx_error:nxx {#1} {#2} { }
}
-\cs_set_protected:Npn \_siunitx_error:n #1 {
- \_siunitx_error:nxx {#1} { } { }
+\cs_new_protected:Npn \siunitx_error:n #1 {
+ \siunitx_error:nxx {#1} { } { }
}
-\cs_generate_variant:Nn \_siunitx_error:nx { nV }
+\cs_generate_variant:Nn \siunitx_error:nx { nV }
\AtBeginDocument {
\cs_if_free:cT { T@TS1 }
{
@@ -59,181 +59,181 @@
\DeclareFontSubstitution { TS1 } { cmr } { m } { n }
}
}
-\DeclareTextSymbolDefault \_c_siunitx_minus_tl { TS1 }
-\DeclareTextSymbol \_c_siunitx_minus_tl { TS1 } { 61 }
-\DeclareTextSymbol \_c_siunitx_mu_tl { TS1 } { 181 }
-\DeclareTextSymbolDefault \_c_siunitx_mu_tl { TS1 }
-\tl_new:N \_c_siunitx_omega_tl
-\tl_set:Nn \_c_siunitx_omega_tl { \Omega }
+\DeclareTextSymbolDefault \c_siunitx_minus_tl { TS1 }
+\DeclareTextSymbol \c_siunitx_minus_tl { TS1 } { 61 }
+\DeclareTextSymbol \c_siunitx_mu_tl { TS1 } { 181 }
+\DeclareTextSymbolDefault \c_siunitx_mu_tl { TS1 }
+\tl_new:N \c_siunitx_omega_tl
+\tl_set:Nn \c_siunitx_omega_tl { \Omega }
\AtBeginDocument {
\cs_if_exist:NT \upOmega
- { \tl_set:Nn \_c_siunitx_omega_tl { \upOmega } }
-}
-\cs_set_protected:Npn \_siunitx_tl_put_left_math:Nn #1#2 {
- \tl_put_left:Nn #1 { \_siunitx_ensuremath:n {#2} }
-}
-\cs_generate_variant:Nn \_siunitx_tl_put_left_math:Nn { NV }
-\cs_generate_variant:Nn \_siunitx_tl_put_left_math:Nn { cV }
-\cs_set_protected:Npn \_siunitx_tl_put_right_math:Nn #1#2 {
- \tl_put_right:Nn #1 { \_siunitx_ensuremath:n {#2} }
-}
-\cs_generate_variant:Nn \_siunitx_tl_put_right_math:Nn { NV }
-\cs_generate_variant:Nn \_siunitx_tl_put_right_math:Nn { cV }
-\seq_new:N \_c_siunitx_old_options_seq
-\cs_set_protected_nopar:Npn \_siunitx_tmp:w #1 {
- \seq_put_right:Nx \_c_siunitx_old_options_seq { \tl_to_str:n {#1} }
-}
-\_siunitx_tmp:w { addsign }
-\_siunitx_tmp:w { allowlitunits }
-\_siunitx_tmp:w { allowoptarg }
-\_siunitx_tmp:w { allowzeroexp }
-\_siunitx_tmp:w { alsoload }
-\_siunitx_tmp:w { angformat }
-\_siunitx_tmp:w { anglesep }
-\_siunitx_tmp:w { astroang }
-\_siunitx_tmp:w { closeerr }
-\_siunitx_tmp:w { closrfrac }
-\_siunitx_tmp:w { closerange }
-\_siunitx_tmp:w { colour }
-\_siunitx_tmp:w { colorall }
-\_siunitx_tmp:w { colourall }
-\_siunitx_tmp:w { colorneg }
-\_siunitx_tmp:w { colourneg }
-\_siunitx_tmp:w { colourunits }
-\_siunitx_tmp:w { colourunits }
-\_siunitx_tmp:w { colorvalues }
-\_siunitx_tmp:w { colourvalues }
-\_siunitx_tmp:w { decimalsymbol }
-\_siunitx_tmp:w { debug }
-\_siunitx_tmp:w { detectdisplay }
-\_siunitx_tmp:w { digitsep }
-\_siunitx_tmp:w { dp }
-\_siunitx_tmp:w { emulate }
-\_siunitx_tmp:w { errspace }
-\_siunitx_tmp:w { eVcorra }
-\_siunitx_tmp:w { eVcorrb }
-\_siunitx_tmp:w { expbase }
-\_siunitx_tmp:w { expproduct }
-\_siunitx_tmp:w { fixdp }
-\_siunitx_tmp:w { fixsf }
-\_siunitx_tmp:w { fraction }
-\_siunitx_tmp:w { inlinebold }
-\_siunitx_tmp:w { locale }
-\_siunitx_tmp:w { loctolang }
-\_siunitx_tmp:w { log }
-\_siunitx_tmp:w { load }
-\_siunitx_tmp:w { mathOmega }
-\_siunitx_tmp:w { mathcelsius }
-\_siunitx_tmp:w { mathdegree }
-\_siunitx_tmp:w { mathminute }
-\_siunitx_tmp:w { mathmu }
-\_siunitx_tmp:w { mathringA }
-\_siunitx_tmp:w { mathrm }
-\_siunitx_tmp:w { mathsOmega }
-\_siunitx_tmp:w { mathscelsius }
-\_siunitx_tmp:w { mathsdegree }
-\_siunitx_tmp:w { mathsecond }
-\_siunitx_tmp:w { mathsf }
-\_siunitx_tmp:w { mathsminute }
-\_siunitx_tmp:w { mathsmu }
-\_siunitx_tmp:w { mathsringA }
-\_siunitx_tmp:w { mathsrm }
-\_siunitx_tmp:w { mathssecond }
-\_siunitx_tmp:w { mathssf }
-\_siunitx_tmp:w { mathstt }
-\_siunitx_tmp:w { mathtt }
-\_siunitx_tmp:w { negcolor }
-\_siunitx_tmp:w { negcolour }
-\_siunitx_tmp:w { noload }
-\_siunitx_tmp:w { numaddn }
-\_siunitx_tmp:w { numcloseerr }
-\_siunitx_tmp:w { numdecimal }
-\_siunitx_tmp:w { numdigits }
-\_siunitx_tmp:w { numdiv }
-\_siunitx_tmp:w { numexp }
-\_siunitx_tmp:w { numgobble }
-\_siunitx_tmp:w { numopenerr }
-\_siunitx_tmp:w { numprod }
-\_siunitx_tmp:w { numsign }
-\_siunitx_tmp:w { obeyall }
-\_siunitx_tmp:w { obeybold }
-\_siunitx_tmp:w { obeyfamily }
-\_siunitx_tmp:w { obeymode }
-\_siunitx_tmp:w { obeyitalic }
-\_siunitx_tmp:w { openerr }
-\_siunitx_tmp:w { openfrac }
-\_siunitx_tmp:w { openrange }
-\_siunitx_tmp:w { padangle }
-\_siunitx_tmp:w { padnumber }
-\_siunitx_tmp:w { per }
-\_siunitx_tmp:w { prefixbase }
-\_siunitx_tmp:w { prefixproduct }
-\_siunitx_tmp:w { prefixsymbolic }
-\_siunitx_tmp:w { prespace }
-\_siunitx_tmp:w { redefsymbols }
-\_siunitx_tmp:w { repeatunits }
-\_siunitx_tmp:w { retainplus }
-\_siunitx_tmp:w { seperr }
-\_siunitx_tmp:w { sepfour }
-\_siunitx_tmp:w { sf }
-\_siunitx_tmp:w { sign }
-\_siunitx_tmp:w { slash }
-\_siunitx_tmp:w { stickyper }
-\_siunitx_tmp:w { stricarc }
-\_siunitx_tmp:w { tabalign }
-\_siunitx_tmp:w { tabalignexp }
-\_siunitx_tmp:w { tabautofit }
-\_siunitx_tmp:w { tabformat }
-\_siunitx_tmp:w { tabnumalign }
-\_siunitx_tmp:w { tabparseonly }
-\_siunitx_tmp:w { tabtextalign }
-\_siunitx_tmp:w { textOmega }
-\_siunitx_tmp:w { textcelsius }
-\_siunitx_tmp:w { textdegree }
-\_siunitx_tmp:w { textminute }
-\_siunitx_tmp:w { textmode }
-\_siunitx_tmp:w { textmu }
-\_siunitx_tmp:w { textringA }
-\_siunitx_tmp:w { textrm }
-\_siunitx_tmp:w { textsecond }
-\_siunitx_tmp:w { textsf }
-\_siunitx_tmp:w { texttt }
-\_siunitx_tmp:w { tightpm }
-\_siunitx_tmp:w { tophrase }
-\_siunitx_tmp:w { trapamigerr }
-\_siunitx_tmp:w { trapambigfrac }
-\_siunitx_tmp:w { trapambigrange }
-\_siunitx_tmp:w { unitcolor }
-\_siunitx_tmp:w { unitcolour }
-\_siunitx_tmp:w { unitmathrm }
-\_siunitx_tmp:w { unitmathsf }
-\_siunitx_tmp:w { unitmathsrm }
-\_siunitx_tmp:w { unitmathssf }
-\_siunitx_tmp:w { unitmathstt }
-\_siunitx_tmp:w { unitmathtt }
-\_siunitx_tmp:w { unitmode }
-\_siunitx_tmp:w { unitsep }
-\_siunitx_tmp:w { unitspace }
-\_siunitx_tmp:w { valuecolor }
-\_siunitx_tmp:w { valuecolour }
-\_siunitx_tmp:w { valuemathrm }
-\_siunitx_tmp:w { valuemathsf }
-\_siunitx_tmp:w { valuemathsrm }
-\_siunitx_tmp:w { valuemathssf }
-\_siunitx_tmp:w { valuemathstt }
-\_siunitx_tmp:w { valuemathtt }
-\_siunitx_tmp:w { valuemode }
-\_siunitx_tmp:w { valuesep }
-\_siunitx_tmp:w { xpace }
+ { \tl_set:Nn \c_siunitx_omega_tl { \upOmega } }
+}
+\cs_new_protected:Npn \siunitx_tl_put_left_math:Nn #1#2 {
+ \tl_put_left:Nn #1 { \siunitx_ensuremath:n {#2} }
+}
+\cs_generate_variant:Nn \siunitx_tl_put_left_math:Nn { NV }
+\cs_generate_variant:Nn \siunitx_tl_put_left_math:Nn { cV }
+\cs_new_protected:Npn \siunitx_tl_put_right_math:Nn #1#2 {
+ \tl_put_right:Nn #1 { \siunitx_ensuremath:n {#2} }
+}
+\cs_generate_variant:Nn \siunitx_tl_put_right_math:Nn { NV }
+\cs_generate_variant:Nn \siunitx_tl_put_right_math:Nn { cV }
+\seq_new:N \c_siunitx_old_options_seq
+\cs_set_protected_nopar:Npn \siunitx_tmp:w #1 {
+ \seq_put_right:Nx \c_siunitx_old_options_seq { \tl_to_str:n {#1} }
+}
+\siunitx_tmp:w { addsign }
+\siunitx_tmp:w { allowlitunits }
+\siunitx_tmp:w { allowoptarg }
+\siunitx_tmp:w { allowzeroexp }
+\siunitx_tmp:w { alsoload }
+\siunitx_tmp:w { angformat }
+\siunitx_tmp:w { anglesep }
+\siunitx_tmp:w { astroang }
+\siunitx_tmp:w { closeerr }
+\siunitx_tmp:w { closrfrac }
+\siunitx_tmp:w { closerange }
+\siunitx_tmp:w { colour }
+\siunitx_tmp:w { colorall }
+\siunitx_tmp:w { colourall }
+\siunitx_tmp:w { colorneg }
+\siunitx_tmp:w { colourneg }
+\siunitx_tmp:w { colourunits }
+\siunitx_tmp:w { colourunits }
+\siunitx_tmp:w { colorvalues }
+\siunitx_tmp:w { colourvalues }
+\siunitx_tmp:w { decimalsymbol }
+\siunitx_tmp:w { debug }
+\siunitx_tmp:w { detectdisplay }
+\siunitx_tmp:w { digitsep }
+\siunitx_tmp:w { dp }
+\siunitx_tmp:w { emulate }
+\siunitx_tmp:w { errspace }
+\siunitx_tmp:w { eVcorra }
+\siunitx_tmp:w { eVcorrb }
+\siunitx_tmp:w { expbase }
+\siunitx_tmp:w { expproduct }
+\siunitx_tmp:w { fixdp }
+\siunitx_tmp:w { fixsf }
+\siunitx_tmp:w { fraction }
+\siunitx_tmp:w { inlinebold }
+\siunitx_tmp:w { locale }
+\siunitx_tmp:w { loctolang }
+\siunitx_tmp:w { log }
+\siunitx_tmp:w { load }
+\siunitx_tmp:w { mathOmega }
+\siunitx_tmp:w { mathcelsius }
+\siunitx_tmp:w { mathdegree }
+\siunitx_tmp:w { mathminute }
+\siunitx_tmp:w { mathmu }
+\siunitx_tmp:w { mathringA }
+\siunitx_tmp:w { mathrm }
+\siunitx_tmp:w { mathsOmega }
+\siunitx_tmp:w { mathscelsius }
+\siunitx_tmp:w { mathsdegree }
+\siunitx_tmp:w { mathsecond }
+\siunitx_tmp:w { mathsf }
+\siunitx_tmp:w { mathsminute }
+\siunitx_tmp:w { mathsmu }
+\siunitx_tmp:w { mathsringA }
+\siunitx_tmp:w { mathsrm }
+\siunitx_tmp:w { mathssecond }
+\siunitx_tmp:w { mathssf }
+\siunitx_tmp:w { mathstt }
+\siunitx_tmp:w { mathtt }
+\siunitx_tmp:w { negcolor }
+\siunitx_tmp:w { negcolour }
+\siunitx_tmp:w { noload }
+\siunitx_tmp:w { numaddn }
+\siunitx_tmp:w { numcloseerr }
+\siunitx_tmp:w { numdecimal }
+\siunitx_tmp:w { numdigits }
+\siunitx_tmp:w { numdiv }
+\siunitx_tmp:w { numexp }
+\siunitx_tmp:w { numgobble }
+\siunitx_tmp:w { numopenerr }
+\siunitx_tmp:w { numprod }
+\siunitx_tmp:w { numsign }
+\siunitx_tmp:w { obeyall }
+\siunitx_tmp:w { obeybold }
+\siunitx_tmp:w { obeyfamily }
+\siunitx_tmp:w { obeymode }
+\siunitx_tmp:w { obeyitalic }
+\siunitx_tmp:w { openerr }
+\siunitx_tmp:w { openfrac }
+\siunitx_tmp:w { openrange }
+\siunitx_tmp:w { padangle }
+\siunitx_tmp:w { padnumber }
+\siunitx_tmp:w { per }
+\siunitx_tmp:w { prefixbase }
+\siunitx_tmp:w { prefixproduct }
+\siunitx_tmp:w { prefixsymbolic }
+\siunitx_tmp:w { prespace }
+\siunitx_tmp:w { redefsymbols }
+\siunitx_tmp:w { repeatunits }
+\siunitx_tmp:w { retainplus }
+\siunitx_tmp:w { seperr }
+\siunitx_tmp:w { sepfour }
+\siunitx_tmp:w { sf }
+\siunitx_tmp:w { sign }
+\siunitx_tmp:w { slash }
+\siunitx_tmp:w { stickyper }
+\siunitx_tmp:w { stricarc }
+\siunitx_tmp:w { tabalign }
+\siunitx_tmp:w { tabalignexp }
+\siunitx_tmp:w { tabautofit }
+\siunitx_tmp:w { tabformat }
+\siunitx_tmp:w { tabnumalign }
+\siunitx_tmp:w { tabparseonly }
+\siunitx_tmp:w { tabtextalign }
+\siunitx_tmp:w { textOmega }
+\siunitx_tmp:w { textcelsius }
+\siunitx_tmp:w { textdegree }
+\siunitx_tmp:w { textminute }
+\siunitx_tmp:w { textmode }
+\siunitx_tmp:w { textmu }
+\siunitx_tmp:w { textringA }
+\siunitx_tmp:w { textrm }
+\siunitx_tmp:w { textsecond }
+\siunitx_tmp:w { textsf }
+\siunitx_tmp:w { texttt }
+\siunitx_tmp:w { tightpm }
+\siunitx_tmp:w { tophrase }
+\siunitx_tmp:w { trapamigerr }
+\siunitx_tmp:w { trapambigfrac }
+\siunitx_tmp:w { trapambigrange }
+\siunitx_tmp:w { unitcolor }
+\siunitx_tmp:w { unitcolour }
+\siunitx_tmp:w { unitmathrm }
+\siunitx_tmp:w { unitmathsf }
+\siunitx_tmp:w { unitmathsrm }
+\siunitx_tmp:w { unitmathssf }
+\siunitx_tmp:w { unitmathstt }
+\siunitx_tmp:w { unitmathtt }
+\siunitx_tmp:w { unitmode }
+\siunitx_tmp:w { unitsep }
+\siunitx_tmp:w { unitspace }
+\siunitx_tmp:w { valuecolor }
+\siunitx_tmp:w { valuecolour }
+\siunitx_tmp:w { valuemathrm }
+\siunitx_tmp:w { valuemathsf }
+\siunitx_tmp:w { valuemathsrm }
+\siunitx_tmp:w { valuemathssf }
+\siunitx_tmp:w { valuemathstt }
+\siunitx_tmp:w { valuemathtt }
+\siunitx_tmp:w { valuemode }
+\siunitx_tmp:w { valuesep }
+\siunitx_tmp:w { xpace }
\tl_new:N \l_siunitx_key_tl
\keys_define:nn { siunitx } {
unknown .code:n =
{
- \seq_if_in:NVTF \_c_siunitx_old_options_seq \l_keys_key_tl
+ \seq_if_in:NVTF \c_siunitx_old_options_seq \l_keys_key_tl
{
\msg_warning:nnx { siunitx } { version-1-option }
{ \exp_not:V \l_keys_key_tl }
- \tl_set:Nx \_l_siunitx_key_tl
+ \tl_set:Nx \l_siunitx_key_tl
{
\keys_set:nn { siunitx }
{
@@ -242,7 +242,7 @@
}
}
\keys_set:nn { siunitx } { load-configurations = version-1 }
- \tl_use:N \_l_siunitx_key_tl
+ \tl_use:N \l_siunitx_key_tl
}
{
\msg_error:nnx { siunitx } { unknown-option }
@@ -254,7 +254,7 @@
\keys_define:nn { siunitx } {
unknown .code:n =
{
- \seq_if_in:NVTF \_c_siunitx_old_options_seq \l_keys_key_tl
+ \seq_if_in:NVTF \c_siunitx_old_options_seq \l_keys_key_tl
{
\msg_error:nnx { siunitx } { version-1-option }
{ \exp_not:V \l_keys_key_tl }
@@ -266,11 +266,11 @@
}
}
}
-\clist_new:N \_l_siunitx_option_deactivate_clist
-\cs_set_protected_nopar:Npn \_siunitx_option_deactivate:n #1 {
- \clist_put_right:Nn \_l_siunitx_option_deactivate_clist {#1}
+\clist_new:N \l_siunitx_option_deactivate_clist
+\cs_new_protected_nopar:Npn \siunitx_option_deactivate:n #1 {
+ \clist_put_right:Nn \l_siunitx_option_deactivate_clist {#1}
}
-\cs_set_protected_nopar:Npn \_siunitx_option_deactivate_aux:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_option_deactivate_aux:n #1 {
\keys_define:nn { siunitx }
{
#1 .code:n =
@@ -278,8 +278,8 @@
}
}
\AtBeginDocument {
- \clist_map_function:NN \_l_siunitx_option_deactivate_clist
- \_siunitx_option_deactivate_aux:n
+ \clist_map_function:NN \l_siunitx_option_deactivate_clist
+ \siunitx_option_deactivate_aux:n
}
\cs_generate_variant:Nn \prop_del:Nn { c }
\cs_generate_variant:Nn \prop_put:Nnn { cnV }
@@ -291,9 +291,9 @@
{ \char_set_lccode:nn { `#1 } { `#1 } }
\tl_to_lowercase:n {
\group_end:
- \prg_set_conditional:Npnn \_siunitx_cs_if_tl:N #1 { T , F, TF , p }
+ \prg_new_conditional:Npnn \siunitx_cs_if_tl:N #1 { T , F, TF , p }
{
- \exp_after:wN \_siunitx_cs_if_tl_aux:w
+ \exp_after:wN \siunitx_cs_if_tl_aux:w
\token_to_meaning:N #1 MACRO \q_nil
{
\cs_if_exist:cTF { \cs_to_str:N #1 ~ }
@@ -302,54 +302,54 @@
}
{ \prg_return_false: }
}
- \cs_set_nopar:Npn \_siunitx_cs_if_tl_aux:w #1 MACRO #2 \q_nil
+ \cs_new_nopar:Npn \siunitx_cs_if_tl_aux:w #1 MACRO #2 \q_nil
{ \tl_if_empty:nTF {#1} }
- \prg_set_conditional:Npnn \_siunitx_cs_if_macro:N #1
+ \prg_new_conditional:Npnn \siunitx_cs_if_macro:N #1
{ T , F , TF , p }
{
- \exp_after:wN \_siunitx_cs_if_tl_aux:w
+ \exp_after:wN \siunitx_cs_if_tl_aux:w
\token_to_meaning:N #1 MACRO \q_nil
{ \prg_return_true: }
{ \prg_return_false: }
}
}
-\cs_set_eq:NN \_siunitx_ensuremath:n \ensuremath
+\cs_new_eq:NN \siunitx_ensuremath:n \ensuremath
\AtBeginDocument {
\@ifpackageloaded { tex4ht }
{
- \cs_set_eq:NN \_siunitx_ensuremath:n \use:n
+ \cs_set_eq:NN \siunitx_ensuremath:n \use:n
\keys_set:nn { siunitx } { mode = text }
}
{ }
}
-\cs_set_protected_nopar:Npn \_siunitx_set_math_fam:n #1 {
- \int_new:c { _c_siunitx_math #1 _int }
+\cs_new_protected_nopar:Npn \siunitx_set_math_fam:n #1 {
+ \int_new:c { c_siunitx_math #1 _int }
\group_begin:
- \hbox_set:Nn \_l_siunitx_tmp_box
+ \hbox_set:Nn \l_siunitx_tmp_box
{
\ensuremath
{
\use:c { math #1 }
{
- \int_gset:cn { _c_siunitx_math #1 _int } { \fam }
+ \int_gset:cn { c_siunitx_math #1 _int } { \fam }
}
}
}
\group_end:
}
\tl_put_right:Nn \document {
- \_siunitx_set_math_fam:n { sf }
- \_siunitx_set_math_fam:n { tt }
+ \siunitx_set_math_fam:n { sf }
+ \siunitx_set_math_fam:n { tt }
}
-\cs_set_protected_nopar:Npn \_siunitx_set_text_fam:n #1 {
- \tl_new:c { _c_siunitx_text #1 _tl }
- \tl_set:cx { _c_siunitx_text #1 _tl } { \use:c { #1 default } }
+\cs_new_protected_nopar:Npn \siunitx_set_text_fam:n #1 {
+ \tl_new:c { c_siunitx_text #1 _tl }
+ \tl_set:cx { c_siunitx_text #1 _tl } { \use:c { #1 default } }
}
\AtBeginDocument {
- \_siunitx_set_text_fam:n { sf }
- \_siunitx_set_text_fam:n { tt }
+ \siunitx_set_text_fam:n { sf }
+ \siunitx_set_text_fam:n { tt }
}
-\tl_new:N \_l_siunitx_detect_inline_weight_tl
+\tl_new:N \l_siunitx_detect_inline_weight_tl
\keys_define:nn { siunitx } {
detect-all .choice:,
detect-all .default:n = true,
@@ -368,21 +368,21 @@
detect-weight = true
},
detect-display-math .bool_set:N =
- \_l_siunitx_detect_display_math_bool,
- detect-family .bool_set:N = \_l_siunitx_detect_family_bool,
+ \l_siunitx_detect_display_math_bool,
+ detect-family .bool_set:N = \l_siunitx_detect_family_bool,
detect-inline-weight .choice:,
detect-inline-weight .value_required:,
detect-inline-weight /
combined .code:n =
- { \tl_set:Nn \_l_siunitx_detect_inline_weight_tl { combined } },
+ { \tl_set:Nn \l_siunitx_detect_inline_weight_tl { combined } },
detect-inline-weight /
math .code:n =
- { \tl_set:Nn \_l_siunitx_detect_inline_weight_tl { math } },
+ { \tl_set:Nn \l_siunitx_detect_inline_weight_tl { math } },
detect-inline-weight /
text .code:n =
- { \tl_set:Nn \_l_siunitx_detect_inline_weight_tl { text } },
- detect-italic .bool_set:N = \_l_siunitx_detect_italic_bool,
- detect-mode .bool_set:N = \_l_siunitx_detect_mode_bool,
+ { \tl_set:Nn \l_siunitx_detect_inline_weight_tl { text } },
+ detect-italic .bool_set:N = \l_siunitx_detect_italic_bool,
+ detect-mode .bool_set:N = \l_siunitx_detect_mode_bool,
detect-none .choice:,
detect-none .default:n = true,
detect-none / false .meta:n =
@@ -399,66 +399,66 @@
detect-mode = false,
detect-weight = false
},
- detect-weight .bool_set:N = \_l_siunitx_detect_weight_bool
-}
-\bool_new:N \_l_siunitx_font_set_bool
-\bool_new:N \_l_siunitx_font_math_mode_bool
-\tl_new:N \_l_siunitx_font_family_tl
-\cs_set_nopar:Npn \_siunitx_font_italic: { }
-\cs_set_nopar:Npn \_siunitx_font_weight: { }
-\cs_set_protected_nopar:Npn \_siunitx_detect_font: {
- \bool_if:NF \_l_siunitx_font_set_bool
- {
- \_siunitx_detect_font_init:
- \bool_if:NT \_l_siunitx_detect_weight_bool
- { \_siunitx_detect_font_weight: }
- \bool_if:NT \_l_siunitx_detect_family_bool
- { \_siunitx_detect_font_family: }
- \bool_if:NT \_l_siunitx_detect_italic_bool
- { \_siunitx_detect_font_italic: }
- \bool_if:NT \_l_siunitx_detect_mode_bool
- { \_siunitx_detect_font_mode: }
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_init: {
- \bool_set_true:N \_l_siunitx_font_set_bool
- \cs_set:Npn \_siunitx_font_weight:
+ detect-weight .bool_set:N = \l_siunitx_detect_weight_bool
+}
+\bool_new:N \l_siunitx_font_set_bool
+\bool_new:N \l_siunitx_font_math_mode_bool
+\tl_new:N \l_siunitx_font_family_tl
+\cs_new_nopar:Npn \siunitx_font_italic: { }
+\cs_new_nopar:Npn \siunitx_font_weight: { }
+\cs_new_protected_nopar:Npn \siunitx_detect_font: {
+ \bool_if:NF \l_siunitx_font_set_bool
+ {
+ \siunitx_detect_font_init:
+ \bool_if:NT \l_siunitx_detect_weight_bool
+ { \siunitx_detect_font_weight: }
+ \bool_if:NT \l_siunitx_detect_family_bool
+ { \siunitx_detect_font_family: }
+ \bool_if:NT \l_siunitx_detect_italic_bool
+ { \siunitx_detect_font_italic: }
+ \bool_if:NT \l_siunitx_detect_mode_bool
+ { \siunitx_detect_font_mode: }
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_detect_font_init: {
+ \bool_set_true:N \l_siunitx_font_set_bool
+ \cs_set:Npn \siunitx_font_weight:
{
\unboldmath
\mdseries
}
- \cs_set:Npn \_siunitx_font_italic: { \upshape }
- \tl_set:Nn \_l_siunitx_font_family_tl { rm }
- \bool_set_true:N \_l_siunitx_font_math_mode_bool
+ \cs_set:Npn \siunitx_font_italic: { \upshape }
+ \tl_set:Nn \l_siunitx_font_family_tl { rm }
+ \bool_set_true:N \l_siunitx_font_math_mode_bool
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight: {
\mode_if_math:TF
{
\mode_if_inner:TF
{
\use:c
{
- _siunitx_detect_font_weight_
- \_l_siunitx_detect_inline_weight_tl
+ siunitx_detect_font_weight_
+ \l_siunitx_detect_inline_weight_tl
:
}
}
{
- \bool_if:NTF \_l_siunitx_detect_display_math_bool
- { \_siunitx_detect_font_weight_math: }
- { \_siunitx_detect_font_weight_text: }
+ \bool_if:NTF \l_siunitx_detect_display_math_bool
+ { \siunitx_detect_font_weight_math: }
+ { \siunitx_detect_font_weight_text: }
}
}
- { \_siunitx_detect_font_weight_text: }
+ { \siunitx_detect_font_weight_text: }
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight_combined: {
- \_siunitx_detect_font_weight_math:
- \_siunitx_detect_font_weight_text:
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight_combined: {
+ \siunitx_detect_font_weight_math:
+ \siunitx_detect_font_weight_text:
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight_math: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight_math: {
\tl_if_eq:nVT { bold } \math@version
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{
\boldmath
\bfseries
@@ -466,108 +466,108 @@
}
\tl_if_eq:nVT { light } \math@version
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{ \lseries }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_weight_text: {
- \tl_set:Nx \_l_siunitx_tmpa_tl { \exp_args:NV \tl_head:n \f@series }
- \tl_if_eq:nVT { b } \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_detect_font_weight_text: {
+ \tl_set:Nx \l_siunitx_tmpa_tl { \exp_args:NV \tl_head:n \f@series }
+ \tl_if_eq:nVT { b } \l_siunitx_tmpa_tl
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{
\boldmath
\bfseries
}
}
- \tl_if_eq:nVT { l } \_l_siunitx_tmpa_tl
+ \tl_if_eq:nVT { l } \l_siunitx_tmpa_tl
{
- \cs_set:Npn \_siunitx_font_weight:
+ \cs_set:Npn \siunitx_font_weight:
{ \lseries }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_family: {
- \_siunitx_detect_font_family_text:
- \bool_if:NT \_l_siunitx_detect_display_math_bool
+\cs_new_protected_nopar:Npn \siunitx_detect_font_family: {
+ \siunitx_detect_font_family_text:
+ \bool_if:NT \l_siunitx_detect_display_math_bool
{
\mode_if_math:T
- { \mode_if_inner:F { \_siunitx_detect_font_family_math: } }
+ { \mode_if_inner:F { \siunitx_detect_font_family_math: } }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_family_math: {
- \tl_set:Nn \_l_siunitx_font_family_tl { rm }
- \intexpr_compare:nNnT { \fam } = { \_c_siunitx_mathsf_int }
- { \tl_set:Nn \_l_siunitx_font_family_tl { sf } }
- \intexpr_compare:nNnT { \fam } = { \_c_siunitx_mathtt_int }
- { \tl_set:Nn \_l_siunitx_font_family_tl { tt } }
+\cs_new_protected_nopar:Npn \siunitx_detect_font_family_math: {
+ \tl_set:Nn \l_siunitx_font_family_tl { rm }
+ \intexpr_compare:nNnT { \fam } = { \c_siunitx_mathsf_int }
+ { \tl_set:Nn \l_siunitx_font_family_tl { sf } }
+ \intexpr_compare:nNnT { \fam } = { \c_siunitx_mathtt_int }
+ { \tl_set:Nn \l_siunitx_font_family_tl { tt } }
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_family_text: {
- \tl_if_eq:NNT \f@family \_c_siunitx_textsf_tl
- { \tl_set:Nn \_l_siunitx_font_family_tl { sf } }
- \tl_if_eq:NNT \f@family \_c_siunitx_texttt_tl
- { \tl_set:Nn \_l_siunitx_font_family_tl { tt } }
+\cs_new_protected_nopar:Npn \siunitx_detect_font_family_text: {
+ \tl_if_eq:NNT \f@family \c_siunitx_textsf_tl
+ { \tl_set:Nn \l_siunitx_font_family_tl { sf } }
+ \tl_if_eq:NNT \f@family \c_siunitx_texttt_tl
+ { \tl_set:Nn \l_siunitx_font_family_tl { tt } }
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_italic: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_italic: {
\tl_if_eq:nVT { it } \f@shape
- { \cs_set_nopar:Npn \_siunitx_font_italic: { \itshape } }
+ { \cs_set_nopar:Npn \siunitx_font_italic: { \itshape } }
}
-\cs_set_protected_nopar:Npn \_siunitx_detect_font_mode: {
+\cs_new_protected_nopar:Npn \siunitx_detect_font_mode: {
\mode_if_math:F
- { \bool_set_false:N \_l_siunitx_font_math_mode_bool }
-}
-\bool_new:N \_l_siunitx_number_math_mode_bool
-\bool_new:N \_l_siunitx_unit_math_mode_bool
-\cs_set:Npn \_siunitx_number_mathrm:n #1 { }
-\cs_set:Npn \_siunitx_number_mathsf:n #1 { }
-\cs_set:Npn \_siunitx_number_mathtt:n #1 { }
-\cs_set_nopar:Npn \_siunitx_number_textrm: { }
-\cs_set_nopar:Npn \_siunitx_number_textsf: { }
-\cs_set_nopar:Npn \_siunitx_number_texttt: { }
+ { \bool_set_false:N \l_siunitx_font_math_mode_bool }
+}
+\bool_new:N \l_siunitx_number_math_mode_bool
+\bool_new:N \l_siunitx_unit_math_mode_bool
+\cs_new:Npn \siunitx_number_mathrm:n #1 { }
+\cs_new:Npn \siunitx_number_mathsf:n #1 { }
+\cs_new:Npn \siunitx_number_mathtt:n #1 { }
+\cs_new_nopar:Npn \siunitx_number_textrm: { }
+\cs_new_nopar:Npn \siunitx_number_textsf: { }
+\cs_new_nopar:Npn \siunitx_number_texttt: { }
\keys_define:nn { siunitx } {
- number-color .tl_set:N = \_l_siunitx_number_color_tl,
+ number-color .tl_set:N = \l_siunitx_number_color_tl,
number-math-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_mathrm:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_number_mathrm:n ##1 { #1 {##1} } },
number-math-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_mathsf:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_number_mathsf:n ##1 { #1 {##1} } },
number-math-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_mathtt:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_number_mathtt:n ##1 { #1 {##1} } },
number-mode .choice:,
number-mode / math .code:n =
- { \bool_set_true:N \_l_siunitx_number_math_mode_bool },
+ { \bool_set_true:N \l_siunitx_number_math_mode_bool },
number-mode / text .code:n =
- { \bool_set_false:N \_l_siunitx_number_math_mode_bool },
+ { \bool_set_false:N \l_siunitx_number_math_mode_bool },
number-text-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_textrm: {#1} },
+ { \cs_set_nopar:Npn \siunitx_number_textrm: {#1} },
number-text-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_textsf: {#1} },
+ { \cs_set_nopar:Npn \siunitx_number_textsf: {#1} },
number-text-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_number_texttt: {#1} }
-}
-\cs_set_nopar:Npn \_siunitx_unit_mathrm: { }
-\cs_set_nopar:Npn \_siunitx_unit_mathsf: { }
-\cs_set_nopar:Npn \_siunitx_unit_mathtt: { }
-\cs_set_nopar:Npn \_siunitx_unit_textrm: { }
-\cs_set_nopar:Npn \_siunitx_unit_textsf: { }
-\cs_set_nopar:Npn \_siunitx_unit_texttt: { }
+ { \cs_set_nopar:Npn \siunitx_number_texttt: {#1} }
+}
+\cs_new_nopar:Npn \siunitx_unit_mathrm: { }
+\cs_new_nopar:Npn \siunitx_unit_mathsf: { }
+\cs_new_nopar:Npn \siunitx_unit_mathtt: { }
+\cs_new_nopar:Npn \siunitx_unit_textrm: { }
+\cs_new_nopar:Npn \siunitx_unit_textsf: { }
+\cs_new_nopar:Npn \siunitx_unit_texttt: { }
\keys_define:nn { siunitx } {
- unit-color .tl_set:N = \_l_siunitx_unit_color_tl,
+ unit-color .tl_set:N = \l_siunitx_unit_color_tl,
unit-math-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_mathrm:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_unit_mathrm:n ##1 { #1 {##1} } },
unit-math-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_mathsf:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_unit_mathsf:n ##1 { #1 {##1} } },
unit-math-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_mathtt:n ##1 { #1 {##1} } },
+ { \cs_set_nopar:Npn \siunitx_unit_mathtt:n ##1 { #1 {##1} } },
unit-mode .choice:,
unit-mode / math .code:n =
- { \bool_set_true:N \_l_siunitx_unit_math_mode_bool },
+ { \bool_set_true:N \l_siunitx_unit_math_mode_bool },
unit-mode / text .code:n =
- { \bool_set_false:N \_l_siunitx_unit_math_mode_bool },
+ { \bool_set_false:N \l_siunitx_unit_math_mode_bool },
unit-text-rm .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_textrm: {#1} },
+ { \cs_set_nopar:Npn \siunitx_unit_textrm: {#1} },
unit-text-sf .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_textsf: {#1} },
+ { \cs_set_nopar:Npn \siunitx_unit_textsf: {#1} },
unit-text-tt .code:n =
- { \cs_set_nopar:Npn \_siunitx_unit_texttt: {#1} }
+ { \cs_set_nopar:Npn \siunitx_unit_texttt: {#1} }
}
\keys_define:nn { siunitx } {
color .meta:n =
@@ -627,14 +627,14 @@
text-tt = \ttfamily,
}
\AtBeginDocument {
- \tl_set:Nx \_l_siunitx_tmpa_tl { \familydefault }
- \tl_if_eq:NNT \_l_siunitx_tmpa_tl \_c_siunitx_textsf_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl { \familydefault }
+ \tl_if_eq:NNT \l_siunitx_tmpa_tl \c_siunitx_textsf_tl
{
\@ifpackageloaded { cmbright } { }
{ \keys_set:nn { siunitx } { math-rm = \mathsf } }
\keys_set:nn { siunitx } { text-rm = \sffamily }
}
- \tl_if_eq:NNT \_l_siunitx_tmpa_tl \_c_siunitx_texttt_tl
+ \tl_if_eq:NNT \l_siunitx_tmpa_tl \c_siunitx_texttt_tl
{
\keys_set:nn { siunitx }
{
@@ -643,51 +643,51 @@
}
}
}
-\tl_new:N \_l_siunitx_print_arg_tl
-\tl_new:N \_l_siunitx_print_type_tl
-\cs_set_protected:Npn \_siunitx_print:nn #1#2 {
+\tl_new:N \l_siunitx_print_arg_tl
+\tl_new:N \l_siunitx_print_type_tl
+\cs_new_protected:Npn \siunitx_print:nn #1#2 {
\group_begin:
- \tl_set:Nn \_l_siunitx_print_type_tl {#1}
- \tl_set:Nn \_l_siunitx_print_arg_tl {#2}
- \_siunitx_detect_font:
- \bool_if:NF \_l_siunitx_detect_mode_bool
+ \tl_set:Nn \l_siunitx_print_type_tl {#1}
+ \tl_set:Nn \l_siunitx_print_arg_tl {#2}
+ \siunitx_detect_font:
+ \bool_if:NF \l_siunitx_detect_mode_bool
{
- \bool_if:cTF { _l_siunitx_ #1 _math_mode_bool }
- { \bool_set_true:N \_l_siunitx_font_math_mode_bool }
- { \bool_set_false:N \_l_siunitx_font_math_mode_bool }
+ \bool_if:cTF { l_siunitx_ #1 _math_mode_bool }
+ { \bool_set_true:N \l_siunitx_font_math_mode_bool }
+ { \bool_set_false:N \l_siunitx_font_math_mode_bool }
}
- \_siunitx_print_aux:
+ \siunitx_print_aux:
\group_end:
}
-\cs_generate_variant:Nn \_siunitx_print:nn { nV }
-\cs_set_protected_nopar:Npn \_siunitx_print_aux: {
+\cs_generate_variant:Nn \siunitx_print:nn { nV }
+\cs_new_protected_nopar:Npn \siunitx_print_aux: {
\text
{
- \_siunitx_print_color:
- \_siunitx_font_weight:
- \_siunitx_font_italic:
+ \siunitx_print_color:
+ \siunitx_font_weight:
+ \siunitx_font_italic:
\use:c
{
- _siunitx_ \_l_siunitx_print_type_tl _
- text \_l_siunitx_font_family_tl :
+ siunitx_ \l_siunitx_print_type_tl _
+ text \l_siunitx_font_family_tl :
}
- \bool_if:NTF \_l_siunitx_font_math_mode_bool
- { \_siunitx_print_math: }
- { \_siunitx_print_text: }
+ \bool_if:NTF \l_siunitx_font_math_mode_bool
+ { \siunitx_print_math: }
+ { \siunitx_print_text: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_print_color: {
- \tl_if_empty:cF { _l_siunitx_ \_l_siunitx_print_type_tl _color_tl }
+\cs_new_protected_nopar:Npn \siunitx_print_color: {
+ \tl_if_empty:cF { l_siunitx_ \l_siunitx_print_type_tl _color_tl }
{
\color
{
- \tl_use:c { _l_siunitx_ \_l_siunitx_print_type_tl _color_tl }
+ \tl_use:c { l_siunitx_ \l_siunitx_print_type_tl _color_tl }
}
}
}
\AtBeginDocument {
\@ifpackageloaded { color } { }
- { \cs_set_eq:NN \_siunitx_print_color: \scan_stop: }
+ { \cs_set_eq:NN \siunitx_print_color: \scan_stop: }
}
\group_begin:
\char_set_lccode:nn { `\@ } { `\_ }
@@ -696,27 +696,27 @@
\char_make_active:N \!
\tl_to_lowercase:n {
\group_end:
- \cs_set_protected_nopar:Npn \_siunitx_print_math:
+ \cs_set_protected_nopar:Npn \siunitx_print_math:
{
\ensuremath
{
\use:c
{
- _siunitx_ \_l_siunitx_print_type_tl _
- math \_l_siunitx_font_family_tl :n
+ siunitx_ \l_siunitx_print_type_tl _
+ math \l_siunitx_font_family_tl :n
}
- { \_l_siunitx_print_arg_tl }
+ { \l_siunitx_print_arg_tl }
}
}
- \cs_set_protected_nopar:Npn \_siunitx_print_text:
+ \cs_set_protected_nopar:Npn \siunitx_print_text:
{
- \tl_replace_all_in:Nnn \_l_siunitx_print_arg_tl { @ }
- { \_siunitx_print_text_sub:n }
- \tl_replace_all_in:Nnn \_l_siunitx_print_arg_tl { ! }
- { \_siunitx_print_text_sub:n }
- \tl_replace_all_in:Nnn \_l_siunitx_print_arg_tl { ^ }
- { \_siunitx_print_text_super:n }
- \_l_siunitx_print_arg_tl
+ \tl_replace_all_in:Nnn \l_siunitx_print_arg_tl { @ }
+ { \siunitx_print_text_sub:n }
+ \tl_replace_all_in:Nnn \l_siunitx_print_arg_tl { ! }
+ { \siunitx_print_text_sub:n }
+ \tl_replace_all_in:Nnn \l_siunitx_print_arg_tl { ^ }
+ { \siunitx_print_text_super:n }
+ \l_siunitx_print_arg_tl
}
}
\group_begin:
@@ -724,9 +724,9 @@
\char_make_math_subscript:N \@
\tl_to_lowercase:n {
\group_end:
- \cs_set_protected:Npn \_siunitx_print_text_sub:n #1
+ \cs_set_protected:Npn \siunitx_print_text_sub:n #1
{
- \cs_set:Npn \_siunitx_print_text_sub_super:n ##1
+ \cs_set:Npn \siunitx_print_text_sub_super:n ##1
{
\ensuremath
{
@@ -734,123 +734,123 @@
^ { \text {##1} }
}
}
- \peek_meaning_remove:NTF \_siunitx_print_text_super:n
- { \_siunitx_print_text_sub_super:n }
+ \peek_meaning_remove:NTF \siunitx_print_text_super:n
+ { \siunitx_print_text_sub_super:n }
{ \ensuremath { @ { \text {#1} } } }
}
}
-\cs_set_protected:Npn \_siunitx_print_text_sub_super:n { }
-\cs_set_protected:Npn \_siunitx_print_text_super:n #1 {
- \tl_set:Nn \_l_siunitx_tmpa_tl {#1}
- \tl_replace_all_in:Nnn \_l_siunitx_tmpa_tl { - }
- { \_c_siunitx_minus_tl }
- \tl_set:Nx \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_print_text_sub_super:n { }
+\cs_new_protected:Npn \siunitx_print_text_super:n #1 {
+ \tl_set:Nn \l_siunitx_tmpa_tl {#1}
+ \tl_replace_all_in:Nnn \l_siunitx_tmpa_tl { - }
+ { \c_siunitx_minus_tl }
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
\exp_not:N \ensuremath
{
- ^ { \exp_not:N \text { \exp_not:V \_l_siunitx_tmpa_tl } }
+ ^ { \exp_not:N \text { \exp_not:V \l_siunitx_tmpa_tl } }
}
}
- \_l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
}
\keys_define:nn { siunitx } {
- input-product .tl_set:N = \_l_siunitx_input_product_tl,
- input-quotient .tl_set:N = \_l_siunitx_input_quotient_tl,
+ input-product .tl_set:N = \l_siunitx_input_product_tl,
+ input-quotient .tl_set:N = \l_siunitx_input_quotient_tl,
}
\keys_set:nn { siunitx } {
input-product = x,
input-quotient = /
}
-\tl_new:N \_l_siunitx_number_arg_tl
-\tl_new:N \_l_siunitx_number_next_tl
-\tl_new:N \_l_siunitx_number_multi_tl
-\tl_new:N \_l_siunitx_number_denominator_tl
-\tl_new:N \_l_siunitx_number_numerator_tl
-\cs_set_protected:Npn \_siunitx_number_preprocess:n #1 {
- \_siunitx_number_preprocess_init:
- \tl_set:Nn \_l_siunitx_number_arg_tl {#1}
- \_siunitx_number_preprocess_product:
- \tl_if_empty:NT \_l_siunitx_number_multi_tl
- { \_siunitx_number_preprocess_quotient: }
-}
-\cs_generate_variant:Nn \_siunitx_number_preprocess:n { V }
-\cs_set_protected_nopar:Npn \_siunitx_number_preprocess_init: {
- \bool_set_false:N \_l_siunitx_error_bool
- \tl_clear:N \_l_siunitx_number_multi_tl
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_preprocess_product: {
- \tl_map_function:NN \_l_siunitx_input_product_tl
- \_siunitx_number_preprocess_product_aux:N
-}
-\cs_set_protected:Npn \_siunitx_number_preprocess_product_aux:N #1 {
- \tl_if_in:NnT \_l_siunitx_number_arg_tl {#1}
- {
- \cs_set:Npn \_siunitx_tmp:w ##1 #1 ##2 \q_stop
- {
- \tl_set:Nn \_l_siunitx_number_arg_tl {##1}
- \tl_set:Nn \_l_siunitx_number_next_tl {##2}
- \tl_set:Nn \_l_siunitx_number_multi_tl { product }
+\tl_new:N \l_siunitx_number_arg_tl
+\tl_new:N \l_siunitx_number_next_tl
+\tl_new:N \l_siunitx_number_multi_tl
+\tl_new:N \l_siunitx_number_denominator_tl
+\tl_new:N \l_siunitx_number_numerator_tl
+\cs_new_protected:Npn \siunitx_number_preprocess:n #1 {
+ \siunitx_number_preprocess_init:
+ \tl_set:Nn \l_siunitx_number_arg_tl {#1}
+ \siunitx_number_preprocess_product:
+ \tl_if_empty:NT \l_siunitx_number_multi_tl
+ { \siunitx_number_preprocess_quotient: }
+}
+\cs_generate_variant:Nn \siunitx_number_preprocess:n { V }
+\cs_new_protected_nopar:Npn \siunitx_number_preprocess_init: {
+ \bool_set_false:N \l_siunitx_error_bool
+ \tl_clear:N \l_siunitx_number_multi_tl
+}
+\cs_new_protected_nopar:Npn \siunitx_number_preprocess_product: {
+ \tl_map_function:NN \l_siunitx_input_product_tl
+ \siunitx_number_preprocess_product_aux:N
+}
+\cs_new_protected:Npn \siunitx_number_preprocess_product_aux:N #1 {
+ \tl_if_in:NnT \l_siunitx_number_arg_tl {#1}
+ {
+ \cs_set:Npn \siunitx_tmp:w ##1 #1 ##2 \q_stop
+ {
+ \tl_set:Nn \l_siunitx_number_arg_tl {##1}
+ \tl_set:Nn \l_siunitx_number_next_tl {##2}
+ \tl_set:Nn \l_siunitx_number_multi_tl { product }
}
- \exp_after:wN \_siunitx_tmp:w \_l_siunitx_number_arg_tl \q_stop
- \tl_if_empty:NT \_l_siunitx_number_arg_tl
- { \_siunitx_error:n { starting-product-token } }
- \tl_if_empty:NT \_l_siunitx_number_next_tl
- { \_siunitx_error:n { ending-product-token } }
+ \exp_after:wN \siunitx_tmp:w \l_siunitx_number_arg_tl \q_stop
+ \tl_if_empty:NT \l_siunitx_number_arg_tl
+ { \siunitx_error:n { starting-product-token } }
+ \tl_if_empty:NT \l_siunitx_number_next_tl
+ { \siunitx_error:n { ending-product-token } }
\tl_map_break:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_preprocess_quotient: {
- \tl_map_function:NN \_l_siunitx_input_quotient_tl
- \_siunitx_number_preprocess_quotient_aux:N
+\cs_new_protected_nopar:Npn \siunitx_number_preprocess_quotient: {
+ \tl_map_function:NN \l_siunitx_input_quotient_tl
+ \siunitx_number_preprocess_quotient_aux:N
}
-\cs_set_protected:Npn \_siunitx_number_preprocess_quotient_aux:N #1 {
- \tl_if_in:NnT \_l_siunitx_number_arg_tl {#1}
+\cs_new_protected:Npn \siunitx_number_preprocess_quotient_aux:N #1 {
+ \tl_if_in:NnT \l_siunitx_number_arg_tl {#1}
{
- \cs_set:Npn \_siunitx_tmp:w ##1 #1 ##2 \q_stop
+ \cs_set:Npn \siunitx_tmp:w ##1 #1 ##2 \q_stop
{
- \tl_set:Nn \_l_siunitx_number_numerator_tl {##1}
- \tl_set:Nn \_l_siunitx_number_denominator_tl {##2}
- \tl_set:Nn \_l_siunitx_number_multi_tl { quotient }
+ \tl_set:Nn \l_siunitx_number_numerator_tl {##1}
+ \tl_set:Nn \l_siunitx_number_denominator_tl {##2}
+ \tl_set:Nn \l_siunitx_number_multi_tl { quotient }
}
- \exp_after:wN \_siunitx_tmp:w \_l_siunitx_number_arg_tl \q_stop
- \tl_if_empty:NT \_l_siunitx_number_numerator_tl
- { \_siunitx_error:n { starting-quotient-token } }
- \tl_if_empty:NT \_l_siunitx_number_denominator_tl
- { \_siunitx_error:n { ending-quotient-token } }
- \tl_if_in:NnT \_l_siunitx_number_denominator_tl {#1}
- { \_siunitx_error:n { duplicate-quotient-token } }
+ \exp_after:wN \siunitx_tmp:w \l_siunitx_number_arg_tl \q_stop
+ \tl_if_empty:NT \l_siunitx_number_numerator_tl
+ { \siunitx_error:n { starting-quotient-token } }
+ \tl_if_empty:NT \l_siunitx_number_denominator_tl
+ { \siunitx_error:n { ending-quotient-token } }
+ \tl_if_in:NnT \l_siunitx_number_denominator_tl {#1}
+ { \siunitx_error:n { duplicate-quotient-token } }
\tl_map_break:
}
}
-\tl_new:N \_c_siunitx_number_part_complex_tl
-\tl_set:Nn \_c_siunitx_number_part_complex_tl { complex }
-\bool_new:N \_l_siunitx_number_in_complex_bool
-\bool_new:N \_l_siunitx_number_in_complex_root_bool
-\bool_new:N \_l_siunitx_number_in_decimal_bool
-\bool_new:N \_l_siunitx_number_in_exponent_bool
-\bool_new:N \_l_siunitx_number_in_first_bool
-\bool_new:N \_l_siunitx_number_in_sign_bool
-\bool_new:N \_l_siunitx_number_in_uncert_bool
-\bool_new:N \_l_siunitx_number_in_value_bool
-\prop_new:N \_l_siunitx_number_in_prop
-\tl_new:N \_l_siunitx_number_parsed_tl
-\tl_new:N \_l_siunitx_number_part_tl
-\tl_new:N \_l_siunitx_number_part_decimal_tl
-\tl_new:N \_l_siunitx_number_part_decimal_marker_tl
-\tl_new:N \_l_siunitx_number_part_integer_tl
-\tl_new:N \_l_siunitx_number_part_sign_tl
-\tl_new:N \_l_siunitx_number_part_uncert_tl
+\tl_new:N \c_siunitx_number_part_complex_tl
+\tl_set:Nn \c_siunitx_number_part_complex_tl { complex }
+\bool_new:N \l_siunitx_number_in_complex_bool
+\bool_new:N \l_siunitx_number_in_complex_root_bool
+\bool_new:N \l_siunitx_number_in_decimal_bool
+\bool_new:N \l_siunitx_number_in_exponent_bool
+\bool_new:N \l_siunitx_number_in_first_bool
+\bool_new:N \l_siunitx_number_in_sign_bool
+\bool_new:N \l_siunitx_number_in_uncert_bool
+\bool_new:N \l_siunitx_number_in_value_bool
+\prop_new:N \l_siunitx_number_in_prop
+\tl_new:N \l_siunitx_number_parsed_tl
+\tl_new:N \l_siunitx_number_part_tl
+\tl_new:N \l_siunitx_number_part_decimal_tl
+\tl_new:N \l_siunitx_number_part_decimal_marker_tl
+\tl_new:N \l_siunitx_number_part_integer_tl
+\tl_new:N \l_siunitx_number_part_sign_tl
+\tl_new:N \l_siunitx_number_part_uncert_tl
\keys_define:nn { siunitx } {
- input-close-uncertainty .tl_set:N = \_l_siunitx_input_uncert_close_tl,
- input-complex-roots .tl_set:N = \_l_siunitx_input_complex_tl,
- input-decimal-markers .tl_set:N = \_l_siunitx_input_decimal_tl,
- input-digits .tl_set:N = \_l_siunitx_input_digit_tl,
- input-exponent-markers .tl_set:N = \_l_siunitx_input_exponent_tl,
- input-ignore .tl_set:N = \_l_siunitx_input_ignore_tl,
- input-open-uncertainty .tl_set:N = \_l_siunitx_input_uncert_open_tl,
- input-protect-tokens .tl_set:N = \_l_siunitx_input_protect_tl,
- input-signs .tl_set:N = \_l_siunitx_input_sign_tl,
- input-symbols .tl_set:N = \_l_siunitx_input_symbol_tl,
+ input-close-uncertainty .tl_set:N = \l_siunitx_input_uncert_close_tl,
+ input-complex-roots .tl_set:N = \l_siunitx_input_complex_tl,
+ input-decimal-markers .tl_set:N = \l_siunitx_input_decimal_tl,
+ input-digits .tl_set:N = \l_siunitx_input_digit_tl,
+ input-exponent-markers .tl_set:N = \l_siunitx_input_exponent_tl,
+ input-ignore .tl_set:N = \l_siunitx_input_ignore_tl,
+ input-open-uncertainty .tl_set:N = \l_siunitx_input_uncert_open_tl,
+ input-protect-tokens .tl_set:N = \l_siunitx_input_protect_tl,
+ input-signs .tl_set:N = \l_siunitx_input_sign_tl,
+ input-symbols .tl_set:N = \l_siunitx_input_symbol_tl,
}
\keys_set:nn { siunitx } { % (
input-close-uncertainty = ),
@@ -863,258 +863,258 @@
input-signs = +-\mp\pm,
input-symbols = \pi,
}
-\cs_set_protected:Npn \_siunitx_number_in_parse:n #1 {
+\cs_new_protected:Npn \siunitx_number_in_parse:n #1 {
\tl_if_empty:nF {#1}
{
- \_siunitx_number_in_init:
- \cs_set_eq:NN \_siunitx_number_in_parse_more:N
- \_siunitx_number_in_parse_mantissa_aux:N
- \_siunitx_number_in_parse_aux:n {#1}
+ \siunitx_number_in_init:
+ \cs_set_eq:NN \siunitx_number_in_parse_more:N
+ \siunitx_number_in_parse_mantissa_aux:N
+ \siunitx_number_in_parse_aux:n {#1}
}
}
-\cs_generate_variant:Nn \_siunitx_number_in_parse:n { V }
-\cs_set_protected:Npn \_siunitx_number_in_parse_aux:n #1 {
- \tl_set_rescan:Nnx \_l_siunitx_number_arg_tl
+\cs_generate_variant:Nn \siunitx_number_in_parse:n { V }
+\cs_new_protected:Npn \siunitx_number_in_parse_aux:n #1 {
+ \tl_set_rescan:Nnx \l_siunitx_number_arg_tl
{
- \_siunitx_number_in_protect:
+ \siunitx_number_in_protect:
\char_make_ignore:N \~
\char_make_other:N \,
\char_make_other:N \.
\cs_set_eq:NN \, \prg_do_nothing:
}
{#1}
- \_siunitx_number_in_sign_replace:N \_l_siunitx_number_arg_tl
- \tl_map_function:NN \_l_siunitx_number_arg_tl
- \_siunitx_number_in_parse_loop:N
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
+ \siunitx_number_in_sign_replace:N \l_siunitx_number_arg_tl
+ \tl_map_function:NN \l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_loop:N
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
{
- \bool_if:NTF \_l_siunitx_number_in_uncert_bool
- { \_siunitx_error:nx { invalid-number } {#1} }
+ \bool_if:NTF \l_siunitx_number_in_uncert_bool
+ { \siunitx_error:nx { invalid-number } {#1} }
{
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_tl { true }
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_tl { true }
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_tl
- \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_tl
+ \l_siunitx_number_parsed_tl
}
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
- \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
+ \l_siunitx_number_parsed_tl
}
}
}
- \_siunitx_number_in_check:n {#1}
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_init: {
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \cs_set_eq:NN \_siunitx_number_in_check:n
- \_siunitx_number_in_check_short:n
- \tl_clear:N \_l_siunitx_number_parsed_tl
- \prop_clear:N \_l_siunitx_number_in_prop
- \bool_set_false:N \_l_siunitx_error_bool
- \bool_set_false:N \_l_siunitx_number_in_complex_bool
- \bool_set_false:N \_l_siunitx_number_in_complex_root_bool
- \bool_set_false:N \_l_siunitx_number_in_exponent_bool
- \bool_set_false:N \_l_siunitx_number_in_uncert_bool
- \_siunitx_number_in_init_part:n { mantissa }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_init_part:n #1 {
- \bool_set_false:N \_l_siunitx_number_in_decimal_bool
- \bool_set_true:N \_l_siunitx_number_in_first_bool
- \bool_set_false:N \_l_siunitx_number_in_sign_bool
- \bool_set_false:N \_l_siunitx_number_in_value_bool
- \tl_set:Nn \_l_siunitx_number_part_tl {#1}
- \tl_set:Nn \_l_siunitx_number_part_decimal_tl { #1 -decimal }
- \tl_set:Nn \_l_siunitx_number_part_decimal_marker_tl
+ \siunitx_number_in_check:n {#1}
+}
+\cs_new_protected_nopar:Npn \siunitx_number_in_init: {
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \cs_set_eq:NN \siunitx_number_in_check:n
+ \siunitx_number_in_check_short:n
+ \tl_clear:N \l_siunitx_number_parsed_tl
+ \prop_clear:N \l_siunitx_number_in_prop
+ \bool_set_false:N \l_siunitx_error_bool
+ \bool_set_false:N \l_siunitx_number_in_complex_bool
+ \bool_set_false:N \l_siunitx_number_in_complex_root_bool
+ \bool_set_false:N \l_siunitx_number_in_exponent_bool
+ \bool_set_false:N \l_siunitx_number_in_uncert_bool
+ \siunitx_number_in_init_part:n { mantissa }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_in_init_part:n #1 {
+ \bool_set_false:N \l_siunitx_number_in_decimal_bool
+ \bool_set_true:N \l_siunitx_number_in_first_bool
+ \bool_set_false:N \l_siunitx_number_in_sign_bool
+ \bool_set_false:N \l_siunitx_number_in_value_bool
+ \tl_set:Nn \l_siunitx_number_part_tl {#1}
+ \tl_set:Nn \l_siunitx_number_part_decimal_tl { #1 -decimal }
+ \tl_set:Nn \l_siunitx_number_part_decimal_marker_tl
{ #1 -decimal-marker }
- \tl_set:Nn \_l_siunitx_number_part_integer_tl { #1 -integer }
- \tl_set:Nn \_l_siunitx_number_part_sign_tl { #1 -sign }
- \tl_set:Nn \_l_siunitx_number_part_uncert_tl { #1 -uncertainty }
+ \tl_set:Nn \l_siunitx_number_part_integer_tl { #1 -integer }
+ \tl_set:Nn \l_siunitx_number_part_sign_tl { #1 -sign }
+ \tl_set:Nn \l_siunitx_number_part_uncert_tl { #1 -uncertainty }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_protect: {
- \tl_map_function:NN \_l_siunitx_input_protect_tl
- \_siunitx_number_in_protect_aux:N
+\cs_new_protected_nopar:Npn \siunitx_number_in_protect: {
+ \tl_map_function:NN \l_siunitx_input_protect_tl
+ \siunitx_number_in_protect_aux:N
}
-\cs_set_protected:Npn \_siunitx_number_in_protect_aux:N #1 {
+\cs_new_protected:Npn \siunitx_number_in_protect_aux:N #1 {
\cs_set_eq:NN #1 \scan_stop:
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_sign_replace:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_number_in_sign_replace:N #1 {
\tl_replace_all_in:Nnn #1 { -+ } { \mp }
\tl_replace_all_in:Nnn #1 { +- } { \pm }
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_error:nx #1#2 {
- \_siunitx_error:nx {#1} { \exp_not:n {#2} }
+\cs_new_protected:Npn \siunitx_number_in_parse_error:nx #1#2 {
+ \siunitx_error:nx {#1} { \exp_not:n {#2} }
\tl_map_break:
}
-\cs_generate_variant:Nn \_siunitx_number_in_parse_error:nx { nV }
-\cs_set_protected:Npn \_siunitx_number_in_parse_loop:N #1 { }
-\cs_set_protected:Npn \_siunitx_number_in_parse_more:N #1 { }
-\cs_set_protected:Npn \_siunitx_number_in_parse_restricted:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_generate_variant:Nn \siunitx_number_in_parse_error:nx { nV }
+\cs_new_protected:Npn \siunitx_number_in_parse_loop:N #1 { }
+\cs_new_protected:Npn \siunitx_number_in_parse_more:N #1 { }
+\cs_new_protected:Npn \siunitx_number_in_parse_restricted:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ restricted-number } {#1}
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_open_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_open_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { restricted-number } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { restricted-number } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { restricted-number } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { restricted-number } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { restricted-number } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { restricted-number } \l_siunitx_number_arg_tl
}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ restricted-number } {#1}
}
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_complex:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_complex:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_exponent:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_exponent:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ misplaced-complex-root-token }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_exponent:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_exponent:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ duplicate-exponent-token } { \token_to_str:N #1 }
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_open_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_open_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { invalid-token-in-exponent } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { invalid-token-in-exponent } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
- { invalid-token-in-exponent } \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV
+ { invalid-token-in-exponent } \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-exponent }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ invalid-token-in-number } {#1}
}
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_mantissa:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_digit_tl {#1}
- { \_siunitx_number_in_digit:N #1 }
+\cs_new_protected:Npn \siunitx_number_in_parse_mantissa:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_digit_tl {#1}
+ { \siunitx_number_in_digit:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_decimal_tl {#1}
- { \_siunitx_number_in_decimal:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_decimal_tl {#1}
+ { \siunitx_number_in_decimal:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_sign_tl {#1}
- { \_siunitx_number_in_sign:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_sign_tl {#1}
+ { \siunitx_number_in_sign:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_symbol_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_symbol_tl {#1}
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { symbolic }
+ \prop_put:Nnn \l_siunitx_number_in_prop { symbolic }
{ true }
- \_siunitx_number_in_digit:N #1
+ \siunitx_number_in_digit:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
- { \_siunitx_number_in_parse_more:N #1 }
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
+ { \siunitx_number_in_parse_more:N #1 }
}
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_mantissa_aux:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
- { \_siunitx_number_in_exponent:N #1 }
+\cs_new_protected:Npn \siunitx_number_in_parse_mantissa_aux:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
+ { \siunitx_number_in_exponent:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_open_tl {#1}
- { \_siunitx_number_in_uncert_open:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_uncert_open_tl {#1}
+ { \siunitx_number_in_uncert_open:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ misplaced-uncertainty-token } {#1}
}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
- { \_siunitx_number_in_complex:N #1 }
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
+ { \siunitx_number_in_complex:N #1 }
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ invalid-token-in-number } {#1}
}
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_uncert:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_digit_tl {#1}
- { \_siunitx_number_in_digit:N #1 }
+\cs_new_protected:Npn \siunitx_number_in_parse_uncert:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_digit_tl {#1}
+ { \siunitx_number_in_digit:N #1 }
{
- \tl_if_in:NnTF \_l_siunitx_input_decimal_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_decimal_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-uncertainty }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_sign_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_sign_tl {#1}
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-uncertainty }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
{
- \tl_if_in:NnTF \_l_siunitx_input_symbol_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_symbol_tl {#1}
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { symbolic }
+ \prop_put:Nnn \l_siunitx_number_in_prop { symbolic }
{ true }
- \_siunitx_number_in_digit:N #1
+ \siunitx_number_in_digit:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
{
- \tl_if_in:NnTF \_l_siunitx_input_uncert_close_tl
+ \tl_if_in:NnTF \l_siunitx_input_uncert_close_tl
{#1}
- { \_siunitx_number_in_uncert_close:N #1 }
+ { \siunitx_number_in_uncert_close:N #1 }
{
- \_siunitx_number_in_parse_error:nV
+ \siunitx_number_in_parse_error:nV
{ invalid-token-in-uncertainty }
- \_l_siunitx_number_arg_tl
+ \l_siunitx_number_arg_tl
}
}
}
@@ -1122,321 +1122,321 @@
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_parse_uncert_after:N #1 {
- \tl_if_in:NnTF \_l_siunitx_input_exponent_tl {#1}
+\cs_new_protected:Npn \siunitx_number_in_parse_uncert_after:N #1 {
+ \tl_if_in:NnTF \l_siunitx_input_exponent_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_exponent:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_exponent:N #1
}
{
- \tl_if_in:NnTF \_l_siunitx_input_sign_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_sign_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_sign:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_sign:N #1
}
{
- \tl_if_in:NnF \_l_siunitx_input_ignore_tl {#1}
+ \tl_if_in:NnF \l_siunitx_input_ignore_tl {#1}
{
- \tl_if_in:NnTF \_l_siunitx_input_complex_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_input_complex_tl {#1}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_mantissa:N
- \_siunitx_number_in_complex:N #1
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_mantissa:N
+ \siunitx_number_in_complex:N #1
}
{
- \_siunitx_number_in_parse_error:nV { invalid-number }
- \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV { invalid-number }
+ \l_siunitx_number_arg_tl
}
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_complex:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_if:NTF \_l_siunitx_number_in_complex_root_bool
+\cs_new_protected:Npn \siunitx_number_in_complex:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_if:NTF \l_siunitx_number_in_complex_root_bool
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ duplicate-complex-root-token } { \token_to_str:N #1 }
}
{
- \cs_set_eq:NN \_siunitx_number_in_check:n
- \_siunitx_number_in_check_full:n
- \bool_set_true:N \_l_siunitx_number_in_complex_root_bool
- \prop_put:Nnn \_l_siunitx_number_in_prop { complex-root } {#1}
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
+ \cs_set_eq:NN \siunitx_number_in_check:n
+ \siunitx_number_in_check_full:n
+ \bool_set_true:N \l_siunitx_number_in_complex_root_bool
+ \prop_put:Nnn \l_siunitx_number_in_prop { complex-root } {#1}
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
{
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_complex:N
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_complex:N
}
- \bool_if:NT \_l_siunitx_number_in_decimal_bool
+ \bool_if:NT \l_siunitx_number_in_decimal_bool
{
- \bool_if:NF \_l_siunitx_number_in_complex_bool
+ \bool_if:NF \l_siunitx_number_in_complex_bool
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop
+ \prop_if_in:NnT \l_siunitx_number_in_prop
{ mantissa-uncertainty }
{
- \_siunitx_number_in_complex_aux:nn
+ \siunitx_number_in_complex_aux:nn
{ mantissa-decimal } { complex-decimal }
- \_siunitx_number_in_complex_aux:nn
+ \siunitx_number_in_complex_aux:nn
{ mantissa-uncertainty } { complex-uncertainty }
}
- \_siunitx_number_in_complex_aux:nn { mantissa-integer }
+ \siunitx_number_in_complex_aux:nn { mantissa-integer }
{ complex-integer }
- \_siunitx_number_in_complex_aux:nn
+ \siunitx_number_in_complex_aux:nn
{ mantissa-decimal-marker } { complex-decimal-marker }
- \prop_del:Nn \_l_siunitx_number_in_prop { mantissa }
- \prop_put:Nnn \_l_siunitx_number_in_prop { complex }
+ \prop_del:Nn \l_siunitx_number_in_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_number_in_prop { complex }
{ true }
}
}
- \prop_if_in:NnF \_l_siunitx_number_in_prop { mantissa }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { mantissa }
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { mantissa-sign }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { mantissa-sign }
{
- \_siunitx_number_in_complex_aux:nn { mantissa-sign }
+ \siunitx_number_in_complex_aux:nn { mantissa-sign }
{ complex-sign }
}
}
- \bool_set_true:N \_l_siunitx_number_in_complex_bool
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \_siunitx_number_in_init_part:n { complex }
- \prop_if_in:NnT \_l_siunitx_number_in_prop
+ \bool_set_true:N \l_siunitx_number_in_complex_bool
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \siunitx_number_in_init_part:n { complex }
+ \prop_if_in:NnT \l_siunitx_number_in_prop
{ complex-decimal-marker }
- { \bool_set_true:N \_l_siunitx_number_in_decimal_bool }
- \prop_if_in:NnT \_l_siunitx_number_in_prop
+ { \bool_set_true:N \l_siunitx_number_in_decimal_bool }
+ \prop_if_in:NnT \l_siunitx_number_in_prop
{ complex-sign }
- { \bool_set_true:N \_l_siunitx_number_in_sign_bool }
+ { \bool_set_true:N \l_siunitx_number_in_sign_bool }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_complex_aux:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_complex_aux:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_del:Nn \_l_siunitx_number_in_prop {#1}
- \prop_put:NnV \_l_siunitx_number_in_prop {#2} \_l_siunitx_tmpa_tl
+ \prop_del:Nn \l_siunitx_number_in_prop {#1}
+ \prop_put:NnV \l_siunitx_number_in_prop {#2} \l_siunitx_tmpa_tl
}
}
-\cs_set_protected:Npn \_siunitx_number_in_decimal:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+\cs_new_protected:Npn \siunitx_number_in_decimal:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \_siunitx_number_in_parse_error:nx { duplicate-decimal-token }
+ \siunitx_number_in_parse_error:nx { duplicate-decimal-token }
{ \token_to_str:N #1 }
}
{
- \bool_set_true:N \_l_siunitx_number_in_decimal_bool
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
+ \bool_set_true:N \l_siunitx_number_in_decimal_bool
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
{
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_tl { true }
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
- \_l_siunitx_number_parsed_tl
- \tl_clear:N \_l_siunitx_number_parsed_tl
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_tl { true }
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
+ \l_siunitx_number_parsed_tl
+ \tl_clear:N \l_siunitx_number_parsed_tl
}
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_marker_tl {#1}
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_marker_tl {#1}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_digit:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_if:NTF \_l_siunitx_number_in_uncert_bool
- { \tl_put_right:Nn \_l_siunitx_number_parsed_tl {#1} }
+\cs_new_protected:Npn \siunitx_number_in_digit:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_if:NTF \l_siunitx_number_in_uncert_bool
+ { \tl_put_right:Nn \l_siunitx_number_parsed_tl {#1} }
{
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \tl_put_right:Nn \_l_siunitx_number_parsed_tl {#1}
+ \tl_put_right:Nn \l_siunitx_number_parsed_tl {#1}
\tl_if_eq:nnF {#1} { 0 }
- { \bool_set_true:N \_l_siunitx_number_in_value_bool }
+ { \bool_set_true:N \l_siunitx_number_in_value_bool }
}
{
\tl_if_eq:nnTF {#1} { 0 }
{
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_tl { true }
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl { 0 }
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_tl { true }
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl { 0 }
}
- { \bool_set_true:N \_l_siunitx_number_in_value_bool }
- \bool_if:NT \_l_siunitx_number_in_value_bool
- { \tl_put_right:Nn \_l_siunitx_number_parsed_tl {#1} }
+ { \bool_set_true:N \l_siunitx_number_in_value_bool }
+ \bool_if:NT \l_siunitx_number_in_value_bool
+ { \tl_put_right:Nn \l_siunitx_number_parsed_tl {#1} }
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_exponent:N #1 {
- \bool_if:NTF \_l_siunitx_number_in_exponent_bool
+\cs_new_protected:Npn \siunitx_number_in_exponent:N #1 {
+ \bool_if:NTF \l_siunitx_number_in_exponent_bool
{
- \_siunitx_number_in_parse_error:nx { duplicate-exponent-token }
+ \siunitx_number_in_parse_error:nx { duplicate-exponent-token }
{ \token_to_str:N #1 }
}
{
- \cs_set_eq:NN \_siunitx_number_in_parse_more:N
- \_siunitx_number_in_parse_exponent:N
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
- { \_siunitx_number_in_store: }
- \bool_set_true:N \_l_siunitx_number_in_exponent_bool
- \_siunitx_number_in_init_part:n { exponent }
+ \cs_set_eq:NN \siunitx_number_in_parse_more:N
+ \siunitx_number_in_parse_exponent:N
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
+ { \siunitx_number_in_store: }
+ \bool_set_true:N \l_siunitx_number_in_exponent_bool
+ \siunitx_number_in_init_part:n { exponent }
}
}
-\cs_set_protected:Npn \_siunitx_number_in_sign:N #1 {
- \bool_if:NTF \_l_siunitx_number_in_first_bool
+\cs_new_protected:Npn \siunitx_number_in_sign:N #1 {
+ \bool_if:NTF \l_siunitx_number_in_first_bool
{
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \bool_set_true:N \_l_siunitx_number_in_sign_bool
- \prop_put:NVn \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_sign_tl {#1}
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \bool_set_true:N \l_siunitx_number_in_sign_bool
+ \prop_put:NVn \l_siunitx_number_in_prop
+ \l_siunitx_number_part_sign_tl {#1}
}
{
- \bool_if:NTF \_l_siunitx_number_in_exponent_bool
+ \bool_if:NTF \l_siunitx_number_in_exponent_bool
{
- \_siunitx_number_in_parse_error:nx { misplaced-sign-token }
+ \siunitx_number_in_parse_error:nx { misplaced-sign-token }
{#1}
}
{
- \bool_if:NTF \_l_siunitx_number_in_complex_bool
+ \bool_if:NTF \l_siunitx_number_in_complex_bool
{
- \_siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nx
{ misplaced-sign-token } {#1}
}
{
- \tl_if_empty:NF \_l_siunitx_number_parsed_tl
- { \_siunitx_number_in_store: }
- \cs_set_eq:NN \_siunitx_number_in_check:n
- \_siunitx_number_in_check_full:n
- \_siunitx_number_in_init_part:n { complex }
- \prop_put:Nnn \_l_siunitx_number_in_prop
+ \tl_if_empty:NF \l_siunitx_number_parsed_tl
+ { \siunitx_number_in_store: }
+ \cs_set_eq:NN \siunitx_number_in_check:n
+ \siunitx_number_in_check_full:n
+ \siunitx_number_in_init_part:n { complex }
+ \prop_put:Nnn \l_siunitx_number_in_prop
{ complex-sign } {#1}
- \bool_set_true:N \_l_siunitx_number_in_complex_bool
+ \bool_set_true:N \l_siunitx_number_in_complex_bool
}
}
}
}
-\cs_set_protected:Npn \_siunitx_number_in_uncert_open:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_first_bool
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_uncert:N
- \bool_set_true:N \_l_siunitx_number_in_uncert_bool
- \tl_if_empty:NTF \_l_siunitx_number_parsed_tl
+\cs_new_protected:Npn \siunitx_number_in_uncert_open:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_first_bool
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_uncert:N
+ \bool_set_true:N \l_siunitx_number_in_uncert_bool
+ \tl_if_empty:NTF \l_siunitx_number_parsed_tl
{
- \prop_if_in:NVF \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
+ \prop_if_in:NVF \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
{
- \_siunitx_number_in_parse_error:nV { invalid-number }
- \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV { invalid-number }
+ \l_siunitx_number_arg_tl
}
}
- { \_siunitx_number_in_store: }
+ { \siunitx_number_in_store: }
}
-\cs_set_protected:Npn \_siunitx_number_in_uncert_close:N #1 {
- \bool_set_false:N \_l_siunitx_number_in_uncert_bool
- \tl_if_empty:NTF \_l_siunitx_number_parsed_tl
+\cs_new_protected:Npn \siunitx_number_in_uncert_close:N #1 {
+ \bool_set_false:N \l_siunitx_number_in_uncert_bool
+ \tl_if_empty:NTF \l_siunitx_number_parsed_tl
{
- \_siunitx_number_in_parse_error:nV { empty-uncertainty }
- \_l_siunitx_number_arg_tl
+ \siunitx_number_in_parse_error:nV { empty-uncertainty }
+ \l_siunitx_number_arg_tl
}
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_uncert_tl \_l_siunitx_number_parsed_tl
- \prop_put:Nnn \_l_siunitx_number_in_prop
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_uncert_tl \l_siunitx_number_parsed_tl
+ \prop_put:Nnn \l_siunitx_number_in_prop
{ uncertainty } { true }
- \tl_clear:N \_l_siunitx_number_parsed_tl
- \cs_set_eq:NN \_siunitx_number_in_parse_loop:N
- \_siunitx_number_in_parse_uncert_after:N
+ \tl_clear:N \l_siunitx_number_parsed_tl
+ \cs_set_eq:NN \siunitx_number_in_parse_loop:N
+ \siunitx_number_in_parse_uncert_after:N
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_store: {
- \prop_put:NVn \_l_siunitx_number_in_prop \_l_siunitx_number_part_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_store: {
+ \prop_put:NVn \l_siunitx_number_in_prop \l_siunitx_number_part_tl
{ true }
- \bool_if:NTF \_l_siunitx_number_in_decimal_bool
+ \bool_if:NTF \l_siunitx_number_in_decimal_bool
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_tl \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_tl \l_siunitx_number_parsed_tl
}
{
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl \_l_siunitx_number_parsed_tl
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl \l_siunitx_number_parsed_tl
}
- \tl_clear:N \_l_siunitx_number_parsed_tl
+ \tl_clear:N \l_siunitx_number_parsed_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_check:n #1 { }
-\cs_set_protected_nopar:Npn \_siunitx_number_in_check_short:n #1 {
- \prop_if_in:NVF \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_integer_tl
+\cs_new_protected_nopar:Npn \siunitx_number_in_check:n #1 { }
+\cs_new_protected_nopar:Npn \siunitx_number_in_check_short:n #1 {
+ \prop_if_in:NVF \l_siunitx_number_in_prop
+ \l_siunitx_number_part_integer_tl
{
- \prop_if_in:NVF \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_decimal_tl
- { \_siunitx_error:nx { invalid-number } {#1} }
+ \prop_if_in:NVF \l_siunitx_number_in_prop
+ \l_siunitx_number_part_decimal_tl
+ { \siunitx_error:nx { invalid-number } {#1} }
}
- \bool_if:NF \_l_siunitx_number_in_value_bool
+ \bool_if:NF \l_siunitx_number_in_value_bool
{
- \tl_if_eq:NNF \_l_siunitx_number_part_tl
- \_c_siunitx_number_part_complex_tl
+ \tl_if_eq:NNF \l_siunitx_number_part_tl
+ \c_siunitx_number_part_complex_tl
{
- \prop_get:NVN \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_sign_tl \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NVN \l_siunitx_number_in_prop
+ \l_siunitx_number_part_sign_tl \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { \_l_siunitx_number_part_sign_tl -deleted }
- \prop_put:NVV \_l_siunitx_number_in_prop
- \_l_siunitx_tmpb_tl \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { \l_siunitx_number_part_sign_tl -deleted }
+ \prop_put:NVV \l_siunitx_number_in_prop
+ \l_siunitx_tmpb_tl \l_siunitx_tmpa_tl
}
- \prop_del:NV \_l_siunitx_number_in_prop
- \_l_siunitx_number_part_sign_tl
+ \prop_del:NV \l_siunitx_number_in_prop
+ \l_siunitx_number_part_sign_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_in_check_full:n #1 {
- \tl_if_eq:NNF \_l_siunitx_number_part_tl
- \_c_siunitx_number_part_complex_tl
- { \_siunitx_number_in_check_short:n {#1} }
- \bool_if:NF \_l_siunitx_number_in_complex_root_bool
+\cs_new_protected_nopar:Npn \siunitx_number_in_check_full:n #1 {
+ \tl_if_eq:NNF \l_siunitx_number_part_tl
+ \c_siunitx_number_part_complex_tl
+ { \siunitx_number_in_check_short:n {#1} }
+ \bool_if:NF \l_siunitx_number_in_complex_root_bool
{
- \prop_get:NnN \_l_siunitx_number_in_prop { complex-sign }
- \_l_siunitx_tmpa_tl
- \_siunitx_error:nV { misplaced-sign-token } \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-sign }
+ \l_siunitx_tmpa_tl
+ \siunitx_error:nV { misplaced-sign-token } \l_siunitx_tmpa_tl
}
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { mantissa }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { mantissa }
{
- \prop_del:Nn \_l_siunitx_number_in_prop { mantissa-sign }
- \prop_put:NnV \_l_siunitx_number_in_prop { complex-sign }
- \_l_siunitx_tmpa_tl
+ \prop_del:Nn \l_siunitx_number_in_prop { mantissa-sign }
+ \prop_put:NnV \l_siunitx_number_in_prop { complex-sign }
+ \l_siunitx_tmpa_tl
}
}
}
-\int_new:N \_l_siunitx_round_int
-\tl_new:N \_l_siunitx_round_tl
-\bool_new:N \_l_siunitx_round_bool
-\tl_new:N \_l_siunitx_round_decimal_in_tl
-\tl_new:N \_l_siunitx_round_decimal_out_tl
-\tl_new:N \_l_siunitx_round_integer_in_tl
-\tl_new:N \_l_siunitx_round_integer_out_tl
-\int_new:N \_l_siunitx_process_decimal_int
-\int_new:N \_l_siunitx_process_uncertainty_int
-\tl_new:N \_l_siunitx_uncertainty_decimal_tl
-\tl_new:N \_l_siunitx_uncertainty_integer_tl
+\int_new:N \l_siunitx_round_int
+\tl_new:N \l_siunitx_round_tl
+\bool_new:N \l_siunitx_round_bool
+\tl_new:N \l_siunitx_round_decimal_in_tl
+\tl_new:N \l_siunitx_round_decimal_out_tl
+\tl_new:N \l_siunitx_round_integer_in_tl
+\tl_new:N \l_siunitx_round_integer_out_tl
+\int_new:N \l_siunitx_process_decimal_int
+\int_new:N \l_siunitx_process_uncertainty_int
+\tl_new:N \l_siunitx_uncertainty_decimal_tl
+\tl_new:N \l_siunitx_uncertainty_integer_tl
\keys_define:nn { siunitx } {
- add-decimal-zero .bool_set:N = \_l_siunitx_process_decimal_zero_bool,
- add-integer-zero .bool_set:N = \_l_siunitx_process_integer_zero_bool,
- explicit-sign .tl_set:N = \_l_siunitx_process_sign_tl,
- retain-explicit-plus .bool_set:N = \_l_siunitx_process_plus_tl,
+ add-decimal-zero .bool_set:N = \l_siunitx_process_decimal_zero_bool,
+ add-integer-zero .bool_set:N = \l_siunitx_process_integer_zero_bool,
+ explicit-sign .tl_set:N = \l_siunitx_process_sign_tl,
+ retain-explicit-plus .bool_set:N = \l_siunitx_process_plus_tl,
retain-unity-mantissa .bool_set:N =
- \_l_siunitx_process_unity_mantissa_bool,
+ \l_siunitx_process_unity_mantissa_bool,
retain-zero-exponent .bool_set:N =
- \_l_siunitx_process_zero_exponent_bool,
+ \l_siunitx_process_zero_exponent_bool,
round-mode .choice: ,
round-mode / figures .code:n =
- { \tl_set:Nn \_l_siunitx_round_tl { figures } },
- round-mode / off .code:n = { \tl_clear:N \_l_siunitx_round_tl },
+ { \tl_set:Nn \l_siunitx_round_tl { figures } },
+ round-mode / off .code:n = { \tl_clear:N \l_siunitx_round_tl },
round-mode / places .code:n =
- { \tl_set:Nn \_l_siunitx_round_tl { places } },
- round-precision .int_set:N = \_l_siunitx_process_precision_int,
+ { \tl_set:Nn \l_siunitx_round_tl { places } },
+ round-precision .int_set:N = \l_siunitx_process_precision_int,
}
\keys_set:nn { siunitx } {
add-decimal-zero = true,
@@ -1444,200 +1444,200 @@
retain-unity-mantissa = true,
round-precision = 2,
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process: {
- \_siunitx_number_process_sign:
- \_siunitx_number_process_zero_fill:
- \_siunitx_number_process_mantissa:
- \prop_if_in:NnF \_l_siunitx_number_in_prop { symbolic }
+\cs_new_protected_nopar:Npn \siunitx_number_process: {
+ \siunitx_number_process_sign:
+ \siunitx_number_process_zero_fill:
+ \siunitx_number_process_mantissa:
+ \prop_if_in:NnF \l_siunitx_number_in_prop { symbolic }
{
- \_siunitx_number_process_exponent:
- \_siunitx_number_process_uncertainty:
- \prop_if_in:NnF \_l_siunitx_number_in_prop { uncertainty }
- { \_siunitx_number_process_round: }
+ \siunitx_number_process_exponent:
+ \siunitx_number_process_uncertainty:
+ \prop_if_in:NnF \l_siunitx_number_in_prop { uncertainty }
+ { \siunitx_number_process_round: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_exponent: {
- \bool_if:NF \_l_siunitx_process_zero_exponent_bool
+\cs_new_protected_nopar:Npn \siunitx_number_process_exponent: {
+ \bool_if:NF \l_siunitx_process_zero_exponent_bool
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
{
- \bool_set_false:N \_l_siunitx_tmp_bool
- \_siunitx_number_process_exponent_aux:n { integer }
- \bool_if:NF \_l_siunitx_tmp_bool
- { \_siunitx_number_process_exponent_aux:n { decimal } }
- \bool_if:NF \_l_siunitx_tmp_bool
+ \bool_set_false:N \l_siunitx_tmp_bool
+ \siunitx_number_process_exponent_aux:n { integer }
+ \bool_if:NF \l_siunitx_tmp_bool
+ { \siunitx_number_process_exponent_aux:n { decimal } }
+ \bool_if:NF \l_siunitx_tmp_bool
{
- \prop_del:Nn \_l_siunitx_number_in_prop { exponent }
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop { exponent }
+ \prop_del:Nn \l_siunitx_number_in_prop
{ exponent-integer }
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop
{ exponent-decimal }
}
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_exponent_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { exponent- #1 }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_exponent_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { exponent- #1 }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \intexpr_compare:nNnF { \_l_siunitx_tmpa_tl } = { 0 }
- { \bool_set_true:N \_l_siunitx_tmp_bool }
+ \intexpr_compare:nNnF { \l_siunitx_tmpa_tl } = { 0 }
+ { \bool_set_true:N \l_siunitx_tmp_bool }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop {#1}
- { \_siunitx_number_process_figures_aux:n {#1} }
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop {#1}
+ { \siunitx_number_process_figures_aux:n {#1} }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_aux:n #1 {
- \_siunitx_number_process_figures_init:n {#1}
- \_siunitx_number_process_figures_count:n { integer }
- \_siunitx_number_process_figures_count:n { decimal }
- \bool_if:NTF \_l_siunitx_round_bool
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_aux:n #1 {
+ \siunitx_number_process_figures_init:n {#1}
+ \siunitx_number_process_figures_count:n { integer }
+ \siunitx_number_process_figures_count:n { decimal }
+ \bool_if:NTF \l_siunitx_round_bool
{
- \bool_set_false:N \_l_siunitx_round_bool
+ \bool_set_false:N \l_siunitx_round_bool
\intexpr_compare:nNnTF
- { \_l_siunitx_round_int } >
- { \_l_siunitx_process_precision_int }
+ { \l_siunitx_round_int } >
+ { \l_siunitx_process_precision_int }
{
- \_siunitx_number_process_figures_round:
- \_siunitx_number_process_round_tidy:n {#1}
+ \siunitx_number_process_figures_round:
+ \siunitx_number_process_round_tidy:n {#1}
}
- { \_siunitx_number_process_figures_pad:n {#1} }
- }
- {
- \prop_put:Nnn \_l_siunitx_number_in_prop { #1 -integer } { 0 }
- \prop_del:Nn \_l_siunitx_number_in_prop { #1 -decimal }
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_init:n #1 {
- \int_zero:N \_l_siunitx_round_int
- \bool_set_false:N \_l_siunitx_round_bool
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_in_tl
- \quark_if_no_value:NT \_l_siunitx_round_decimal_in_tl
- { \tl_clear:N \_l_siunitx_round_decimal_in_tl }
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_in_tl
- \quark_if_no_value:NT \_l_siunitx_round_integer_in_tl
- { \tl_clear:N \_l_siunitx_round_integer_in_tl }
- \tl_clear:N \_l_siunitx_round_decimal_out_tl
- \tl_clear:N \_l_siunitx_round_integer_out_tl
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_figures_count:n #1 {
- \tl_if_empty:cF { _l_siunitx_round_ #1 _in_tl }
- {
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -uncertainty }
- { \_siunitx_number_process_figures_count_aux:n {#1} }
- }
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_figures_count_aux:n #1 {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:Nv \tl_head:n { _l_siunitx_round_ #1 _in_tl } }
- \tl_set:cx { _l_siunitx_round_ #1 _in_tl }
- { \exp_args:Nv \tl_tail:n { _l_siunitx_round_ #1 _in_tl } }
- \tl_put_left:cV { _l_siunitx_round_ #1 _out_tl } \_l_siunitx_tmp_int
- \bool_if:NF \_l_siunitx_round_bool
- {
- \intexpr_compare:nNnF { \_l_siunitx_tmp_int } = { 0 }
- { \bool_set_true:N \_l_siunitx_round_bool }
- }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_round_int }
- \tl_if_empty:cTF { _l_siunitx_round_ #1 _in_tl }
- {
- \tl_set_eq:cc { _l_siunitx_round_ #1 _in_tl }
- { _l_siunitx_round_ #1 _out_tl }
- \tl_clear:c { _l_siunitx_round_ #1 _out_tl }
- }
- { \_siunitx_number_process_figures_count_aux:n {#1} }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_round: {
- \int_set:Nn \_l_siunitx_round_int
- { \_l_siunitx_round_int - \_l_siunitx_process_precision_int }
- \tl_if_empty:NF \_l_siunitx_round_decimal_in_tl
- { \_siunitx_number_process_figures_round_loop: }
- \tl_if_empty:NF \_l_siunitx_round_integer_in_tl
- { \_siunitx_number_process_figures_integer: }
- \bool_if:NT \_l_siunitx_round_bool
- {
- \tl_put_left:Nn \_l_siunitx_round_integer_out_tl { 1 }
- \tl_if_empty:NF \_l_siunitx_round_decimal_out_tl
- {
- \tl_reverse:N \_l_siunitx_round_decimal_out_tl
- \tl_set:Nx \_l_siunitx_round_decimal_out_tl
- { \tl_tail:n \_l_siunitx_round_decimal_out_tl }
- \tl_reverse:N \_l_siunitx_round_decimal_out_tl
+ { \siunitx_number_process_figures_pad:n {#1} }
+ }
+ {
+ \prop_put:Nnn \l_siunitx_number_in_prop { #1 -integer } { 0 }
+ \prop_del:Nn \l_siunitx_number_in_prop { #1 -decimal }
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_init:n #1 {
+ \int_zero:N \l_siunitx_round_int
+ \bool_set_false:N \l_siunitx_round_bool
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_in_tl
+ \quark_if_no_value:NT \l_siunitx_round_decimal_in_tl
+ { \tl_clear:N \l_siunitx_round_decimal_in_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_in_tl
+ \quark_if_no_value:NT \l_siunitx_round_integer_in_tl
+ { \tl_clear:N \l_siunitx_round_integer_in_tl }
+ \tl_clear:N \l_siunitx_round_decimal_out_tl
+ \tl_clear:N \l_siunitx_round_integer_out_tl
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_figures_count:n #1 {
+ \tl_if_empty:cF { l_siunitx_round_ #1 _in_tl }
+ {
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -uncertainty }
+ { \siunitx_number_process_figures_count_aux:n {#1} }
+ }
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_figures_count_aux:n #1 {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:Nv \tl_head:n { l_siunitx_round_ #1 _in_tl } }
+ \tl_set:cx { l_siunitx_round_ #1 _in_tl }
+ { \exp_args:Nv \tl_tail:n { l_siunitx_round_ #1 _in_tl } }
+ \tl_put_left:cV { l_siunitx_round_ #1 _out_tl } \l_siunitx_tmp_int
+ \bool_if:NF \l_siunitx_round_bool
+ {
+ \intexpr_compare:nNnF { \l_siunitx_tmp_int } = { 0 }
+ { \bool_set_true:N \l_siunitx_round_bool }
+ }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_round_int }
+ \tl_if_empty:cTF { l_siunitx_round_ #1 _in_tl }
+ {
+ \tl_set_eq:cc { l_siunitx_round_ #1 _in_tl }
+ { l_siunitx_round_ #1 _out_tl }
+ \tl_clear:c { l_siunitx_round_ #1 _out_tl }
+ }
+ { \siunitx_number_process_figures_count_aux:n {#1} }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_round: {
+ \int_set:Nn \l_siunitx_round_int
+ { \l_siunitx_round_int - \l_siunitx_process_precision_int }
+ \tl_if_empty:NF \l_siunitx_round_decimal_in_tl
+ { \siunitx_number_process_figures_round_loop: }
+ \tl_if_empty:NF \l_siunitx_round_integer_in_tl
+ { \siunitx_number_process_figures_integer: }
+ \bool_if:NT \l_siunitx_round_bool
+ {
+ \tl_put_left:Nn \l_siunitx_round_integer_out_tl { 1 }
+ \tl_if_empty:NF \l_siunitx_round_decimal_out_tl
+ {
+ \tl_reverse:N \l_siunitx_round_decimal_out_tl
+ \tl_set:Nx \l_siunitx_round_decimal_out_tl
+ { \tl_tail:n \l_siunitx_round_decimal_out_tl }
+ \tl_reverse:N \l_siunitx_round_decimal_out_tl
}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_figures_round_loop: {
- \_siunitx_number_process_round_decimal:
- \tl_if_empty:NF \_l_siunitx_round_decimal_in_tl
- { \_siunitx_number_process_figures_round_loop: }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_figures_round_loop: {
+ \siunitx_number_process_round_decimal:
+ \tl_if_empty:NF \l_siunitx_round_decimal_in_tl
+ { \siunitx_number_process_figures_round_loop: }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_integer: {
- \intexpr_compare:nNnT { \_l_siunitx_round_int } > { 0 }
- { \tl_put_left:Nn \_l_siunitx_round_integer_out_tl { 0 } }
- \intexpr_compare:nNnF { \_l_siunitx_round_int } > { 1 }
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_integer: {
+ \intexpr_compare:nNnT { \l_siunitx_round_int } > { 0 }
+ { \tl_put_left:Nn \l_siunitx_round_integer_out_tl { 0 } }
+ \intexpr_compare:nNnF { \l_siunitx_round_int } > { 1 }
{
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:NV \tl_head:n \_l_siunitx_round_integer_in_tl }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_tmp_int }
- \bool_set_false:N \_l_siunitx_round_bool
- \intexpr_compare:nNnTF { \_l_siunitx_round_int } = { 1 }
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:NV \tl_head:n \l_siunitx_round_integer_in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_tmp_int }
+ \bool_set_false:N \l_siunitx_round_bool
+ \intexpr_compare:nNnTF { \l_siunitx_round_int } = { 1 }
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } > { 4 }
- { \bool_set_true:N \_l_siunitx_round_bool }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } > { 4 }
+ { \bool_set_true:N \l_siunitx_round_bool }
}
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } > { 10 }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } > { 10 }
{
- \bool_set_true:N \_l_siunitx_round_bool
- \int_zero:N \_l_siunitx_tmp_int
+ \bool_set_true:N \l_siunitx_round_bool
+ \int_zero:N \l_siunitx_tmp_int
}
- \tl_put_left:NV \_l_siunitx_round_integer_out_tl
- \_l_siunitx_tmp_int
+ \tl_put_left:NV \l_siunitx_round_integer_out_tl
+ \l_siunitx_tmp_int
}
}
- \int_decr:N \_l_siunitx_round_int
- \tl_set:Nx \_l_siunitx_round_integer_in_tl
- { \exp_args:NV \tl_tail:n \_l_siunitx_round_integer_in_tl }
- \tl_if_empty:NF \_l_siunitx_round_integer_in_tl
- { \_siunitx_number_process_figures_integer: }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_figures_pad:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_in_tl
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_in_tl
- \int_set:Nn \_l_siunitx_round_int
- { \_l_siunitx_process_precision_int - \_l_siunitx_round_int }
- \_siunitx_number_process_pad:n {#1}
-}
-\tl_new:N \_c_siunitx_unity_tl
-\tl_set:Nn \_c_siunitx_unity_tl { 1 }
-\cs_set_protected_nopar:Npn \_siunitx_number_process_mantissa: {
- \bool_if:NF \_l_siunitx_process_unity_mantissa_bool
- {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- {
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-integer }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \int_decr:N \l_siunitx_round_int
+ \tl_set:Nx \l_siunitx_round_integer_in_tl
+ { \exp_args:NV \tl_tail:n \l_siunitx_round_integer_in_tl }
+ \tl_if_empty:NF \l_siunitx_round_integer_in_tl
+ { \siunitx_number_process_figures_integer: }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_process_figures_pad:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_in_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_in_tl
+ \int_set:Nn \l_siunitx_round_int
+ { \l_siunitx_process_precision_int - \l_siunitx_round_int }
+ \siunitx_number_process_pad:n {#1}
+}
+\tl_new:N \c_siunitx_unity_tl
+\tl_set:Nn \c_siunitx_unity_tl { 1 }
+\cs_new_protected_nopar:Npn \siunitx_number_process_mantissa: {
+ \bool_if:NF \l_siunitx_process_unity_mantissa_bool
+ {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ {
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-integer }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_if_eq:NNT \_c_siunitx_unity_tl \_l_siunitx_tmpa_tl
+ \tl_if_eq:NNT \c_siunitx_unity_tl \l_siunitx_tmpa_tl
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop
+ \prop_if_in:NnF \l_siunitx_number_in_prop
{ mantissa-decimal-marker }
{
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop
{ mantissa }
- \prop_del:Nn \_l_siunitx_number_in_prop
+ \prop_del:Nn \l_siunitx_number_in_prop
{ mantissa-integer }
}
}
@@ -1645,365 +1645,365 @@
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_pad:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_pad:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \intexpr_while_do:nNnn { \_l_siunitx_round_int } > { 0 }
+ \intexpr_while_do:nNnn { \l_siunitx_round_int } > { 0 }
{
- \tl_put_right:Nn \_l_siunitx_tmpa_tl { 0 }
- \int_decr:N \_l_siunitx_round_int
+ \tl_put_right:Nn \l_siunitx_tmpa_tl { 0 }
+ \int_decr:N \l_siunitx_round_int
}
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_tmpa_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_process_places:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop {#1}
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -uncertainty }
- { \_siunitx_number_process_places_aux_i:n {#1} }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -uncertainty }
+ { \siunitx_number_process_places_aux_i:n {#1} }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places_aux_i:n #1 {
- \intexpr_compare:nNnTF { \_l_siunitx_process_precision_int } = { 0 }
- { \prop_del:Nn \_l_siunitx_number_in_prop { #1 -decimal } }
+\cs_new_protected_nopar:Npn \siunitx_number_process_places_aux_i:n #1 {
+ \intexpr_compare:nNnTF { \l_siunitx_process_precision_int } = { 0 }
+ { \prop_del:Nn \l_siunitx_number_in_prop { #1 -decimal } }
{
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_if_empty:NT \_l_siunitx_tmpa_tl
- { \tl_set:Nn \_l_siunitx_tmpa_tl { 0 } }
- \intexpr_compare:nNnTF { \_l_siunitx_tmpa_tl } = { 0 }
+ \tl_if_empty:NT \l_siunitx_tmpa_tl
+ { \tl_set:Nn \l_siunitx_tmpa_tl { 0 } }
+ \intexpr_compare:nNnTF { \l_siunitx_tmpa_tl } = { 0 }
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { #1 -decimal }
+ \prop_put:Nnn \l_siunitx_number_in_prop { #1 -decimal }
{ }
- \int_set:Nn \_l_siunitx_round_int
- { \_l_siunitx_process_precision_int }
- \_siunitx_number_process_pad:n {#1}
+ \int_set:Nn \l_siunitx_round_int
+ { \l_siunitx_process_precision_int }
+ \siunitx_number_process_pad:n {#1}
}
{
- \int_set:Nn \_l_siunitx_round_int
- { \tl_elt_count:N \_l_siunitx_tmpa_tl }
- \_siunitx_number_process_places_aux_ii:n {#1}
+ \int_set:Nn \l_siunitx_round_int
+ { \tl_elt_count:N \l_siunitx_tmpa_tl }
+ \siunitx_number_process_places_aux_ii:n {#1}
}
}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_places_aux_ii:n #1 {
- \int_sub:Nn \_l_siunitx_round_int
- { \_l_siunitx_process_precision_int }
- \intexpr_compare:nNnTF { \_l_siunitx_round_int } < { 0 }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_places_aux_ii:n #1 {
+ \int_sub:Nn \l_siunitx_round_int
+ { \l_siunitx_process_precision_int }
+ \intexpr_compare:nNnTF { \l_siunitx_round_int } < { 0 }
{
- \int_set:Nn \_l_siunitx_round_int { - \_l_siunitx_round_int }
- \_siunitx_number_process_pad:n {#1}
+ \int_set:Nn \l_siunitx_round_int { - \l_siunitx_round_int }
+ \siunitx_number_process_pad:n {#1}
}
{
- \_siunitx_number_process_places_init:n {#1}
- \_siunitx_number_process_places_loop:n {#1}
- \_siunitx_number_process_round_tidy:n {#1}
+ \siunitx_number_process_places_init:n {#1}
+ \siunitx_number_process_places_loop:n {#1}
+ \siunitx_number_process_round_tidy:n {#1}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places_init:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_in_tl
- \quark_if_no_value:NT \_l_siunitx_round_integer_in_tl
- { \tl_clear:N \_l_siunitx_round_integer_in_tl }
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_in_tl
- \tl_reverse:N \_l_siunitx_round_integer_in_tl
- \tl_reverse:N \_l_siunitx_round_decimal_in_tl
- \tl_clear:N \_l_siunitx_round_integer_out_tl
- \tl_clear:N \_l_siunitx_round_decimal_out_tl
- \bool_set_false:N \_l_siunitx_round_bool
+\cs_new_protected_nopar:Npn \siunitx_number_process_places_init:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_in_tl
+ \quark_if_no_value:NT \l_siunitx_round_integer_in_tl
+ { \tl_clear:N \l_siunitx_round_integer_in_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_in_tl
+ \tl_reverse:N \l_siunitx_round_integer_in_tl
+ \tl_reverse:N \l_siunitx_round_decimal_in_tl
+ \tl_clear:N \l_siunitx_round_integer_out_tl
+ \tl_clear:N \l_siunitx_round_decimal_out_tl
+ \bool_set_false:N \l_siunitx_round_bool
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_places_loop:n #1 {
- \tl_if_empty:NTF \_l_siunitx_round_decimal_in_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_places_loop:n #1 {
+ \tl_if_empty:NTF \l_siunitx_round_decimal_in_tl
{
- \tl_if_empty:NF \_l_siunitx_round_integer_in_tl
+ \tl_if_empty:NF \l_siunitx_round_integer_in_tl
{
- \_siunitx_number_process_places_integer:n {#1}
- \_siunitx_number_process_places_loop:n {#1}
+ \siunitx_number_process_places_integer:n {#1}
+ \siunitx_number_process_places_loop:n {#1}
}
- \bool_if:NT \_l_siunitx_round_bool
+ \bool_if:NT \l_siunitx_round_bool
{
- \tl_put_left:Nn \_l_siunitx_round_integer_out_tl { 1 }
- \bool_set_false:N \_l_siunitx_round_bool
+ \tl_put_left:Nn \l_siunitx_round_integer_out_tl { 1 }
+ \bool_set_false:N \l_siunitx_round_bool
}
}
{
- \_siunitx_number_process_round_decimal:
- \_siunitx_number_process_places_loop:n {#1}
+ \siunitx_number_process_round_decimal:
+ \siunitx_number_process_places_loop:n {#1}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_places_integer:n #1 {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:NV \tl_head:n \_l_siunitx_round_integer_in_tl }
- \tl_set:Nx \_l_siunitx_round_integer_in_tl
- { \exp_args:NV \tl_tail:n \_l_siunitx_round_integer_in_tl }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_tmp_int }
- \bool_set_false:N \_l_siunitx_round_bool
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } = { 10 }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_places_integer:n #1 {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:NV \tl_head:n \l_siunitx_round_integer_in_tl }
+ \tl_set:Nx \l_siunitx_round_integer_in_tl
+ { \exp_args:NV \tl_tail:n \l_siunitx_round_integer_in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_tmp_int }
+ \bool_set_false:N \l_siunitx_round_bool
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } = { 10 }
{
- \int_zero:N \_l_siunitx_tmp_int
- \bool_set_true:N \_l_siunitx_round_bool
+ \int_zero:N \l_siunitx_tmp_int
+ \bool_set_true:N \l_siunitx_round_bool
}
- \tl_put_left:NV \_l_siunitx_round_integer_out_tl \_l_siunitx_tmp_int
+ \tl_put_left:NV \l_siunitx_round_integer_out_tl \l_siunitx_tmp_int
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_round: {
- \tl_if_empty:NF \_l_siunitx_round_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_round: {
+ \tl_if_empty:NF \l_siunitx_round_tl
{
- \cs_set_nopar:Npx \_siunitx_tmp:w
+ \cs_set_nopar:Npx \siunitx_tmp:w
{
\exp_not:N \clist_map_function:nN
{ mantissa , complex }
\exp_not:c
- { _siunitx_number_process_ \_l_siunitx_round_tl :n }
+ { siunitx_number_process_ \l_siunitx_round_tl :n }
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_round_decimal: {
- \intexpr_compare:nNnF { \_l_siunitx_round_int } > { 1 }
- { \_siunitx_number_process_round_decimal_aux: }
- \tl_set:Nx \_l_siunitx_round_decimal_in_tl
- { \exp_args:NV \tl_tail:n \_l_siunitx_round_decimal_in_tl }
+\cs_new_protected_nopar:Npn \siunitx_number_process_round_decimal: {
+ \intexpr_compare:nNnF { \l_siunitx_round_int } > { 1 }
+ { \siunitx_number_process_round_decimal_aux: }
+ \tl_set:Nx \l_siunitx_round_decimal_in_tl
+ { \exp_args:NV \tl_tail:n \l_siunitx_round_decimal_in_tl }
- \int_decr:N \_l_siunitx_round_int
+ \int_decr:N \l_siunitx_round_int
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_round_decimal_aux: {
- \int_set:Nn \_l_siunitx_tmp_int
- { \exp_args:NV \tl_head:n \_l_siunitx_round_decimal_in_tl }
- \bool_if:NT \_l_siunitx_round_bool
- { \int_incr:N \_l_siunitx_tmp_int }
- \bool_set_false:N \_l_siunitx_round_bool
- \intexpr_compare:nNnTF { \_l_siunitx_round_int } = { 1 }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_round_decimal_aux: {
+ \int_set:Nn \l_siunitx_tmp_int
+ { \exp_args:NV \tl_head:n \l_siunitx_round_decimal_in_tl }
+ \bool_if:NT \l_siunitx_round_bool
+ { \int_incr:N \l_siunitx_tmp_int }
+ \bool_set_false:N \l_siunitx_round_bool
+ \intexpr_compare:nNnTF { \l_siunitx_round_int } = { 1 }
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } > { 4 }
- { \bool_set_true:N \_l_siunitx_round_bool }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } > { 4 }
+ { \bool_set_true:N \l_siunitx_round_bool }
}
{
- \intexpr_compare:nNnT { \_l_siunitx_tmp_int } = { 10 }
+ \intexpr_compare:nNnT { \l_siunitx_tmp_int } = { 10 }
{
- \bool_set_true:N \_l_siunitx_round_bool
- \int_zero:N \_l_siunitx_tmp_int
+ \bool_set_true:N \l_siunitx_round_bool
+ \int_zero:N \l_siunitx_tmp_int
}
- \tl_put_left:NV \_l_siunitx_round_decimal_out_tl
- \_l_siunitx_tmp_int
+ \tl_put_left:NV \l_siunitx_round_decimal_out_tl
+ \l_siunitx_tmp_int
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_round_tidy:n #1 {
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -integer }
- \_l_siunitx_round_integer_out_tl
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -decimal }
- \_l_siunitx_round_decimal_out_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_round_tidy:n #1 {
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -integer }
+ \l_siunitx_round_integer_out_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -decimal }
+ \l_siunitx_round_decimal_out_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_sign: {
- \bool_if:NF \_l_siunitx_process_plus_tl
+\cs_new_protected_nopar:Npn \siunitx_number_process_sign: {
+ \bool_if:NF \l_siunitx_process_plus_tl
{
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { mantissa-sign }
- { \_siunitx_number_process_sign_plus:n { mantissa } }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { mantissa-sign }
+ { \siunitx_number_process_sign_plus:n { mantissa } }
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex-sign }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex-sign }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { mantissa }
- { \_siunitx_number_process_sign_plus:n { complex } }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { mantissa }
+ { \siunitx_number_process_sign_plus:n { complex } }
}
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent-sign }
- { \_siunitx_number_process_sign_plus:n { exponent } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent-sign }
+ { \siunitx_number_process_sign_plus:n { exponent } }
}
- \tl_if_empty:NF \_l_siunitx_process_sign_tl
+ \tl_if_empty:NF \l_siunitx_process_sign_tl
{
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { mantissa }
- { \_siunitx_number_process_sign_add:n { mantissa } }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { mantissa }
+ { \siunitx_number_process_sign_add:n { mantissa } }
{
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex }
- { \_siunitx_number_process_sign_add:n { complex } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex }
+ { \siunitx_number_process_sign_add:n { complex } }
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- { \_siunitx_number_process_sign_add:n { exponent } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ { \siunitx_number_process_sign_add:n { exponent } }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_sign_add:n #1 {
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -sign }
+\cs_new_protected_nopar:Npn \siunitx_number_process_sign_add:n #1 {
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -sign }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 -had-sign }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 -had-sign }
{
- \prop_get:NnN \_l_siunitx_number_in_prop {#1}
- \_l_siunitx_tmpa_tl
- \tl_if_empty:NTF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop {#1}
+ \l_siunitx_tmpa_tl
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop { sign }
- \_l_siunitx_process_sign_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { sign }
+ \l_siunitx_process_sign_tl
}
{
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -sign }
- \_l_siunitx_process_sign_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -sign }
+ \l_siunitx_process_sign_tl
}
}
}
}
-\tl_new:N \_c_siunitx_plus_tl
-\tl_set:Nn \_c_siunitx_plus_tl { + }
-\cs_set_protected_nopar:Npn \_siunitx_number_process_sign_plus:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -sign }
- \_l_siunitx_tmpa_tl
- \tl_if_eq:NNT \_c_siunitx_plus_tl \_l_siunitx_tmpa_tl
+\tl_new:N \c_siunitx_plus_tl
+\tl_set:Nn \c_siunitx_plus_tl { + }
+\cs_new_protected_nopar:Npn \siunitx_number_process_sign_plus:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -sign }
+ \l_siunitx_tmpa_tl
+ \tl_if_eq:NNT \c_siunitx_plus_tl \l_siunitx_tmpa_tl
{
- \prop_del:Nn \_l_siunitx_number_in_prop { #1 -sign }
- \prop_put:Nnn \_l_siunitx_number_in_prop { #1 -had-sign } { true }
+ \prop_del:Nn \l_siunitx_number_in_prop { #1 -sign }
+ \prop_put:Nnn \l_siunitx_number_in_prop { #1 -had-sign } { true }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_uncertainty: {
+\cs_new_protected_nopar:Npn \siunitx_number_process_uncertainty: {
\clist_map_function:nN { mantissa , complex }
- \_siunitx_number_process_uncertainty_aux:n
+ \siunitx_number_process_uncertainty_aux:n
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_aux:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { #1 -uncertainty }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_aux:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { #1 -uncertainty }
{
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { #1 -decimal-marker }
- { \_siunitx_number_process_uncertainty_decimal:n {#1} }
- { \_siunitx_number_process_uncertainty_integer:n {#1} }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { #1 -decimal-marker }
+ { \siunitx_number_process_uncertainty_decimal:n {#1} }
+ { \siunitx_number_process_uncertainty_integer:n {#1} }
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_decimal:n #1 {
- \_siunitx_number_process_uncertainty_count:nn {#1} { decimal }
- \_siunitx_number_process_uncertainty_count:nn {#1} { uncertainty }
- \tl_clear:N \_l_siunitx_uncertainty_decimal_tl
- \tl_clear:N \_l_siunitx_uncertainty_integer_tl
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_decimal:n #1 {
+ \siunitx_number_process_uncertainty_count:nn {#1} { decimal }
+ \siunitx_number_process_uncertainty_count:nn {#1} { uncertainty }
+ \tl_clear:N \l_siunitx_uncertainty_decimal_tl
+ \tl_clear:N \l_siunitx_uncertainty_integer_tl
\intexpr_compare:nNnTF
- { \_l_siunitx_process_uncertainty_int } >
- { \_l_siunitx_process_decimal_int }
- { \_siunitx_number_process_uncertainty_separate: }
- { \_siunitx_number_process_uncertainty_pad: }
- \tl_if_empty:NF \_l_siunitx_uncertainty_integer_tl
+ { \l_siunitx_process_uncertainty_int } >
+ { \l_siunitx_process_decimal_int }
+ { \siunitx_number_process_uncertainty_separate: }
+ { \siunitx_number_process_uncertainty_pad: }
+ \tl_if_empty:NF \l_siunitx_uncertainty_integer_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop
+ \prop_put:NnV \l_siunitx_number_in_prop
{ #1 -uncertainty-integer }
- \_l_siunitx_uncertainty_integer_tl
- }
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -uncertainty-decimal }
- \_l_siunitx_uncertainty_decimal_tl
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal-marker }
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_in_prop
- { #1 -uncertainty-decimal-marker } \_l_siunitx_tmpa_tl
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_count:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 - #2 }
- \_l_siunitx_tmpa_tl
- \int_set:cn { _l_siunitx_process_ #2 _int }
- { \tl_elt_count:N \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_uncertainty_pad: {
+ \l_siunitx_uncertainty_integer_tl
+ }
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -uncertainty-decimal }
+ \l_siunitx_uncertainty_decimal_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal-marker }
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop
+ { #1 -uncertainty-decimal-marker } \l_siunitx_tmpa_tl
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_count:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 - #2 }
+ \l_siunitx_tmpa_tl
+ \int_set:cn { l_siunitx_process_ #2 _int }
+ { \tl_elt_count:N \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_process_uncertainty_pad: {
\intexpr_while_do:nNnn
- { \_l_siunitx_process_uncertainty_int } <
- { \_l_siunitx_process_decimal_int }
+ { \l_siunitx_process_uncertainty_int } <
+ { \l_siunitx_process_decimal_int }
{
- \tl_put_right:Nn \_l_siunitx_uncertainty_decimal_tl {0}
- \int_incr:N \_l_siunitx_process_uncertainty_int
+ \tl_put_right:Nn \l_siunitx_uncertainty_decimal_tl {0}
+ \int_incr:N \l_siunitx_process_uncertainty_int
}
- \tl_put_right:NV \_l_siunitx_uncertainty_decimal_tl
- \_l_siunitx_tmpa_tl
+ \tl_put_right:NV \l_siunitx_uncertainty_decimal_tl
+ \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_separate: {
- \tl_map_function:NN \_l_siunitx_tmpa_tl
- \_siunitx_number_process_uncertainty_separate_aux:N
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_separate: {
+ \tl_map_function:NN \l_siunitx_tmpa_tl
+ \siunitx_number_process_uncertainty_separate_aux:N
}
-\cs_set_protected:Npn
- \_siunitx_number_process_uncertainty_separate_aux:N #1 {
+\cs_new_protected:Npn
+ \siunitx_number_process_uncertainty_separate_aux:N #1 {
\intexpr_compare:nNnTF
- { \_l_siunitx_process_uncertainty_int } >
- { \_l_siunitx_process_decimal_int }
- { \tl_put_right:Nn \_l_siunitx_uncertainty_integer_tl {#1} }
- { \tl_put_right:Nn \_l_siunitx_uncertainty_decimal_tl {#1} }
- \int_decr:N \_l_siunitx_process_uncertainty_int
+ { \l_siunitx_process_uncertainty_int } >
+ { \l_siunitx_process_decimal_int }
+ { \tl_put_right:Nn \l_siunitx_uncertainty_integer_tl {#1} }
+ { \tl_put_right:Nn \l_siunitx_uncertainty_decimal_tl {#1} }
+ \int_decr:N \l_siunitx_process_uncertainty_int
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_uncertainty_integer:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -uncertainty }
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_in_prop { #1 -uncertainty-integer }
- \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_uncertainty_integer:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -uncertainty }
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { #1 -uncertainty-integer }
+ \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_process_zero_fill: {
- \_siunitx_number_process_zero_fill_aux:n { integer }
- \_siunitx_number_process_zero_fill_aux:n { decimal }
+\cs_new_protected_nopar:Npn \siunitx_number_process_zero_fill: {
+ \siunitx_number_process_zero_fill_aux:n { integer }
+ \siunitx_number_process_zero_fill_aux:n { decimal }
}
-\cs_set_nopar:Npn \_siunitx_number_process_zero_fill_aux:n #1 {
- \bool_if:cT { _l_siunitx_process_ #1 _zero_bool }
+\cs_new_nopar:Npn \siunitx_number_process_zero_fill_aux:n #1 {
+ \bool_if:cT { l_siunitx_process_ #1 _zero_bool }
{
- \_siunitx_number_process_zero_fill_aux:nn { mantissa } {#1}
- \_siunitx_number_process_zero_fill_aux:nn { complex } {#1}
- \_siunitx_number_process_zero_fill_aux:nn { exponent } {#1}
+ \siunitx_number_process_zero_fill_aux:nn { mantissa } {#1}
+ \siunitx_number_process_zero_fill_aux:nn { complex } {#1}
+ \siunitx_number_process_zero_fill_aux:nn { exponent } {#1}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_process_zero_fill_aux:nn #1#2 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { #1 -decimal-marker }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_zero_fill_aux:nn #1#2 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { #1 -decimal-marker }
{
- \prop_if_in:NnF \_l_siunitx_number_in_prop { #1 - #2 }
- { \prop_put:Nnn \_l_siunitx_number_in_prop { #1 - #2 } { 0 } }
+ \prop_if_in:NnF \l_siunitx_number_in_prop { #1 - #2 }
+ { \prop_put:Nnn \l_siunitx_number_in_prop { #1 - #2 } { 0 } }
}
}
-\prop_new:N \_l_siunitx_number_out_prop
-\tl_new:N \_l_siunitx_group_sep_tl
-\tl_new:N \_l_siunitx_output_decimal_tl
-\bool_new:N \_l_siunitx_complex_after_bool
+\prop_new:N \l_siunitx_number_out_prop
+\tl_new:N \l_siunitx_group_sep_tl
+\tl_new:N \l_siunitx_output_decimal_tl
+\bool_new:N \l_siunitx_complex_after_bool
\keys_define:nn { siunitx } {
- bracket-numbers .bool_set:N = \_l_siunitx_brackets_bool,
- close-bracket .tl_set:N = \_l_siunitx_bracket_close_tl,
+ bracket-numbers .bool_set:N = \l_siunitx_brackets_bool,
+ close-bracket .tl_set:N = \l_siunitx_bracket_close_tl,
complex-root-position .choice:,
complex-root-position
/ after-number .code:n =
- { \bool_set_true:N \_l_siunitx_complex_after_bool } ,
+ { \bool_set_true:N \l_siunitx_complex_after_bool } ,
complex-root-position
/ before-number .code:n =
- { \bool_set_false:N \_l_siunitx_complex_after_bool } ,
+ { \bool_set_false:N \l_siunitx_complex_after_bool } ,
copy-decimal-marker .bool_set:N =
- \_l_siunitx_output_decimal_copy_bool,
- exponent-base .tl_set:N = \_l_siunitx_exponent_base_tl,
+ \l_siunitx_output_decimal_copy_bool,
+ exponent-base .tl_set:N = \l_siunitx_exponent_base_tl,
exponent-product .tl_set:N =
- \_l_siunitx_exponent_product_tl,
+ \l_siunitx_exponent_product_tl,
group-decimal-digits .bool_set:N =
- \_l_siunitx_group_decimal_bool,
+ \l_siunitx_group_decimal_bool,
group-digits .meta:n =
{
group-decimal-digits = #1,
group-integer-digits = #1
},
- group-four-digits .bool_set:N = \_l_siunitx_group_four_bool,
+ group-four-digits .bool_set:N = \l_siunitx_group_four_bool,
group-integer-digits .bool_set:N =
- \_l_siunitx_group_integer_bool,
+ \l_siunitx_group_integer_bool,
group-separator .code:n =
{
- \tl_set:Nn \_l_siunitx_group_sep_tl { {#1} }
+ \tl_set:Nn \l_siunitx_group_sep_tl { {#1} }
},
- negative-color .tl_set:N = \_l_siunitx_negative_color_tl,
- open-bracket .tl_set:N = \_l_siunitx_bracket_open_tl,
+ negative-color .tl_set:N = \l_siunitx_negative_color_tl,
+ open-bracket .tl_set:N = \l_siunitx_bracket_open_tl,
output-close-uncertainty .tl_set:N =
- \_l_siunitx_output_uncert_close_tl,
- output-complex-root .tl_set:N = \_l_siunitx_output_complex_tl,
+ \l_siunitx_output_uncert_close_tl,
+ output-complex-root .tl_set:N = \l_siunitx_output_complex_tl,
output-decimal-marker .code:n =
{
- \tl_set:Nn \_l_siunitx_output_decimal_tl { {#1} }
+ \tl_set:Nn \l_siunitx_output_decimal_tl { {#1} }
},
output-open-uncertainty .tl_set:N =
- \_l_siunitx_output_uncert_open_tl,
- separate-uncertainty .bool_set:N = \_l_siunitx_uncert_sep_bool,
- tight-spacing .bool_set:N = \_l_siunitx_tight_bool,
- uncertainty-separator .tl_set:N = \_l_siunitx_uncert_sep_tl,
+ \l_siunitx_output_uncert_open_tl,
+ separate-uncertainty .bool_set:N = \l_siunitx_uncert_sep_bool,
+ tight-spacing .bool_set:N = \l_siunitx_tight_bool,
+ uncertainty-separator .tl_set:N = \l_siunitx_uncert_sep_tl,
}
\keys_set:nn { siunitx } {
bracket-numbers = true, % (
@@ -2021,519 +2021,519 @@
output-decimal-marker = .,
output-open-uncertainty = (, % )
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format: {
- \prop_if_empty:NF \_l_siunitx_number_in_prop
+\cs_new_protected_nopar:Npn \siunitx_number_format: {
+ \prop_if_empty:NF \l_siunitx_number_in_prop
{
- \prop_clear:N \_l_siunitx_number_out_prop
- \_siunitx_number_format_reassemble:
- \_siunitx_number_format_complex:
- \_siunitx_number_format_sign:n { mantissa }
- \_siunitx_number_format_sign:n { exponent }
- \_siunitx_number_format_color:
- \_siunitx_number_format_final:
+ \prop_clear:N \l_siunitx_number_out_prop
+ \siunitx_number_format_reassemble:
+ \siunitx_number_format_complex:
+ \siunitx_number_format_sign:n { mantissa }
+ \siunitx_number_format_sign:n { exponent }
+ \siunitx_number_format_color:
+ \siunitx_number_format_final:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_brackets:n #1 {
- \bool_if:NT \_l_siunitx_brackets_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_brackets:n #1 {
+ \bool_if:NT \l_siunitx_brackets_bool
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { #1 -bracket }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { #1 -bracket }
{
- \_siunitx_number_format_brackets_aux:n {#1}
- \prop_del:Nn \_l_siunitx_number_out_prop { #1 -bracket }
+ \siunitx_number_format_brackets_aux:n {#1}
+ \prop_del:Nn \l_siunitx_number_out_prop { #1 -bracket }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_brackets_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_brackets_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
{
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
}
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_bracket_open_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_bracket_close_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_bracket_open_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_bracket_close_tl
\tl_if_eq:nnTF {#1} { result }
- { \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl }
+ { \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl }
{
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_color: {
- \tl_if_empty:NF \_l_siunitx_negative_color_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_color: {
+ \tl_if_empty:NF \l_siunitx_negative_color_tl
{
- \_siunitx_number_format_color_aux:n { mantissa-sign }
- \_siunitx_number_format_color_aux:n { sign }
+ \siunitx_number_format_color_aux:n { mantissa-sign }
+ \siunitx_number_format_color_aux:n { sign }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_color_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_color_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_if_eq:nVT { - } \_l_siunitx_tmpa_tl
+ \tl_if_eq:nVT { - } \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_out_prop { color }
- \_l_siunitx_negative_color_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { color }
+ \l_siunitx_negative_color_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_complex: {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex-root }
+\cs_new_protected_nopar:Npn \siunitx_number_format_complex: {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex-root }
{
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { complex }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { complex }
{
- \_siunitx_number_format_brackets:n { complex }
- \_siunitx_number_format_complex_aux:n { complex }
- \_siunitx_number_format_complex_aux:n { complex-result }
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ \siunitx_number_format_brackets:n { complex }
+ \siunitx_number_format_complex_aux:n { complex }
+ \siunitx_number_format_complex_aux:n { complex-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ complex-uncertainty }
{
- \_siunitx_number_format_complex_aux:n
+ \siunitx_number_format_complex_aux:n
{ complex-uncertainty }
}
}
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_output_complex_tl }
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_output_complex_tl }
}
- \prop_put:NnV \_l_siunitx_number_out_prop { complex }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { complex }
+ \l_siunitx_tmpa_tl
}
- \_siunitx_number_format_join_complex:
+ \siunitx_number_format_join_complex:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_complex_aux:n #1 {
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- \bool_if:NTF \_l_siunitx_complex_after_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_complex_aux:n #1 {
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ \bool_if:NTF \l_siunitx_complex_after_bool
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_complex_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_complex_tl
}
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_complex_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_complex_tl
}
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_copy:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_copy:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_copy:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#2} \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_copy:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#2} \l_siunitx_tmpa_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_final: {
- \prop_if_in:NnT \_l_siunitx_number_out_prop { complex }
+\cs_new_protected_nopar:Npn \siunitx_number_format_final: {
+ \prop_if_in:NnT \l_siunitx_number_out_prop { complex }
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { mantissa-result }
{
- \_siunitx_number_format_copy:nn { complex }
+ \siunitx_number_format_copy:nn { complex }
{ mantissa-result }
}
}
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { exponent }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { exponent }
{
- \_siunitx_number_format_final_exponent:
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { mantissa-result }
- { \_siunitx_number_format_final_combined: }
- { \_siunitx_number_format_final_exponent_only: }
+ \siunitx_number_format_final_exponent:
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { mantissa-result }
+ { \siunitx_number_format_final_combined: }
+ { \siunitx_number_format_final_exponent_only: }
}
- { \_siunitx_number_format_copy:nn { mantissa-result } { result } }
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-bracket }
+ { \siunitx_number_format_copy:nn { mantissa-result } { result } }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-bracket }
{
- \prop_put:Nnn \_l_siunitx_number_out_prop { result-bracket }
+ \prop_put:Nnn \l_siunitx_number_out_prop { result-bracket }
{ true }
- \prop_del:Nn \_l_siunitx_number_out_prop { mantissa-bracket }
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_final_combined: {
- \_siunitx_number_format_brackets:n { mantissa }
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-result }
- \_l_siunitx_tmpa_tl
- \tl_set_eq:NN \_l_siunitx_tmpb_tl \_l_siunitx_exponent_product_tl
- \bool_if:NT \_l_siunitx_tight_bool
- {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { { \exp_not:V \_l_siunitx_tmpb_tl } }
- }
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpb_tl
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { result }
- \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_out_prop
+ \prop_del:Nn \l_siunitx_number_out_prop { mantissa-bracket }
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_format_final_combined: {
+ \siunitx_number_format_brackets:n { mantissa }
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-result }
+ \l_siunitx_tmpa_tl
+ \tl_set_eq:NN \l_siunitx_tmpb_tl \l_siunitx_exponent_product_tl
+ \bool_if:NT \l_siunitx_tight_bool
+ {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { \exp_not:V \l_siunitx_tmpb_tl } }
+ }
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpb_tl
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { result }
+ \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_out_prop
{ result-bracket-exponent } { true }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_final_exponent: {
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent }
- \_l_siunitx_tmpa_tl
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { ^ { \exp_not:V \_l_siunitx_tmpa_tl } }
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_exponent_base_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpa_tl
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_format_final_exponent_only: {
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
- {
- \bool_if:NT \_l_siunitx_tight_bool
- {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+\cs_new_protected_nopar:Npn \siunitx_number_format_final_exponent: {
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent }
+ \l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { ^ { \exp_not:V \l_siunitx_tmpa_tl } }
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_exponent_base_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpa_tl
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_format_final_exponent_only: {
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ {
+ \bool_if:NT \l_siunitx_tight_bool
+ {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpb_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpb_tl
- }
- \_siunitx_number_format_copy:nn { exponent-result } { result }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group:n #1 {
- \_siunitx_number_format_group_aux:nn {#1} { integer }
- \_siunitx_number_format_group_aux:nn {#1} { decimal }
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { #1 -integer }
- { \_siunitx_number_format_copy:nn { #1 -integer } {#1} }
- { \tl_clear:N \_l_siunitx_tmpa_tl }
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -decimal-marker }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NF \_l_siunitx_tmpb_tl
- {
- \bool_if:NTF \_l_siunitx_output_decimal_copy_bool
- { \tl_set:Nx \_l_siunitx_tmpb_tl { { \_l_siunitx_tmpb_tl } } }
- {
- \tl_set_eq:NN \_l_siunitx_tmpb_tl
- \_l_siunitx_output_decimal_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpb_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpb_tl
+ }
+ \siunitx_number_format_copy:nn { exponent-result } { result }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_format_group:n #1 {
+ \siunitx_number_format_group_aux:nn {#1} { integer }
+ \siunitx_number_format_group_aux:nn {#1} { decimal }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { #1 -integer }
+ { \siunitx_number_format_copy:nn { #1 -integer } {#1} }
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -decimal-marker }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NF \l_siunitx_tmpb_tl
+ {
+ \bool_if:NTF \l_siunitx_output_decimal_copy_bool
+ { \tl_set:Nx \l_siunitx_tmpb_tl { { \l_siunitx_tmpb_tl } } }
+ {
+ \tl_set_eq:NN \l_siunitx_tmpb_tl
+ \l_siunitx_output_decimal_tl
}
- \tl_set:Nx \_l_siunitx_tmpb_tl
+ \tl_set:Nx \l_siunitx_tmpb_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_tmpb_tl }
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_tmpb_tl }
}
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -decimal-marker }
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -decimal }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NT \_l_siunitx_tmpb_tl
- { \tl_clear:N \_l_siunitx_tmpb_tl }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_aux:nn #1#2 {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { #1 - #2 }
- {
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { symbolic }
- { \_siunitx_number_format_copy:n { #1 - #2 } }
- {
- \bool_if:cTF { _l_siunitx_group_ #2 _bool }
- { \_siunitx_number_format_group_four:nn {#1} {#2} }
- { \_siunitx_number_format_copy:n { #1 - #2 } }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -decimal-marker }
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -decimal }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_aux:nn #1#2 {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { #1 - #2 }
+ {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { symbolic }
+ { \siunitx_number_format_copy:n { #1 - #2 } }
+ {
+ \bool_if:cTF { l_siunitx_group_ #2 _bool }
+ { \siunitx_number_format_group_four:nn {#1} {#2} }
+ { \siunitx_number_format_copy:n { #1 - #2 } }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_four:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 - #2 }
- \_l_siunitx_tmpa_tl
- \bool_if:NTF \_l_siunitx_group_four_bool
- { \_siunitx_number_format_group_four_aux:nn {#1} {#2} }
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_four:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 - #2 }
+ \l_siunitx_tmpa_tl
+ \bool_if:NTF \l_siunitx_group_four_bool
+ { \siunitx_number_format_group_four_aux:nn {#1} {#2} }
{
- \exp_after:wN \_siunitx_number_format_group_four_aux:NNNNNNw
- \_l_siunitx_tmpa_tl \q_no_value \q_no_value \q_no_value
+ \exp_after:wN \siunitx_number_format_group_four_aux:NNNNNNw
+ \l_siunitx_tmpa_tl \q_no_value \q_no_value \q_no_value
\q_no_value \q_no_value \q_nil
- { \_siunitx_number_format_copy:n {#1 - #2} }
- { \_siunitx_number_format_group_four_aux:nn {#1} {#2} }
+ { \siunitx_number_format_copy:n {#1 - #2} }
+ { \siunitx_number_format_group_four_aux:nn {#1} {#2} }
}
}
-\cs_set_protected:Npn \_siunitx_number_format_group_four_aux:NNNNNNw
+\cs_new_protected:Npn \siunitx_number_format_group_four_aux:NNNNNNw
#1#2#3#4#5#6 \q_nil {
\quark_if_no_value:NTF #5
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_four_aux:nn
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_four_aux:nn
#1#2 {
- \tl_clear:N \_l_siunitx_tmpb_tl
- \use:c { _siunitx_number_format_group_ #2 : }
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 - #2 }
- \_l_siunitx_tmpb_tl
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \use:c { siunitx_number_format_group_ #2 : }
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 - #2 }
+ \l_siunitx_tmpb_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_decimal: {
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_decimal: {
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \exp_after:wN \_siunitx_number_format_group_decimal_aux:NNNN
- \_l_siunitx_tmpa_tl { } { } { }
+ \exp_after:wN \siunitx_number_format_group_decimal_aux:NNNN
+ \l_siunitx_tmpa_tl { } { } { }
}
}
-\cs_set_protected:Npn \_siunitx_number_format_group_decimal_aux:NNNN
+\cs_new_protected:Npn \siunitx_number_format_group_decimal_aux:NNNN
#1#2#3#4 {
\tl_if_empty:nTF {#2}
- { \tl_put_right:Nn \_l_siunitx_tmpb_tl {#1} }
+ { \tl_put_right:Nn \l_siunitx_tmpb_tl {#1} }
{
\tl_if_empty:nTF {#3}
- { \tl_put_right:Nn \_l_siunitx_tmpb_tl { #1 #2 } }
+ { \tl_put_right:Nn \l_siunitx_tmpb_tl { #1 #2 } }
{
- \tl_put_right:Nn \_l_siunitx_tmpb_tl { #1 #2 #3 }
+ \tl_put_right:Nn \l_siunitx_tmpb_tl { #1 #2 #3 }
\tl_if_empty:nF {#4}
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_group_sep_tl
- \_siunitx_number_format_group_decimal_aux:NNNN #4
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_group_sep_tl
+ \siunitx_number_format_group_decimal_aux:NNNN #4
}
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_group_integer: {
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_group_integer: {
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \_siunitx_number_format_group_integer_setup:V \_l_siunitx_tmpa_tl
+ \siunitx_number_format_group_integer_setup:V \l_siunitx_tmpa_tl
}
}
-\cs_set_protected:Npn \_siunitx_number_format_group_integer_setup:n #1 {
- \_siunitx_number_format_group_integer_setup_aux:NNNN
+\cs_new_protected:Npn \siunitx_number_format_group_integer_setup:n #1 {
+ \siunitx_number_format_group_integer_setup_aux:NNNN
{ } #1 { } { } { }
}
-\cs_generate_variant:Nn \_siunitx_number_format_group_integer_setup:n
+\cs_generate_variant:Nn \siunitx_number_format_group_integer_setup:n
{ V }
-\cs_set_protected:Npn
- \_siunitx_number_format_group_integer_setup_aux:NNNN #1#2#3#4 {
+\cs_new_protected:Npn
+ \siunitx_number_format_group_integer_setup_aux:NNNN #1#2#3#4 {
\tl_if_empty:nTF {#2}
- { \_siunitx_number_format_group_integer_aux:NNNN #1 \q_nil }
+ { \siunitx_number_format_group_integer_aux:NNNN #1 \q_nil }
{
\tl_if_empty:nTF {#3}
{
- \_siunitx_number_format_group_integer_aux:NNNN { } { } #1#2
+ \siunitx_number_format_group_integer_aux:NNNN { } { } #1#2
\q_nil
}
{
\tl_if_empty:nTF {#4}
{
- \_siunitx_number_format_group_integer_aux:NNNN { } #1#2#3
+ \siunitx_number_format_group_integer_aux:NNNN { } #1#2#3
\q_nil
}
{
- \_siunitx_number_format_group_integer_setup_aux:NNNN
+ \siunitx_number_format_group_integer_setup_aux:NNNN
{#1#2#3#4}
}
}
}
}
-\cs_set_protected:Npn
- \_siunitx_number_format_group_integer_aux:NNNN #1#2#3#4 {
- \tl_put_right:Nn \_l_siunitx_tmpb_tl {#1#2#3}
+\cs_new_protected:Npn
+ \siunitx_number_format_group_integer_aux:NNNN #1#2#3#4 {
+ \tl_put_right:Nn \l_siunitx_tmpb_tl {#1#2#3}
\quark_if_nil:nF {#4}
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_group_sep_tl
- \_siunitx_number_format_group_integer_aux:NNNN #4
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_group_sep_tl
+ \siunitx_number_format_group_integer_aux:NNNN #4
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_complex: {
- \_siunitx_number_format_sign_complex:
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa }
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_complex: {
+ \siunitx_number_format_sign_complex:
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa }
{
- \_siunitx_number_format_brackets:n { mantissa }
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-result }
- \_l_siunitx_tmpa_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { complex-result }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NT \_l_siunitx_tmpb_tl
+ \siunitx_number_format_brackets:n { mantissa }
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-result }
+ \l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { complex-result }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
{
- \prop_get:NnN \_l_siunitx_number_out_prop { complex }
- \_l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { complex }
+ \l_siunitx_tmpb_tl
}
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { mantissa-result }
- \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_out_prop { mantissa-bracket }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { mantissa-result }
+ \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_out_prop { mantissa-bracket }
{ true }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_uncert: {
- \_siunitx_number_format_join_uncert:n { mantissa }
- \_siunitx_number_format_join_uncert:n { complex }
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_uncert: {
+ \siunitx_number_format_join_uncert:n { mantissa }
+ \siunitx_number_format_join_uncert:n { complex }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_uncert:n #1 {
- \prop_get:NnN \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_uncert:n #1 {
+ \prop_get:NnN \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -uncertainty }
- \_l_siunitx_tmpb_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpb_tl
- { \_siunitx_number_format_copy:nn {#1} { #1 -result } }
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -uncertainty }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpb_tl
+ { \siunitx_number_format_copy:nn {#1} { #1 -result } }
{
- \bool_if:NT \_l_siunitx_uncert_sep_bool
- { \_siunitx_number_format_join_uncert_pm: }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_out_prop { #1 -bracket }
+ \bool_if:NT \l_siunitx_uncert_sep_bool
+ { \siunitx_number_format_join_uncert_pm: }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_out_prop { #1 -bracket }
{ true }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_join_uncert_pm: {
- \bool_if:NTF \_l_siunitx_tight_bool
+\cs_new_protected_nopar:Npn \siunitx_number_format_join_uncert_pm: {
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \tl_put_left:Nn \_l_siunitx_tmpb_tl
- { \_siunitx_ensuremath:n { { \pm } } }
+ \tl_put_left:Nn \l_siunitx_tmpb_tl
+ { \siunitx_ensuremath:n { { \pm } } }
}
{
- \tl_put_left:Nn \_l_siunitx_tmpb_tl
- { \_siunitx_ensuremath:n { { } \pm { } } }
+ \tl_put_left:Nn \l_siunitx_tmpb_tl
+ { \siunitx_ensuremath:n { { } \pm { } } }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_reassemble: {
- \prop_if_in:NnT \_l_siunitx_number_in_prop { mantissa }
+\cs_new_protected_nopar:Npn \siunitx_number_format_reassemble: {
+ \prop_if_in:NnT \l_siunitx_number_in_prop { mantissa }
{
- \_siunitx_number_format_group:n { mantissa }
- \_siunitx_number_format_uncertainty:n { mantissa }
+ \siunitx_number_format_group:n { mantissa }
+ \siunitx_number_format_uncertainty:n { mantissa }
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { complex }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { complex }
{
- \_siunitx_number_format_group:n { complex }
- \_siunitx_number_format_uncertainty:n { complex }
+ \siunitx_number_format_group:n { complex }
+ \siunitx_number_format_uncertainty:n { complex }
}
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- { \_siunitx_number_format_group:n { exponent } }
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ { \siunitx_number_format_group:n { exponent } }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_sign:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop {#1}
{
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \bool_if:NT \_l_siunitx_tight_bool
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
- \tl_clear:N \_l_siunitx_tmpb_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -sign }
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \prop_get:NnN \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -sign }
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -result }
- \_l_siunitx_tmpa_tl
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -result }
+ \l_siunitx_tmpa_tl
}
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_sign_complex: {
- \_siunitx_number_format_sign_complex:n { complex }
- \_siunitx_number_format_sign_complex:n { complex-result }
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign_complex: {
+ \siunitx_number_format_sign_complex:n { complex }
+ \siunitx_number_format_sign_complex:n { complex-result }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_sign_complex:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop {#1}
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign_complex:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop {#1}
{
- \prop_get:NnN \_l_siunitx_number_in_prop { complex-sign }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \bool_if:NTF \_l_siunitx_tight_bool
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa }
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { } \exp_not:V \_l_siunitx_tmpa_tl { } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { } \exp_not:V \l_siunitx_tmpa_tl { } }
}
}
- \tl_clear:N \_l_siunitx_tmpb_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { complex-sign }
- \_l_siunitx_tmpb_tl
- \prop_get:NnN \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
- \tl_put_left:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1}
- \_l_siunitx_tmpa_tl
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpb_tl
+ \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { complex-sign }
+ \l_siunitx_tmpb_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1}
+ \l_siunitx_tmpa_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_format_uncertainty:n #1 {
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { #1 -uncertainty }
- {
- \bool_if:NTF \_l_siunitx_uncert_sep_bool
- { \_siunitx_number_format_uncertainty_sep:n {#1} }
- { \_siunitx_number_format_uncertainty_joined:n {#1} }
- \_siunitx_number_format_join_uncert:
- }
- { \_siunitx_number_format_copy:nn {#1} { #1 -result } }
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_format_uncertainty_joined:n #1 {
- \prop_get:NnN \_l_siunitx_number_in_prop { #1 -uncertainty }
- \_l_siunitx_tmpa_tl
- \prop_del:Nn \_l_siunitx_number_in_prop { #1 -uncertainty }
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_uncert_open_tl
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_uncert_sep_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_output_uncert_close_tl
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpb_tl
- \tl_put_right:NV \_l_siunitx_tmpb_tl \_l_siunitx_tmpa_tl
- \prop_put:NnV \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpb_tl
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_number_format_uncertainty_sep:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop { #1 -integer }
- {
- \prop_if_in:NnF \_l_siunitx_number_out_prop
+\cs_new_protected_nopar:Npn \siunitx_number_format_uncertainty:n #1 {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { #1 -uncertainty }
+ {
+ \bool_if:NTF \l_siunitx_uncert_sep_bool
+ { \siunitx_number_format_uncertainty_sep:n {#1} }
+ { \siunitx_number_format_uncertainty_joined:n {#1} }
+ \siunitx_number_format_join_uncert:
+ }
+ { \siunitx_number_format_copy:nn {#1} { #1 -result } }
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_format_uncertainty_joined:n #1 {
+ \prop_get:NnN \l_siunitx_number_in_prop { #1 -uncertainty }
+ \l_siunitx_tmpa_tl
+ \prop_del:Nn \l_siunitx_number_in_prop { #1 -uncertainty }
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_uncert_open_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_uncert_sep_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_output_uncert_close_tl
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpb_tl
+ \tl_put_right:NV \l_siunitx_tmpb_tl \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_out_prop {#1} \l_siunitx_tmpb_tl
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_number_format_uncertainty_sep:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop { #1 -integer }
+ {
+ \prop_if_in:NnF \l_siunitx_number_out_prop
{ #1 -uncertainty-integer }
{
- \prop_put:Nnn \_l_siunitx_number_out_prop
+ \prop_put:Nnn \l_siunitx_number_out_prop
{ #1 -uncertainty-integer } { 0 }
}
}
- \_siunitx_number_format_group:n { #1 -uncertainty }
- \prop_put:NnV \_l_siunitx_number_out_prop { #1 -uncertainty }
- \_l_siunitx_tmpa_tl
+ \siunitx_number_format_group:n { #1 -uncertainty }
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 -uncertainty }
+ \l_siunitx_tmpa_tl
}
-\tl_new:N \_l_siunitx_number_out_tl
-\tl_new:N \_l_siunitx_number_out_saved_tl
-\tl_new:N \_l_siunitx_number_fraction_tl
-\bool_new:N \_l_siunitx_number_compound_bool
-\tl_new:N \_l_siunitx_quotient_mode_tl
-\cs_set_protected:Npn \_siunitx_fraction:nn { }
+\tl_new:N \l_siunitx_number_out_tl
+\tl_new:N \l_siunitx_number_out_saved_tl
+\tl_new:N \l_siunitx_number_fraction_tl
+\bool_new:N \l_siunitx_number_compound_bool
+\tl_new:N \l_siunitx_quotient_mode_tl
+\cs_new_protected:Npn \siunitx_fraction:nn { }
\keys_define:nn { siunitx } {
fraction-function .code:n =
- { \cs_set_eq:NN \_siunitx_fraction:nn #1 },
- output-product .tl_set:N = \_l_siunitx_output_product_tl,
- output-quotient .tl_set:N = \_l_siunitx_output_quotient_tl,
- parse-numbers .bool_set:N = \_l_siunitx_number_parse_bool,
+ { \cs_set_eq:NN \siunitx_fraction:nn #1 },
+ output-product .tl_set:N = \l_siunitx_output_product_tl,
+ output-quotient .tl_set:N = \l_siunitx_output_quotient_tl,
+ parse-numbers .bool_set:N = \l_siunitx_number_parse_bool,
quotient-mode .choice:,
quotient-mode / fraction .code:n =
- { \tl_set:Nn \_l_siunitx_quotient_mode_tl { fraction } },
+ { \tl_set:Nn \l_siunitx_quotient_mode_tl { fraction } },
quotient-mode / symbol .code:n =
- { \tl_set:Nn \_l_siunitx_quotient_mode_tl { symbol } },
+ { \tl_set:Nn \l_siunitx_quotient_mode_tl { symbol } },
}
\keys_set:nn { siunitx } {
fraction-function = \frac,
@@ -2542,690 +2542,690 @@
parse-numbers = true,
quotient-mode = symbol
}
-\cs_set_protected:Npn \_siunitx_number_output:n #1 {
- \tl_clear:N \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_preunit_tl
- \_siunitx_combined_output:n {#1}
+\cs_new_protected:Npn \siunitx_number_output:n #1 {
+ \tl_clear:N \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_preunit_tl
+ \siunitx_combined_output:n {#1}
}
-\cs_generate_variant:Nn \_siunitx_number_output:n { V }
-\cs_set_protected_nopar:Npn \_siunitx_number_output_bracket: {
- \bool_if:NF \_l_siunitx_error_bool
+\cs_generate_variant:Nn \siunitx_number_output:n { V }
+\cs_new_protected_nopar:Npn \siunitx_number_output_bracket: {
+ \bool_if:NF \l_siunitx_error_bool
{
- \bool_if:NT \_l_siunitx_number_compound_bool
- { \_siunitx_number_format_brackets:n { result } }
+ \bool_if:NT \l_siunitx_number_compound_bool
+ { \siunitx_number_format_brackets:n { result } }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_color: {
- \prop_if_in:NnT \_l_siunitx_number_out_prop { color }
+\cs_new_protected_nopar:Npn \siunitx_number_output_color: {
+ \prop_if_in:NnT \l_siunitx_number_out_prop { color }
{
- \prop_get:NnN \_l_siunitx_number_out_prop { color }
- \_l_siunitx_number_color_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { color }
+ \l_siunitx_number_color_tl
}
}
-\cs_set_protected:Npn \_siunitx_number_output_parse:n #1 {
- \_siunitx_number_preprocess:n {#1}
- \bool_if:NF \_l_siunitx_error_bool
+\cs_new_protected:Npn \siunitx_number_output_parse:n #1 {
+ \siunitx_number_preprocess:n {#1}
+ \bool_if:NF \l_siunitx_error_bool
{
- \tl_if_empty:NTF \_l_siunitx_number_multi_tl
- { \_siunitx_number_output_parse_aux: }
+ \tl_if_empty:NTF \l_siunitx_number_multi_tl
+ { \siunitx_number_output_parse_aux: }
{
\use:c
- { _siunitx_number_output_ \_l_siunitx_number_multi_tl : }
+ { siunitx_number_output_ \l_siunitx_number_multi_tl : }
}
}
}
-\cs_generate_variant:Nn \_siunitx_number_output_parse:n { V }
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parse_aux: {
- \_siunitx_number_in_parse:V \_l_siunitx_number_arg_tl
- \bool_if:NF \_l_siunitx_error_bool
+\cs_generate_variant:Nn \siunitx_number_output_parse:n { V }
+\cs_new_protected_nopar:Npn \siunitx_number_output_parse_aux: {
+ \siunitx_number_in_parse:V \l_siunitx_number_arg_tl
+ \bool_if:NF \l_siunitx_error_bool
{
- \_siunitx_number_process:
- \prop_if_in:NnT \_l_siunitx_number_in_prop { exponent }
- { \bool_set_true:N \_l_siunitx_brackets_bool }
- \_siunitx_number_format:
- \_siunitx_number_output_color:
- \bool_if:NTF \_l_siunitx_brackets_bool
- { \_siunitx_number_output_single: }
+ \siunitx_number_process:
+ \prop_if_in:NnT \l_siunitx_number_in_prop { exponent }
+ { \bool_set_true:N \l_siunitx_brackets_bool }
+ \siunitx_number_format:
+ \siunitx_number_output_color:
+ \bool_if:NTF \l_siunitx_brackets_bool
+ { \siunitx_number_output_single: }
{
- \prop_if_in:NnTF \_l_siunitx_number_out_prop
+ \prop_if_in:NnTF \l_siunitx_number_out_prop
{ result-bracket }
- { \_siunitx_number_output_parts: }
- { \_siunitx_number_output_single: }
+ { \siunitx_number_output_parts: }
+ { \siunitx_number_output_single: }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts: {
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts: {
\bool_if:nTF
{
- \tl_if_empty_p:N \_l_siunitx_pre_unit_tl &&
- \tl_if_empty_p:N \_l_siunitx_unit_tl
+ \tl_if_empty_p:N \l_siunitx_pre_unit_tl &&
+ \tl_if_empty_p:N \l_siunitx_unit_tl
}
- { \_siunitx_number_output_single: }
- { \_siunitx_number_output_parts_aux: }
+ { \siunitx_number_output_single: }
+ { \siunitx_number_output_parts_aux: }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts_aux: {
- \bool_if:NTF \_l_siunitx_multi_repeat_bool
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts_aux: {
+ \bool_if:NTF \l_siunitx_multi_repeat_bool
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-result }
{
- \_siunitx_number_output_parts_aux:n { mantissa }
- \_siunitx_number_output_parts_aux:n { complex }
+ \siunitx_number_output_parts_aux:n { mantissa }
+ \siunitx_number_output_parts_aux:n { complex }
}
- \prop_get:NnN \_l_siunitx_number_out_prop { exponent-result }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_out_prop { exponent-result }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-result }
{
- \tl_set_eq:NN \_l_siunitx_tmpb_tl
- \_l_siunitx_exponent_product_tl
- \bool_if:NT \_l_siunitx_tight_bool
+ \tl_set_eq:NN \l_siunitx_tmpb_tl
+ \l_siunitx_exponent_product_tl
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { { \exp_not:V \_l_siunitx_tmpb_tl } }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { \exp_not:V \l_siunitx_tmpb_tl } }
}
- \_siunitx_tl_put_left_math:NV \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpb_tl
- \prop_put:NnV \_l_siunitx_number_out_prop { exponent }
- \_l_siunitx_tmpa_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_tmpa_tl
+ \l_siunitx_tmpb_tl
+ \prop_put:NnV \l_siunitx_number_out_prop { exponent }
+ \l_siunitx_tmpa_tl
}
- \_siunitx_number_output_parts_print:n { exponent }
+ \siunitx_number_output_parts_print:n { exponent }
}
}
- { \_siunitx_number_output_single: }
+ { \siunitx_number_output_single: }
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts_aux:n #1 {
- \prop_if_in:NnT \_l_siunitx_number_out_prop {#1}
- { \_siunitx_number_output_parts_print:n {#1} }
- \prop_if_in:NnT \_l_siunitx_number_out_prop { #1 -uncertainty }
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts_aux:n #1 {
+ \prop_if_in:NnT \l_siunitx_number_out_prop {#1}
+ { \siunitx_number_output_parts_print:n {#1} }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { #1 -uncertainty }
{
- \bool_if:NTF \_l_siunitx_tight_bool
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { { \pm } } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { { \pm } } }
}
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { { } \pm { } } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { { } \pm { } } }
}
- \_siunitx_number_output_parts_print:n { #1 -uncertainty }
+ \siunitx_number_output_parts_print:n { #1 -uncertainty }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_parts_print:n #1 {
- \_siunitx_unit_output_pre_print:
- \prop_get:NnN \_l_siunitx_number_out_prop {#1} \_l_siunitx_tmpa_tl
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
- \_siunitx_unit_output_print:
+\cs_new_protected_nopar:Npn \siunitx_number_output_parts_print:n #1 {
+ \siunitx_unit_output_pre_print:
+ \prop_get:NnN \l_siunitx_number_out_prop {#1} \l_siunitx_tmpa_tl
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
+ \siunitx_unit_output_print:
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_product: {
- \bool_if:NTF \_l_siunitx_product_brackets_bool
+\cs_new_protected_nopar:Npn \siunitx_number_output_product: {
+ \bool_if:NTF \l_siunitx_product_brackets_bool
{
\bool_if:nTF
{
- \tl_if_empty_p:N \_l_siunitx_pre_unit_tl &&
- \tl_if_empty_p:N \_l_siunitx_unit_tl
+ \tl_if_empty_p:N \l_siunitx_pre_unit_tl &&
+ \tl_if_empty_p:N \l_siunitx_unit_tl
}
- { \_siunitx_number_output_product_aux: }
- { \_siunitx_number_output_product_brackets: }
+ { \siunitx_number_output_product_aux: }
+ { \siunitx_number_output_product_brackets: }
}
{
- \bool_if:NTF \_l_siunitx_product_repeat_bool
- { \_siunitx_number_output_product_aux: }
+ \bool_if:NTF \l_siunitx_product_repeat_bool
+ { \siunitx_number_output_product_aux: }
{
- \_siunitx_unit_output_pre_print:
- \tl_set_eq:NN \_l_siunitx_unit_saved_tl \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_pre_unit_tl
- \tl_clear:N \_l_siunitx_unit_tl
+ \siunitx_unit_output_pre_print:
+ \tl_set_eq:NN \l_siunitx_unit_saved_tl \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_pre_unit_tl
+ \tl_clear:N \l_siunitx_unit_tl
\group_begin:
- \_siunitx_number_output_product_aux:
+ \siunitx_number_output_product_aux:
\group_end:
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_saved_tl
- \_siunitx_unit_output_print:
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_saved_tl
+ \siunitx_unit_output_print:
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_product_brackets: {
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_open_tl } }
+\cs_new_protected_nopar:Npn \siunitx_number_output_product_brackets: {
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_open_tl } }
\nobreak
- \tl_set_eq:NN \_l_siunitx_unit_saved_tl \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_pre_unit_tl
- \tl_clear:N \_l_siunitx_unit_tl
- \_siunitx_number_output_product_aux:
+ \tl_set_eq:NN \l_siunitx_unit_saved_tl \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_pre_unit_tl
+ \tl_clear:N \l_siunitx_unit_tl
+ \siunitx_number_output_product_aux:
\nobreak
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_saved_tl
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_close_tl } }
- \_siunitx_unit_output_print:
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_product_aux: {
- \bool_set_true:N \_l_siunitx_number_compound_bool
- \_siunitx_number_preprocess:V \_l_siunitx_number_arg_tl
- \bool_if:NF \_l_siunitx_error_bool
- {
- \tl_if_empty:NTF \_l_siunitx_number_multi_tl
- { \_siunitx_number_output_parse_aux: }
- { \_siunitx_number_output_quotient: }
- \tl_if_empty:NF \_l_siunitx_number_next_tl
- {
- \bool_if:NTF \_l_siunitx_tight_bool
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_saved_tl
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_close_tl } }
+ \siunitx_unit_output_print:
+}
+\cs_new_protected_nopar:Npn \siunitx_number_output_product_aux: {
+ \bool_set_true:N \l_siunitx_number_compound_bool
+ \siunitx_number_preprocess:V \l_siunitx_number_arg_tl
+ \bool_if:NF \l_siunitx_error_bool
+ {
+ \tl_if_empty:NTF \l_siunitx_number_multi_tl
+ { \siunitx_number_output_parse_aux: }
+ { \siunitx_number_output_quotient: }
+ \tl_if_empty:NF \l_siunitx_number_next_tl
+ {
+ \bool_if:NTF \l_siunitx_tight_bool
{
- \_siunitx_print:nn { number }
+ \siunitx_print:nn { number }
{
- \_siunitx_ensuremath:n
- { \_l_siunitx_output_product_tl }
+ \siunitx_ensuremath:n
+ { \l_siunitx_output_product_tl }
}
}
{
- \_siunitx_print:nn { number }
+ \siunitx_print:nn { number }
{
- \_siunitx_ensuremath:n
- { { } \_l_siunitx_output_product_tl { } }
+ \siunitx_ensuremath:n
+ { { } \l_siunitx_output_product_tl { } }
}
}
- \_siunitx_number_output_parse:V \_l_siunitx_number_next_tl
+ \siunitx_number_output_parse:V \l_siunitx_number_next_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient: {
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient: {
\use:c
- { _siunitx_number_output_quotient_ \_l_siunitx_quotient_mode_tl : }
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_fraction: {
- \bool_set_false:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_quotient_aux_i:
- \tl_set:Nx \_l_siunitx_number_out_tl
- { { \exp_not:V \_l_siunitx_number_numerator_tl } }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_number_denominator_tl } }
- \tl_put_right:NV \_l_siunitx_number_out_tl \_l_siunitx_tmpa_tl
- \tl_put_left:Nn \_l_siunitx_number_out_tl { \_siunitx_fraction:nn }
- \tl_set:Nx \_l_siunitx_number_out_tl
+ { siunitx_number_output_quotient_ \l_siunitx_quotient_mode_tl : }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_fraction: {
+ \bool_set_false:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_quotient_aux_i:
+ \tl_set:Nx \l_siunitx_number_out_tl
+ { { \exp_not:V \l_siunitx_number_numerator_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_number_denominator_tl } }
+ \tl_put_right:NV \l_siunitx_number_out_tl \l_siunitx_tmpa_tl
+ \tl_put_left:Nn \l_siunitx_number_out_tl { \siunitx_fraction:nn }
+ \tl_set:Nx \l_siunitx_number_out_tl
{
\exp_not:N \ensuremath
- { \exp_not:V \_l_siunitx_number_out_tl }
- }
- \_siunitx_number_output_single_aux:
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_symbol: {
- \bool_set_true:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_quotient_aux_i:
- \tl_set_eq:NN \_l_siunitx_number_out_tl
- \_l_siunitx_number_numerator_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_number_out_tl
- \_l_siunitx_output_quotient_tl
- \tl_put_right:NV \_l_siunitx_number_out_tl
- \_l_siunitx_number_denominator_tl
- \_siunitx_number_output_single_aux:
-}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_aux_i: {
- \_siunitx_number_in_parse:V \_l_siunitx_number_numerator_tl
- \_siunitx_number_output_quotient_aux_ii:
- \_siunitx_number_output_color:
- \prop_get:NnN \_l_siunitx_number_out_prop { result }
- \_l_siunitx_number_numerator_tl
- \_siunitx_number_in_parse:V \_l_siunitx_number_denominator_tl
- \_siunitx_number_output_quotient_aux_ii:
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ { \exp_not:V \l_siunitx_number_out_tl }
+ }
+ \siunitx_number_output_single_aux:
+}
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_symbol: {
+ \bool_set_true:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_quotient_aux_i:
+ \tl_set_eq:NN \l_siunitx_number_out_tl
+ \l_siunitx_number_numerator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_number_out_tl
+ \l_siunitx_output_quotient_tl
+ \tl_put_right:NV \l_siunitx_number_out_tl
+ \l_siunitx_number_denominator_tl
+ \siunitx_number_output_single_aux:
+}
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_aux_i: {
+ \siunitx_number_in_parse:V \l_siunitx_number_numerator_tl
+ \siunitx_number_output_quotient_aux_ii:
+ \siunitx_number_output_color:
+ \prop_get:NnN \l_siunitx_number_out_prop { result }
+ \l_siunitx_number_numerator_tl
+ \siunitx_number_in_parse:V \l_siunitx_number_denominator_tl
+ \siunitx_number_output_quotient_aux_ii:
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ result-bracket-exponent }
{
- \prop_put:Nnn \_l_siunitx_number_out_prop { result-bracket }
+ \prop_put:Nnn \l_siunitx_number_out_prop { result-bracket }
{ true }
}
- \_siunitx_number_output_bracket:
- \prop_get:NnN \_l_siunitx_number_out_prop { result }
- \_l_siunitx_number_denominator_tl
+ \siunitx_number_output_bracket:
+ \prop_get:NnN \l_siunitx_number_out_prop { result }
+ \l_siunitx_number_denominator_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_quotient_aux_ii: {
- \_siunitx_number_process:
- \_siunitx_number_format:
+\cs_new_protected_nopar:Npn \siunitx_number_output_quotient_aux_ii: {
+ \siunitx_number_process:
+ \siunitx_number_format:
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_single: {
+\cs_new_protected_nopar:Npn \siunitx_number_output_single: {
\bool_if:nF
{
- \tl_if_empty_p:N \_l_siunitx_pre_unit_tl &&
- \tl_if_empty_p:N \_l_siunitx_unit_tl
+ \tl_if_empty_p:N \l_siunitx_pre_unit_tl &&
+ \tl_if_empty_p:N \l_siunitx_unit_tl
}
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { exponent }
- { \_siunitx_number_format_brackets:n { result } }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { exponent }
+ { \siunitx_number_format_brackets:n { result } }
}
- \_siunitx_number_output_bracket:
- \prop_get:NnN \_l_siunitx_number_out_prop { result }
- \_l_siunitx_number_out_tl
- \_siunitx_number_output_single_aux:
+ \siunitx_number_output_bracket:
+ \prop_get:NnN \l_siunitx_number_out_prop { result }
+ \l_siunitx_number_out_tl
+ \siunitx_number_output_single_aux:
}
-\cs_set_protected_nopar:Npn \_siunitx_number_output_single_aux: {
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nV { number } \_l_siunitx_number_out_tl
- \_siunitx_unit_output_print:
+\cs_new_protected_nopar:Npn \siunitx_number_output_single_aux: {
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nV { number } \l_siunitx_number_out_tl
+ \siunitx_unit_output_print:
}
-\bool_new:N \_l_siunitx_angle_degree_space_bool
-\bool_new:N \_l_siunitx_angle_minute_space_bool
-\box_new:N \_l_siunitx_angle_marker_box
-\box_new:N \_l_siunitx_angle_unit_box
-\dim_new:N \_l_siunitx_angle_marker_dim
-\dim_new:N \_l_siunitx_angle_unit_dim
-\prop_new:N \_l_siunitx_angle_degree_prop
-\prop_new:N \_l_siunitx_angle_minute_prop
-\prop_new:N \_l_siunitx_angle_second_prop
+\bool_new:N \l_siunitx_angle_degree_space_bool
+\bool_new:N \l_siunitx_angle_minute_space_bool
+\box_new:N \l_siunitx_angle_marker_box
+\box_new:N \l_siunitx_angle_unit_box
+\dim_new:N \l_siunitx_angle_marker_dim
+\dim_new:N \l_siunitx_angle_unit_dim
+\prop_new:N \l_siunitx_angle_degree_prop
+\prop_new:N \l_siunitx_angle_minute_prop
+\prop_new:N \l_siunitx_angle_second_prop
\keys_define:nn { siunitx } {
add-arc-degree-zero .bool_set:N =
- \_l_siunitx_angle_degree_zero_bool ,
+ \l_siunitx_angle_degree_zero_bool ,
add-arc-minute-zero .bool_set:N =
- \_l_siunitx_angle_minute_zero_bool ,
+ \l_siunitx_angle_minute_zero_bool ,
add-arc-second-zero .bool_set:N =
- \_l_siunitx_angle_second_zero_bool ,
+ \l_siunitx_angle_second_zero_bool ,
angle-symbol-over-decimal .bool_set:N =
- \_l_siunitx_angle_astronomy_bool ,
+ \l_siunitx_angle_astronomy_bool ,
arc-separator .tl_set:N =
- \_l_siunitx_angle_arc_separator_tl ,
+ \l_siunitx_angle_arc_separator_tl ,
number-angle-separator .tl_set:N =
- \_l_siunitx_angle_unit_separator_tl ,
+ \l_siunitx_angle_unit_separator_tl ,
}
-\cs_set_protected:Npn \_siunitx_angle_output:nnn #1#2#3 {
- \_siunitx_angle_init:
+\cs_new_protected:Npn \siunitx_angle_output:nnn #1#2#3 {
+ \siunitx_angle_init:
\IfNoValueTF {#2}
{
- \bool_set_false:N \_l_siunitx_angle_minute_zero_bool
- \bool_set_false:N \_l_siunitx_angle_second_zero_bool
- \_siunitx_angle_output_aux:nnn {#1} { } { }
+ \bool_set_false:N \l_siunitx_angle_minute_zero_bool
+ \bool_set_false:N \l_siunitx_angle_second_zero_bool
+ \siunitx_angle_output_aux:nnn {#1} { } { }
}
{
\IfNoValueTF {#3}
- { \_siunitx_error:nx { invalid-arc-format } { #1 ; #2 } }
- { \_siunitx_angle_output_aux:nnn {#1} {#2} {#3} }
+ { \siunitx_error:nx { invalid-arc-format } { #1 ; #2 } }
+ { \siunitx_angle_output_aux:nnn {#1} {#2} {#3} }
}
}
-\cs_set_protected:Npn \_siunitx_angle_output_aux:nnn #1#2#3 {
+\cs_new_protected:Npn \siunitx_angle_output_aux:nnn #1#2#3 {
\tl_if_empty:nTF { #1#2#3 }
- { \_siunitx_error:n { empty-arc } }
- {
- \bool_if:NTF \_l_siunitx_number_parse_bool
- { \_siunitx_angle_parse:nnn {#1} {#2} {#3} }
- { \_siunitx_angle_direct:nnn {#1} {#2} {#3} }
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_angle_init: {
- \bool_set_false:N \_l_siunitx_angle_degree_space_bool
- \bool_set_false:N \_l_siunitx_angle_minute_space_bool
- \prop_clear:N \_l_siunitx_angle_degree_prop
- \prop_clear:N \_l_siunitx_angle_minute_prop
- \prop_clear:N \_l_siunitx_angle_second_prop
- \tl_clear:N \_l_siunitx_preunit_tl
- \tl_set_eq:NN \_l_siunitx_number_unit_separator_tl
- \_l_siunitx_angle_unit_separator_tl
- \cs_set_eq:NN \_siunitx_number_in_parse_more:N
- \_siunitx_number_in_parse_restricted:N
-}
-\cs_set_protected:Npn \_siunitx_angle_direct:nnn #1 {
+ { \siunitx_error:n { empty-arc } }
+ {
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ { \siunitx_angle_parse:nnn {#1} {#2} {#3} }
+ { \siunitx_angle_direct:nnn {#1} {#2} {#3} }
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_angle_init: {
+ \bool_set_false:N \l_siunitx_angle_degree_space_bool
+ \bool_set_false:N \l_siunitx_angle_minute_space_bool
+ \prop_clear:N \l_siunitx_angle_degree_prop
+ \prop_clear:N \l_siunitx_angle_minute_prop
+ \prop_clear:N \l_siunitx_angle_second_prop
+ \tl_clear:N \l_siunitx_preunit_tl
+ \tl_set_eq:NN \l_siunitx_number_unit_separator_tl
+ \l_siunitx_angle_unit_separator_tl
+ \cs_set_eq:NN \siunitx_number_in_parse_more:N
+ \siunitx_number_in_parse_restricted:N
+}
+\cs_new_protected:Npn \siunitx_angle_direct:nnn #1 {
\tl_if_empty:nTF {#1}
{
- \bool_if:NTF \_l_siunitx_angle_degree_zero_bool
- { \_siunitx_angle_direct_aux_i:nnn { 0 } }
- { \_siunitx_angle_direct_aux_i:nnn { } }
+ \bool_if:NTF \l_siunitx_angle_degree_zero_bool
+ { \siunitx_angle_direct_aux_i:nnn { 0 } }
+ { \siunitx_angle_direct_aux_i:nnn { } }
}
- { \_siunitx_angle_direct_aux_i:nnn {#1} }
+ { \siunitx_angle_direct_aux_i:nnn {#1} }
}
-\cs_set_protected:Npn \_siunitx_angle_direct_aux_i:nnn #1#2 {
+\cs_new_protected:Npn \siunitx_angle_direct_aux_i:nnn #1#2 {
\tl_if_empty:nTF {#2}
{
- \bool_if:NTF \_l_siunitx_angle_minte_zero_bool
- { \_siunitx_angle_direct_aux_ii:nnn {#1} { 0 } }
- { \_siunitx_angle_direct_aux_ii:nnn {#1} { } }
+ \bool_if:NTF \l_siunitx_angle_minte_zero_bool
+ { \siunitx_angle_direct_aux_ii:nnn {#1} { 0 } }
+ { \siunitx_angle_direct_aux_ii:nnn {#1} { } }
}
- { \_siunitx_angle_direct_aux_ii:nnn {#1} {#2} }
+ { \siunitx_angle_direct_aux_ii:nnn {#1} {#2} }
}
-\cs_set_protected:Npn \_siunitx_angle_direct_aux_ii:nnn #1#2#3 {
+\cs_new_protected:Npn \siunitx_angle_direct_aux_ii:nnn #1#2#3 {
\tl_if_empty:nTF {#3}
{
- \bool_if:NTF \_l_siunitx_angle_second_zero_bool
- { \_siunitx_angle_direct_aux_iii:nnn {#1} {#2} { 0 } }
- { \_siunitx_angle_direct_aux_iii:nnn {#1} {#2} { } }
+ \bool_if:NTF \l_siunitx_angle_second_zero_bool
+ { \siunitx_angle_direct_aux_iii:nnn {#1} {#2} { 0 } }
+ { \siunitx_angle_direct_aux_iii:nnn {#1} {#2} { } }
}
- { \_siunitx_angle_direct_aux_iii:nnn {#1} {#2} {#3} }
+ { \siunitx_angle_direct_aux_iii:nnn {#1} {#2} {#3} }
}
-\cs_set_protected:Npn \_siunitx_angle_direct_aux_iii:nnn #1#2#3 {
+\cs_new_protected:Npn \siunitx_angle_direct_aux_iii:nnn #1#2#3 {
\tl_if_empty:nF {#1}
{
\tl_if_empty:nF {#2#3}
- { \bool_set_true:N \_l_siunitx_angle_degree_space_bool }
+ { \bool_set_true:N \l_siunitx_angle_degree_space_bool }
}
\tl_if_empty:nF {#2}
{
\tl_if_empty:nF {#3}
- { \bool_set_true:N \_l_siunitx_angle_minute_space_bool }
+ { \bool_set_true:N \l_siunitx_angle_minute_space_bool }
}
- \_siunitx_angle_print_direct:nnn {#1} {#2} {#3}
+ \siunitx_angle_print_direct:nnn {#1} {#2} {#3}
}
-\cs_set_protected:Npn \_siunitx_angle_parse:nnn #1#2#3 {
- \_siunitx_angle_parse_aux:nn {#1} { degree }
- \_siunitx_angle_parse_aux:nn {#2} { minute }
- \_siunitx_angle_parse_aux:nn {#3} { second }
- \_siunitx_angle_check_sign:
- \_siunitx_angle_zero_fill:
- \prop_if_empty:NF \_l_siunitx_angle_degree_prop
+\cs_new_protected:Npn \siunitx_angle_parse:nnn #1#2#3 {
+ \siunitx_angle_parse_aux:nn {#1} { degree }
+ \siunitx_angle_parse_aux:nn {#2} { minute }
+ \siunitx_angle_parse_aux:nn {#3} { second }
+ \siunitx_angle_check_sign:
+ \siunitx_angle_zero_fill:
+ \prop_if_empty:NF \l_siunitx_angle_degree_prop
{
- \prop_if_empty:NF \_l_siunitx_angle_minute_prop
- { \bool_set_true:N \_l_siunitx_angle_degree_space_bool }
- \prop_if_empty:NF \_l_siunitx_angle_second_prop
- { \bool_set_true:N \_l_siunitx_angle_degree_space_bool }
+ \prop_if_empty:NF \l_siunitx_angle_minute_prop
+ { \bool_set_true:N \l_siunitx_angle_degree_space_bool }
+ \prop_if_empty:NF \l_siunitx_angle_second_prop
+ { \bool_set_true:N \l_siunitx_angle_degree_space_bool }
}
- \prop_if_empty:NF \_l_siunitx_angle_minute_prop
+ \prop_if_empty:NF \l_siunitx_angle_minute_prop
{
- \prop_if_empty:NF \_l_siunitx_angle_second_prop
- { \bool_set_true:N \_l_siunitx_angle_minute_space_bool }
+ \prop_if_empty:NF \l_siunitx_angle_second_prop
+ { \bool_set_true:N \l_siunitx_angle_minute_space_bool }
}
- \_siunitx_angle_print:
+ \siunitx_angle_print:
}
-\cs_set_protected:Npn \_siunitx_angle_parse_aux:nn #1#2 {
- \prop_clear:N \_l_siunitx_number_in_prop
+\cs_new_protected:Npn \siunitx_angle_parse_aux:nn #1#2 {
+ \prop_clear:N \l_siunitx_number_in_prop
\tl_if_empty:nF {#1}
{
- \_siunitx_number_in_init:
- \_siunitx_number_in_parse_aux:n {#1}
+ \siunitx_number_in_init:
+ \siunitx_number_in_parse_aux:n {#1}
}
- \prop_get:NnN \_l_siunitx_number_in_prop { mantissa-sign-deleted }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign-deleted }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop { mantissa-sign }
- \_l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { mantissa-sign }
+ \l_siunitx_tmpa_tl
}
- \_siunitx_number_process:
- \prop_set_eq:cN { _l_siunitx_angle_ #2 _prop }
- \_l_siunitx_number_in_prop
+ \siunitx_number_process:
+ \prop_set_eq:cN { l_siunitx_angle_ #2 _prop }
+ \l_siunitx_number_in_prop
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_check_sign: {
- \prop_if_empty:NTF \_l_siunitx_angle_degree_prop
+\cs_new_protected_nopar:Npn \siunitx_angle_check_sign: {
+ \prop_if_empty:NTF \l_siunitx_angle_degree_prop
{
- \prop_if_empty:NF \_l_siunitx_angle_minute_prop
- { \_siunitx_angle_check_sign_aux:n { second } }
+ \prop_if_empty:NF \l_siunitx_angle_minute_prop
+ { \siunitx_angle_check_sign_aux:n { second } }
}
{
- \_siunitx_angle_check_sign_aux:n { minute }
- \_siunitx_angle_check_sign_aux:n { second }
+ \siunitx_angle_check_sign_aux:n { minute }
+ \siunitx_angle_check_sign_aux:n { second }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_check_sign_aux:n #1 {
- \prop_if_in:cnTF { _l_siunitx_angle_ #1 _prop }
+\cs_new_protected_nopar:Npn \siunitx_angle_check_sign_aux:n #1 {
+ \prop_if_in:cnTF { l_siunitx_angle_ #1 _prop }
{ mantissa-sign }
{ \msg_error:nn { siunitx } { bad-arc-sign } }
{
- \prop_if_in:cnT { _l_siunitx_angle_ #1 _prop }
+ \prop_if_in:cnT { l_siunitx_angle_ #1 _prop }
{ mantissa-sign-deleted }
{ \msg_error:nn { siunitx } { bad-arc-sign } }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_zero_fill: {
+\cs_new_protected_nopar:Npn \siunitx_angle_zero_fill: {
\bool_if:nT
{
- \prop_if_empty_p:N \_l_siunitx_angle_second_prop &&
- \_l_siunitx_angle_second_zero_bool
+ \prop_if_empty_p:N \l_siunitx_angle_second_prop &&
+ \l_siunitx_angle_second_zero_bool
}
{
- \prop_put:Nnn \_l_siunitx_angle_second_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_angle_second_prop { mantissa }
{ true }
- \prop_put:Nnn \_l_siunitx_angle_second_prop { mantissa-integer }
+ \prop_put:Nnn \l_siunitx_angle_second_prop { mantissa-integer }
{ 0 }
}
\bool_if:nT
{
- \prop_if_empty_p:N \_l_siunitx_angle_minute_prop &&
- \_l_siunitx_angle_minute_zero_bool
+ \prop_if_empty_p:N \l_siunitx_angle_minute_prop &&
+ \l_siunitx_angle_minute_zero_bool
}
{
- \prop_put:Nnn \_l_siunitx_angle_minute_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_angle_minute_prop { mantissa }
{ true }
- \prop_put:Nnn \_l_siunitx_angle_minute_prop { mantissa-integer }
+ \prop_put:Nnn \l_siunitx_angle_minute_prop { mantissa-integer }
{ 0 }
- \_siunitx_angle_sign_shuffle:nn { second } { minute }
+ \siunitx_angle_sign_shuffle:nn { second } { minute }
}
\bool_if:nT
{
- \prop_if_empty_p:N \_l_siunitx_angle_degree_prop &&
- \_l_siunitx_angle_degree_zero_bool
+ \prop_if_empty_p:N \l_siunitx_angle_degree_prop &&
+ \l_siunitx_angle_degree_zero_bool
}
{
- \prop_put:Nnn \_l_siunitx_angle_degree_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_angle_degree_prop { mantissa }
{ true }
- \prop_put:Nnn \_l_siunitx_angle_degree_prop { mantissa-integer }
+ \prop_put:Nnn \l_siunitx_angle_degree_prop { mantissa-integer }
{ 0 }
- \_siunitx_angle_sign_shuffle:nn { second } { degree }
- \_siunitx_angle_sign_shuffle:nn { minute } { degree }
+ \siunitx_angle_sign_shuffle:nn { second } { degree }
+ \siunitx_angle_sign_shuffle:nn { minute } { degree }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_sign_shuffle:nn #1#2 {
- \_siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { }
- \_siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { -deleted }
+\cs_new_protected_nopar:Npn \siunitx_angle_sign_shuffle:nn #1#2 {
+ \siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { }
+ \siunitx_angle_sign_shuffle_aux:nnn {#1} {#2} { -deleted }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_sign_shuffle_aux:nnn
+\cs_new_protected_nopar:Npn \siunitx_angle_sign_shuffle_aux:nnn
#1#2#3 {
- \prop_get:cnN { _l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
- \_l_siunitx_tmpa_tl
- \prop_del:cn { _l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+ \prop_get:cnN { l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
+ \l_siunitx_tmpa_tl
+ \prop_del:cn { l_siunitx_angle_ #1 _prop } { mantissa-sign #3 }
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
- \prop_put:cnV { _l_siunitx_angle_ #2 _prop } { mantissa-sign #3 }
- \_l_siunitx_tmpa_tl
+ \prop_put:cnV { l_siunitx_angle_ #2 _prop } { mantissa-sign #3 }
+ \l_siunitx_tmpa_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print: {
- \_siunitx_angle_print_aux:nn { degree } { \SIUnitSymbolDegree }
- \bool_if:NT \_l_siunitx_angle_degree_space_bool
+\cs_new_protected_nopar:Npn \siunitx_angle_print: {
+ \siunitx_angle_print_aux:nn { degree } { \SIUnitSymbolDegree }
+ \bool_if:NT \l_siunitx_angle_degree_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_aux:nn { minute } { \SIUnitSymbolArcminute }
- \bool_if:NT \_l_siunitx_angle_minute_space_bool
+ \siunitx_angle_print_aux:nn { minute } { \SIUnitSymbolArcminute }
+ \bool_if:NT \l_siunitx_angle_minute_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_aux:nn { second } { \SIUnitSymbolArcsecond }
+ \siunitx_angle_print_aux:nn { second } { \SIUnitSymbolArcsecond }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_aux:nn #1#2 {
- \prop_if_empty:cF { _l_siunitx_angle_ #1 _prop }
+\cs_new_protected_nopar:Npn \siunitx_angle_print_aux:nn #1#2 {
+ \prop_if_empty:cF { l_siunitx_angle_ #1 _prop }
{
- \prop_set_eq:Nc \_l_siunitx_number_in_prop
- { _l_siunitx_angle_ #1 _prop }
- \tl_set:Nn \_l_siunitx_unit_tl {#2}
- \tl_clear:N \_l_siunitx_number_out_tl
- \_siunitx_number_format:
- \_siunitx_number_output_color:
- \bool_if:NTF \_l_siunitx_angle_astronomy_bool
- { \_siunitx_angle_print_astronomy: }
- { \_siunitx_number_output_single: }
+ \prop_set_eq:Nc \l_siunitx_number_in_prop
+ { l_siunitx_angle_ #1 _prop }
+ \tl_set:Nn \l_siunitx_unit_tl {#2}
+ \tl_clear:N \l_siunitx_number_out_tl
+ \siunitx_number_format:
+ \siunitx_number_output_color:
+ \bool_if:NTF \l_siunitx_angle_astronomy_bool
+ { \siunitx_angle_print_astronomy: }
+ { \siunitx_number_output_single: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy: {
- \prop_if_in:NnTF \_l_siunitx_number_in_prop
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy: {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop
{ mantissa-decimal-marker }
- { \_siunitx_angle_print_astronomy_aux: }
- { \_siunitx_number_output_single: }
+ { \siunitx_angle_print_astronomy_aux: }
+ { \siunitx_number_output_single: }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_aux: {
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-integer }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
- \hbox_set:Nn \_l_siunitx_angle_marker_box
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_aux: {
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-integer }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \hbox_set:Nn \l_siunitx_angle_marker_box
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { { \_l_siunitx_output_decimal_tl } } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { { \l_siunitx_output_decimal_tl } } }
}
- \hbox_set:Nn \_l_siunitx_angle_unit_box
+ \hbox_set:Nn \l_siunitx_angle_unit_box
{
- \_siunitx_print:nV { unit } \_l_siunitx_unit_tl
+ \siunitx_print:nV { unit } \l_siunitx_unit_tl
\skip_horizontal:n { -\scriptspace }
}
- \_siunitx_angle_print_astronomy_aux:n { marker }
- \_siunitx_angle_print_astronomy_aux:n { unit }
- \hbox_set:Nn \_l_siunitx_angle_marker_box
+ \siunitx_angle_print_astronomy_aux:n { marker }
+ \siunitx_angle_print_astronomy_aux:n { unit }
+ \hbox_set:Nn \l_siunitx_angle_marker_box
{
- \box_use:N \_l_siunitx_angle_marker_box
- \box_use:N \_l_siunitx_angle_unit_box
+ \box_use:N \l_siunitx_angle_marker_box
+ \box_use:N \l_siunitx_angle_unit_box
}
\dim_compare:nNnTF
- { \_l_siunitx_angle_marker_dim } > { \_l_siunitx_angle_unit_dim }
- { \_siunitx_angle_print_astronomy_marker: }
- { \_siunitx_angle_print_astronomy_unit: }
- \prop_get:NnN \_l_siunitx_number_out_prop { mantissa-decimal }
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_aux:n #1 {
- \dim_set:cn { _l_siunitx_angle_ #1 _dim }
- { \box_wd:c { _l_siunitx_angle_ #1 _box } }
- \hbox_set_to_wd:cnn { _l_siunitx_angle_ #1 _box } { \c_zero_skip }
+ { \l_siunitx_angle_marker_dim } > { \l_siunitx_angle_unit_dim }
+ { \siunitx_angle_print_astronomy_marker: }
+ { \siunitx_angle_print_astronomy_unit: }
+ \prop_get:NnN \l_siunitx_number_out_prop { mantissa-decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_aux:n #1 {
+ \dim_set:cn { l_siunitx_angle_ #1 _dim }
+ { \box_wd:c { l_siunitx_angle_ #1 _box } }
+ \hbox_set_to_wd:cnn { l_siunitx_angle_ #1 _box } { \c_zero_skip }
{
\tex_hss:D
- \hbox_unpack:c { _l_siunitx_angle_ #1_box }
+ \hbox_unpack:c { l_siunitx_angle_ #1_box }
\tex_hss:D
}
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_marker: {
- \hbox_set_to_wd:Nnn \_l_siunitx_angle_marker_box
- { \_l_siunitx_angle_marker_dim }
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_marker: {
+ \hbox_set_to_wd:Nnn \l_siunitx_angle_marker_box
+ { \l_siunitx_angle_marker_dim }
{
\tex_hss:D
- \hbox_unpack:N \_l_siunitx_angle_marker_box
+ \hbox_unpack:N \l_siunitx_angle_marker_box
\tex_hss:D
}
- \box_use:N \_l_siunitx_angle_marker_box
+ \box_use:N \l_siunitx_angle_marker_box
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_astronomy_unit: {
- \hbox_set_to_wd:Nnn \_l_siunitx_angle_marker_box
- { \_l_siunitx_angle_unit_dim }
+\cs_new_protected_nopar:Npn \siunitx_angle_print_astronomy_unit: {
+ \hbox_set_to_wd:Nnn \l_siunitx_angle_marker_box
+ { \l_siunitx_angle_unit_dim }
{
\tex_hss:D
- \hbox_unpack:N \_l_siunitx_angle_marker_box
+ \hbox_unpack:N \l_siunitx_angle_marker_box
\tex_hss:D
}
- \box_use:N \_l_siunitx_angle_marker_box
+ \box_use:N \l_siunitx_angle_marker_box
\skip_horizontal:N \scriptspace
}
-\cs_set_protected:Npn \_siunitx_angle_print_direct:nnn #1#2#3 {
- \_siunitx_angle_print_direct_aux:nn {#1} { \SIUnitSymbolDegree }
- \bool_if:NT \_l_siunitx_angle_degree_space_bool
+\cs_new_protected:Npn \siunitx_angle_print_direct:nnn #1#2#3 {
+ \siunitx_angle_print_direct_aux:nn {#1} { \SIUnitSymbolDegree }
+ \bool_if:NT \l_siunitx_angle_degree_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_direct_aux:nn {#2} { \SIUnitSymbolArcminute }
- \bool_if:NT \_l_siunitx_angle_minute_space_bool
+ \siunitx_angle_print_direct_aux:nn {#2} { \SIUnitSymbolArcminute }
+ \bool_if:NT \l_siunitx_angle_minute_space_bool
{
\nobreak
- \_siunitx_ensuremath:n { \_l_siunitx_angle_arc_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_angle_arc_separator_tl }
}
- \_siunitx_angle_print_direct_aux:nn {#3} { \SIUnitSymbolArcsecond }
+ \siunitx_angle_print_direct_aux:nn {#3} { \SIUnitSymbolArcsecond }
}
-\cs_set_protected_nopar:Npn \_siunitx_angle_print_direct_aux:nn #1#2 {
+\cs_new_protected_nopar:Npn \siunitx_angle_print_direct_aux:nn #1#2 {
\tl_if_empty:nF {#1}
{
- \tl_set:Nn \_l_siunitx_unit_tl {#2}
- \_siunitx_print:nn { number } { \_siunitx_ensuremath:n {#1} }
- \_siunitx_unit_output_print:
+ \tl_set:Nn \l_siunitx_unit_tl {#2}
+ \siunitx_print:nn { number } { \siunitx_ensuremath:n {#1} }
+ \siunitx_unit_output_print:
}
}
-\tl_new:N \_l_siunitx_declare_list_tl
-\tl_set:Nn \_l_siunitx_declare_list_tl { \of \per \raiseto \tothe }
-\cs_set_protected:Npn \_siunitx_declare_power_after:Nn #1#2 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w }
+\tl_new:N \l_siunitx_declare_list_tl
+\tl_set:Nn \l_siunitx_declare_list_tl { \of \per \raiseto \tothe }
+\cs_new_protected:Npn \siunitx_declare_power_after:Nn #1#2 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w }
{ \textsuperscript {#2} }
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
- { \_siunitx_unit_parse_power_after:n {#2} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_power_after:n {#2} }
}
-\cs_set_protected:Npn \_siunitx_declare_power_before:Nn #1#2 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w } ##1
+\cs_new_protected:Npn \siunitx_declare_power_before:Nn #1#2 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w } ##1
{ ##1 \textsuperscript {#2} }
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
- { \_siunitx_unit_parse_power_before:n {#2} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_power_before:n {#2} }
}
-\cs_set_protected:Npn \_siunitx_declare_prefix:Nnnn #1#2#3#4 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w } {#2}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
+\cs_new_protected:Npn \siunitx_declare_prefix:Nnnn #1#2#3#4 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w } {#2}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
{
- \bool_if:NTF \_l_siunitx_prefix_symbols_bool
- { \_siunitx_unit_parse_prefix:n {#2} }
- { \_siunitx_unit_parse_prefix:nn {#3} {#4} }
+ \bool_if:NTF \l_siunitx_prefix_symbols_bool
+ { \siunitx_unit_parse_prefix:n {#2} }
+ { \siunitx_unit_parse_prefix:nn {#3} {#4} }
}
}
-\cs_set_protected:Npn \_siunitx_declare_qualifier:Nn #1#2 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w }
+\cs_new_protected:Npn \siunitx_declare_qualifier:Nn #1#2 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w }
{ \text { ~ } ( #2 ) }
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
- { \_siunitx_unit_parse_qualifier:n {#2} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_qualifier:n {#2} }
}
-\cs_set_protected:Npn \_siunitx_declare_unit:Nnn #1#2#3 {
- \tl_put_right:Nn \_l_siunitx_declare_list_tl {#1}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _literal:w } {#2}
- \cs_set:cpn { _siunitx_ \token_to_str:N #1 _function:w }
+\cs_new_protected:Npn \siunitx_declare_unit:Nnn #1#2#3 {
+ \tl_put_right:Nn \l_siunitx_declare_list_tl {#1}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _literal:w } {#2}
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
{
- \_siunitx_unit_if_literal:nTF {#2}
- { \_siunitx_unit_parse_unit:Nn #1 {#2} }
+ \siunitx_unit_if_literal:nTF {#2}
+ { \siunitx_unit_parse_unit:Nn #1 {#2} }
{#2}
}
\tl_if_empty:nTF {#3}
{
- \cs_if_free:cF { _l_siunitx_ \token_to_str:N #1 _options_tl }
+ \cs_if_free:cF { l_siunitx_ \token_to_str:N #1 _options_tl }
{
- \cs_gundefine:c { _l_siunitx_ \token_to_str:N #1 _options_tl }
+ \cs_gundefine:c { l_siunitx_ \token_to_str:N #1 _options_tl }
}
}
{
- \cs_if_free:cT { _l_siunitx_ \token_to_str:N #1 _options_tl }
- { \tl_new:c { _l_siunitx_ \token_to_str:N #1 _options_tl } }
- \tl_set:cn { _l_siunitx_ \token_to_str:N #1 _options_tl } {#3}
+ \cs_if_free:cT { l_siunitx_ \token_to_str:N #1 _options_tl }
+ { \tl_new:c { l_siunitx_ \token_to_str:N #1 _options_tl } }
+ \tl_set:cn { l_siunitx_ \token_to_str:N #1 _options_tl } {#3}
}
}
-\cs_set_protected:Npn \_siunitx_unit_first_token:n #1 {
+\cs_new_protected:Npn \siunitx_unit_first_token:n #1 {
\exp_after:wN \token_to_str:N \tl_head_i:w #1 \q_nil
}
-\cs_set:cpn { _siunitx_ \token_to_str:N \per _literal:w } { / }
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \per _function:w } {
- \bool_set_true:N \_l_siunitx_per_bool
- \_siunitx_unit_parse_per:
+\cs_new:cpn { siunitx_ \token_to_str:N \per _literal:w } { / }
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \per _function:w } {
+ \bool_set_true:N \l_siunitx_per_bool
+ \siunitx_unit_parse_per:
}
-\cs_set:cpn { _siunitx_ \token_to_str:N \raiseto _literal:w } #1#2 {
+\cs_new:cpn { siunitx_ \token_to_str:N \raiseto _literal:w } #1#2 {
#2
\textsuperscript {#1}
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \raiseto _function:w }
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \raiseto _function:w }
#1 {
- \_siunitx_unit_parse_power_before:n {#1}
+ \siunitx_unit_parse_power_before:n {#1}
}
-\cs_set:cpn { _siunitx_ \token_to_str:N \tothe _literal:w } #1 {
+\cs_new:cpn { siunitx_ \token_to_str:N \tothe _literal:w } #1 {
\textsuperscript {#1}
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \tothe _function:w }
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \tothe _function:w }
#1 {
- \_siunitx_unit_parse_power_after:n {#1}
+ \siunitx_unit_parse_power_after:n {#1}
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \of _literal:w } #1 {
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \of _literal:w } #1 {
\text { ~ } ( #1 )
}
-\cs_set_protected:cpn { _siunitx_ \token_to_str:N \of _function:w } #1 {
- \_siunitx_unit_parse_qualifier:n {#1}
+\cs_new_protected:cpn { siunitx_ \token_to_str:N \of _function:w } #1 {
+ \siunitx_unit_parse_qualifier:n {#1}
}
\keys_define:nn { siunitx } {
- free-standing-units .bool_set:N = \_l_siunitx_create_free_bool,
+ free-standing-units .bool_set:N = \l_siunitx_create_free_bool,
overwrite-functions .bool_set:N =
- \_l_siunitx_create_overwrite_bool,
- space-before-unit .bool_set:N = \_l_siunitx_create_prespace_bool,
- unit-optional-argument .bool_set:N = \_l_siunitx_create_optional_bool,
- use-xspace .bool_set:N = \_l_siunitx_create_xspace_bool
+ \l_siunitx_create_overwrite_bool,
+ space-before-unit .bool_set:N = \l_siunitx_create_prespace_bool,
+ unit-optional-argument .bool_set:N = \l_siunitx_create_optional_bool,
+ use-xspace .bool_set:N = \l_siunitx_create_xspace_bool
}
-\_siunitx_option_deactivate:n {
+\siunitx_option_deactivate:n {
free-standing-units,
overwrite-functions,
space-before-unit,
@@ -3233,336 +3233,336 @@
use-xspace
}
\AtBeginDocument {
- \bool_if:NTF \_l_siunitx_create_free_bool
- { \_siunitx_unit_create_functions: }
- { \_siunitx_unit_create_empty_functions: }
+ \bool_if:NTF \l_siunitx_create_free_bool
+ { \siunitx_unit_create_functions: }
+ { \siunitx_unit_create_empty_functions: }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_create_empty_functions: {
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_create_empty_functions_aux:N
+\cs_new_protected_nopar:Npn \siunitx_unit_create_empty_functions: {
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_create_empty_functions_aux:N
}
-\cs_set_protected_nopar:Npn
- \_siunitx_unit_create_empty_functions_aux:N #1 {
+\cs_new_protected_nopar:Npn
+ \siunitx_unit_create_empty_functions_aux:N #1 {
\cs_if_free:NT #1 { \cs_set_protected_nopar:Npn #1 { \ERROR } }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_create_functions: {
- \bool_if:NT \_l_siunitx_create_overwrite_bool
- { \tl_map_function:NN \_l_siunitx_declare_list_tl \cs_gundefine:N }
- \bool_if:NTF \_l_siunitx_create_optional_bool
+\cs_new_protected_nopar:Npn \siunitx_unit_create_functions: {
+ \bool_if:NT \l_siunitx_create_overwrite_bool
+ { \tl_map_function:NN \l_siunitx_declare_list_tl \cs_gundefine:N }
+ \bool_if:NTF \l_siunitx_create_optional_bool
{
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_create_with_arg:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_create_with_arg:N
}
{
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_create:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_create:N
}
- \bool_if:NT \_l_siunitx_create_xspace_bool
+ \bool_if:NT \l_siunitx_create_xspace_bool
{ \RequirePackage { xspace } }
}
-\cs_set_protected:Npn \_siunitx_unit_create:N #1 {
+\cs_new_protected:Npn \siunitx_unit_create:N #1 {
\cs_if_free:NT #1
{
- \cs_set:Npx \_siunitx_tmp:w
+ \cs_set:Npx \siunitx_tmp:w
{
\ProvideDocumentCommand \exp_not:N #1 { }
{
- \bool_if:NT \_l_siunitx_create_prespace_bool
+ \bool_if:NT \l_siunitx_create_prespace_bool
{
\exp_not:n
{
- \_siunitx_ensuremath:n
- { \_l_siunitx_number_unit_sep_tl }
+ \siunitx_ensuremath:n
+ { \l_siunitx_number_unit_sep_tl }
}
}
- \exp_not:n { \_siunitx_unit_output:nn {#1} { } }
- \bool_if:NT \_l_siunitx_create_xspace_bool
+ \exp_not:n { \siunitx_unit_output:nn {#1} { } }
+ \bool_if:NT \l_siunitx_create_xspace_bool
{ \exp_not:N \xspace }
}
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
}
-\cs_set_protected:Npn \_siunitx_unit_create_with_arg:N #1 {
+\cs_new_protected:Npn \siunitx_unit_create_with_arg:N #1 {
\cs_if_free:NT #1
{
- \cs_set:Npx \_siunitx_tmp:w
+ \cs_set:Npx \siunitx_tmp:w
{
\ProvideDocumentCommand \exp_not:N #1 { o }
{
\exp_not:N \IfNoValueTF {####1}
- { \exp_not:n { \_siunitx_unit_output:nn {#1} { } } }
+ { \exp_not:n { \siunitx_unit_output:nn {#1} { } } }
{
- \bool_if:NT \_l_siunitx_create_prespace_bool
+ \bool_if:NT \l_siunitx_create_prespace_bool
{
\exp_not:n
{
- \_siunitx_ensuremath:n
- { \_l_siunitx_number_unit_sep_tl }
+ \siunitx_ensuremath:n
+ { \l_siunitx_number_unit_sep_tl }
}
}
\SI {####1} { \exp_not:N #1 }
}
- \bool_if:NT \_l_siunitx_create_xspace_bool
+ \bool_if:NT \l_siunitx_create_xspace_bool
{ \exp_not:N \xspace }
}
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
}
\AtBeginDocument {
\tl_map_function:nN { \bar \color \ng \pm }
- \_siunitx_protect_symbols:N
+ \siunitx_protect_symbols:N
}
-\cs_set_protected_nopar:Npn \_siunitx_protect_symbols:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_protect_symbols:N #1 {
\cs_if_exist:NT #1
{
- \_siunitx_cs_if_macro:NT #1
+ \siunitx_cs_if_macro:NT #1
{ \cs_set_protected_nopar:Npx #1 { \exp_not:V #1 } }
}
}
\keys_define:nn { siunitx } {
forbid-literal-units .bool_set:N =
- \_l_siunitx_unit_forbid_literal_bool,
- parse-units .bool_set:N = \_l_siunitx_unit_parse_bool
+ \l_siunitx_unit_forbid_literal_bool,
+ parse-units .bool_set:N = \l_siunitx_unit_parse_bool
}
\keys_set:nn { siunitx } {
forbid-literal-units = false,
parse-units = true
}
-\cs_set_protected:Npn \_siunitx_unit_in:nn #1#2 {
- \bool_if:NTF \_l_siunitx_unit_parse_bool
+\cs_new_protected:Npn \siunitx_unit_in:nn #1#2 {
+ \bool_if:NTF \l_siunitx_unit_parse_bool
{
\tl_if_empty:nF {#1}
{
- \_siunitx_unit_if_literal:nTF {#1}
+ \siunitx_unit_if_literal:nTF {#1}
{
- \bool_if:NTF \_l_siunitx_unit_forbid_literal_bool
+ \bool_if:NTF \l_siunitx_unit_forbid_literal_bool
{ \msg_error:nnx { siunitx } { literal-unit } {#1} }
- { \_siunitx_unit_format_literal:n {#1} }
+ { \siunitx_unit_format_literal:n {#1} }
}
{
- \bool_if:NT \_l_siunitx_per_auto_bool
+ \bool_if:NT \l_siunitx_per_auto_bool
{
- \tl_set:Nn \_l_siunitx_per_mode_tl { symbol }
+ \tl_set:Nn \l_siunitx_per_mode_tl { symbol }
\mode_if_inner:F
{
\mode_if_math:T
{
- \tl_set:Nn \_l_siunitx_per_mode_tl
+ \tl_set:Nn \l_siunitx_per_mode_tl
{ fraction }
}
}
}
- \_siunitx_unit_parse:nn {#1} {#2}
- \_siunitx_unit_format:
+ \siunitx_unit_parse:nn {#1} {#2}
+ \siunitx_unit_format:
}
}
}
- { \_siunitx_unit_format_literal:n {#1} }
+ { \siunitx_unit_format_literal:n {#1} }
}
-\cs_generate_variant:Nn \_siunitx_unit_in:nn { V }
-\cs_set_protected:Npn \_siunitx_unit_if_literal:nTF #1#2#3 {
+\cs_generate_variant:Nn \siunitx_unit_in:nn { V }
+\cs_new_protected:Npn \siunitx_unit_if_literal:nTF #1#2#3 {
\group_begin:
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_if_literal_aux:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_if_literal_aux:N
\cs_set_eq:NN \of \use_none:n
\cs_set_eq:NN \raiseto \use_none:n
\cs_set_eq:NN \tothe \use_none:n
- \protected@edef \_l_siunitx_tmpa_tl {#1}
+ \protected@edef \l_siunitx_tmpa_tl {#1}
\exp_args:NNNV \group_end:
- \tl_set:Nn \_l_siunitx_tmpa_tl \_l_siunitx_tmpa_tl
- \tl_if_empty:NTF \_l_siunitx_tmpa_tl {#3} {#2}
+ \tl_set:Nn \l_siunitx_tmpa_tl \l_siunitx_tmpa_tl
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl {#3} {#2}
}
-\cs_set_protected:Npn \_siunitx_unit_if_literal_aux:N #1 {
+\cs_new_protected:Npn \siunitx_unit_if_literal_aux:N #1 {
\cs_set_eq:NN #1 \prg_do_nothing:
}
-\int_new:N \_l_siunitx_unit_int
-\prop_new:N \_l_siunitx_unit_prop
-\bool_new:N \_l_siunitx_per_bool
+\int_new:N \l_siunitx_unit_int
+\prop_new:N \l_siunitx_unit_prop
+\bool_new:N \l_siunitx_per_bool
\keys_define:nn { siunitx } {
- prefixes-as-symbols .bool_set:N = \_l_siunitx_prefix_symbols_bool,
- sticky-per .bool_set:N = \_l_siunitx_sticky_per_bool,
+ prefixes-as-symbols .bool_set:N = \l_siunitx_prefix_symbols_bool,
+ sticky-per .bool_set:N = \l_siunitx_sticky_per_bool,
}
\keys_set:nn { siunitx } {
prefixes-as-symbols = true
}
-\cs_set_protected:Npn \_siunitx_unit_parse:nn #1#2 {
- \_siunitx_unit_parse_init:
- \_siunitx_unit_parse_options:nn {#1} {#2}
+\cs_new_protected:Npn \siunitx_unit_parse:nn #1#2 {
+ \siunitx_unit_parse_init:
+ \siunitx_unit_parse_options:nn {#1} {#2}
#1
- \cs_set_eq:NN \pm \_siunitx_pm:
+ \cs_set_eq:NN \pm \siunitx_pm:
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_init: {
- \prop_clear:N \_l_siunitx_unit_prop
- \int_zero:N \_l_siunitx_unit_int
- \bool_set_false:N \_l_siunitx_per_bool
- \cs_set_eq:NN \_siunitx_pm: \pm
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_parse_init_aux:N
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_init: {
+ \prop_clear:N \l_siunitx_unit_prop
+ \int_zero:N \l_siunitx_unit_int
+ \bool_set_false:N \l_siunitx_per_bool
+ \cs_set_eq:NN \siunitx_pm: \pm
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_parse_init_aux:N
}
-\cs_set_protected:Npn \_siunitx_unit_parse_init_aux:N #1 {
- \cs_set_eq:Nc #1 { _siunitx_ \token_to_str:N #1 _function:w }
+\cs_new_protected:Npn \siunitx_unit_parse_init_aux:N #1 {
+ \cs_set_eq:Nc #1 { siunitx_ \token_to_str:N #1 _function:w }
}
-\cs_set_protected_nopar:Npn \_siunitx_pm: { }
-\cs_set_protected:Npn \_siunitx_unit_parse_options:nn #1#2 {
+\cs_new_protected_nopar:Npn \siunitx_pm: { }
+\cs_new_protected:Npn \siunitx_unit_parse_options:nn #1#2 {
\tl_if_single:nT {#1}
{
\cs_if_free:cF
- { _l_siunitx_ \_siunitx_unit_first_token:n {#1} _options_tl }
+ { l_siunitx_ \siunitx_unit_first_token:n {#1} _options_tl }
{
\keys_set:nv { siunitx }
- { _l_siunitx_ \_siunitx_unit_first_token:n {#1} _options_tl }
+ { l_siunitx_ \siunitx_unit_first_token:n {#1} _options_tl }
\keys_set:nn { siunitx } {#2}
}
}
}
-\cs_set_protected:Npn \_siunitx_unit_parse_power_before:n #1 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \intexpr_eval:n { \_l_siunitx_unit_int + 1 } }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
-}
-\cs_set_protected:Npn \_siunitx_unit_parse_power_after:n #1 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
-}
-\cs_set_protected:Npn \_siunitx_unit_parse_prefix:n #1 {
- \int_incr:N \_l_siunitx_unit_int
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
-}
-\cs_set_protected:Npn \_siunitx_unit_parse_prefix:nn #1#2 {
- \_siunitx_unit_parse_prefix:n {#2}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix-base- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_per: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \intexpr_eval:n { \_l_siunitx_unit_int + 1 } }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl { true }
- \bool_if:NT \_l_siunitx_sticky_per_bool
- { \cs_set_eq:NN \per \_siunitx_unit_parse_per_error: }
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_per_error: {
+\cs_new_protected:Npn \siunitx_unit_parse_power_before:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \intexpr_eval:n { \l_siunitx_unit_int + 1 } }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+}
+\cs_new_protected:Npn \siunitx_unit_parse_power_after:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+}
+\cs_new_protected:Npn \siunitx_unit_parse_prefix:n #1 {
+ \int_incr:N \l_siunitx_unit_int
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+}
+\cs_new_protected:Npn \siunitx_unit_parse_prefix:nn #1#2 {
+ \siunitx_unit_parse_prefix:n {#2}
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix-base- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_per: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \intexpr_eval:n { \l_siunitx_unit_int + 1 } }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl { true }
+ \bool_if:NT \l_siunitx_sticky_per_bool
+ { \cs_set_eq:NN \per \siunitx_unit_parse_per_error: }
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_per_error: {
\msg_error:nn { siunitx } { duplicate-sticky-per }
}
-\cs_set_protected:Npn \_siunitx_unit_parse_qualifier:n #1 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_unit_parse_qualifier:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{ \msg_error:nn { siunitx } { qualifier-before-unit } }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { qualifier- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
-}
-\cs_set_protected:Npn \_siunitx_unit_parse_unit:Nn #1#2 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVTF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- { \int_incr:N \_l_siunitx_unit_int }
- }
- { \int_incr:N \_l_siunitx_unit_int }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { unit- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#1}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl {#2}
- \_siunitx_unit_parse_unit_per:
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_parse_unit_per: {
- \bool_if:NT \_l_siunitx_sticky_per_bool
- {
- \bool_if:NT \_l_siunitx_per_bool
- {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { qualifier- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+}
+\cs_new_protected:Npn \siunitx_unit_parse_unit:Nn #1#2 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVTF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ { \int_incr:N \l_siunitx_unit_int }
+ }
+ { \int_incr:N \l_siunitx_unit_int }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { unit- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#1}
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl {#2}
+ \siunitx_unit_parse_unit_per:
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_parse_unit_per: {
+ \bool_if:NT \l_siunitx_sticky_per_bool
+ {
+ \bool_if:NT \l_siunitx_per_bool
+ {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{ true }
}
}
}
-\tl_new:N \_l_siunitx_preunit_tl
-\tl_new:N \_l_siunitx_unit_tl
-\tl_new:N \_l_siunitx_unit_current_tl
-\tl_new:N \_l_siunitx_unit_denominator_tl
-\tl_new:N \_l_siunitx_unit_numerator_tl
-\tl_new:N \_l_siunitx_unit_saved_tl
-\int_new:N \_l_siunitx_unit_denominator_int
-\int_new:N \_l_siunitx_unit_numerator_int
-\int_new:N \_l_siunitx_unit_prefix_int
-\int_new:N \_l_siunitx_unit_prefix_base_int
-\tl_new:N \_l_siunitx_unit_prefix_current_tl
-\int_new:N \_l_siunitx_unit_prefix_gram_int
-\bool_new:N \_l_siunitx_per_auto_bool
-\bool_new:N \_l_siunitx_per_fraction_bool
-\tl_new:N \_l_siunitx_per_mode_tl
-\bool_new:N \_l_siunitx_two_parts_bool
-\tl_new:N \_l_siunitx_qualifier_mode_tl
+\tl_new:N \l_siunitx_preunit_tl
+\tl_new:N \l_siunitx_unit_tl
+\tl_new:N \l_siunitx_unit_current_tl
+\tl_new:N \l_siunitx_unit_denominator_tl
+\tl_new:N \l_siunitx_unit_numerator_tl
+\tl_new:N \l_siunitx_unit_saved_tl
+\int_new:N \l_siunitx_unit_denominator_int
+\int_new:N \l_siunitx_unit_numerator_int
+\int_new:N \l_siunitx_unit_prefix_int
+\int_new:N \l_siunitx_unit_prefix_base_int
+\tl_new:N \l_siunitx_unit_prefix_current_tl
+\int_new:N \l_siunitx_unit_prefix_gram_int
+\bool_new:N \l_siunitx_per_auto_bool
+\bool_new:N \l_siunitx_per_fraction_bool
+\tl_new:N \l_siunitx_per_mode_tl
+\bool_new:N \l_siunitx_two_parts_bool
+\tl_new:N \l_siunitx_qualifier_mode_tl
\keys_define:nn { siunitx } {
bracket-unit-denominator .bool_set:N
- = \_l_siunitx_unit_denominator_bracket_bool,
- inter-unit-separator .tl_set:N = \_l_siunitx_unit_separator_tl ,
+ = \l_siunitx_unit_denominator_bracket_bool,
+ inter-unit-separator .tl_set:N = \l_siunitx_unit_separator_tl ,
per-mode .choice:,
per-mode / fraction .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_true:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
- \tl_set:Nn \_l_siunitx_per_mode_tl { fraction }
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_true:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
+ \tl_set:Nn \l_siunitx_per_mode_tl { fraction }
},
per-mode / power .meta:n = { per-mode = reciprocal } ,
per-mode / power-positive-first .meta:n =
{ per-mode = reciprocal-positive-first } ,
per-mode / reciprocal .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_false:N \_l_siunitx_per_fraction_bool
- \bool_set_false:N \_l_siunitx_per_two_parts_bool
- \tl_clear:N \_l_siunitx_per_mode_tl
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_false:N \l_siunitx_per_fraction_bool
+ \bool_set_false:N \l_siunitx_per_two_parts_bool
+ \tl_clear:N \l_siunitx_per_mode_tl
},
per-mode / reciprocal-positive-first .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_false:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
- \tl_clear:N \_l_siunitx_per_mode_tl
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_false:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
+ \tl_clear:N \l_siunitx_per_mode_tl
},
per-mode / repeated-symbol .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_false:N \_l_siunitx_per_fraction_bool
- \bool_set_false:N \_l_siunitx_per_two_parts_bool
- \tl_set:Nn \_l_siunitx_per_mode_tl { repeat }
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_false:N \l_siunitx_per_fraction_bool
+ \bool_set_false:N \l_siunitx_per_two_parts_bool
+ \tl_set:Nn \l_siunitx_per_mode_tl { repeat }
},
per-mode / symbol .code:n =
{
- \bool_set_false:N \_l_siunitx_per_auto_bool
- \bool_set_true:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
- \tl_set:Nn \_l_siunitx_per_mode_tl { symbol }
+ \bool_set_false:N \l_siunitx_per_auto_bool
+ \bool_set_true:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
+ \tl_set:Nn \l_siunitx_per_mode_tl { symbol }
},
per-mode / symbol-or-fraction .code:n =
{
- \bool_set_true:N \_l_siunitx_per_auto_bool
- \bool_set_true:N \_l_siunitx_per_fraction_bool
- \bool_set_true:N \_l_siunitx_per_two_parts_bool
+ \bool_set_true:N \l_siunitx_per_auto_bool
+ \bool_set_true:N \l_siunitx_per_fraction_bool
+ \bool_set_true:N \l_siunitx_per_two_parts_bool
},
- per-symbol .tl_set:N = \_l_siunitx_per_symbol_tl,
+ per-symbol .tl_set:N = \l_siunitx_per_symbol_tl,
qualifier-mode .choice:,
qualifier-mode / brackets .code:n =
- { \tl_set:Nn \_l_siunitx_qualifier_mode_tl { brackets } },
+ { \tl_set:Nn \l_siunitx_qualifier_mode_tl { brackets } },
qualifier-mode / space .code:n =
- { \tl_set:Nn \_l_siunitx_qualifier_mode_tl { space } },
+ { \tl_set:Nn \l_siunitx_qualifier_mode_tl { space } },
qualifier-mode / subscript .code:n =
- { \tl_set:Nn \_l_siunitx_qualifier_mode_tl { subscript } },
+ { \tl_set:Nn \l_siunitx_qualifier_mode_tl { subscript } },
}
\keys_set:nn { siunitx } {
bracket-unit-denominator = true,
@@ -3571,172 +3571,172 @@
per-symbol = /,
qualifier-mode = subscript
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format: {
- \_siunitx_unit_format_init:
- \intexpr_compare:nNnT { \_l_siunitx_unit_int } = { 1 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format: {
+ \siunitx_unit_format_init:
+ \intexpr_compare:nNnT { \l_siunitx_unit_int } = { 1 }
{
- \tl_if_eq:VnT \_l_siunitx_per_mode_tl { symbol }
+ \tl_if_eq:VnT \l_siunitx_per_mode_tl { symbol }
{
- \prop_if_in:NnT \_l_siunitx_unit_prop { per-1 }
- { \tl_clear:N \_l_siunitx_number_unit_separator_tl }
+ \prop_if_in:NnT \l_siunitx_unit_prop { per-1 }
+ { \tl_clear:N \l_siunitx_number_unit_separator_tl }
}
}
- \intexpr_while_do:nNnn { \_l_siunitx_unit_int } > { 0 }
+ \intexpr_while_do:nNnn { \l_siunitx_unit_int } > { 0 }
{
- \_siunitx_unit_format_prefix:
- \_siunitx_unit_format_symbol:
- \_siunitx_unit_format_qualifier:
- \_siunitx_unit_format_power:
- \_siunitx_unit_format_add:
- \int_decr:N \_l_siunitx_unit_int
+ \siunitx_unit_format_prefix:
+ \siunitx_unit_format_symbol:
+ \siunitx_unit_format_qualifier:
+ \siunitx_unit_format_power:
+ \siunitx_unit_format_add:
+ \int_decr:N \l_siunitx_unit_int
}
- \bool_if:NT \_l_siunitx_per_two_parts_bool
+ \bool_if:NT \l_siunitx_per_two_parts_bool
{
- \bool_if:NTF \_l_siunitx_per_fraction_bool
- { \_siunitx_unit_format_fraction: }
- { \_siunitx_unit_format_sorted: }
+ \bool_if:NTF \l_siunitx_per_fraction_bool
+ { \siunitx_unit_format_fraction: }
+ { \siunitx_unit_format_sorted: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_add: {
- \bool_if:NTF \_l_siunitx_per_two_parts_bool
+\cs_new_protected_nopar:Npn \siunitx_unit_format_add: {
+ \bool_if:NTF \l_siunitx_per_two_parts_bool
{
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVTF \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVTF \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \_siunitx_unit_format_add_aux:n { _denominator }
- \int_incr:N \_l_siunitx_unit_denominator_int
+ \siunitx_unit_format_add_aux:n { _denominator }
+ \int_incr:N \l_siunitx_unit_denominator_int
}
{
- \_siunitx_unit_format_add_aux:n { _numerator }
- \int_incr:N \_l_siunitx_unit_numerator_int
+ \siunitx_unit_format_add_aux:n { _numerator }
+ \int_incr:N \l_siunitx_unit_numerator_int
}
}
- { \_siunitx_unit_format_add_aux:n { } }
- \tl_clear:N \_l_siunitx_unit_current_tl
+ { \siunitx_unit_format_add_aux:n { } }
+ \tl_clear:N \l_siunitx_unit_current_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_add_aux:n #1 {
- \tl_if_empty:cF { _l_siunitx_unit #1 _tl }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_add_aux:n #1 {
+ \tl_if_empty:cF { l_siunitx_unit #1 _tl }
{
- \tl_if_eq:nVTF { repeat } \_l_siunitx_per_mode_tl
+ \tl_if_eq:nVTF { repeat } \l_siunitx_per_mode_tl
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \intexpr_eval:n { \_l_siunitx_unit_int + 1 } }
- \prop_if_in:NVF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \intexpr_eval:n { \l_siunitx_unit_int + 1 } }
+ \prop_if_in:NVF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_unit_separator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_unit_separator_tl
}
}
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_unit_separator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_unit_separator_tl
}
}
- \tl_put_left:cV { _l_siunitx_unit #1 _tl } \_l_siunitx_unit_current_tl
+ \tl_put_left:cV { l_siunitx_unit #1 _tl } \l_siunitx_unit_current_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction: {
- \intexpr_compare:nNnTF { \_l_siunitx_unit_denominator_int } > { 0 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction: {
+ \intexpr_compare:nNnTF { \l_siunitx_unit_denominator_int } > { 0 }
{
\use:c
- { _siunitx_unit_format_fraction_ \_l_siunitx_per_mode_tl : }
- }
- { \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction_fraction: {
- \tl_if_empty:NT \_l_siunitx_unit_numerator_tl
- { \tl_set:Nn \_l_siunitx_unit_numerator_tl { 1 } }
- \tl_set:Nx \_l_siunitx_unit_numerator_tl
- { { \exp_not:V \_l_siunitx_unit_numerator_tl } }
- \tl_put_left:Nn \_l_siunitx_unit_numerator_tl
- { \_siunitx_print:nn { unit } }
- \tl_set:Nx \_l_siunitx_unit_numerator_tl
- { { \exp_not:V \_l_siunitx_unit_numerator_tl } }
- \tl_set:Nx \_l_siunitx_unit_denominator_tl
- { { \exp_not:V \_l_siunitx_unit_denominator_tl } }
- \tl_put_left:Nn \_l_siunitx_unit_denominator_tl
- { \_siunitx_print:nn { unit } }
- \tl_set:Nx \_l_siunitx_unit_denominator_tl
- { { \exp_not:V \_l_siunitx_unit_denominator_tl } }
- \tl_set:Nn \_l_siunitx_unit_tl { \_siunitx_fraction:nn }
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_denominator_tl
- \tl_set:Nx \_l_siunitx_unit_tl
- { \exp_not:N \ensuremath { \exp_not:V \_l_siunitx_unit_tl } }
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction_symbol: {
- \_siunitx_unit_format_fraction_symbol_aux:
- \intexpr_compare:nNnT { \_l_siunitx_unit_denominator_int } > { 1 }
- {
- \bool_if:NT \_l_siunitx_unit_denominator_bracket_bool
- {
- \_siunitx_tl_put_left_math:NV \_l_siunitx_unit_denominator_tl
- \_l_siunitx_bracket_open_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_denominator_tl
- \_l_siunitx_bracket_close_tl
+ { siunitx_unit_format_fraction_ \l_siunitx_per_mode_tl : }
+ }
+ { \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction_fraction: {
+ \tl_if_empty:NT \l_siunitx_unit_numerator_tl
+ { \tl_set:Nn \l_siunitx_unit_numerator_tl { 1 } }
+ \tl_set:Nx \l_siunitx_unit_numerator_tl
+ { { \exp_not:V \l_siunitx_unit_numerator_tl } }
+ \tl_put_left:Nn \l_siunitx_unit_numerator_tl
+ { \siunitx_print:nn { unit } }
+ \tl_set:Nx \l_siunitx_unit_numerator_tl
+ { { \exp_not:V \l_siunitx_unit_numerator_tl } }
+ \tl_set:Nx \l_siunitx_unit_denominator_tl
+ { { \exp_not:V \l_siunitx_unit_denominator_tl } }
+ \tl_put_left:Nn \l_siunitx_unit_denominator_tl
+ { \siunitx_print:nn { unit } }
+ \tl_set:Nx \l_siunitx_unit_denominator_tl
+ { { \exp_not:V \l_siunitx_unit_denominator_tl } }
+ \tl_set:Nn \l_siunitx_unit_tl { \siunitx_fraction:nn }
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
+ \tl_set:Nx \l_siunitx_unit_tl
+ { \exp_not:N \ensuremath { \exp_not:V \l_siunitx_unit_tl } }
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction_symbol: {
+ \siunitx_unit_format_fraction_symbol_aux:
+ \intexpr_compare:nNnT { \l_siunitx_unit_denominator_int } > { 1 }
+ {
+ \bool_if:NT \l_siunitx_unit_denominator_bracket_bool
+ {
+ \siunitx_tl_put_left_math:NV \l_siunitx_unit_denominator_tl
+ \l_siunitx_bracket_open_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_denominator_tl
+ \l_siunitx_bracket_close_tl
}
}
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_tl
- \_l_siunitx_per_symbol_tl
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_denominator_tl
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_fraction_symbol_aux: {
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_unit_format_fraction_symbol_aux_alt: {
- \tl_if_empty:NT \_l_siunitx_unit_numerator_tl
- { \tl_set:Nn \_l_siunitx_unit_numerator_tl { 1 } }
-}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_init: {
- \tl_clear:N \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_unit_current_tl
- \tl_clear:N \_l_siunitx_unit_denominator_tl
- \int_zero:N \_l_siunitx_unit_prefix_gram_int
- \tl_clear:N \_l_siunitx_unit_numerator_tl
- \int_zero:N \_l_siunitx_unit_prefix_base_int
- \int_zero:N \_l_siunitx_unit_prefix_int
- \int_zero:N \_l_siunitx_unit_denominator_int
- \int_zero:N \_l_siunitx_unit_numerator_int
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_print_literal_aux:N
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_tl
+ \l_siunitx_per_symbol_tl
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction_symbol_aux: {
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_unit_format_fraction_symbol_aux_alt: {
+ \tl_if_empty:NT \l_siunitx_unit_numerator_tl
+ { \tl_set:Nn \l_siunitx_unit_numerator_tl { 1 } }
+}
+\cs_new_protected_nopar:Npn \siunitx_unit_format_init: {
+ \tl_clear:N \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_unit_current_tl
+ \tl_clear:N \l_siunitx_unit_denominator_tl
+ \int_zero:N \l_siunitx_unit_prefix_gram_int
+ \tl_clear:N \l_siunitx_unit_numerator_tl
+ \int_zero:N \l_siunitx_unit_prefix_base_int
+ \int_zero:N \l_siunitx_unit_prefix_int
+ \int_zero:N \l_siunitx_unit_denominator_int
+ \int_zero:N \l_siunitx_unit_numerator_int
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_print_literal_aux:N
}
\char_make_active:N \~
-\cs_set_protected:Npn \_siunitx_unit_format_literal:n #1 {
- \int_zero:N \_l_siunitx_unit_prefix_int
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_print_literal_aux:N
- \tl_set:Nn \_l_siunitx_unit_tl {#1}
- \tl_set:Nx \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_unit_format_literal:n #1 {
+ \int_zero:N \l_siunitx_unit_prefix_int
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_print_literal_aux:N
+ \tl_set:Nn \l_siunitx_unit_tl {#1}
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_unit_separator_tl }
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_unit_separator_tl }
}
- \tl_replace_all_in:NnV \_l_siunitx_unit_tl { . }
- \_l_siunitx_tmpa_tl
- \tl_replace_all_in:NnV \_l_siunitx_unit_tl { ~ }
- \_l_siunitx_tmpa_tl
- \_siunitx_unit_format_literal_extras:
+ \tl_replace_all_in:NnV \l_siunitx_unit_tl { . }
+ \l_siunitx_tmpa_tl
+ \tl_replace_all_in:NnV \l_siunitx_unit_tl { ~ }
+ \l_siunitx_tmpa_tl
+ \siunitx_unit_format_literal_extras:
}
-\cs_set_protected:Npn \_siunitx_unit_print_literal_aux:N #1 {
- \cs_set_eq:Nc #1 { _siunitx_ \token_to_str:N #1 _literal:w }
+\cs_new_protected:Npn \siunitx_unit_print_literal_aux:N #1 {
+ \cs_set_eq:Nc #1 { siunitx_ \token_to_str:N #1 _literal:w }
}
\char_make_space:N \~
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_literal_extras: {
- \_siunitx_unit_format_literal_extras_aux:nN { 176 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_literal_extras: {
+ \siunitx_unit_format_literal_extras_aux:nN { 176 }
\SIUnitSymbolDegree
- \_siunitx_unit_format_literal_extras_aux:nN { 181 }
+ \siunitx_unit_format_literal_extras_aux:nN { 181 }
\SIUnitSymbolMicro
- \_siunitx_unit_format_literal_extras_aux:nN { 197 }
+ \siunitx_unit_format_literal_extras_aux:nN { 197 }
\SIUnitSymbolAngstrom
}
-\cs_set_protected_nopar:Npn
- \_siunitx_unit_format_literal_extras_aux:nN #1#2 {
+\cs_new_protected_nopar:Npn
+ \siunitx_unit_format_literal_extras_aux:nN #1#2 {
\char_set_lccode:nn { `\@ } {#1}
\tl_to_lowercase:n
{
- \tl_replace_all_in:NnV \_l_siunitx_unit_tl { @ }
- \_l_siunitx_unit_tl
+ \tl_replace_all_in:NnV \l_siunitx_unit_tl { @ }
+ \l_siunitx_unit_tl
}
}
\xetex_if_engine:F {
@@ -3744,201 +3744,201 @@
{
\@ifpackageloaded { inputenc }
{
- \tl_set:Nn \_l_siunitx_tmpa_tl { latin1 , latin5 , latin9 }
- \clist_if_in:NVF \_l_siunitx_tmpa_tl \inputencodingname
+ \tl_set:Nn \l_siunitx_tmpa_tl { latin1 , latin5 , latin9 }
+ \clist_if_in:NVF \l_siunitx_tmpa_tl \inputencodingname
{
- \cs_set_eq:NN \_siunitx_unit_format_literal_extras:
+ \cs_set_eq:NN \siunitx_unit_format_literal_extras:
\scan_stop:
}
}
{
- \cs_set_eq:NN \_siunitx_unit_format_literal_extras:
+ \cs_set_eq:NN \siunitx_unit_format_literal_extras:
\scan_stop:
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \tl_set:Nn \_l_siunitx_tmpa_tl { 1 }
- \_siunitx_unit_format_power_aux:
+ \tl_set:Nn \l_siunitx_tmpa_tl { 1 }
+ \siunitx_unit_format_power_aux:
}
}
- { \_siunitx_unit_format_power_aux: }
+ { \siunitx_unit_format_power_aux: }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_aux: {
- \tl_if_eq:nVTF { repeat } \_l_siunitx_per_mode_tl
- { \_siunitx_unit_format_power_repeat: }
- { \_siunitx_unit_format_power_per: }
- \tl_if_eq:nVF { 1 } \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_aux: {
+ \tl_if_eq:nVTF { repeat } \l_siunitx_per_mode_tl
+ { \siunitx_unit_format_power_repeat: }
+ { \siunitx_unit_format_power_per: }
+ \tl_if_eq:nVF { 1 } \l_siunitx_tmpa_tl
{
- \_siunitx_unit_format_power_brackets:
- \tl_put_right:Nx \_l_siunitx_unit_current_tl
+ \siunitx_unit_format_power_brackets:
+ \tl_put_right:Nx \l_siunitx_unit_current_tl
{
^
{
- \_siunitx_unit_format_power_aux:n
- { \exp_not:V \_l_siunitx_tmpa_tl }
+ \siunitx_unit_format_power_aux:n
+ { \exp_not:V \l_siunitx_tmpa_tl }
}
}
}
}
-\cs_set_protected:Npn \_siunitx_unit_format_power_aux:n #1 {
- \bool_if:NTF \_l_siunitx_number_math_mode_bool
- { \_siunitx_print:nn { number } {#1} }
+\cs_new_protected:Npn \siunitx_unit_format_power_aux:n #1 {
+ \bool_if:NTF \l_siunitx_number_math_mode_bool
+ { \siunitx_print:nn { number } {#1} }
{
- \tl_set:Nn \_l_siunitx_tmpa_tl {#1}
- \tl_replace_all_in:Nnn \_l_siunitx_tmpa_tl { - }
- { \text { \_c_siunitx_minus_tl } }
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \tl_set:Nn \l_siunitx_tmpa_tl {#1}
+ \tl_replace_all_in:Nnn \l_siunitx_tmpa_tl { - }
+ { \text { \c_siunitx_minus_tl } }
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_brackets: {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { bracket- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_brackets: {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { bracket- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_open_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_close_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_open_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_close_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_per: {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_per: {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \bool_if:NF \_l_siunitx_per_fraction_bool
+ \bool_if:NF \l_siunitx_per_fraction_bool
{
- \tl_if_in:NnTF \_l_siunitx_tmpa_tl { - }
+ \tl_if_in:NnTF \l_siunitx_tmpa_tl { - }
{
- \cs_set:Npn \_siunitx_tmp:w ##1 - ##2 \q_stop
- { \tl_set:Nn \_l_siunitx_tmpa_tl {##2} }
- \exp_afer:wN \_siunitx_tmp:w \_l_siunitx_tmpa_tl \q_stop
+ \cs_set:Npn \siunitx_tmp:w ##1 - ##2 \q_stop
+ { \tl_set:Nn \l_siunitx_tmpa_tl {##2} }
+ \exp_afer:wN \siunitx_tmp:w \l_siunitx_tmpa_tl \q_stop
}
- { \tl_put_left:Nn \_l_siunitx_tmpa_tl { - } }
+ { \tl_put_left:Nn \l_siunitx_tmpa_tl { - } }
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_power_repeat: {
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_power_repeat: {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpb_tl
{
- \_siunitx_tl_put_left_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_per_symbol_tl
+ \siunitx_tl_put_left_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_per_symbol_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVT \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVT \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_unit_prefix_current_tl
- \bool_if:NTF \_l_siunitx_prefix_symbols_bool
- { \_siunitx_unit_format_prefix_symbol: }
- { \_siunitx_unit_format_prefix_number: }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_unit_prefix_current_tl
+ \bool_if:NTF \l_siunitx_prefix_symbols_bool
+ { \siunitx_unit_format_prefix_symbol: }
+ { \siunitx_unit_format_prefix_number: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix_number: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { prefix-base- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \intexpr_compare:nNnT { \_l_siunitx_unit_prefix_base_int } = { 0 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix_number: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { prefix-base- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \intexpr_compare:nNnT { \l_siunitx_unit_prefix_base_int } = { 0 }
{
- \int_set:Nn \_l_siunitx_unit_prefix_base_int
- { \_l_siunitx_tmpa_tl }
+ \int_set:Nn \l_siunitx_unit_prefix_base_int
+ { \l_siunitx_tmpa_tl }
}
\intexpr_compare:nNnTF
- { \_l_siunitx_unit_prefix_base_int } = { \_l_siunitx_tmpa_tl }
- { \_siunitx_unit_format_prefix_number_calc: }
+ { \l_siunitx_unit_prefix_base_int } = { \l_siunitx_tmpa_tl }
+ { \siunitx_unit_format_prefix_number_calc: }
{ \msg_error:nn { siunitx } { prefix-base-mismatch } }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix_number_calc: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { power- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_set:Nn \_l_siunitx_tmpa_tl { 1 } }
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { unit- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl
- \_l_siunitx_tmpb_tl
- \tl_if_eq:nVT { \gram } \_l_siunitx_tmpb_tl
- {
- \tl_set:Nx \_l_siunitx_unit_prefix_current_tl
- { \intexpr_eval:n { \_l_siunitx_unit_prefix_current_tl - 3 } }
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpb_tl { kg }
- }
- \tl_set:Nx \_l_siunitx_unit_prefix_current_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix_number_calc: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { power- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_set:Nn \l_siunitx_tmpa_tl { 1 } }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { unit- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpb_tl
+ \l_siunitx_tmpb_tl
+ \tl_if_eq:nVT { \gram } \l_siunitx_tmpb_tl
+ {
+ \tl_set:Nx \l_siunitx_unit_prefix_current_tl
+ { \intexpr_eval:n { \l_siunitx_unit_prefix_current_tl - 3 } }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpb_tl { kg }
+ }
+ \tl_set:Nx \l_siunitx_unit_prefix_current_tl
{
\intexpr_eval:n
- { \_l_siunitx_unit_prefix_current_tl * \_l_siunitx_tmpa_tl }
+ { \l_siunitx_unit_prefix_current_tl * \l_siunitx_tmpa_tl }
}
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { per- \int_use:N \_l_siunitx_unit_int }
- \prop_if_in:NVTF \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { per- \int_use:N \l_siunitx_unit_int }
+ \prop_if_in:NVTF \l_siunitx_unit_prop \l_siunitx_tmpa_tl
{
- \int_set:Nn \_l_siunitx_unit_prefix_int
+ \int_set:Nn \l_siunitx_unit_prefix_int
{
- \_l_siunitx_unit_prefix_int
- - \_l_siunitx_unit_prefix_current_tl
+ \l_siunitx_unit_prefix_int
+ - \l_siunitx_unit_prefix_current_tl
}
}
{
- \int_set:Nn \_l_siunitx_unit_prefix_int
+ \int_set:Nn \l_siunitx_unit_prefix_int
{
- \_l_siunitx_unit_prefix_int
- + \_l_siunitx_unit_prefix_current_tl
+ \l_siunitx_unit_prefix_int
+ + \l_siunitx_unit_prefix_current_tl
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_prefix_symbol: {
- \tl_set_eq:NN \_l_siunitx_unit_current_tl
- \_l_siunitx_unit_prefix_current_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_prefix_symbol: {
+ \tl_set_eq:NN \l_siunitx_unit_current_tl
+ \l_siunitx_unit_prefix_current_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { qualifier- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NF \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { qualifier- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
{
\use:c
{
_siunitx_unit_format_qualifier_
- \_l_siunitx_qualifier_mode_tl :
+ \l_siunitx_qualifier_mode_tl :
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier_brackets: {
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_open_tl
- \tl_put_right:NV \_l_siunitx_unit_current_tl \_l_siunitx_tmpa_tl
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_current_tl
- \_l_siunitx_bracket_close_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier_brackets: {
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_open_tl
+ \tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
+ \l_siunitx_bracket_close_tl
}
\char_make_active:N \~
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier_space: {
- \tl_put_right:Nn \_l_siunitx_unit_current_tl { \text { ~ } }
- \tl_put_right:NV \_l_siunitx_unit_current_tl \_l_siunitx_tmpa_tl
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { bracket- \int_use:N \_l_siunitx_unit_int }
- \prop_put:NVn \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl { true }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier_space: {
+ \tl_put_right:Nn \l_siunitx_unit_current_tl { \text { ~ } }
+ \tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { bracket- \int_use:N \l_siunitx_unit_int }
+ \prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl { true }
}
\char_make_space:N \~
\group_begin:
@@ -3946,111 +3946,111 @@
\char_make_math_subscript:N \@
\tl_to_lowercase:n {
\group_end:
- \cs_set_protected_nopar:Npn \_siunitx_unit_format_qualifier_subscript:
+ \cs_set_protected_nopar:Npn \siunitx_unit_format_qualifier_subscript:
{
- \tl_put_right:No \_l_siunitx_unit_current_tl
- { \exp_after:wN @ \exp_after:wN { \_l_siunitx_tmpa_tl } }
+ \tl_put_right:No \l_siunitx_unit_current_tl
+ { \exp_after:wN @ \exp_after:wN { \l_siunitx_tmpa_tl } }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_sorted: {
- \tl_set_eq:NN \_l_siunitx_unit_tl \_l_siunitx_unit_numerator_tl
- \tl_if_empty:NF \_l_siunitx_unit_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_format_sorted: {
+ \tl_set_eq:NN \l_siunitx_unit_tl \l_siunitx_unit_numerator_tl
+ \tl_if_empty:NF \l_siunitx_unit_tl
{
- \tl_if_empty:NF \_l_siunitx_unit_denominator_tl
+ \tl_if_empty:NF \l_siunitx_unit_denominator_tl
{
- \_siunitx_tl_put_right_math:NV \_l_siunitx_unit_tl
- \_l_siunitx_unit_separator_tl
+ \siunitx_tl_put_right_math:NV \l_siunitx_unit_tl
+ \l_siunitx_unit_separator_tl
}
}
- \tl_put_right:NV \_l_siunitx_unit_tl \_l_siunitx_unit_denominator_tl
+ \tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_symbol: {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { symbol- \int_use:N \_l_siunitx_unit_int }
- \prop_get:NVN \_l_siunitx_unit_prop \_l_siunitx_tmpa_tl
- \_l_siunitx_tmpa_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpa_tl
- { \_siunitx_unit_format_symbol_aux: }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_symbol: {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { symbol- \int_use:N \l_siunitx_unit_int }
+ \prop_get:NVN \l_siunitx_unit_prop \l_siunitx_tmpa_tl
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
+ { \siunitx_unit_format_symbol_aux: }
{
- \tl_put_right:NV \_l_siunitx_unit_current_tl \_l_siunitx_tmpa_tl
+ \tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_symbol_aux: {
+\cs_new_protected_nopar:Npn \siunitx_unit_format_symbol_aux: {
\msg_error:nn { siunitx } { prefix-only }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_format_symbol_aux_alt: {
- \intexpr_compare:nNnTF { \_l_siunitx_unit_int } = { 1 }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_symbol_aux_alt: {
+ \intexpr_compare:nNnTF { \l_siunitx_unit_int } = { 1 }
{
- \prop_del:Nn \_l_siunitx_unit_prop { prefix-1 }
- \prop_if_empty:NF \_l_siunitx_unit_prop
+ \prop_del:Nn \l_siunitx_unit_prop { prefix-1 }
+ \prop_if_empty:NF \l_siunitx_unit_prop
{ \msg_error:nn { siunitx } { prefix-only } }
}
{ \msg_error:nn { siunitx } { prefix-only } }
}
-\bool_new:N \_l_siunitx_multi_brackets_bool
-\bool_new:N \_l_siunitx_multi_repeat_bool
-\bool_new:N \_l_siunitx_product_brackets_bool
-\bool_new:N \_l_siunitx_product_power_bool
-\bool_new:N \_l_siunitx_number_unit_repeat_bool
+\bool_new:N \l_siunitx_multi_brackets_bool
+\bool_new:N \l_siunitx_multi_repeat_bool
+\bool_new:N \l_siunitx_product_brackets_bool
+\bool_new:N \l_siunitx_product_power_bool
+\bool_new:N \l_siunitx_number_unit_repeat_bool
\keys_define:nn { siunitx } {
allow-number-unit-breaks .bool_set:N =
- \_l_siunitx_number_unit_breaks_bool,
+ \l_siunitx_number_unit_breaks_bool,
multi-part-units .choice:,
multi-part-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_multi_brackets_bool
- \bool_set_false:N \_l_siunitx_multi_repeat_bool
+ \bool_set_true:N \l_siunitx_multi_brackets_bool
+ \bool_set_false:N \l_siunitx_multi_repeat_bool
},
multi-part-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_multi_brackets_bool
- \bool_set_true:N \_l_siunitx_multi_repeat_bool
+ \bool_set_false:N \l_siunitx_multi_brackets_bool
+ \bool_set_true:N \l_siunitx_multi_repeat_bool
},
multi-part-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_multi_brackets_bool
- \bool_set_false:N \_l_siunitx_multi_repeat_bool
+ \bool_set_false:N \l_siunitx_multi_brackets_bool
+ \bool_set_false:N \l_siunitx_multi_repeat_bool
},
number-unit-separator .tl_set:N =
- \_l_siunitx_number_unit_separator_tl,
+ \l_siunitx_number_unit_separator_tl,
product-units .choice:,
product-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_product_brackets_bool
- \bool_set_false:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_true:N \l_siunitx_product_brackets_bool
+ \bool_set_false:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
product-units
/ brackets-power .code:n =
{
- \bool_set_true:N \_l_siunitx_product_brackets_bool
- \bool_set_true:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_true:N \l_siunitx_product_brackets_bool
+ \bool_set_true:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
product-units
/ power .code:n =
{
- \bool_set_false:N \_l_siunitx_product_brackets_bool
- \bool_set_true:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_false:N \l_siunitx_product_brackets_bool
+ \bool_set_true:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
product-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_product_brackets_bool
- \bool_set_false:N \_l_siunitx_product_power_bool
- \bool_set_true:N \_l_siunitx_product_repeat_bool
+ \bool_set_false:N \l_siunitx_product_brackets_bool
+ \bool_set_false:N \l_siunitx_product_power_bool
+ \bool_set_true:N \l_siunitx_product_repeat_bool
},
product-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_product_brackets_bool
- \bool_set_false:N \_l_siunitx_product_power_bool
- \bool_set_false:N \_l_siunitx_product_repeat_bool
+ \bool_set_false:N \l_siunitx_product_brackets_bool
+ \bool_set_false:N \l_siunitx_product_power_bool
+ \bool_set_false:N \l_siunitx_product_repeat_bool
},
}
\keys_set:nn { siunitx } {
@@ -4058,139 +4058,139 @@
number-unit-separator = \,,
product-units = repeat,
}
-\cs_set_protected:Npn \_siunitx_unit_output:nn #1#2 {
- \cs_set_eq:NN \_siunitx_unit_format_symbol_aux:
- \_siunitx_unit_format_symbol_aux_alt:
- \cs_set_eq:NN \_siunitx_unit_format_fraction_symbol_aux:
- \_siunitx_unit_format_fraction_symbol_aux_alt:
- \_siunitx_unit_in:nn {#1} {#2}
- \intexpr_compare:nNnF { \_l_siunitx_unit_prefix_int } = { 0 }
+\cs_new_protected:Npn \siunitx_unit_output:nn #1#2 {
+ \cs_set_eq:NN \siunitx_unit_format_symbol_aux:
+ \siunitx_unit_format_symbol_aux_alt:
+ \cs_set_eq:NN \siunitx_unit_format_fraction_symbol_aux:
+ \siunitx_unit_format_fraction_symbol_aux_alt:
+ \siunitx_unit_in:nn {#1} {#2}
+ \intexpr_compare:nNnF { \l_siunitx_unit_prefix_int } = { 0 }
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \int_use:N \_l_siunitx_unit_prefix_base_int
- ^ { \int_use:N \_l_siunitx_unit_prefix_int }
+ \int_use:N \l_siunitx_unit_prefix_base_int
+ ^ { \int_use:N \l_siunitx_unit_prefix_int }
}
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
- \_siunitx_unit_output_number_sep:
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
+ \siunitx_unit_output_number_sep:
}
- \_siunitx_print:nV { unit } \_l_siunitx_unit_tl
+ \siunitx_print:nV { unit } \l_siunitx_unit_tl
}
-\cs_generate_variant:Nn \_siunitx_unit_output:nn { V }
-\cs_set_protected_nopar:Npn \_siunitx_unit_output_number_sep: {
- \bool_if:NTF \_l_siunitx_number_unit_breaks_bool
+\cs_generate_variant:Nn \siunitx_unit_output:nn { V }
+\cs_new_protected_nopar:Npn \siunitx_unit_output_number_sep: {
+ \bool_if:NTF \l_siunitx_number_unit_breaks_bool
{ \allowbreak } { \nobreak }
- \_siunitx_ensuremath:n { \_l_siunitx_number_unit_separator_tl }
+ \siunitx_ensuremath:n { \l_siunitx_number_unit_separator_tl }
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_output_pre_print: {
- \tl_if_empty:NF \_l_siunitx_pre_unit_tl
+\cs_new_protected_nopar:Npn \siunitx_unit_output_pre_print: {
+ \tl_if_empty:NF \l_siunitx_pre_unit_tl
{
\nobreak
- \_siunitx_print:nV { unit } \_l_siunitx_pre_unit_tl
+ \siunitx_print:nV { unit } \l_siunitx_pre_unit_tl
}
}
-\cs_set_protected_nopar:Npn \_siunitx_unit_output_print: {
- \intexpr_compare:nNnF { \_l_siunitx_unit_prefix_int } = { 0 }
+\cs_new_protected_nopar:Npn \siunitx_unit_output_print: {
+ \intexpr_compare:nNnF { \l_siunitx_unit_prefix_int } = { 0 }
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \bool_if:NTF \_l_siunitx_tight_bool
- { { \exp_not:V \_l_siunitx_exponent_product_tl } }
- { { } \exp_not:V \_l_siunitx_exponent_product_tl { } }
- \int_use:N \_l_siunitx_unit_prefix_base_int
- ^ { \int_use:N \_l_siunitx_unit_prefix_int }
+ \bool_if:NTF \l_siunitx_tight_bool
+ { { \exp_not:V \l_siunitx_exponent_product_tl } }
+ { { } \exp_not:V \l_siunitx_exponent_product_tl { } }
+ \int_use:N \l_siunitx_unit_prefix_base_int
+ ^ { \int_use:N \l_siunitx_unit_prefix_int }
}
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
}
- \tl_if_empty:NF \_l_siunitx_unit_tl
+ \tl_if_empty:NF \l_siunitx_unit_tl
{
- \_siunitx_unit_output_number_sep:
- \_siunitx_print:nV { unit } \_l_siunitx_unit_tl
+ \siunitx_unit_output_number_sep:
+ \siunitx_print:nV { unit } \l_siunitx_unit_tl
}
}
-\tl_new:N \_l_siunitx_pre_unit_tl
-\int_new:N \_l_siunitx_number_product_int
-\cs_set_protected:Npn \_siunitx_combined:nnnn #1#2#3#4 {
+\tl_new:N \l_siunitx_pre_unit_tl
+\int_new:N \l_siunitx_number_product_int
+\cs_new_protected:Npn \siunitx_combined:nnnn #1#2#3#4 {
\IfNoValueTF {#3}
- { \tl_clear:N \_l_siunitx_pre_unit_tl }
+ { \tl_clear:N \l_siunitx_pre_unit_tl }
{
- \_siunitx_unit_in:nn {#3} {#1}
- \cs_set_eq:NN \_l_siunitx_pre_unit_tl \_l_siunitx_unit_tl
+ \siunitx_unit_in:nn {#3} {#1}
+ \cs_set_eq:NN \l_siunitx_pre_unit_tl \l_siunitx_unit_tl
}
- \cs_set_eq:NN \_l_siunitx_brackets_bool
- \_l_siunitx_multi_brackets_bool
- \_siunitx_combined_unit:nnn {#2} {#4} {#1}
- \_siunitx_combined_output:n {#2}
+ \cs_set_eq:NN \l_siunitx_brackets_bool
+ \l_siunitx_multi_brackets_bool
+ \siunitx_combined_unit:nnn {#2} {#4} {#1}
+ \siunitx_combined_output:n {#2}
}
-\cs_set_protected:Npn \_siunitx_combined_output:n #1 {
- \bool_if:NTF \_l_siunitx_number_parse_bool
+\cs_new_protected:Npn \siunitx_combined_output:n #1 {
+ \bool_if:NTF \l_siunitx_number_parse_bool
{
- \tl_clear:N \_l_siunitx_number_out_tl
- \bool_set_false:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_parse:n {#1}
+ \tl_clear:N \l_siunitx_number_out_tl
+ \bool_set_false:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_parse:n {#1}
}
{
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nn { number } { \_siunitx_ensuremath:n {#1} }
- \_siunitx_unit_output_print:
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nn { number } { \siunitx_ensuremath:n {#1} }
+ \siunitx_unit_output_print:
}
}
-\cs_set_protected:Npn \_siunitx_combined_unit:nnn #1#2#3 {
- \bool_if:NTF \_l_siunitx_product_power_bool
+\cs_new_protected:Npn \siunitx_combined_unit:nnn #1#2#3 {
+ \bool_if:NTF \l_siunitx_product_power_bool
{
- \_siunitx_combined_product_count:n {#1}
- \intexpr_compare:nNnTF { \_l_siunitx_number_product_int } > { 0 }
+ \siunitx_combined_product_count:n {#1}
+ \intexpr_compare:nNnTF { \l_siunitx_number_product_int } > { 0 }
{
- \int_incr:N \_l_siunitx_number_product_int
- \tl_set:Nn \_l_siunitx_tmpa_tl {#2}
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { \tothe { \exp_not:V \_l_siunitx_number_product_int } }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
- \_siunitx_unit_in:Vn \_l_siunitx_tmpa_tl {#3}
+ \int_incr:N \l_siunitx_number_product_int
+ \tl_set:Nn \l_siunitx_tmpa_tl {#2}
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { \tothe { \exp_not:V \l_siunitx_number_product_int } }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+ \siunitx_unit_in:Vn \l_siunitx_tmpa_tl {#3}
}
- { \_siunitx_unit_in:nn {#2} {#3} }
+ { \siunitx_unit_in:nn {#2} {#3} }
}
- { \_siunitx_unit_in:nn {#2} {#3} }
+ { \siunitx_unit_in:nn {#2} {#3} }
}
-\cs_set_protected:Npn \_siunitx_combined_product_count:n #1 {
- \int_zero:N \_l_siunitx_number_product_int
- \tl_set:Nn \_l_siunitx_tmpa_tl {#1}
- \tl_map_function:NN \_l_siunitx_input_product_tl
- \_siunitx_combined_product_count_aux:N
+\cs_new_protected:Npn \siunitx_combined_product_count:n #1 {
+ \int_zero:N \l_siunitx_number_product_int
+ \tl_set:Nn \l_siunitx_tmpa_tl {#1}
+ \tl_map_function:NN \l_siunitx_input_product_tl
+ \siunitx_combined_product_count_aux:N
}
-\cs_set_protected:Npn \_siunitx_combined_product_count_aux:N #1 {
- \tl_if_in:NnT \_l_siunitx_tmpa_tl {#1}
+\cs_new_protected:Npn \siunitx_combined_product_count_aux:N #1 {
+ \tl_if_in:NnT \l_siunitx_tmpa_tl {#1}
{
- \int_incr:N \_l_siunitx_number_product_int
- \tl_remove_in:Nn \_l_siunitx_tmpa_tl {#1}
- \_siunitx_combined_product_count_aux:N #1
+ \int_incr:N \l_siunitx_number_product_int
+ \tl_remove_in:Nn \l_siunitx_tmpa_tl {#1}
+ \siunitx_combined_product_count_aux:N #1
}
}
-\bool_new:N \_l_siunitx_list_brackets_bool
-\bool_new:N \_l_siunitx_list_repeat_bool
-\tl_new:N \_l_siunitx_list_current_tl
-\tl_new:N \_l_siunitx_list_tl
+\bool_new:N \l_siunitx_list_brackets_bool
+\bool_new:N \l_siunitx_list_repeat_bool
+\tl_new:N \l_siunitx_list_current_tl
+\tl_new:N \l_siunitx_list_tl
\keys_define:nn { siunitx } {
- list-final-separator .tl_set:N = \_l_siunitx_list_separator_final_tl,
- list-separator .tl_set:N = \_l_siunitx_list_separator_tl,
+ list-final-separator .tl_set:N = \l_siunitx_list_separator_final_tl,
+ list-separator .tl_set:N = \l_siunitx_list_separator_tl,
list-units .choice:,
list-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_list_brackets_bool
- \bool_set_false:N \_l_siunitx_list_repeat_bool
+ \bool_set_true:N \l_siunitx_list_brackets_bool
+ \bool_set_false:N \l_siunitx_list_repeat_bool
},
list-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_list_brackets_bool
- \bool_set_true:N \_l_siunitx_list_repeat_bool
+ \bool_set_false:N \l_siunitx_list_brackets_bool
+ \bool_set_true:N \l_siunitx_list_repeat_bool
},
list-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_list_brackets_bool
- \bool_set_false:N \_l_siunitx_list_repeat_bool
+ \bool_set_false:N \l_siunitx_list_brackets_bool
+ \bool_set_false:N \l_siunitx_list_repeat_bool
},
}
\keys_set:nn { siunitx } {
@@ -4198,124 +4198,124 @@
list-separator = { , ~ },
list-units = repeat,
}
-\cs_set_protected:Npn \_siunitx_list_numbers:n #1 {
- \tl_clear:N \_l_siunitx_unit_tl
- \tl_clear:N \_l_siunitx_preunit_tl
- \_siunitx_list_numbers_aux_i:n {#1}
+\cs_new_protected:Npn \siunitx_list_numbers:n #1 {
+ \tl_clear:N \l_siunitx_unit_tl
+ \tl_clear:N \l_siunitx_preunit_tl
+ \siunitx_list_numbers_aux_i:n {#1}
}
-\cs_set_protected:Npn \_siunitx_list_numbers_aux_i:n #1 {
- \tl_clear:N \_l_siunitx_list_tl
- \tl_clear:N \_l_siunitx_list_current_tl
- \tl_map_function:nN {#1} \_siunitx_list_numbers_aux_ii:n
- \tl_put_right:NV \_l_siunitx_list_tl
- \_l_siunitx_list_separator_final_tl
- \tl_put_right:NV \_l_siunitx_list_tl \_l_siunitx_list_current_tl
- \tl_use:N \_l_siunitx_list_tl
+\cs_new_protected:Npn \siunitx_list_numbers_aux_i:n #1 {
+ \tl_clear:N \l_siunitx_list_tl
+ \tl_clear:N \l_siunitx_list_current_tl
+ \tl_map_function:nN {#1} \siunitx_list_numbers_aux_ii:n
+ \tl_put_right:NV \l_siunitx_list_tl
+ \l_siunitx_list_separator_final_tl
+ \tl_put_right:NV \l_siunitx_list_tl \l_siunitx_list_current_tl
+ \tl_use:N \l_siunitx_list_tl
}
-\cs_set_protected:Npn \_siunitx_list_numbers_aux_ii:n #1 {
- \tl_if_empty:NTF \_l_siunitx_list_tl
- { \tl_set_eq:NN \_l_siunitx_list_tl \_l_siunitx_list_current_tl }
+\cs_new_protected:Npn \siunitx_list_numbers_aux_ii:n #1 {
+ \tl_if_empty:NTF \l_siunitx_list_tl
+ { \tl_set_eq:NN \l_siunitx_list_tl \l_siunitx_list_current_tl }
{
- \tl_put_right:NV \_l_siunitx_list_tl
- \_l_siunitx_list_separator_tl
- \tl_put_right:NV \_l_siunitx_list_tl \_l_siunitx_list_current_tl
+ \tl_put_right:NV \l_siunitx_list_tl
+ \l_siunitx_list_separator_tl
+ \tl_put_right:NV \l_siunitx_list_tl \l_siunitx_list_current_tl
}
- \tl_set:Nn \_l_siunitx_list_current_tl
- { \_siunitx_combined_output:n {#1} }
+ \tl_set:Nn \l_siunitx_list_current_tl
+ { \siunitx_combined_output:n {#1} }
}
-\cs_set_protected:Npn \_siunitx_list_units:nnn #1#2#3 {
- \bool_if:NTF \_l_siunitx_list_repeat_bool
+\cs_new_protected:Npn \siunitx_list_units:nnn #1#2#3 {
+ \bool_if:NTF \l_siunitx_list_repeat_bool
{
- \_siunitx_unit_in:nn {#2} {#3}
- \_siunitx_list_numbers_aux_i:n {#1}
+ \siunitx_unit_in:nn {#2} {#3}
+ \siunitx_list_numbers_aux_i:n {#1}
}
{
- \bool_if:NT \_l_siunitx_list_brackets_bool
+ \bool_if:NT \l_siunitx_list_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_open_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_open_tl } }
}
- \_siunitx_list_numbers:n {#1}
- \bool_if:NT \_l_siunitx_list_brackets_bool
+ \siunitx_list_numbers:n {#1}
+ \bool_if:NT \l_siunitx_list_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_close_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_close_tl } }
}
- \_siunitx_unit_output_number_sep:
- \_siunitx_unit_output:nn {#2} {#3}
+ \siunitx_unit_output_number_sep:
+ \siunitx_unit_output:nn {#2} {#3}
}
}
-\bool_new:N \_l_siunitx_range_brackets_bool
-\bool_new:N \_l_siunitx_range_repeat_bool
+\bool_new:N \l_siunitx_range_brackets_bool
+\bool_new:N \l_siunitx_range_repeat_bool
\keys_define:nn { siunitx } {
- range-phrase .tl_set:N = \_l_siunitx_range_phrase_tl,
+ range-phrase .tl_set:N = \l_siunitx_range_phrase_tl,
range-units .choice:,
range-units
/ brackets .code:n =
{
- \bool_set_true:N \_l_siunitx_range_brackets_bool
- \bool_set_false:N \_l_siunitx_range_repeat_bool
+ \bool_set_true:N \l_siunitx_range_brackets_bool
+ \bool_set_false:N \l_siunitx_range_repeat_bool
},
range-units
/ repeat .code:n =
{
- \bool_set_false:N \_l_siunitx_range_brackets_bool
- \bool_set_true:N \_l_siunitx_range_repeat_bool
+ \bool_set_false:N \l_siunitx_range_brackets_bool
+ \bool_set_true:N \l_siunitx_range_repeat_bool
},
range-units
/ single .code:n =
{
- \bool_set_false:N \_l_siunitx_range_brackets_bool
- \bool_set_false:N \_l_siunitx_range_repeat_bool
+ \bool_set_false:N \l_siunitx_range_brackets_bool
+ \bool_set_false:N \l_siunitx_range_repeat_bool
},
}
\keys_set:nn { siunitx } {
range-phrase = { ~ to ~ },
range-units = repeat,
}
-\cs_set_protected:Npn \_siunitx_range_numbers:nn #1#2 {
- \_siunitx_range_numbers_aux:n {#1}
- \text { \_l_siunitx_range_phrase_tl }
- \_siunitx_range_numbers_aux:n {#2}
+\cs_new_protected:Npn \siunitx_range_numbers:nn #1#2 {
+ \siunitx_range_numbers_aux:n {#1}
+ \text { \l_siunitx_range_phrase_tl }
+ \siunitx_range_numbers_aux:n {#2}
}
-\cs_set_protected:Npn \_siunitx_range_numbers_aux:n #1 {
- \bool_if:NTF \_l_siunitx_number_parse_bool
+\cs_new_protected:Npn \siunitx_range_numbers_aux:n #1 {
+ \bool_if:NTF \l_siunitx_number_parse_bool
{
- \tl_clear:N \_l_siunitx_number_out_tl
- \tl_clear:N \_l_siunitx_number_out_saved_tl
- \bool_set_false:N \_l_siunitx_number_compound_bool
- \_siunitx_number_output_parse:n {#1}
- \bool_if:NT \_l_siunitx_number_compound_bool
+ \tl_clear:N \l_siunitx_number_out_tl
+ \tl_clear:N \l_siunitx_number_out_saved_tl
+ \bool_set_false:N \l_siunitx_number_compound_bool
+ \siunitx_number_output_parse:n {#1}
+ \bool_if:NT \l_siunitx_number_compound_bool
{ \msg_error:nnx { siunitx } { multi-part-range } {#1} }
}
{
- \_siunitx_unit_output_pre_print:
- \_siunitx_print:nn { number } {#1}
- \_siunitx_unit_output_print:
+ \siunitx_unit_output_pre_print:
+ \siunitx_print:nn { number } {#1}
+ \siunitx_unit_output_print:
}
}
-\cs_set_protected:Npn \_siunitx_range_unit:nnnn #1#2#3#4 {
- \bool_if:NTF \_l_siunitx_range_repeat_bool
+\cs_new_protected:Npn \siunitx_range_unit:nnnn #1#2#3#4 {
+ \bool_if:NTF \l_siunitx_range_repeat_bool
{
- \_siunitx_unit_in:nn {#1} {#2}
- \_siunitx_range_numbers_aux:n {#3}
- \text { \_l_siunitx_range_phrase_tl }
- \_siunitx_range_numbers_aux:n {#4}
+ \siunitx_unit_in:nn {#1} {#2}
+ \siunitx_range_numbers_aux:n {#3}
+ \text { \l_siunitx_range_phrase_tl }
+ \siunitx_range_numbers_aux:n {#4}
}
{
- \bool_if:NT \_l_siunitx_range_brackets_bool
+ \bool_if:NT \l_siunitx_range_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_open_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_open_tl } }
}
- \_siunitx_range_numbers:nn {#3} {#4}
- \bool_if:NT \_l_siunitx_range_brackets_bool
+ \siunitx_range_numbers:nn {#3} {#4}
+ \bool_if:NT \l_siunitx_range_brackets_bool
{
- \_siunitx_print:nn { number }
- { \_siunitx_ensuremath:n { \_l_siunitx_bracket_close_tl } }
+ \siunitx_print:nn { number }
+ { \siunitx_ensuremath:n { \l_siunitx_bracket_close_tl } }
}
- \_siunitx_unit_output_number_sep:
- \_siunitx_unit_output:nn {#1} {#2}
+ \siunitx_unit_output_number_sep:
+ \siunitx_unit_output:nn {#1} {#2}
}
}
\AtBeginDocument {
@@ -4323,334 +4323,334 @@
{
\newcolumntype { C } [1]
{ > { \bcolumn #1 \@nil } #1 < { \ecolumn } }
- \cs_set:Npn \_siunitx_tmp:w #1 \NC@do S #2 \q_stop
+ \cs_set:Npn \siunitx_tmp:w #1 \NC@do S #2 \q_stop
{ \toks_set:Nn \NC@list { #1 #2 } }
- \exp_last_unbraced:NV \_siunitx_tmp:w \NC@list \q_stop
+ \exp_last_unbraced:NV \siunitx_tmp:w \NC@list \q_stop
\cs_gundefine:N \NC@find@S
}
{ }
}
-\cs_set_protected_nopar:Npn \_siunitx_table_rewrite_create:N #1 {
- \tl_set:Nn \_l_siunitx_tmpa_tl { \NC@do #1 }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \NC@list
+\cs_new_protected_nopar:Npn \siunitx_table_rewrite_create:N #1 {
+ \tl_set:Nn \l_siunitx_tmpa_tl { \NC@do #1 }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \NC@list
\newcolumntype {#1} { }
- \toks_set:NV \NC@list \_l_siunitx_tmpa_tl
+ \toks_set:NV \NC@list \l_siunitx_tmpa_tl
\exp_args:NNc \renewcommand * { NC@rewrite@ #1 } [1] [ ]
{
\toks_put_right:Nn \@temptokena
{
- > { \_siunitx_table_collect_begin:Nn #1 {##1} }
+ > { \siunitx_table_collect_begin:Nn #1 {##1} }
c
- < { \_siunitx_table_print: }
+ < { \siunitx_table_print: }
}
\NC@find
}
}
-\AtBeginDocument { \_siunitx_table_rewrite_create:N s }
-\AtBeginDocument { \_siunitx_table_rewrite_create:N S }
-\tl_new:N \_l_siunitx_table_collect_tl
-\tl_new:N \_l_siunitx_table_collect_pre_tl
-\tl_new:N \_l_siunitx_table_collect_post_tl
-\tl_new:N \_l_siunitx_number_valid_tl
-\bool_new:N \_l_siunitx_table_collect_pre_bool
-\bool_new:N \_l_siunitx_table_collect_post_bool
-\cs_set_protected:Npn \_siunitx_table_collect_begin:Nn #1#2 {
+\AtBeginDocument { \siunitx_table_rewrite_create:N s }
+\AtBeginDocument { \siunitx_table_rewrite_create:N S }
+\tl_new:N \l_siunitx_table_collect_tl
+\tl_new:N \l_siunitx_table_collect_pre_tl
+\tl_new:N \l_siunitx_table_collect_post_tl
+\tl_new:N \l_siunitx_number_valid_tl
+\bool_new:N \l_siunitx_table_collect_pre_bool
+\bool_new:N \l_siunitx_table_collect_post_bool
+\cs_new_protected:Npn \siunitx_table_collect_begin:Nn #1#2 {
\keys_set:nn { siunitx } {#2}
- \use:c { _siunitx_table_collect_begin_ #1 : }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_begin_s: {
- \cs_set_eq:NN \_siunitx_table_collect_token:N
- \_siunitx_table_collect_token_s:N
- \cs_set_eq:NN \_siunitx_table_print: \_siunitx_table_print_s:
- \_siunitx_table_collect_init_s:
- \_siunitx_table_collect_get:
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_begin_S: {
- \cs_set_eq:NN \_siunitx_table_collect_token:N
- \_siunitx_table_collect_token_S:N
- \cs_set_eq:NN \_siunitx_table_print: \_siunitx_table_print_S:
- \_siunitx_table_collect_init_S:
- \bool_if:NTF \_l_siunitx_number_parse_bool
- { \_siunitx_table_collect_get: }
- { \_siunitx_table_direct: }
-}
-\cs_set_protected:Npn \_siunitx_table_collect_braced:n #1 { }
-\cs_set_protected:Npn \_siunitx_table_collect_expand:N #1 {
+ \use:c { siunitx_table_collect_begin_ #1 : }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_collect_begin_s: {
+ \cs_set_eq:NN \siunitx_table_collect_token:N
+ \siunitx_table_collect_token_s:N
+ \cs_set_eq:NN \siunitx_table_print: \siunitx_table_print_s:
+ \siunitx_table_collect_init_s:
+ \siunitx_table_collect_get:
+}
+\cs_new_protected_nopar:Npn \siunitx_table_collect_begin_S: {
+ \cs_set_eq:NN \siunitx_table_collect_token:N
+ \siunitx_table_collect_token_S:N
+ \cs_set_eq:NN \siunitx_table_print: \siunitx_table_print_S:
+ \siunitx_table_collect_init_S:
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ { \siunitx_table_collect_get: }
+ { \siunitx_table_direct: }
+}
+\cs_new_protected:Npn \siunitx_table_collect_braced:n #1 { }
+\cs_new_protected:Npn \siunitx_table_collect_expand:N #1 {
\cs_if_eq:NNTF #1 \color
{
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
{
- \tl_clear:N \_l_siunitx_number_color_tl
- \tl_clear:N \_l_siunitx_unit_color_tl
- \tl_put_right:Nn \_l_siunitx_table_collect_pre_tl {#1}
+ \tl_clear:N \l_siunitx_number_color_tl
+ \tl_clear:N \l_siunitx_unit_color_tl
+ \tl_put_right:Nn \l_siunitx_table_collect_pre_tl {#1}
}
{
- \bool_set_true:N \_l_siunitx_table_collect_post_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_post_tl {#1}
+ \bool_set_true:N \l_siunitx_table_collect_post_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_post_tl {#1}
}
}
{
- \_siunitx_cs_if_tl:NTF #1
+ \siunitx_cs_if_tl:NTF #1
{
- \tl_use:N \_l_siunitx_table_collect_pre_tl
- \tl_clear:N \_l_siunitx_table_collect_pre_tl
- \cs_set_nopar:Npx \_siunitx_table_collect_next:
- { \exp_not:N \_siunitx_table_collect_get: \exp_not:V #1 }
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \tl_clear:N \l_siunitx_table_collect_pre_tl
+ \cs_set_nopar:Npx \siunitx_table_collect_next:
+ { \exp_not:N \siunitx_table_collect_get: \exp_not:V #1 }
}
{
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
- { \tl_put_right:Nn \_l_siunitx_table_collect_pre_tl {#1} }
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
+ { \tl_put_right:Nn \l_siunitx_table_collect_pre_tl {#1} }
{
- \bool_set_true:N \_l_siunitx_table_collect_post_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_post_tl {#1}
+ \bool_set_true:N \l_siunitx_table_collect_post_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_post_tl {#1}
}
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_get: {
- \cs_set_eq:NN \_siunitx_table_collect_next:
- \_siunitx_table_collect_get:
+\cs_new_protected_nopar:Npn \siunitx_table_collect_get: {
+ \cs_set_eq:NN \siunitx_table_collect_next:
+ \siunitx_table_collect_get:
\cs_set_nopar:Npn \peek_execute_branches:
{
\if_catcode:w \exp_not:N \l_peek_token \c_group_begin_token
- \exp_after:wN \_siunitx_table_collect_braced:n
+ \exp_after:wN \siunitx_table_collect_braced:n
\else:
- \exp_after:wN \_siunitx_table_collect_not_braced:N
+ \exp_after:wN \siunitx_table_collect_not_braced:N
\fi:
}
\peek_after:NN \peek_ignore_spaces_execute_branches:
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_init: {
- \tl_clear:N \_l_siunitx_table_collect_tl
- \tl_clear:N \_l_siunitx_table_collect_pre_tl
- \tl_clear:N \_l_siunitx_table_collect_post_tl
- \bool_set_false:N \_l_siunitx_table_collect_post_bool
+\cs_new_protected_nopar:Npn \siunitx_table_collect_init: {
+ \tl_clear:N \l_siunitx_table_collect_tl
+ \tl_clear:N \l_siunitx_table_collect_pre_tl
+ \tl_clear:N \l_siunitx_table_collect_post_tl
+ \bool_set_false:N \l_siunitx_table_collect_post_bool
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_init_s: {
- \_siunitx_table_collect_init:
- \bool_set_false:N \_l_siunitx_table_collect_pre_bool
- \cs_set:Npn \_siunitx_table_collect_braced:n ##1
+\cs_new_protected_nopar:Npn \siunitx_table_collect_init_s: {
+ \siunitx_table_collect_init:
+ \bool_set_false:N \l_siunitx_table_collect_pre_bool
+ \cs_set:Npn \siunitx_table_collect_braced:n ##1
{
- \tl_put_right:Nn \_l_siunitx_table_collect_tl { {##1} }
- \_siunitx_table_collect_next:
+ \tl_put_right:Nn \l_siunitx_table_collect_tl { {##1} }
+ \siunitx_table_collect_next:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_init_S: {
- \_siunitx_number_in_init:
- \tl_set:Nx \_l_siunitx_number_valid_tl
+\cs_new_protected_nopar:Npn \siunitx_table_collect_init_S: {
+ \siunitx_number_in_init:
+ \tl_set:Nx \l_siunitx_number_valid_tl
{
- \exp_not:V \_l_siunitx_input_complex_tl
- \exp_not:V \_l_siunitx_input_decimal_tl
- \exp_not:V \_l_siunitx_input_digit_tl
- \exp_not:V \_l_siunitx_input_exponent_tl
- \exp_not:V \_l_siunitx_input_ignore_tl
- \exp_not:V \_l_siunitx_input_uncert_close_tl
- \exp_not:V \_l_siunitx_input_uncert_open_tl
- \exp_not:V \_l_siunitx_input_sign_tl
- \exp_not:V \_l_siunitx_input_symbol_tl
+ \exp_not:V \l_siunitx_input_complex_tl
+ \exp_not:V \l_siunitx_input_decimal_tl
+ \exp_not:V \l_siunitx_input_digit_tl
+ \exp_not:V \l_siunitx_input_exponent_tl
+ \exp_not:V \l_siunitx_input_ignore_tl
+ \exp_not:V \l_siunitx_input_uncert_close_tl
+ \exp_not:V \l_siunitx_input_uncert_open_tl
+ \exp_not:V \l_siunitx_input_sign_tl
+ \exp_not:V \l_siunitx_input_symbol_tl
}
- \bool_set_true:N \_l_siunitx_table_collect_pre_bool
- \cs_set:Npn \_siunitx_table_collect_braced:n ##1
+ \bool_set_true:N \l_siunitx_table_collect_pre_bool
+ \cs_set:Npn \siunitx_table_collect_braced:n ##1
{
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
- { \tl_put_right:Nn \_l_siunitx_table_collect_pre_tl { {##1} } }
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
+ { \tl_put_right:Nn \l_siunitx_table_collect_pre_tl { {##1} } }
{
- \bool_set_true:N \_l_siunitx_table_collect_post_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_post_tl { {##1} }
+ \bool_set_true:N \l_siunitx_table_collect_post_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_post_tl { {##1} }
}
- \_siunitx_table_collect_next:
+ \siunitx_table_collect_next:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_next: { }
-\cs_set_protected_nopar:Npn \_siunitx_table_collect_newline: {
- \_siunitx_table_print:
- \cs_set_eq:NN \_siunitx_table_print: \prg_do_nothing:
+\cs_new_protected_nopar:Npn \siunitx_table_collect_next: { }
+\cs_new_protected_nopar:Npn \siunitx_table_collect_newline: {
+ \siunitx_table_print:
+ \cs_set_eq:NN \siunitx_table_print: \prg_do_nothing:
\tabularnewline
}
-\cs_set_protected:Npn \_siunitx_table_collect_not_braced:N #1 {
+\cs_new_protected:Npn \siunitx_table_collect_not_braced:N #1 {
\token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
{
\token_if_eq_meaning:NNF #1 \tex_unskip:D
- { \_siunitx_table_collect_not_braced_aux_i:N #1 }
+ { \siunitx_table_collect_not_braced_aux_i:N #1 }
}
- \_siunitx_table_collect_next:
+ \siunitx_table_collect_next:
}
-\cs_set_protected:Npn \_siunitx_table_collect_not_braced_aux_i:N #1 {
- \cs_set:Npn \_siunitx_table_collect_not_braced_aux_ii:N ##1
+\cs_new_protected:Npn \siunitx_table_collect_not_braced_aux_i:N #1 {
+ \cs_set:Npn \siunitx_table_collect_not_braced_aux_ii:N ##1
{
\token_if_eq_meaning:NNT #1 ##1
- { \cs_set_eq:NN \_siunitx_table_collect_next: ##1 }
+ { \cs_set_eq:NN \siunitx_table_collect_next: ##1 }
}
\tl_map_function:nN
- { \cs:w \end \endtabular \scan_stop: \_siunitx_table_print: }
- \_siunitx_table_collect_not_braced_aux_ii:N
- \token_if_eq_meaning:NNT \_siunitx_table_collect_next:
- \_siunitx_table_collect_get:
+ { \cs:w \end \endtabular \scan_stop: \siunitx_table_print: }
+ \siunitx_table_collect_not_braced_aux_ii:N
+ \token_if_eq_meaning:NNT \siunitx_table_collect_next:
+ \siunitx_table_collect_get:
{
\token_if_eq_meaning:NNTF #1 \tabularnewline
{
- \cs_set_eq:NN \_siunitx_table_collect_next:
- \_siunitx_table_collect_newline:
+ \cs_set_eq:NN \siunitx_table_collect_next:
+ \siunitx_table_collect_newline:
}
- { \_siunitx_table_collect_token:N #1 }
+ { \siunitx_table_collect_token:N #1 }
}
}
-\cs_set_protected:Npn \_siunitx_table_collect_not_braced_aux_ii:N #1 { }
-\cs_set_protected:Npn \_siunitx_table_collect_token:N #1 { }
-\cs_set_protected:Npn \_siunitx_table_collect_token_s:N #1 {
- \tl_put_right:Nn \_l_siunitx_table_collect_tl {#1}
+\cs_new_protected:Npn \siunitx_table_collect_not_braced_aux_ii:N #1 { }
+\cs_new_protected:Npn \siunitx_table_collect_token:N #1 { }
+\cs_new_protected:Npn \siunitx_table_collect_token_s:N #1 {
+ \tl_put_right:Nn \l_siunitx_table_collect_tl {#1}
}
-\cs_set_protected:Npn \_siunitx_table_collect_token_S:N #1 {
- \bool_if:NTF \_l_siunitx_table_collect_post_bool
- { \tl_put_right:Nn \_l_siunitx_table_collect_post_tl {#1} }
+\cs_new_protected:Npn \siunitx_table_collect_token_S:N #1 {
+ \bool_if:NTF \l_siunitx_table_collect_post_bool
+ { \tl_put_right:Nn \l_siunitx_table_collect_post_tl {#1} }
{
- \tl_if_in:NnTF \_l_siunitx_number_valid_tl {#1}
+ \tl_if_in:NnTF \l_siunitx_number_valid_tl {#1}
{
- \bool_set_false:N \_l_siunitx_table_collect_pre_bool
- \tl_put_right:Nn \_l_siunitx_table_collect_tl {#1}
+ \bool_set_false:N \l_siunitx_table_collect_pre_bool
+ \tl_put_right:Nn \l_siunitx_table_collect_tl {#1}
}
- { \_siunitx_table_collect_expand:N #1 }
+ { \siunitx_table_collect_expand:N #1 }
}
}
-\skip_new:N \_c_siunitx_one_fill_skip
-\skip_set:Nn \_c_siunitx_one_fill_skip { \c_zero_skip plus 1 fill }
-\skip_new:N \_c_siunitx_table_correction_skip
+\skip_new:N \c_siunitx_one_fill_skip
+\skip_set:Nn \c_siunitx_one_fill_skip { \c_zero_skip plus 1 fill }
+\skip_new:N \c_siunitx_table_correction_skip
\AtBeginDocument {
\@ifpackageloaded { colortbl }
{
- \skip_set:Nn \_c_siunitx_table_correction_skip
+ \skip_set:Nn \c_siunitx_table_correction_skip
{ \c_zero_skip plus -0.5 fill }
}
{
- \skip_set:Nn \_c_siunitx_table_correction_skip
+ \skip_set:Nn \c_siunitx_table_correction_skip
{ \c_zero_skip }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_colortbl_correction: {
- \skip_horizontal:n { \_c_siunitx_table_correction_skip }
+\cs_new_protected_nopar:Npn \siunitx_table_colortbl_correction: {
+ \skip_horizontal:n { \c_siunitx_table_correction_skip }
\tex_kern:D \c_zero_skip
}
-\cs_set_protected_nopar:Npn \_siunitx_table_align_left:n #1 {
- \_siunitx_table_colortbl_correction:
+\cs_new_protected_nopar:Npn \siunitx_table_align_left:n #1 {
+ \siunitx_table_colortbl_correction:
\skip_horizontal:n {#1}
\tex_kern:D \c_zero_skip
}
-\cs_set_protected_nopar:Npn \_siunitx_table_align_right:n #1 {
- \skip_horizontal:n { \_c_siunitx_one_fill_skip - #1 }
+\cs_new_protected_nopar:Npn \siunitx_table_align_right:n #1 {
+ \skip_horizontal:n { \c_siunitx_one_fill_skip - #1 }
\tex_kern:D \c_zero_skip
- \_siunitx_table_colortbl_correction:
+ \siunitx_table_colortbl_correction:
}
-\skip_new:N \_l_siunitx_table_unit_align_skip
+\skip_new:N \l_siunitx_table_unit_align_skip
\keys_define:nn { siunitx } {
table-unit-alignment .choice:,
table-unit-alignment / center .code:n =
{
- \skip_set:Nn \_l_siunitx_table_unit_align_skip
+ \skip_set:Nn \l_siunitx_table_unit_align_skip
{ \c_zero_skip plus 0.5 fill }
},
table-unit-alignment / left .code:n =
{
- \skip_set:Nn \_l_siunitx_table_unit_align_skip
+ \skip_set:Nn \l_siunitx_table_unit_align_skip
{ \c_zero_skip }
},
table-unit-alignment / right .code:n =
{
- \skip_set:Nn \_l_siunitx_table_unit_align_skip
+ \skip_set:Nn \l_siunitx_table_unit_align_skip
{ \c_zero_skip plus 1 fill }
},
}
\keys_set:nn { siunitx } {
table-unit-alignment = center
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_s: {
- \_siunitx_table_align_left:n { \_l_siunitx_table_unit_align_skip }
- \_siunitx_unit_output:Vn \_l_siunitx_table_collect_tl { }
- \_siunitx_table_align_right:n { \_l_siunitx_table_unit_align_skip }
-}
-\bool_new:N \_l_siunitx_table_center_decimal_bool
-\box_new:N \_l_siunitx_table_fill_box
-\dim_new:N \_l_siunitx_table_fill_dim
-\box_new:N \_l_siunitx_table_pre_box
-\box_new:N \_l_siunitx_table_post_box
-\box_new:N \_l_siunitx_table_result_box
-\dim_new:N \_l_siunitx_table_decimal_dim
-\dim_new:N \_l_siunitx_table_exponent_dim
-\dim_new:N \_l_siunitx_table_integer_dim
-\dim_new:N \_l_siunitx_table_mantissa_dim
-\dim_new:N \_l_siunitx_table_marker_dim
-\dim_new:N \_l_siunitx_table_result_dim
-\dim_new:N \_l_siunitx_table_uncert_dim
-\dim_new:N \_l_siunitx_table_gap_dim
-\prop_new:N \_l_siunitx_table_model_prop
-\skip_new:N \_l_siunitx_table_number_align_skip
-\skip_new:N \_l_siunitx_table_text_align_skip
+\cs_new_protected_nopar:Npn \siunitx_table_print_s: {
+ \siunitx_table_align_left:n { \l_siunitx_table_unit_align_skip }
+ \siunitx_unit_output:Vn \l_siunitx_table_collect_tl { }
+ \siunitx_table_align_right:n { \l_siunitx_table_unit_align_skip }
+}
+\bool_new:N \l_siunitx_table_center_decimal_bool
+\box_new:N \l_siunitx_table_fill_box
+\dim_new:N \l_siunitx_table_fill_dim
+\box_new:N \l_siunitx_table_pre_box
+\box_new:N \l_siunitx_table_post_box
+\box_new:N \l_siunitx_table_result_box
+\dim_new:N \l_siunitx_table_decimal_dim
+\dim_new:N \l_siunitx_table_exponent_dim
+\dim_new:N \l_siunitx_table_integer_dim
+\dim_new:N \l_siunitx_table_mantissa_dim
+\dim_new:N \l_siunitx_table_marker_dim
+\dim_new:N \l_siunitx_table_result_dim
+\dim_new:N \l_siunitx_table_uncert_dim
+\dim_new:N \l_siunitx_table_gap_dim
+\prop_new:N \l_siunitx_table_model_prop
+\skip_new:N \l_siunitx_table_number_align_skip
+\skip_new:N \l_siunitx_table_text_align_skip
\keys_define:nn { siunitx } {
table-align-text-post .bool_set:N
- = \_l_siunitx_table_align_post_bool,
+ = \l_siunitx_table_align_post_bool,
table-number-alignment .choice:,
table-number-alignment /
center .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip plus 0.5 fill }
- \bool_set_false:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_false:N \l_siunitx_table_center_decimal_bool
},
table-number-alignment /
center-decimal-marker .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip plus 0.5 fill }
- \bool_set_true:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_true:N \l_siunitx_table_center_decimal_bool
},
table-number-alignment /
left .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip }
- \bool_set_false:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_false:N \l_siunitx_table_center_decimal_bool
},
table-number-alignment /
right .code:n =
{
- \skip_set:Nn \_l_siunitx_table_number_align_skip
+ \skip_set:Nn \l_siunitx_table_number_align_skip
{ \c_zero_skip plus 1 fill }
- \bool_set_false:N \_l_siunitx_table_center_decimal_bool
+ \bool_set_false:N \l_siunitx_table_center_decimal_bool
},
table-text-alignment .choice:,
table-text-alignment /
center .code:n =
{
- \skip_set:Nn \_l_siunitx_table_text_align_skip
+ \skip_set:Nn \l_siunitx_table_text_align_skip
{ \c_zero_skip plus 0.5 fill }
},
table-text-alignment /
left .code:n =
{
- \skip_set:Nn \_l_siunitx_table_text_align_skip
+ \skip_set:Nn \l_siunitx_table_text_align_skip
{ \c_zero_skip }
},
table-text-alignment /
right .code:n =
{
- \skip_set:Nn \_l_siunitx_table_text_align_skip
+ \skip_set:Nn \l_siunitx_table_text_align_skip
{ \c_zero_skip plus 1 fill }
},
- table-auto-round .bool_set:N = \_l_siunitx_table_auto_bool,
- table-figures-decimal .int_set:N = \_l_siunitx_table_decimal_int,
+ table-auto-round .bool_set:N = \l_siunitx_table_auto_bool,
+ table-figures-decimal .int_set:N = \l_siunitx_table_decimal_int,
table-figures-exponent .int_set:N =
- \_l_siunitx_table_exponent_int,
- table-figures-integer .int_set:N = \_l_siunitx_table_integer_int,
- table-figures-uncertainty .int_set:N = \_l_siunitx_table_uncert_int ,
+ \l_siunitx_table_exponent_int,
+ table-figures-integer .int_set:N = \l_siunitx_table_integer_int,
+ table-figures-uncertainty .int_set:N = \l_siunitx_table_uncert_int ,
table-parse-only .bool_set:N =
- \_l_siunitx_table_parse_only_bool,
+ \l_siunitx_table_parse_only_bool,
table-space-text-pre .tl_set:N =
- \_l_siunitx_table_pre_tl,
+ \l_siunitx_table_pre_tl,
table-space-text-post .tl_set:N =
- \_l_siunitx_table_post_tl,
+ \l_siunitx_table_post_tl,
table-sign-exponent .bool_set:N =
- \_l_siunitx_table_sign_exponent_bool,
+ \l_siunitx_table_sign_exponent_bool,
table-sign-mantissa .bool_set:N =
- \_l_siunitx_table_sign_mantissa_bool
+ \l_siunitx_table_sign_mantissa_bool
}
\keys_set:nn { siunitx } {
table-align-text-post = true,
@@ -4667,322 +4667,322 @@
table-unit-alignment = #1
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_format_convert:nn #1#2 {
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \quark_if_no_value:NTF \_l_siunitx_tmpa_tl
- { \int_set:cn { _l_siunitx_table_ #2 _int } { 0 } }
+\cs_new_protected_nopar:Npn \siunitx_table_format_convert:nn #1#2 {
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
+ { \int_set:cn { l_siunitx_table_ #2 _int } { 0 } }
{
- \prop_get:NnN \_l_siunitx_number_in_prop {#1} \_l_siunitx_tmpa_tl
- \int_set:cn { _l_siunitx_table_ #2 _int } { \_l_siunitx_tmpa_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop {#1} \l_siunitx_tmpa_tl
+ \int_set:cn { l_siunitx_table_ #2 _int } { \l_siunitx_tmpa_tl }
}
}
\keys_define:nn { siunitx } {
table-format .code:n =
{
- \_siunitx_number_in_parse:n {#1}
- \_siunitx_table_format_convert:nn { mantissa-integer } { integer }
- \_siunitx_table_format_convert:nn { mantissa-decimal } { decimal }
- \_siunitx_table_format_convert:nn { mantissa-uncertainty }
+ \siunitx_number_in_parse:n {#1}
+ \siunitx_table_format_convert:nn { mantissa-integer } { integer }
+ \siunitx_table_format_convert:nn { mantissa-decimal } { decimal }
+ \siunitx_table_format_convert:nn { mantissa-uncertainty }
{ uncert }
- \_siunitx_table_format_convert:nn { exponent-integer }
+ \siunitx_table_format_convert:nn { exponent-integer }
{ exponent }
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { mantissa-sign }
- { \bool_set_true:N \_l_siunitx_table_sign_mantissa_bool }
- { \bool_set_false:N \_l_siunitx_table_sign_mantissa_bool }
- \prop_if_in:NnTF \_l_siunitx_number_in_prop { exponent-sign }
- { \bool_set_true:N \_l_siunitx_table_sign_mantissa_bool }
- { \bool_set_false:N \_l_siunitx_table_sign_mantissa_bool }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { mantissa-sign }
+ { \bool_set_true:N \l_siunitx_table_sign_mantissa_bool }
+ { \bool_set_false:N \l_siunitx_table_sign_mantissa_bool }
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { exponent-sign }
+ { \bool_set_true:N \l_siunitx_table_sign_exponent_bool }
+ { \bool_set_false:N \l_siunitx_table_sign_exponent_bool }
\keys_set:nn { siunitx } { table-number-alignment = center }
},
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S: {
- \bool_if:NTF \_l_siunitx_table_collect_pre_bool
+\cs_new_protected_nopar:Npn \siunitx_table_print_S: {
+ \bool_if:NTF \l_siunitx_table_collect_pre_bool
{
- \_siunitx_table_align_left:n { \_l_siunitx_table_text_align_skip }
- \tl_use:N \_l_siunitx_table_collect_pre_tl
- \_siunitx_table_align_right:n
- { \_l_siunitx_table_text_align_skip }
+ \siunitx_table_align_left:n { \l_siunitx_table_text_align_skip }
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \siunitx_table_align_right:n
+ { \l_siunitx_table_text_align_skip }
}
{
- \_siunitx_table_align_left:n
- { \_l_siunitx_table_number_align_skip }
- \_siunitx_table_print_S_aux:
- \_siunitx_table_align_right:n
- { \_l_siunitx_table_number_align_skip }
+ \siunitx_table_align_left:n
+ { \l_siunitx_table_number_align_skip }
+ \siunitx_table_print_S_aux:
+ \siunitx_table_align_right:n
+ { \l_siunitx_table_number_align_skip }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_aux: {
- \bool_if:NTF \_l_siunitx_table_parse_only_bool
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_aux: {
+ \bool_if:NTF \l_siunitx_table_parse_only_bool
{
- \tl_use:N \_l_siunitx_table_collect_pre_tl
- \_siunitx_number_output:V \_l_siunitx_table_collect_tl
- \tl_use:N \_l_siunitx_table_collect_post_tl
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \siunitx_number_output:V \l_siunitx_table_collect_tl
+ \tl_use:N \l_siunitx_table_collect_post_tl
}
{
- \bool_if:NTF \_l_siunitx_table_center_decimal_bool
- { \_siunitx_table_print_S_centered: }
- { \_siunitx_table_print_S_reserved: }
+ \bool_if:NTF \l_siunitx_table_center_decimal_bool
+ { \siunitx_table_print_S_centered: }
+ { \siunitx_table_print_S_reserved: }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_parse: {
- \bool_set_false:N \_l_siunitx_error_bool
- \_siunitx_number_in_parse:V \_l_siunitx_table_collect_tl
- \bool_if:NF \_l_siunitx_error_bool
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_parse: {
+ \bool_set_false:N \l_siunitx_error_bool
+ \siunitx_number_in_parse:V \l_siunitx_table_collect_tl
+ \bool_if:NF \l_siunitx_error_bool
{
- \_siunitx_number_process:
- \_siunitx_number_format:
- \_siunitx_number_output_color:
+ \siunitx_number_process:
+ \siunitx_number_format:
+ \siunitx_number_output_color:
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered: {
- \_siunitx_table_print_S_centered_ends:
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered: {
+ \siunitx_table_print_S_centered_ends:
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } = { \c_zero_skip }
- { \tl_use:N \_l_siunitx_table_collect_pre_tl }
- { \box_use:N \_l_siunitx_table_pre_box }
- \_siunitx_table_print_S_parse:
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_number_out_prop
+ { \box_wd:N \l_siunitx_table_pre_box } = { \c_zero_skip }
+ { \tl_use:N \l_siunitx_table_collect_pre_tl }
+ { \box_use:N \l_siunitx_table_pre_box }
+ \siunitx_table_print_S_parse:
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_number_out_prop
{ integer } { mantissa }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_number_out_prop
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_number_out_prop
{ marker } { mantissa }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_number_out_prop
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_number_out_prop
{ result } { }
- \box_set_eq:NN \_l_siunitx_table_result_box \_l_siunitx_tmp_box
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_result_dim - \_l_siunitx_table_integer_dim }
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ \box_set_eq:NN \l_siunitx_table_result_box \l_siunitx_tmp_box
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_result_dim - \l_siunitx_table_integer_dim }
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ mantissa-decimal-marker }
{
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_fill_dim - \_l_siunitx_table_marker_dim }
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_fill_dim - \l_siunitx_table_marker_dim }
}
\dim_compare:nNnTF
- { \_l_siunitx_table_integer_dim } > { \_l_siunitx_table_fill_dim }
- { \_siunitx_table_print_S_centered_integer: }
- { \_siunitx_table_print_S_centered_decimal: }
- \bool_if:NTF \_l_siunitx_table_align_post_bool
- { \box_use:N \_l_siunitx_table_post_box }
- {
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { - \dim_use:N \_l_siunitx_table_fill_dim }
- \skip_horizontal:N \_l_siunitx_table_fill_dim
- \box_use:N \_l_siunitx_table_post_box
- \box_use:N \_l_siunitx_table_fill_box
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered_ends: {
- \hbox_set:Nn \_l_siunitx_table_pre_box
- { { \tl_use:N \_l_siunitx_table_collect_pre_tl } }
- \hbox_set:Nn \_l_siunitx_table_post_box
- { \tl_use:N \_l_siunitx_table_collect_post_tl }
+ { \l_siunitx_table_integer_dim } > { \l_siunitx_table_fill_dim }
+ { \siunitx_table_print_S_centered_integer: }
+ { \siunitx_table_print_S_centered_decimal: }
+ \bool_if:NTF \l_siunitx_table_align_post_bool
+ { \box_use:N \l_siunitx_table_post_box }
+ {
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { - \dim_use:N \l_siunitx_table_fill_dim }
+ \skip_horizontal:N \l_siunitx_table_fill_dim
+ \box_use:N \l_siunitx_table_post_box
+ \box_use:N \l_siunitx_table_fill_box
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered_ends: {
+ \hbox_set:Nn \l_siunitx_table_pre_box
+ { { \tl_use:N \l_siunitx_table_collect_pre_tl } }
+ \hbox_set:Nn \l_siunitx_table_post_box
+ { \tl_use:N \l_siunitx_table_collect_post_tl }
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } >
- { \box_wd:N \_l_siunitx_table_post_box }
+ { \box_wd:N \l_siunitx_table_pre_box } >
+ { \box_wd:N \l_siunitx_table_post_box }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_table_pre_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_table_pre_box }
{
- \hbox_unpack:N \_l_siunitx_table_post_box
+ \hbox_unpack:N \l_siunitx_table_post_box
\tex_hfil:D
}
}
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \box_wd:N \_l_siunitx_table_post_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \box_wd:N \l_siunitx_table_post_box }
{
\tex_hfil:D
- \hbox_unpack:N \_l_siunitx_table_pre_box
+ \hbox_unpack:N \l_siunitx_table_pre_box
}
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered_integer: {
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_integer_dim - \_l_siunitx_table_fill_dim }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \_l_siunitx_table_fill_dim } { \tex_hfil:D }
- \box_use:N \_l_siunitx_table_result_box
- \box_use:N \_l_siunitx_table_fill_box
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_centered_decimal: {
- \dim_set:Nn \_l_siunitx_table_fill_dim
- { \_l_siunitx_table_fill_dim - \_l_siunitx_table_integer_dim }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \_l_siunitx_table_fill_dim } { \tex_hfil:D }
- \box_use:N \_l_siunitx_table_fill_box
- \box_use:N \_l_siunitx_table_result_box
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved: {
- \dim_zero:N \_l_siunitx_table_gap_dim
- \_siunitx_table_print_S_reserved_ends:
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered_integer: {
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_integer_dim - \l_siunitx_table_fill_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \l_siunitx_table_fill_dim } { \tex_hfil:D }
+ \box_use:N \l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_fill_box
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_centered_decimal: {
+ \dim_set:Nn \l_siunitx_table_fill_dim
+ { \l_siunitx_table_fill_dim - \l_siunitx_table_integer_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \l_siunitx_table_fill_dim } { \tex_hfil:D }
+ \box_use:N \l_siunitx_table_fill_box
+ \box_use:N \l_siunitx_table_result_box
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved: {
+ \dim_zero:N \l_siunitx_table_gap_dim
+ \siunitx_table_print_S_reserved_ends:
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } = { \c_zero_skip }
- { \tl_use:N \_l_siunitx_table_collect_pre_tl }
- { \box_use:N \_l_siunitx_table_pre_box }
- \_siunitx_table_print_S_model_create:
- \bool_if:NT \_l_siunitx_table_auto_bool
+ { \box_wd:N \l_siunitx_table_pre_box } = { \c_zero_skip }
+ { \tl_use:N \l_siunitx_table_collect_pre_tl }
+ { \box_use:N \l_siunitx_table_pre_box }
+ \siunitx_table_print_S_model_create:
+ \bool_if:NT \l_siunitx_table_auto_bool
{
- \int_set:Nn \_l_siunitx_process_precision_int
- { \_l_siunitx_table_decimal_int }
- \tl_set:Nn \_l_siunitx_round_tl { places }
+ \int_set:Nn \l_siunitx_process_precision_int
+ { \l_siunitx_table_decimal_int }
+ \tl_set:Nn \l_siunitx_round_tl { places }
}
- \_siunitx_table_print_S_parse:
+ \siunitx_table_print_S_parse:
\intexpr_compare:nNnTF
- { \_l_siunitx_table_integer_int + \_l_siunitx_table_decimal_int } >
+ { \l_siunitx_table_integer_int + \l_siunitx_table_decimal_int } >
{ 0 }
- { \_siunitx_table_print_S_reserved_mantissa: }
+ { \siunitx_table_print_S_reserved_mantissa: }
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { mantissa-result }
{
\msg_error:nnx { siunitx } { table-partial-number }
{ a~mantissa }
}
}
- \prop_if_in:NnT \_l_siunitx_number_out_prop { complex-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { complex-result }
{
\msg_error:nnx { siunitx } { table-partial-number }
{ a~complex }
}
- \intexpr_compare:nNnTF { \_l_siunitx_table_exponent_int } > { 0 }
- { \_siunitx_table_print_S_reserved_exponent: }
+ \intexpr_compare:nNnTF { \l_siunitx_table_exponent_int } > { 0 }
+ { \siunitx_table_print_S_reserved_exponent: }
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop { exponent-result }
+ \prop_if_in:NnT \l_siunitx_number_out_prop { exponent-result }
{
\msg_error:nnx { siunitx } { table-partial-number }
{ an~exponent }
}
}
- \bool_if:NTF \_l_siunitx_table_align_post_bool
- { \box_use:N \_l_siunitx_table_post_box }
+ \bool_if:NTF \l_siunitx_table_align_post_bool
+ { \box_use:N \l_siunitx_table_post_box }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \dim_use:N \_l_siunitx_table_gap_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \dim_use:N \l_siunitx_table_gap_dim }
{ \tex_hfil:D }
- \dim_set:Nn \_l_siunitx_table_gap_dim
- { - \dim_use:N \_l_siunitx_table_gap_dim }
- \skip_horizontal:N \_l_siunitx_table_gap_dim
- \box_use:N \_l_siunitx_table_post_box
- \box_use:N \_l_siunitx_table_fill_box
+ \dim_set:Nn \l_siunitx_table_gap_dim
+ { - \dim_use:N \l_siunitx_table_gap_dim }
+ \skip_horizontal:N \l_siunitx_table_gap_dim
+ \box_use:N \l_siunitx_table_post_box
+ \box_use:N \l_siunitx_table_fill_box
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved_ends: {
- \hbox_set:Nn \_l_siunitx_tmp_box { \_l_siunitx_table_pre_tl }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \box_wd:N \_l_siunitx_tmp_box }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved_ends: {
+ \hbox_set:Nn \l_siunitx_tmp_box { \l_siunitx_table_pre_tl }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \box_wd:N \l_siunitx_tmp_box }
{
\tex_hfil:D
- { \tl_use:N \_l_siunitx_table_collect_pre_tl }
+ { \tl_use:N \l_siunitx_table_collect_pre_tl }
}
- \hbox_set:Nn \_l_siunitx_tmp_box { \_l_siunitx_table_post_tl }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set:Nn \l_siunitx_tmp_box { \l_siunitx_table_post_tl }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
{
- \tl_use:N \_l_siunitx_table_collect_post_tl
+ \tl_use:N \l_siunitx_table_collect_post_tl
\tex_hfil:D
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_model_create: {
- \prop_clear:N \_l_siunitx_number_in_prop
- \_siunitx_table_print_S_model_aux:nn { integer } { mantissa-integer }
- \_siunitx_table_print_S_model_aux:nn { decimal } { mantissa-decimal }
- \_siunitx_table_print_S_model_aux:nn { uncert }
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_model_create: {
+ \prop_clear:N \l_siunitx_number_in_prop
+ \siunitx_table_print_S_model_aux:nn { integer } { mantissa-integer }
+ \siunitx_table_print_S_model_aux:nn { decimal } { mantissa-decimal }
+ \siunitx_table_print_S_model_aux:nn { uncert }
{ mantissa-uncertainty }
- \_siunitx_table_print_S_model_aux:nn { exponent } { exponent-integer }
+ \siunitx_table_print_S_model_aux:nn { exponent } { exponent-integer }
\intexpr_compare:nNnF
- { \_l_siunitx_table_integer_int + \_l_siunitx_table_decimal_int } =
+ { \l_siunitx_table_integer_int + \l_siunitx_table_decimal_int } =
{ 0 }
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { mantissa }
+ \prop_put:Nnn \l_siunitx_number_in_prop { mantissa }
{ true }
}
- \intexpr_compare:nNnT { \_l_siunitx_table_decimal_int } > { 0 }
+ \intexpr_compare:nNnT { \l_siunitx_table_decimal_int } > { 0 }
{
- \prop_put:NnV \_l_siunitx_number_in_prop
+ \prop_put:NnV \l_siunitx_number_in_prop
{ mantissa-decimal-marker }
- \_l_siunitx_output_decimal_tl
+ \l_siunitx_output_decimal_tl
}
- \bool_if:NT \_l_siunitx_table_sign_mantissa_bool
- { \prop_put:Nnn \_l_siunitx_number_in_prop { mantissa-sign } { - } }
- \intexpr_compare:nNnT { \_l_siunitx_table_exponent_int } > { 0 }
+ \bool_if:NT \l_siunitx_table_sign_mantissa_bool
+ { \prop_put:Nnn \l_siunitx_number_in_prop { mantissa-sign } { - } }
+ \intexpr_compare:nNnT { \l_siunitx_table_exponent_int } > { 0 }
{
- \bool_if:NT \_l_siunitx_table_sign_exponent_bool
+ \bool_if:NT \l_siunitx_table_sign_exponent_bool
{
- \prop_put:Nnn \_l_siunitx_number_in_prop { exponent-sign }
+ \prop_put:Nnn \l_siunitx_number_in_prop { exponent-sign }
{ - }
}
}
- \_siunitx_number_process:
- \_siunitx_number_format:
- \prop_set_eq:NN \_l_siunitx_table_model_prop
- \_l_siunitx_number_out_prop
+ \siunitx_number_process:
+ \siunitx_number_format:
+ \prop_set_eq:NN \l_siunitx_table_model_prop
+ \l_siunitx_number_out_prop
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_model_aux:nn #1#2 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_model_aux:nn #1#2 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \prg_replicate:nn { \int_use:c { _l_siunitx_table_ #1 _int } }
+ \prg_replicate:nn { \int_use:c { l_siunitx_table_ #1 _int } }
{ 8 }
}
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \prop_put:NnV \_l_siunitx_number_in_prop {#2} \_l_siunitx_tmpa_tl
- \prop_put:Nnn \_l_siunitx_number_in_prop {#1} { true }
+ \prop_put:NnV \l_siunitx_number_in_prop {#2} \l_siunitx_tmpa_tl
+ \prop_put:Nnn \l_siunitx_number_in_prop {#1} { true }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved_mantissa: {
- \_siunitx_table_print_S_reserved_mantissa_aux:n { mantissa }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved_mantissa: {
+ \siunitx_table_print_S_reserved_mantissa_aux:n { mantissa }
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ mantissa } { }
- \_siunitx_table_print_S_get_mantissa:Nn
- \_l_siunitx_number_out_prop { }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \_l_siunitx_table_mantissa_dim }
+ \siunitx_table_print_S_get_mantissa:Nn
+ \l_siunitx_number_out_prop { }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \l_siunitx_table_mantissa_dim }
{
- \box_use:N \_l_siunitx_table_fill_box
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \box_use:N \l_siunitx_table_fill_box
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
\tex_hfil:D
}
- \box_use:N \_l_siunitx_table_result_box
- \_siunitx_table_print_S_reserved_uncert:n { mantissa }
+ \box_use:N \l_siunitx_table_result_box
+ \siunitx_table_print_S_reserved_uncert:n { mantissa }
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_mantissa_aux:n #1 {
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_mantissa_aux:n #1 {
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ integer } {#1}
- \_siunitx_table_print_S_get_integer:Nn
- \_l_siunitx_number_out_prop {#1}
- \box_clear:N \_l_siunitx_tmp_box
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+ \siunitx_table_print_S_get_integer:Nn
+ \l_siunitx_number_out_prop {#1}
+ \box_clear:N \l_siunitx_tmp_box
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
}
- \hbox_set_to_wd:Nnn \_l_siunitx_table_fill_box
- { \_l_siunitx_table_integer_dim - \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_fill_box
+ { \l_siunitx_table_integer_dim - \box_wd:N \l_siunitx_tmp_box }
{ \tex_hfil:D }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ decimal } {#1}
- \box_clear:N \_l_siunitx_tmp_box
- \_siunitx_table_print_S_get_decimal:Nn
- \_l_siunitx_number_out_prop {#1}
- \tl_if_empty:NF \_l_siunitx_tmpa_tl
+ \box_clear:N \l_siunitx_tmp_box
+ \siunitx_table_print_S_get_decimal:Nn
+ \l_siunitx_number_out_prop {#1}
+ \tl_if_empty:NF \l_siunitx_tmpa_tl
{
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
}
- \dim_set:Nn \_l_siunitx_table_gap_dim
+ \dim_set:Nn \l_siunitx_table_gap_dim
{
- \dim_use:N \_l_siunitx_table_decimal_dim -
- \box_wd:N \_l_siunitx_tmp_box
+ \dim_use:N \l_siunitx_table_decimal_dim -
+ \box_wd:N \l_siunitx_tmp_box
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_uncert:n #1 {
- \bool_if:NT \_l_siunitx_uncert_sep_bool
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_uncert:n #1 {
+ \bool_if:NT \l_siunitx_uncert_sep_bool
{
- \intexpr_compare:nNnTF { \_l_siunitx_table_uncert_int } > { 0 }
- { \_siunitx_table_print_S_reserved_uncert_aux:n {#1} }
+ \intexpr_compare:nNnTF { \l_siunitx_table_uncert_int } > { 0 }
+ { \siunitx_table_print_S_reserved_uncert_aux:n {#1} }
{
- \prop_if_in:NnT \_l_siunitx_number_out_prop
+ \prop_if_in:NnT \l_siunitx_number_out_prop
{ #1 -uncertainty }
{
\msg_error:nn { siunitx } { table-partial-number }
@@ -4991,282 +4991,282 @@
}
}
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_uncert_aux:n #1 {
- \_siunitx_table_print_S_reserved_uncert_pm:n {#1}
- \_siunitx_table_print_S_reserved_mantissa_aux:n { #1 -uncertainty }
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_uncert_aux:n #1 {
+ \siunitx_table_print_S_reserved_uncert_pm:n {#1}
+ \siunitx_table_print_S_reserved_mantissa_aux:n { #1 -uncertainty }
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ uncert } {#1}
- \_siunitx_table_print_S_get_uncert:Nn \_l_siunitx_number_out_prop {#1}
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \_l_siunitx_table_uncert_dim }
+ \siunitx_table_print_S_get_uncert:Nn \l_siunitx_number_out_prop {#1}
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \l_siunitx_table_uncert_dim }
{
- \box_use:N \_l_siunitx_table_fill_box
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \box_use:N \l_siunitx_table_fill_box
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
\tex_hfil:D
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_uncert_pm:n #1 {
- \tl_clear:N \_l_siunitx_tmpb_tl
- \_siunitx_number_format_join_uncert_pm:
- \tl_set:Nx \_l_siunitx_tmpb_tl
- { { } \exp_not:V \_l_siunitx_tmpb_tl { } }
- \hbox_set:Nn \_l_siunitx_table_result_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpb_tl }
- \prop_if_in:NnF \_l_siunitx_number_out_prop { #1 -uncertainty }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_uncert_pm:n #1 {
+ \tl_clear:N \l_siunitx_tmpb_tl
+ \siunitx_number_format_join_uncert_pm:
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { } \exp_not:V \l_siunitx_tmpb_tl { } }
+ \hbox_set:Nn \l_siunitx_table_result_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpb_tl }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { #1 -uncertainty }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \box_wd:N \_l_siunitx_table_result_box } { \tex_hfil:D }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \box_wd:N \l_siunitx_table_result_box } { \tex_hfil:D }
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_reserved_exponent: {
- \dim_zero:N \_l_siunitx_table_gap_dim
- \_siunitx_table_print_S_reserved_exponent_product:
- \_siunitx_table_print_S_measure:Nnn \_l_siunitx_table_model_prop
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_reserved_exponent: {
+ \dim_zero:N \l_siunitx_table_gap_dim
+ \siunitx_table_print_S_reserved_exponent_product:
+ \siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ exponent } { }
- \_siunitx_table_print_S_get_exponent:Nn
- \_l_siunitx_number_out_prop { }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \_l_siunitx_table_exponent_dim }
+ \siunitx_table_print_S_get_exponent:Nn
+ \l_siunitx_number_out_prop { }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \l_siunitx_table_exponent_dim }
{
- \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl
+ \siunitx_print:nV { number } \l_siunitx_tmpa_tl
\tex_hfil:D
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_exponent_product: {
- \tl_clear:N \_l_siunitx_tmpa_tl
- \box_clear:N \_l_siunitx_table_result_box
- \prop_if_in:NnTF \_l_siunitx_table_model_prop { mantissa-result }
- { \_siunitx_table_print_S_reserved_exponent_product_aux_i: }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_exponent_product: {
+ \tl_clear:N \l_siunitx_tmpa_tl
+ \box_clear:N \l_siunitx_table_result_box
+ \prop_if_in:NnTF \l_siunitx_table_model_prop { mantissa-result }
+ { \siunitx_table_print_S_reserved_exponent_product_aux_i: }
{
- \prop_if_in:NnT \_l_siunitx_table_model_prop { complex-result }
- { \_siunitx_table_print_S_reserved_exponent_product_aux_i: }
+ \prop_if_in:NnT \l_siunitx_table_model_prop { complex-result }
+ { \siunitx_table_print_S_reserved_exponent_product_aux_i: }
}
- \box_use:N \_l_siunitx_table_result_box
+ \box_use:N \l_siunitx_table_result_box
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_exponent_product_aux_i: {
- \tl_set_eq:NN \_l_siunitx_tmpa_tl \_l_siunitx_exponent_product_tl
- \bool_if:NT \_l_siunitx_tight_bool
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_exponent_product_aux_i: {
+ \tl_set_eq:NN \l_siunitx_tmpa_tl \l_siunitx_exponent_product_tl
+ \bool_if:NT \l_siunitx_tight_bool
{
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { { \exp_not:V \_l_siunitx_tmpa_tl } }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { { \exp_not:V \l_siunitx_tmpa_tl } }
}
- \tl_set:Nx \_l_siunitx_tmpa_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
{
- \exp_not:N \_siunitx_ensuremath:n
- { { } \exp_not:V \_l_siunitx_tmpa_tl { } }
+ \exp_not:N \siunitx_ensuremath:n
+ { { } \exp_not:V \l_siunitx_tmpa_tl { } }
}
- \hbox_set:Nn \_l_siunitx_table_result_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
- \prop_if_in:NnTF \_l_siunitx_number_out_prop { exponent-result }
+ \hbox_set:Nn \l_siunitx_table_result_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \prop_if_in:NnTF \l_siunitx_number_out_prop { exponent-result }
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { mantissa-result }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { mantissa-result }
{
- \prop_if_in:NnF \_l_siunitx_number_out_prop { complex-result }
+ \prop_if_in:NnF \l_siunitx_number_out_prop { complex-result }
{
- \_siunitx_table_print_S_reserved_exponent_product_aux_ii:
+ \siunitx_table_print_S_reserved_exponent_product_aux_ii:
}
}
}
- { \_siunitx_table_print_S_reserved_exponent_product_aux_ii: }
+ { \siunitx_table_print_S_reserved_exponent_product_aux_ii: }
}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_reserved_exponent_product_aux_ii: {
- \hbox_set_to_wd:Nnn \_l_siunitx_table_result_box
- { \box_wd:N \_l_siunitx_table_result_box } { \tex_hfil:D }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_measure:Nnn #1#2#3 {
- \use:c { _siunitx_table_print_S_get_ #2 :Nn } #1 {#3}
- \tl_if_empty:NTF \_l_siunitx_tmpa_tl
- { \dim_set:cn { _l_siunitx_table_ #2 _dim } { \c_zero_skip } }
- {
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_print:nV { number } \_l_siunitx_tmpa_tl }
- \dim_set:cn { _l_siunitx_table_ #2 _dim }
- { \box_wd:N \_l_siunitx_tmp_box }
- }
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_decimal:Nn #1#2 {
- \prop_get:NnN #1 { #2 -decimal } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_exponent:Nn #1#2 {
- \prop_get:NnN #1 { exponent-result } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_integer:Nn #1#2 {
- \prop_get:NnN #1 { #2 -sign } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
- \prop_get:NnN #1 { #2 -integer } \_l_siunitx_tmpb_tl
- \quark_if_no_value:NT \_l_siunitx_tmpb_tl
- { \tl_clear:N \_l_siunitx_tmpb_tl }
- \tl_put_right:NV \_l_siunitx_tmpa_tl \_l_siunitx_tmpb_tl
-}
-\cs_set_protected_nopar:Npn
- \_siunitx_table_print_S_get_mantissa:Nn #1#2 {
- \prop_get:NnN #1 { mantissa } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_get_marker:Nn #1#2 {
- \tl_set:Nx \_l_siunitx_tmpa_tl
- {
- \exp_not:N \_siunitx_ensuremath:n
- { \exp_not:V \_l_siunitx_output_decimal_tl }
- }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_get_result:Nn #1#2 {
- \prop_get:NnN #1 { result } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_print_S_get_uncert:Nn #1#2 {
- \prop_get:NnN #1 { #2 -uncertainty } \_l_siunitx_tmpa_tl
- \quark_if_no_value:NT \_l_siunitx_tmpa_tl
- { \tl_clear:N \_l_siunitx_tmpa_tl }
-}
-\cs_set_protected_nopar:Npn \_siunitx_table_direct: {
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_reserved_exponent_product_aux_ii: {
+ \hbox_set_to_wd:Nnn \l_siunitx_table_result_box
+ { \box_wd:N \l_siunitx_table_result_box } { \tex_hfil:D }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_measure:Nnn #1#2#3 {
+ \use:c { siunitx_table_print_S_get_ #2 :Nn } #1 {#3}
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl
+ { \dim_set:cn { l_siunitx_table_ #2 _dim } { \c_zero_skip } }
+ {
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \dim_set:cn { l_siunitx_table_ #2 _dim }
+ { \box_wd:N \l_siunitx_tmp_box }
+ }
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_decimal:Nn #1#2 {
+ \prop_get:NnN #1 { #2 -decimal } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_exponent:Nn #1#2 {
+ \prop_get:NnN #1 { exponent-result } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_integer:Nn #1#2 {
+ \prop_get:NnN #1 { #2 -sign } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+ \prop_get:NnN #1 { #2 -integer } \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \tl_put_right:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl
+}
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_get_mantissa:Nn #1#2 {
+ \prop_get:NnN #1 { mantissa } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_marker:Nn #1#2 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ {
+ \exp_not:N \siunitx_ensuremath:n
+ { \exp_not:V \l_siunitx_output_decimal_tl }
+ }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_result:Nn #1#2 {
+ \prop_get:NnN #1 { result } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_uncert:Nn #1#2 {
+ \prop_get:NnN #1 { #2 -uncertainty } \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+}
+\cs_new_protected_nopar:Npn \siunitx_table_direct: {
\m@th
- \bool_if:NTF \_l_siunitx_table_center_decimal_bool
- { \_siunitx_table_direct_centered: }
- { \_siunitx_table_direct_reserved: }
+ \bool_if:NTF \l_siunitx_table_center_decimal_bool
+ { \siunitx_table_direct_centered: }
+ { \siunitx_table_direct_reserved: }
}
\char_make_active:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_centered: {
- \cs_set_eq:NN \_siunitx_table_print:
- \_siunitx_table_direct_centered_end:
- \hbox_set:Nn \_l_siunitx_tmp_box
- { \_siunitx_ensuremath:n { \_l_siunitx_output_decimal_tl } }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+\cs_new_protected_nopar:Npn \siunitx_table_direct_centered: {
+ \cs_set_eq:NN \siunitx_table_print:
+ \siunitx_table_direct_centered_end:
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_ensuremath:n { \l_siunitx_output_decimal_tl } }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
{ \tex_hfil:D }
- \hbox_set:Nn \_l_siunitx_table_pre_box
+ \hbox_set:Nn \l_siunitx_table_pre_box
\c_group_begin_token
\c_math_shift_token
- \tl_map_function:NN \_l_siunitx_input_decimal_tl
- \_siunitx_table_direct_centered_aux:N
+ \tl_map_function:NN \l_siunitx_input_decimal_tl
+ \siunitx_table_direct_centered_aux:N
}
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_centered_aux:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_centered_aux:N #1 {
\char_set_lccode:nn { `\@ } { `#1 }
\char_set_mathcode:nn { `#1 } { 32768 }
\tl_to_lowercase:n { \cs_set_nopar:Npn @ }
{
\c_math_shift_token
\c_group_end_token
- \hbox_set:Nn \_l_siunitx_table_post_box
+ \hbox_set:Nn \l_siunitx_table_post_box
\c_group_begin_token
\c_math_shift_token
- \_l_siunitx_output_decimal_tl
+ \l_siunitx_output_decimal_tl
}
}
\char_make_letter:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_centered_end: {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_centered_end: {
\c_math_shift_token
\c_group_end_token
\dim_compare:nNnTF
- { \box_wd:N \_l_siunitx_table_pre_box } >
- { \box_wd:N \_l_siunitx_table_post_box }
+ { \box_wd:N \l_siunitx_table_pre_box } >
+ { \box_wd:N \l_siunitx_table_post_box }
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_table_pre_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_table_pre_box }
{
- \hbox_unpack:N \_l_siunitx_table_post_box
+ \hbox_unpack:N \l_siunitx_table_post_box
\tex_hfil:D
}
}
{
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \box_wd:N \_l_siunitx_table_post_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \box_wd:N \l_siunitx_table_post_box }
{
\tex_hfil:D
- \hbox_unpack:N \_l_siunitx_table_pre_box
+ \hbox_unpack:N \l_siunitx_table_pre_box
}
}
- \box_use:N \_l_siunitx_table_pre_box
- \box_use:N \_l_siunitx_table_post_box
+ \box_use:N \l_siunitx_table_pre_box
+ \box_use:N \l_siunitx_table_post_box
}
\char_make_active:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_reserved: {
- \cs_set_eq:NN \_siunitx_table_print:
- \_siunitx_table_direct_reserved_end:
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { \prg_replicate:nn { \_l_siunitx_table_integer_int } { 8 } }
- \hbox_set:Nn \_l_siunitx_tmp_box
+\cs_new_protected_nopar:Npn \siunitx_table_direct_reserved: {
+ \cs_set_eq:NN \siunitx_table_print:
+ \siunitx_table_direct_reserved_end:
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { \prg_replicate:nn { \l_siunitx_table_integer_int } { 8 } }
+ \hbox_set:Nn \l_siunitx_tmp_box
{
- \_siunitx_ensuremath:n
+ \siunitx_ensuremath:n
{
- \bool_if:NT \_l_siunitx_table_sign_mantissa_bool { - }
- \_l_siunitx_tmpa_tl
+ \bool_if:NT \l_siunitx_table_sign_mantissa_bool { - }
+ \l_siunitx_tmpa_tl
}
}
- \dim_set:Nn \_l_siunitx_table_integer_dim
- { \box_wd:N \_l_siunitx_tmp_box }
- \tl_set:Nx \_l_siunitx_tmpa_tl
- { \prg_replicate:nn { \_l_siunitx_table_decimal_int } { 8 } }
- \hbox_set:Nn \_l_siunitx_tmp_box
+ \dim_set:Nn \l_siunitx_table_integer_dim
+ { \box_wd:N \l_siunitx_tmp_box }
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { \prg_replicate:nn { \l_siunitx_table_decimal_int } { 8 } }
+ \hbox_set:Nn \l_siunitx_tmp_box
{
- \_siunitx_ensuremath:n
+ \siunitx_ensuremath:n
{
- \_l_siunitx_output_decimal_tl
- \_l_siunitx_tmpa_tl
+ \l_siunitx_output_decimal_tl
+ \l_siunitx_tmpa_tl
}
}
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
{ \tex_hfil:D }
- \hbox_set_to_wd:Nnn \_l_siunitx_table_pre_box
- { \_l_siunitx_table_integer_dim }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_pre_box
+ { \l_siunitx_table_integer_dim }
\c_group_begin_token
\c_math_shift_token
- \tl_map_function:NN \_l_siunitx_input_decimal_tl
- \_siunitx_table_direct_reserved_aux:N
+ \tl_map_function:NN \l_siunitx_input_decimal_tl
+ \siunitx_table_direct_reserved_aux:N
\tex_hfill:D
}
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_reserved_aux:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_reserved_aux:N #1 {
\char_set_lccode:nn { `\@ } { `#1 }
\char_set_mathcode:nn { `#1 } { 32768 }
\tl_to_lowercase:n { \cs_set_nopar:Npn @ }
{
\c_math_shift_token
\c_group_end_token
- \hbox_set_to_wd:Nnn \_l_siunitx_table_post_box
- { \box_wd:N \_l_siunitx_tmp_box }
+ \hbox_set_to_wd:Nnn \l_siunitx_table_post_box
+ { \box_wd:N \l_siunitx_tmp_box }
\c_group_begin_token
\c_math_shift_token
- \_l_siunitx_output_decimal_tl
+ \l_siunitx_output_decimal_tl
}
}
\char_make_letter:N \@
-\cs_set_protected_nopar:Npn \_siunitx_table_direct_reserved_end: {
+\cs_new_protected_nopar:Npn \siunitx_table_direct_reserved_end: {
\c_math_shift_token
\tex_hfil:D
\c_group_end_token
- \_siunitx_table_align_left:n { \_l_siunitx_table_number_align_skip }
- \box_use:N \_l_siunitx_table_pre_box
- \box_use:N \_l_siunitx_table_post_box
- \_siunitx_table_align_right:n { \_l_siunitx_table_number_align_skip }
+ \siunitx_table_align_left:n { \l_siunitx_table_number_align_skip }
+ \box_use:N \l_siunitx_table_pre_box
+ \box_use:N \l_siunitx_table_post_box
+ \siunitx_table_align_right:n { \l_siunitx_table_number_align_skip }
}
\keys_define:nn { siunitx } {
- redefine-symbols .bool_set:N = \_l_siunitx_redefine_symbols_bool,
+ redefine-symbols .bool_set:N = \l_siunitx_redefine_symbols_bool,
}
\keys_set:nn { siunitx } {
redefine-symbols = true
}
\AtBeginDocument {
- \bool_if:NT \_l_siunitx_redefine_symbols_bool
+ \bool_if:NT \l_siunitx_redefine_symbols_bool
{
\@ifpackageloaded { textcomp }
{
@@ -5298,13 +5298,13 @@
}
}
\keys_define:nn { siunitx } {
- math-angstrom .tl_set:N = \_l_siunitx_angstrom_math_tl,
- math-arcminute .tl_set:N = \_l_siunitx_arcminute_math_tl,
- math-arcsecond .tl_set:N = \_l_siunitx_arcsecond_math_tl,
- math-celsius .tl_set:N = \_l_siunitx_celsius_math_tl,
- math-degree .tl_set:N = \_l_siunitx_degree_math_tl,
- math-micro .tl_set:N = \_l_siunitx_micro_math_tl,
- math-ohm .tl_set:N = \_l_siunitx_ohm_math_tl
+ math-angstrom .tl_set:N = \l_siunitx_angstrom_math_tl,
+ math-arcminute .tl_set:N = \l_siunitx_arcminute_math_tl,
+ math-arcsecond .tl_set:N = \l_siunitx_arcsecond_math_tl,
+ math-celsius .tl_set:N = \l_siunitx_celsius_math_tl,
+ math-degree .tl_set:N = \l_siunitx_degree_math_tl,
+ math-micro .tl_set:N = \l_siunitx_micro_math_tl,
+ math-ohm .tl_set:N = \l_siunitx_ohm_math_tl
}
\keys_set:nn { siunitx } {
math-angstrom = \text { \AA },
@@ -5312,17 +5312,17 @@
math-arcsecond = { } ^ { \prime \prime },
math-celsius = { } ^ { \circ } \kern - \scriptspace \mathrm { C },
math-degree = { } ^ { \circ },
- math-micro = \text { \_c_siunitx_mu_tl },
- math-ohm = \text { \ensuremath { \_c_siunitx_omega_tl } },
+ math-micro = \text { \c_siunitx_mu_tl },
+ math-ohm = \text { \ensuremath { \c_siunitx_omega_tl } },
}
\keys_define:nn { siunitx } {
- text-angstrom .tl_set:N = \_l_siunitx_angstrom_text_tl,
- text-arcminute .tl_set:N = \_l_siunitx_arcminute_text_tl,
- text-arcsecond .tl_set:N = \_l_siunitx_arcsecond_text_tl,
- text-celsius .tl_set:N = \_l_siunitx_celsius_text_tl,
- text-degree .tl_set:N = \_l_siunitx_degree_text_tl,
- text-micro .tl_set:N = \_l_siunitx_micro_text_tl,
- text-ohm .tl_set:N = \_l_siunitx_ohm_text_tl,
+ text-angstrom .tl_set:N = \l_siunitx_angstrom_text_tl,
+ text-arcminute .tl_set:N = \l_siunitx_arcminute_text_tl,
+ text-arcsecond .tl_set:N = \l_siunitx_arcsecond_text_tl,
+ text-celsius .tl_set:N = \l_siunitx_celsius_text_tl,
+ text-degree .tl_set:N = \l_siunitx_degree_text_tl,
+ text-micro .tl_set:N = \l_siunitx_micro_text_tl,
+ text-ohm .tl_set:N = \l_siunitx_ohm_text_tl,
}
\keys_set:nn { siunitx } {
text-angstrom = \AA,
@@ -5331,90 +5331,90 @@
text-celsius =
\ensuremath { { } ^ { \circ } \kern - \scriptspace \text { C } },
text-degree = \ensuremath { { } ^ { \circ } },
- text-micro = \_c_siunitx_mu_tl ,
- text-ohm = \ensuremath { \_c_siunitx_omega_tl },
+ text-micro = \c_siunitx_mu_tl ,
+ text-ohm = \ensuremath { \c_siunitx_omega_tl },
}
-\cs_set_protected:Npn \_siunitx_symbol_new:n #1 {
+\cs_new_protected:Npn \siunitx_symbol_new:n #1 {
\cs_set_protected_nopar:cpn { SIUnitSymbol #1 }
{
\mode_if_math:TF
- { \tl_to_lowercase:n { \use:c { _l_siunitx_ #1 _math_tl } } }
- { \tl_to_lowercase:n { \use:c { _l_siunitx_ #1 _text_tl } } }
- }
-}
-\_siunitx_symbol_new:n { Angstrom }
-\_siunitx_symbol_new:n { Arcminute }
-\_siunitx_symbol_new:n { Arcsecond }
-\_siunitx_symbol_new:n { Celsius }
-\_siunitx_symbol_new:n { Degree }
-\_siunitx_symbol_new:n { Micro }
-\_siunitx_symbol_new:n { Ohm }
-\clist_new:N \_l_siunitx_pgf_link_clist
-\cs_set_protected_nopar:Npn \_siunitx_pgf_link: {
- \clist_clear:N \_l_siunitx_pgf_link_clist
- \tl_if_eq:VnT \_l_siunitx_round_tl { figure }
- {
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist { fixed }
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ { \tl_to_lowercase:n { \use:c { l_siunitx_ #1 _math_tl } } }
+ { \tl_to_lowercase:n { \use:c { l_siunitx_ #1 _text_tl } } }
+ }
+}
+\siunitx_symbol_new:n { Angstrom }
+\siunitx_symbol_new:n { Arcminute }
+\siunitx_symbol_new:n { Arcsecond }
+\siunitx_symbol_new:n { Celsius }
+\siunitx_symbol_new:n { Degree }
+\siunitx_symbol_new:n { Micro }
+\siunitx_symbol_new:n { Ohm }
+\clist_new:N \l_siunitx_pgf_link_clist
+\cs_new_protected_nopar:Npn \siunitx_pgf_link: {
+ \clist_clear:N \l_siunitx_pgf_link_clist
+ \tl_if_eq:VnT \l_siunitx_round_tl { figure }
+ {
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist { fixed }
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ fixed~zerofill = true }
}
- \clist_put_right:Nx \_l_siunitx_pgf_link_clist
- { precision = \int_use:N \_l_siunitx_process_precision_int }
- \clist_put_right:Nx \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nx \l_siunitx_pgf_link_clist
+ { precision = \int_use:N \l_siunitx_process_precision_int }
+ \clist_put_right:Nx \l_siunitx_pgf_link_clist
{
set~decimal~separator =
- { { \exp_not:V \_l_siunitx_output_decimal_tl } }
+ { { \exp_not:V \l_siunitx_output_decimal_tl } }
}
- \clist_put_right:Nx \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nx \l_siunitx_pgf_link_clist
{
set~thousands~separator =
- { \exp_not:V \_l_siunitx_group_sep_tl }
+ { \exp_not:V \l_siunitx_group_sep_tl }
}
- \bool_if:NTF \_l_siunitx_group_four_bool
+ \bool_if:NTF \l_siunitx_group_four_bool
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ min~exponent~for~1000~sep = 3 }
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ min~exponent~for~1000~sep = 4 }
}
\bool_if:nF
{
- \_l_siunitx_group_decimal_bool ||
- \_l_siunitx_group_integer_bool
+ \l_siunitx_group_decimal_bool ||
+ \l_siunitx_group_integer_bool
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ min~exponent~for~1000~sep = 999 }
}
- \bool_if:NTF \_l_siunitx_process_integer_zero_bool
+ \bool_if:NTF \l_siunitx_process_integer_zero_bool
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ skip~0. = false }
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ skip~0. = true }
}
- \tl_if_eq:VnTF \_l_siunitx_process_sign_tl { + }
+ \tl_if_eq:VnTF \l_siunitx_process_sign_tl { + }
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ showpos = true }
}
{
- \clist_put_right:Nn \_l_siunitx_pgf_link_clist
+ \clist_put_right:Nn \l_siunitx_pgf_link_clist
{ showpos = false }
}
\group_begin:
- \cs_set_nopar:Npx \_siunitx_tmp:w
+ \cs_set_nopar:Npx \siunitx_tmp:w
{
\group_end:
\exp_not:N \pgfqkeys
{ /pgf/number~format }
- { \exp_not:V \_l_siunitx_pgf_link_clist }
+ { \exp_not:V \l_siunitx_pgf_link_clist }
}
- \_siunitx_tmp:w
+ \siunitx_tmp:w
}
\msg_set:nnnn { siunitx } { bad-arc-sign }
{ Incorrect~use~of~sign~in~degree-minute-second~angle. }
@@ -5566,26 +5566,26 @@
\token_to_str:N { siunitx \token_to_str:N } \\
in~the~preamble~to~load~the~appropriate~code.
}
-\cs_set_protected_nopar:Npn \DeclareBinaryPrefix #1#2#3 {
- \_siunitx_declare_prefix:Nnnn #1 {#2} { 2 } {#3}
+\cs_new_protected_nopar:Npn \DeclareBinaryPrefix #1#2#3 {
+ \siunitx_declare_prefix:Nnnn #1 {#2} { 2 } {#3}
}
-\cs_set_protected_nopar:Npn \DeclareSIPostPower #1#2 {
- \_siunitx_declare_power_after:Nn #1 {#2}
+\cs_new_protected_nopar:Npn \DeclareSIPostPower #1#2 {
+ \siunitx_declare_power_after:Nn #1 {#2}
}
-\cs_set_protected_nopar:Npn \DeclareSIPrefix #1#2#3 {
- \_siunitx_declare_prefix:Nnnn #1 {#2} { 10 } {#3}
+\cs_new_protected_nopar:Npn \DeclareSIPrefix #1#2#3 {
+ \siunitx_declare_prefix:Nnnn #1 {#2} { 10 } {#3}
}
-\cs_set_protected_nopar:Npn \DeclareSIPrePower #1#2 {
- \_siunitx_declare_power_before:Nn #1 {#2}
+\cs_new_protected_nopar:Npn \DeclareSIPrePower #1#2 {
+ \siunitx_declare_power_before:Nn #1 {#2}
}
-\cs_set_protected_nopar:Npn \DeclareSIQualifier #1#2 {
- \_siunitx_declare_qualifier:Nn #1 {#2}
+\cs_new_protected_nopar:Npn \DeclareSIQualifier #1#2 {
+ \siunitx_declare_qualifier:Nn #1 {#2}
}
-\cs_set_protected_nopar:Npn \DeclareSIUnit #1#2 {
- \_siunitx_declare_unit:Nnn #1 {#2} { }
+\cs_new_protected_nopar:Npn \DeclareSIUnit #1#2 {
+ \siunitx_declare_unit:Nnn #1 {#2} { }
}
-\cs_set_protected_nopar:Npn \DeclareSIUnitWithOptions #1#2#3 {
- \_siunitx_declare_unit:Nnn #1 {#2} {#3}
+\cs_new_protected_nopar:Npn \DeclareSIUnitWithOptions #1#2#3 {
+ \siunitx_declare_unit:Nnn #1 {#2} {#3}
}
\@onlypreamble \DeclareBinaryPrefix
\@onlypreamble \DeclareSIPostPower
@@ -5594,72 +5594,72 @@
\@onlypreamble \DeclareSIQualifier
\@onlypreamble \DeclareSIUnit
\@onlypreamble \DeclareSIUnitWithOptions
-\cs_set_protected_nopar:Npn \SendSettingsToPgf { \_siunitx_pgf_link: }
+\cs_new_protected_nopar:Npn \SendSettingsToPgf { \siunitx_pgf_link: }
\NewDocumentCommand \ang { o > { \SplitArgument { 2 } { ; } } m } {
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_angle_output:nnn #2
+ \siunitx_angle_output:nnn #2
\group_end:
}
\NewDocumentCommand \num { o m } {
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_number_output:n {#2}
+ \siunitx_number_output:n {#2}
\group_end:
}
\NewDocumentCommand \numlist { o > { \SplitList { ; } } m } {
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_list_numbers:n {#2}
+ \siunitx_list_numbers:n {#2}
\group_end:
}
\NewDocumentCommand \numrange { o m m } {
\group_begin:
\IfNoValueF {#1}
{ \keys_set:nn { siunitx } {#1} }
- \_siunitx_range_numbers:nn {#2} {#3}
+ \siunitx_range_numbers:nn {#2} {#3}
\group_end:
}
\NewDocumentCommand \si { o m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_unit_output:nn {#2} { } }
+ { \siunitx_unit_output:nn {#2} { } }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_unit_output:nn {#2} {#1}
+ \siunitx_unit_output:nn {#2} {#1}
}
\group_end:
}
\NewDocumentCommand \SIlist { o > { \SplitList { ; } } m m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_list_units:nnn {#2} {#3} { } }
+ { \siunitx_list_units:nnn {#2} {#3} { } }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_list_units:nnn {#2} {#3} {#1}
+ \siunitx_list_units:nnn {#2} {#3} {#1}
}
\group_end:
}
\NewDocumentCommand \SIrange { o m m m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
+ { \siunitx_range_unit:nnnn {#4} { } {#2} {#3} }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
+ \siunitx_range_unit:nnnn {#4} {#1} {#2} {#3}
}
\group_end:
}
\NewDocumentCommand \SI { o m o m } {
\group_begin:
\IfNoValueTF {#1}
- { \_siunitx_combined:nnnn { } {#2} {#3} {#4} }
+ { \siunitx_combined:nnnn { } {#2} {#3} {#4} }
{
\keys_set:nn { siunitx } {#1}
- \_siunitx_combined:nnnn {#1} {#2} {#3} {#4}
+ \siunitx_combined:nnnn {#1} {#2} {#3} {#4}
}
\group_end:
}
@@ -5674,25 +5674,25 @@
\cs_set_eq:NN \label \use_none:n
\cs_set_eq:NN \index \use_none:n
\cs_set_eq:NN \glossary\use_none:n
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_contents_add:N
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_contents_add:N
}
{ \token_to_str:N \@writefile {#1} {#2} }
}
}
-\cs_set_protected_nopar:Npn \_siunitx_contents_add:N #1 {
+\cs_new_protected_nopar:Npn \siunitx_contents_add:N #1 {
\cs_set_nopar:Npn #1 { \token_to_str:N #1 }
}
-\cs_set_protected_nopar:Npn \_siunitx_contents_bookmarks: {
- \tl_map_function:NN \_l_siunitx_declare_list_tl
- \_siunitx_unit_print_literal_aux:N
+\cs_new_protected_nopar:Npn \siunitx_contents_bookmarks: {
+ \tl_map_function:NN \l_siunitx_declare_list_tl
+ \siunitx_unit_print_literal_aux:N
\msg_redirect_name:nnn { LaTeX / xparse } { redefine-command }
{ none }
- \cs_set_eq:NN \num \_siunitx_bookmark_num:w
- \cs_set_eq:NN \numrange \_siunitx_bookmark_numrange:w
- \cs_set_eq:NN \si \_siunitx_bookmark_si:w
- \cs_set_eq:NN \SI \_siunitx_bookmark_SI:w
- \cs_set_eq:NN \SIrange \_siunitx_bookmark_SIrange:w
+ \cs_set_eq:NN \num \siunitx_bookmark_num:w
+ \cs_set_eq:NN \numrange \siunitx_bookmark_numrange:w
+ \cs_set_eq:NN \si \siunitx_bookmark_si:w
+ \cs_set_eq:NN \SI \siunitx_bookmark_SI:w
+ \cs_set_eq:NN \SIrange \siunitx_bookmark_SIrange:w
\cs_set_nopar:Npn \SIUnitSymbolAngstrom { \AA }
\cs_set_nopar:Npn \SIUnitSymbolArcminute { ' }
\cs_set_nopar:Npn \SIUnitSymbolArcsecond { '' }
@@ -5701,17 +5701,17 @@
\cs_set_nopar:Npn \SIUnitSymbolMicro { \textmu }
\cs_set_nopar:Npn \SIUnitSymbolOhm { [ohm] }
}
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_num:w { o m } {#2}
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_numrange:w { o m m }
- { #2 \_l_siunitx_range_phrase_tl #3 }
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_si:w { o m } {#2}
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_SI:w { o m o m }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_num:w { o m } {#2}
+\DeclareExpandableDocumentCommand \siunitx_bookmark_numrange:w { o m m }
+ { #2 \l_siunitx_range_phrase_tl #3 }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_si:w { o m } {#2}
+\DeclareExpandableDocumentCommand \siunitx_bookmark_SI:w { o m o m }
{ \IfNoValueF {#3} {#3} #2 ~ #4 }
-\DeclareExpandableDocumentCommand \_siunitx_bookmark_SIrange:w
- { o m m m } { #2 ~ #4 \_l_siunitx_range_phrase_tl #3 ~ #4 }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_SIrange:w
+ { o m m m } { #2 ~ #4 \l_siunitx_range_phrase_tl #3 ~ #4 }
\AtBeginDocument {
\@ifpackageloaded { hyperref }
- { \pdfstringdefDisableCommands { \_siunitx_contents_bookmarks: } }
+ { \pdfstringdefDisableCommands { \siunitx_contents_bookmarks: } }
{ }
}
\DeclareSIUnit \kilogram { \kilo \gram }
@@ -5834,7 +5834,7 @@
parse-units = true,
product-units = repeat,
}
- \_siunitx_strict_option:n
+ \siunitx_strict_option:n
{
bracket-numbers ,
detect-italic ,
@@ -5855,46 +5855,46 @@
}
}
}
-\_siunitx_option_deactivate:n { strict }
-\cs_set_protected_nopar:Npn \_siunitx_strict_option:n #1 {
- \clist_map_function:nN {#1} \_siunitx_strict_option_aux:n
+\siunitx_option_deactivate:n { strict }
+\cs_new_protected_nopar:Npn \siunitx_strict_option:n #1 {
+ \clist_map_function:nN {#1} \siunitx_strict_option_aux:n
}
-\cs_set_protected_nopar:Npn \_siunitx_strict_option_aux:n #1 {
+\cs_new_protected_nopar:Npn \siunitx_strict_option_aux:n #1 {
\keys_define:nn { siunitx }
{ #1 .code:n =
- { \msg_warning:nnx { _siunitx} { option-not-available } {#1} }
+ { \msg_warning:nnx { siunitx } { option-not-available } {#1} }
}
}
\keys_define:nn { siunitx } {
load-configurations .code:n =
- { \_siunitx_load_configuration:n {#1} }
+ { \siunitx_load_configuration:n {#1} }
}
-\cs_set_protected:Npn \_siunitx_load_configuration:n #1 {
- \tl_set_rescan:Nnn \_l_siunitx_tmpa_tl
+\cs_new_protected:Npn \siunitx_load_configuration:n #1 {
+ \tl_set_rescan:Nnn \l_siunitx_tmpa_tl
{ \char_make_ignore:N \ } {#1}
- \clist_map_function:NN \_l_siunitx_tmpa_tl
- \_siunitx_load_configuration_aux:n
+ \clist_map_function:NN \l_siunitx_tmpa_tl
+ \siunitx_load_configuration_aux:n
}
-\cs_set_protected:Npn \_siunitx_load_configuration_aux:n #1 {
+\cs_new_protected:Npn \siunitx_load_configuration_aux:n #1 {
\tl_if_empty:nF {#1}
{
\file_if_exist:nTF
- { siunitx- #1 . \_c_siunitx_configuration_ext_tl }
+ { siunitx- #1 . \c_siunitx_configuration_ext_tl }
{
\@onefilewithoptions { siunitx- #1 } [ ] [ ]
- \_c_siunitx_configuration_ext_tl
+ \c_siunitx_configuration_ext_tl
}
{
\msg_error:nnx { siunitx } { unknown-configuration-file } {#1}
}
}
}
-\tl_new:N \_c_siunitx_configuration_ext_tl
-\tl_set:Nn \_c_siunitx_configuration_ext_tl { cfg }
-\file_if_exist:nT { siunitx . \_c_siunitx_configuration_ext_tl }
+\tl_new:N \c_siunitx_configuration_ext_tl
+\tl_set:Nn \c_siunitx_configuration_ext_tl { cfg }
+\file_if_exist:nT { siunitx . \c_siunitx_configuration_ext_tl }
{
\@onefilewithoptions { siunitx } [ ] [ ]
- \_c_siunitx_configuration_ext_tl
+ \c_siunitx_configuration_ext_tl
}
\ProcessKeysOptions { siunitx }
%%