summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/siunitx/siunitx.sty')
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/siunitx.sty942
1 files changed, 704 insertions, 238 deletions
diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
index bbc700ec004..7bfb956c781 100644
--- a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
+++ b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
@@ -14,7 +14,7 @@
%% ---------------------------------------------------------------
%%
\RequirePackage{expl3}
-\ProvidesExplPackage {siunitx} {2011/04/04} {2.1p}
+\ProvidesExplPackage {siunitx} {2011/04/13} {2.2}
{A comprehensive (SI) units package}
\cs_if_exist:NTF \msg_set:nnnn
{
@@ -70,7 +70,6 @@
\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}
@@ -81,6 +80,7 @@
\cs_new_protected:Npn \siunitx_error:n #1 {
\siunitx_error:nxx {#1} { } { }
}
+\bool_new:N \l_siunitx_error_bool
\AtBeginDocument {
\cs_if_free:cT { T@TS1 }
{
@@ -94,7 +94,8 @@
\@ifpackageloaded { fontspec }
{
\int_const:Nn \c_siunitx_minus_int { 8722 }
- \tl_set:Nn \c_siunitx_minus_tl { \char \c_siunitx_minus_int }
+ \tl_set:Nn \c_siunitx_minus_tl
+ { \tex_char:D \c_siunitx_minus_int }
}
{ }
}
@@ -102,7 +103,10 @@
\DeclareTextSymbolDefault \c_siunitx_mu_tl { TS1 }
\AtBeginDocument {
\@ifpackageloaded { fontspec }
- { \tl_set:Nx \c_siunitx_mu_tl { \char 181 } }
+ {
+ \int_const:Nn \c_siunitx_mu_int { 181 }
+ \tl_set:Nn \c_siunitx_mu_tl { \tex_char:D \c_siunitx_mu_int }
+ }
{ }
}
\tl_new:N \c_siunitx_omega_tl
@@ -308,7 +312,6 @@
}
}
}
-\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}
}
@@ -323,8 +326,10 @@
\clist_map_function:NN \l_siunitx_option_deactivate_clist
\siunitx_option_deactivate_aux:n
}
+\clist_new:N \l_siunitx_option_deactivate_clist
\cs_generate_variant:Nn \prop_del:Nn { c }
\cs_generate_variant:Nn \prop_put:Nnn { cnV }
+\cs_generate_variant:Nn \tl_if_in:NnTF { NV }
\cs_generate_variant:Nn \tl_replace_all_in:Nnn { NnV }
\group_begin:
\tl_map_inline:nn { \M \A \C \R \O }
@@ -400,17 +405,17 @@
detect-all .default:n = true,
detect-all / false .meta:n =
{
- detect-family = false,
- detect-mode = false,
- detect-shape = false,
- detect-weight = false
+ detect-family = false ,
+ detect-mode = false ,
+ detect-shape = false ,
+ detect-weight = false ,
},
detect-all / true .meta:n =
{
- detect-family = true,
- detect-mode = true,
- detect-shape = true,
- detect-weight = true
+ detect-family = true ,
+ detect-mode = true ,
+ detect-shape = true ,
+ detect-weight = true ,
},
detect-display-math .bool_set:N =
\l_siunitx_detect_display_math_bool,
@@ -754,8 +759,12 @@
}
}
\AtBeginDocument {
- \@ifpackageloaded { color } { }
- { \cs_set_eq:NN \siunitx_print_color: \scan_stop: }
+ \@ifpackageloaded { color }
+ { \cs_new_eq:NN \siunitx_textcolor:n \textcolor }
+ {
+ \cs_set_eq:NN \siunitx_print_color: \scan_stop:
+ \cs_new_eq:NN \siunitx_textcolor:n \use:n
+ }
}
\group_begin:
\char_set_lccode:nn { `\@ } { `\_ }
@@ -766,6 +775,8 @@
\group_end:
\cs_set_protected_nopar:Npn \siunitx_print_math:
{
+ \cs_set_eq:NN \PrintSubscript @
+ \cs_set_eq:NN \PrintSuperscript ^
\ensuremath
{
\use:c
@@ -778,6 +789,8 @@
}
\cs_set_protected_nopar:Npn \siunitx_print_text:
{
+ \cs_set_eq:NN \PrintSubscript \siunitx_print_text_sub:n
+ \cs_set_eq:NN \PrintSuperscript \siunitx_print_text_super: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 { ! }
@@ -910,18 +923,31 @@
\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
+\int_new:N \l_siunitx_number_mantissa_length_int
+\tl_new:N \l_siunitx_number_uncert_tl
+\int_new:N \l_siunitx_number_uncert_length_int
+\tl_new:N \l_siunitx_input_uncert_sign_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-comparators .tl_set:N = \l_siunitx_input_comparator_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-comparators .tl_set:N = \l_siunitx_input_comparator_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-uncertainty-signs .code:n =
+ {
+ \tl_set:Nn \l_siunitx_input_uncert_sign_tl {#1}
+ \tl_map_inline:nn {#1}
+ {
+ \tl_if_in:NnF \l_siunitx_input_sign_tl {##1}
+ { \tl_put_right:Nn \l_siunitx_input_sign_tl {##1} }
+ }
+ } ,
}
\keys_set:nn { siunitx } { % (
input-close-uncertainty = ),
@@ -934,6 +960,7 @@
input-protect-tokens = \approx\ge\geq\gg\le\leg\ll\mp\pi\pm\sim,
input-signs = +-\mp\pm,
input-symbols = \pi,
+ input-uncertainty-signs = \pm,
}
\cs_new_protected:Npn \siunitx_number_in_parse:n #1 {
\tl_if_empty:nF {#1}
@@ -1023,11 +1050,11 @@
\tl_replace_all_in:Nnn #1 { >> } { \gg }
\tl_replace_all_in:Nnn #1 { >= } { \ge }
}
-\cs_new_protected:Npn \siunitx_number_in_parse_error:nx #1#2 {
+\cs_new_protected:Npn \siunitx_number_in_parse_error:nn #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:nn { 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_relation:N #1 {
@@ -1045,7 +1072,7 @@
\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:nn
{ restricted-number } {#1}
}
{
@@ -1067,7 +1094,7 @@
{ restricted-number } \l_siunitx_number_arg_tl
}
{
- \siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nn
{ restricted-number } {#1}
}
}
@@ -1093,7 +1120,7 @@
\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:nn
{ duplicate-exponent-token } { \token_to_str:N #1 }
}
{
@@ -1116,7 +1143,7 @@
\l_siunitx_number_arg_tl
}
{
- \siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nn
{ invalid-token-in-number } {#1}
}
}
@@ -1156,14 +1183,14 @@
{
\tl_if_in:NnTF \l_siunitx_input_uncert_close_tl {#1}
{
- \siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nn
{ misplaced-uncertainty-token } {#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:nn
{ invalid-token-in-number } {#1}
}
}
@@ -1246,7 +1273,7 @@
\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:nn
{ duplicate-complex-root-token } { \token_to_str:N #1 }
}
{
@@ -1311,8 +1338,8 @@
\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 }
- { \token_to_str:N #1 }
+ \siunitx_number_in_parse_error:nn { duplicate-decimal-token }
+ {#1}
}
{
\bool_set_true:N \l_siunitx_number_in_decimal_bool
@@ -1357,7 +1384,7 @@
\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:nn { duplicate-exponent-token }
{ \token_to_str:N #1 }
}
{
@@ -1380,13 +1407,13 @@
{
\bool_if:NTF \l_siunitx_number_in_exponent_bool
{
- \siunitx_number_in_parse_error:nx { misplaced-sign-token }
+ \siunitx_number_in_parse_error:nn { misplaced-sign-token }
{#1}
}
{
\bool_if:NTF \l_siunitx_number_in_complex_bool
{
- \siunitx_number_in_parse_error:nx
+ \siunitx_number_in_parse_error:nn
{ misplaced-sign-token } {#1}
}
{
@@ -1485,8 +1512,19 @@
{
\prop_get:NnN \l_siunitx_number_in_prop { complex-sign }
\l_siunitx_tmpa_tl
- \siunitx_error:nx { misplaced-sign-token }
- { \exp_not:V \l_siunitx_tmpa_tl }
+ \tl_if_in:NVTF \l_siunitx_input_uncert_sign_tl \l_siunitx_tmpa_tl
+ {
+ \prop_if_in:NnTF \l_siunitx_number_in_prop { uncertainty }
+ {
+ \siunitx_error:nx { misplaced-sign-token }
+ { \exp_not:n {#1} }
+ }
+ { \siunitx_number_in_complex_to_uncert:n {#1} }
+ }
+ {
+ \siunitx_error:nx { misplaced-sign-token }
+ { \exp_not:n {#1} }
+ }
}
\prop_get:NnN \l_siunitx_number_in_prop { mantissa-sign }
\l_siunitx_tmpa_tl
@@ -1500,6 +1538,128 @@
}
}
}
+\cs_new_protected_nopar:Npn \siunitx_number_in_complex_to_uncert:n #1 {
+ \prop_del:Nn \l_siunitx_number_in_prop { complex }
+ \prop_del:Nn \l_siunitx_number_in_prop { complex-decimal-marker }
+ \prop_del:Nn \l_siunitx_number_in_prop { complex-sign }
+ \prop_put:Nnn \l_siunitx_number_in_prop { uncertainty } { true }
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-integer }
+ \l_siunitx_number_uncert_tl
+ \quark_if_no_value:NTF \l_siunitx_number_uncert_tl
+ { \siunitx_number_in_complex_to_uncert_dec:n {#1} }
+ {
+ \tl_if_single:NTF \l_siunitx_number_uncert_tl
+ {
+ \int_compare:nNnTF
+ { \l_siunitx_number_uncert_tl } = { \c_zero }
+ { \siunitx_number_in_complex_to_uncert_dec:n {#1} }
+ { \siunitx_number_in_complex_to_uncert_int: }
+ }
+ { \siunitx_number_in_complex_to_uncert_int: }
+ }
+ \prop_del:Nn \l_siunitx_number_in_prop { complex-integer }
+ \prop_del:Nn \l_siunitx_number_in_prop { complex-decimal }
+}
+\cs_new_protected_nopar:Npn \siunitx_number_in_complex_to_uncert_int: {
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NT \l_siunitx_tmpa_tl
+ { \tl_clear:N \l_siunitx_tmpa_tl }
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-decimal }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \siunitx_number_in_complex_to_uncert_pad:
+}
+\cs_new_protected_nopar:Npn \siunitx_number_in_complex_to_uncert_dec:n
+ #1
+ {
+ \tl_clear:N \l_siunitx_number_uncert_tl
+ \prop_get:NnN \l_siunitx_number_in_prop { complex-decimal }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NTF \l_siunitx_tmpa_tl
+ {
+ \siunitx_error:nx { misplaced-sign-token }
+ { \exp_not:n {#1} }
+ }
+ {
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-decimal }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \tl_map_function:NN
+ \l_siunitx_tmpa_tl
+ \siunitx_number_in_complex_to_uncert_dec_loop:N
+ \siunitx_number_in_complex_to_uncert_pad:
+ }
+ }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_in_complex_to_uncert_dec_loop:N #1
+ {
+ \str_if_eq:nnTF {#1} { 0 }
+ {
+ \tl_set:Nf \l_siunitx_tmpa_tl
+ { \tl_tail:V \l_siunitx_tmpa_tl }
+ \tl_if_empty:NF \l_siunitx_tmpb_tl
+ {
+ \tl_set:Nf \l_siunitx_tmpb_tl
+ { \tl_tail:V \l_siunitx_tmpb_tl }
+ }
+ }
+ { \tl_map_break: }
+ }
+\cs_new_protected_nopar:Npn \siunitx_number_in_complex_to_uncert_pad:
+ {
+ \int_set:Nn \l_siunitx_number_uncert_length_int
+ { \tl_elt_count:N \l_siunitx_tmpa_tl }
+ \int_set:Nn \l_siunitx_number_mantissa_length_int
+ { \tl_elt_count:N \l_siunitx_tmpb_tl }
+ \int_compare:nNnTF
+ { \l_siunitx_number_mantissa_length_int }
+ > { \l_siunitx_number_uncert_length_int }
+ {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ {
+ \exp_not:V \l_siunitx_tmpa_tl
+ \prg_replicate:nn
+ {
+ \l_siunitx_number_mantissa_length_int
+ - \l_siunitx_number_uncert_length_int
+ }
+ { 0 }
+ }
+ }
+ {
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-decimal }
+ \l_siunitx_tmpb_tl
+ \quark_if_no_value:NT \l_siunitx_tmpb_tl
+ { \tl_clear:N \l_siunitx_tmpb_tl }
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ {
+ \exp_not:V \l_siunitx_tmpb_tl
+ \prg_replicate:nn
+ {
+ \l_siunitx_number_uncert_length_int
+ - \l_siunitx_number_mantissa_length_int
+ }
+ { 0 }
+ }
+ \tl_if_empty:NF \l_siunitx_tmpb_tl
+ {
+ \prop_put:NnV \l_siunitx_number_in_prop { mantissa-decimal }
+ \l_siunitx_tmpb_tl
+ \prop_if_in:NnF \l_siunitx_number_in_prop
+ { mantissa-decimal-marker }
+ {
+ \prop_put:Nnn \l_siunitx_number_in_prop
+ { mantissa-decimal-marker } { . }
+ }
+ }
+ }
+ \tl_put_right:NV \l_siunitx_number_uncert_tl \l_siunitx_tmpa_tl
+ \prop_put:NnV \l_siunitx_number_in_prop { mantissa-uncertainty }
+ \l_siunitx_number_uncert_tl
+ }
\int_new:N \l_siunitx_round_int
\tl_new:N \l_siunitx_round_tl
\bool_new:N \l_siunitx_round_bool
@@ -1512,12 +1672,15 @@
\tl_new:N \l_siunitx_uncertainty_decimal_tl
\tl_new:N \l_siunitx_uncertainty_integer_tl
\bool_new:N \l_siunitx_process_fixed_bool
+\bool_new:N \l_siunitx_process_engineering_bool
\bool_new:N \l_siunitx_process_scientific_bool
\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,
fixed-exponent .int_set:N = \l_siunitx_process_fixed_int,
+ minimum-integer-digits .int_set:N =
+ \l_siunitx_process_integer_min_int,
retain-explicit-plus .bool_set:N = \l_siunitx_process_plus_tl,
retain-unity-mantissa .bool_set:N =
\l_siunitx_process_unity_mantissa_bool,
@@ -1538,19 +1701,29 @@
/ false .code:n =
{
\bool_set_false:N \l_siunitx_process_fixed_bool
+ \bool_set_false:N \l_siunitx_process_engineering_bool
\bool_set_false:N \l_siunitx_process_scientific_bool
},
scientific-notation
+ / engineering .code:n =
+ {
+ \bool_set_false:N \l_siunitx_process_fixed_bool
+ \bool_set_true:N \l_siunitx_process_engineering_bool
+ \bool_set_true:N \l_siunitx_process_scientific_bool
+ },
+ scientific-notation
/ fixed .code:n =
{
\bool_set_true:N \l_siunitx_process_fixed_bool
+ \bool_set_false:N \l_siunitx_process_engineering_bool
\bool_set_false:N \l_siunitx_process_scientific_bool
},
scientific-notation
/ true .code:n =
{
\bool_set_false:N \l_siunitx_process_fixed_bool
- \bool_set_true:N \l_siunitx_process_scientific_bool
+ \bool_set_false:N \l_siunitx_process_engineering_bool
+ \bool_set_true:N \l_siunitx_process_scientific_bool
},
}
\keys_set:nn { siunitx } {
@@ -1576,6 +1749,7 @@
\prop_if_in:NnF \l_siunitx_number_in_prop { uncertainty }
{ \siunitx_number_process_round: }
}
+ \siunitx_number_process_integer_digits:
}
\cs_new_protected_nopar:Npn \siunitx_number_process_exponent: {
\bool_if:NF \l_siunitx_process_zero_exponent_bool
@@ -1894,8 +2068,32 @@
}
\cs_new_protected_nopar:Npn \siunitx_number_process_fixed_small_aux:w
{ }
-\tl_new:N \c_siunitx_unity_tl
-\tl_set:Nn \c_siunitx_unity_tl { 1 }
+\cs_new_protected_nopar:Npn \siunitx_number_process_integer_digits: {
+ \int_compare:nNnT
+ { \l_siunitx_process_integer_min_int } > { \c_zero }
+ {
+ \prop_get:NnN \l_siunitx_number_in_prop { mantissa-integer }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ {
+ \int_set:Nn \l_siunitx_tmp_int
+ {
+ \l_siunitx_process_integer_min_int
+ - \tl_elt_count:N \l_siunitx_tmpa_tl
+ }
+ \int_compare:nNnT { \l_siunitx_tmp_int } > { \c_zero }
+ {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ {
+ \prg_replicate:nn { \l_siunitx_tmp_int } { 0 }
+ \exp_not:V \l_siunitx_tmpa_tl
+ }
+ \prop_put:NnV \l_siunitx_number_in_prop
+ { mantissa-integer } \l_siunitx_tmpa_tl
+ }
+ }
+ }
+}
\cs_new_protected_nopar:Npn \siunitx_number_process_mantissa: {
\bool_if:NF \l_siunitx_process_unity_mantissa_bool
{
@@ -1920,6 +2118,8 @@
}
}
}
+\tl_new:N \c_siunitx_unity_tl
+\tl_set:Nn \c_siunitx_unity_tl { 1 }
\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
@@ -2180,6 +2380,13 @@
\l_siunitx_tmpb_tl
\quark_if_no_value:NT \l_siunitx_tmpb_tl
{ \tl_set:Nn \l_siunitx_tmpb_tl { 0 } }
+ \group_begin:
+ \prop_get:NnN \l_siunitx_number_in_prop { exponent-sign }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \l_siunitx_tmpa_tl
+ { \tl_put_left:NV \l_siunitx_tmpb_tl \l_siunitx_tmpa_tl }
+ \exp_args:NNNV \group_end:
+ \tl_set:Nn \l_siunitx_tmpb_tl \l_siunitx_tmpb_tl
\tl_set:Nx \l_siunitx_tmpa_tl
{ \l_siunitx_tmpa_tl { \l_siunitx_tmpb_tl } }
\exp_last_unbraced:NV \siunitx_number_process_scientific_aux_i:nnn
@@ -2198,34 +2405,10 @@
{
\int_compare:nNnTF {#1} > { 0 }
{
- \prop_put:Nnn \l_siunitx_number_in_prop
- { mantissa-integer } {#1}
-
- \tl_if_empty:nTF {#2}
- {
- \prop_del:Nn \l_siunitx_number_in_prop
- { mantissa-decimal }
- \prop_del:Nn \l_siunitx_number_in_prop
- { mantissa-decimal-marker }
- }
- {
- \prop_put:Nnn \l_siunitx_number_in_prop
- { mantissa-decimal } {#2}
- \prop_if_in:NnF \l_siunitx_number_in_prop
- { mantissa-decimal-marker }
- {
- \prop_put:Nnn \l_siunitx_number_in_prop
- { mantissa-decimal-marker } { . }
- }
- }
- \int_compare:nNnF {#3} = { 0 }
- {
- \int_set:Nn \l_siunitx_tmp_int {#3}
- \prop_put:Nnn \l_siunitx_number_in_prop { exponent }
- { true }
- \prop_put:NnV \l_siunitx_number_in_prop
- { exponent-integer } \l_siunitx_tmp_int
- }
+ \bool_if:NTF \l_siunitx_process_engineering_bool
+ { \siunitx_number_process_scientific_engineering:nnn }
+ { \siunitx_number_process_scientific_store:nnn }
+ {#1} {#2} {#3}
}
{
\siunitx_number_process_scientific_small:wn
@@ -2247,9 +2430,132 @@
\l_siunitx_tmpa_tl
}
\cs_new_protected_nopar:Npn
- \siunitx_number_process_scientific_small:wn #1#2 \q_stop #3 {
- \siunitx_number_process_scientific_aux_ii:nnn {#1} {#2} { #3 - 1 }
-}
+ \siunitx_number_process_scientific_small:wn #1#2 \q_stop #3
+ { \siunitx_number_process_scientific_aux_ii:nnn {#1} {#2} { #3 - 1 } }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_scientific_store:nnn #1#2#3
+ {
+ \prop_put:Nnn \l_siunitx_number_in_prop { mantissa-integer } {#1}
+ \tl_if_empty:nTF {#2}
+ {
+ \prop_del:Nn \l_siunitx_number_in_prop { mantissa-decimal }
+ \prop_del:Nn \l_siunitx_number_in_prop
+ { mantissa-decimal-marker }
+ }
+ {
+ \prop_put:Nnn \l_siunitx_number_in_prop
+ { mantissa-decimal } {#2}
+ \prop_if_in:NnF \l_siunitx_number_in_prop
+ { mantissa-decimal-marker }
+ {
+ \prop_put:Nnn \l_siunitx_number_in_prop
+ { mantissa-decimal-marker } { . }
+ }
+ }
+ \int_compare:nNnTF {#3} = { 0 }
+ {
+ \prop_del:Nn \l_siunitx_number_in_prop { exponent }
+ \prop_del:Nn \l_siunitx_number_in_prop { exponent-sign }
+ \prop_del:Nn \l_siunitx_number_in_prop { exponent-integer }
+ }
+ {
+ \prop_put:Nnn \l_siunitx_number_in_prop { exponent } { true }
+ \int_compare:nNnTF {#3} > { 0 }
+ {
+ \int_set:Nn \l_siunitx_tmp_int {#3}
+ \prop_put:NnV \l_siunitx_number_in_prop
+ { exponent-integer } \l_siunitx_tmp_int
+ \prop_del:Nn \l_siunitx_number_in_prop { exponent-sign }
+ }
+ {
+ \int_set:Nn \l_siunitx_tmp_int { 0 - (#3) }
+ \prop_put:NnV \l_siunitx_number_in_prop
+ { exponent-integer } \l_siunitx_tmp_int
+ \prop_put:Nnn \l_siunitx_number_in_prop { exponent-sign }
+ { - }
+ }
+ }
+ }
+\cs_new_protected_nopar:Npn
+ \siunitx_number_process_scientific_engineering:nnn #1#2#3
+ {
+ \use:c
+ {
+ siunitx_number_process_scientific_engineering_
+ \int_compare:nNnTF {#3} < { 0 }
+ {
+ \prg_case_int:nnn { \int_mod:nn { 0 - (#3) } { 3 } }
+ {
+ { 1 } { 2 }
+ { 2 } { 1 }
+ }
+ { 0 }
+ }
+ { \int_mod:nn {#3} { 3 } }
+ :nnn
+ }
+ {#1} {#2} {#3}
+ }
+\cs_new_eq:cN
+ { siunitx_number_process_scientific_engineering_0:nnn }
+ \siunitx_number_process_scientific_store:nnn
+\cs_new_protected_nopar:cpn
+ { siunitx_number_process_scientific_engineering_1:nnn } #1#2#3
+ {
+ \tl_if_empty:nTF {#2}
+ {
+ \siunitx_number_process_scientific_store:nnn { #1 0 } { }
+ { #3 - 1 }
+ }
+ {
+ \use:c
+ { siunitx_number_process_scientific_engineering_1:nw }
+ {#1} #2 \q_stop {#3}
+ }
+ }
+\cs_new_protected_nopar:cpn
+ { siunitx_number_process_scientific_engineering_1:nw }
+ #1#2#3 \q_stop #4
+ {
+ \siunitx_number_process_scientific_store:nnn
+ {#1#2} {#3} { #4 - 1 }
+ }
+\cs_new_protected_nopar:cpn
+ { siunitx_number_process_scientific_engineering_2:nnn } #1#2#3
+ {
+ \tl_if_empty:nTF {#2}
+ {
+ \siunitx_number_process_scientific_store:nnn { #1 00 } { }
+ { #3 - 2 }
+ }
+ {
+ \use:c
+ { siunitx_number_process_scientific_engineering_2_i:nw }
+ {#1} #2 \q_stop {#3}
+ }
+ }
+\cs_new_protected_nopar:cpn
+ { siunitx_number_process_scientific_engineering_2_i:nw }
+ #1#2#3 \q_stop #4
+ {
+ \tl_if_empty:nTF {#3}
+ {
+ \siunitx_number_process_scientific_store:nnn { #1#2 0 } { }
+ { #4 - 2 }
+ }
+ {
+ \use:c
+ { siunitx_number_process_scientific_engineering_2_ii:nw }
+ {#1#2} #3 \q_stop {#4}
+ }
+ }
+\cs_new_protected_nopar:cpn
+ { siunitx_number_process_scientific_engineering_2_ii:nw }
+ #1#2#3 \q_stop #4
+ {
+ \siunitx_number_process_scientific_store:nnn { #1#2 } {#3}
+ { #4 - 2 }
+ }
\cs_new_protected_nopar:Npn \siunitx_number_process_sign: {
\bool_if:NF \l_siunitx_process_plus_tl
{
@@ -2296,8 +2602,6 @@
}
}
}
-\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
@@ -2307,6 +2611,8 @@
\prop_put:Nnn \l_siunitx_number_in_prop { #1 -had-sign } { true }
}
}
+\tl_new:N \c_siunitx_plus_tl
+\tl_set:Nn \c_siunitx_plus_tl { + }
\cs_new_protected_nopar:Npn \siunitx_number_process_uncertainty: {
\clist_map_function:nN { mantissa , complex }
\siunitx_number_process_uncertainty_aux:n
@@ -2408,6 +2714,8 @@
\tl_new:N \l_siunitx_output_decimal_tl
\bool_new:N \l_siunitx_complex_after_bool
\keys_define:nn { siunitx } {
+ bracket-negative-numbers .bool_set:N =
+ \l_siunitx_negative_bracket_bool ,
bracket-numbers .bool_set:N = \l_siunitx_brackets_bool,
close-bracket .tl_set:N = \l_siunitx_bracket_close_tl,
complex-root-position .choice:,
@@ -2447,6 +2755,7 @@
{
\tl_set:Nn \l_siunitx_output_decimal_tl { {#1} }
},
+ output-exponent-marker .tl_set:N = \l_siunitx_output_exponent_tl,
output-open-uncertainty .tl_set:N =
\l_siunitx_output_uncert_open_tl,
separate-uncertainty .bool_set:N = \l_siunitx_uncert_sep_bool,
@@ -2637,17 +2946,20 @@
\siunitx_number_format_brackets:n { mantissa }
\prop_get:NnN \l_siunitx_number_out_prop { mantissa-result }
\l_siunitx_tmpa_tl
- \bool_if:NTF \l_siunitx_tight_bool
+ \tl_if_empty:NT \l_siunitx_output_exponent_tl
{
- \tl_set:Nx \l_siunitx_tmpb_tl
- { { \exp_not:V \l_siunitx_exponent_product_tl } }
- }
- {
- \tl_set:Nx \l_siunitx_tmpb_tl
- { { } \exp_not:V \l_siunitx_exponent_product_tl { } }
+ \bool_if:NTF \l_siunitx_tight_bool
+ {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { \exp_not:V \l_siunitx_exponent_product_tl } }
+ }
+ {
+ \tl_set:Nx \l_siunitx_tmpb_tl
+ { { } \exp_not:V \l_siunitx_exponent_product_tl { } }
+ }
+ \siunitx_tl_put_right_math:NV \l_siunitx_tmpa_tl
+ \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
@@ -2659,9 +2971,15 @@
\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
+ \tl_if_empty:NTF \l_siunitx_output_exponent_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
+ }
+ {
+ \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_output_exponent_tl
+ }
\prop_put:NnV \l_siunitx_number_out_prop { exponent-result }
\l_siunitx_tmpa_tl
}
@@ -2916,32 +3234,54 @@
\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 } }
- }
- \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
+ \bool_if:NTF \l_siunitx_negative_bracket_bool
{
- \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
+ \str_if_eq:VnTF \l_siunitx_tmpa_tl { - }
+ { \siunitx_number_format_sign_negative_brackets:n {#1} }
+ { \siunitx_number_format_sign_aux:n {#1} }
}
- }
+ { \siunitx_number_format_sign_aux:n {#1} }
+ }
}
}
+\cs_new_protected_nopar:Npn \siunitx_number_format_sign_aux:n #1 {
+ \bool_if:NT \l_siunitx_tight_bool
+ {
+ \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_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_new_protected_nopar:Npn
+ \siunitx_number_format_sign_negative_brackets:n #1
+ {
+ \siunitx_number_format_brackets_aux:n {#1}
+ \prop_get:NnN \l_siunitx_number_out_prop { #1 }
+ \l_siunitx_tmpa_tl
+ \quark_if_no_value:NF \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
+ \prop_put:NnV \l_siunitx_number_out_prop { #1 }
+ \l_siunitx_tmpa_tl
+ }
+ }
\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 }
@@ -3311,7 +3651,7 @@
\cs_new_protected_nopar:Npn \siunitx_number_output_single_aux: {
\siunitx_unit_output_pre_print:
\quark_if_no_value:NTF \l_siunitx_number_out_tl
- { \tl_clear:N \l_siunitx_number_unit_separator_tl }
+ { \tl_clear:N \l_siunitx_number_unit_product_tl }
{ \siunitx_print:nV { number } \l_siunitx_number_out_tl }
\siunitx_unit_output_print:
}
@@ -3335,8 +3675,10 @@
\l_siunitx_angle_astronomy_bool ,
arc-separator .tl_set:N =
\l_siunitx_angle_arc_separator_tl ,
+ number-angle-product .tl_set:N =
+ \l_siunitx_angle_unit_product_tl ,
number-angle-separator .tl_set:N =
- \l_siunitx_angle_unit_separator_tl ,
+ \l_siunitx_angle_unit_product_tl ,
}
\cs_new_protected:Npn \siunitx_angle_output:nnn #1#2#3 {
\siunitx_angle_init:
@@ -3368,8 +3710,8 @@
\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
+ \tl_set_eq:NN \l_siunitx_number_unit_product_tl
+ \l_siunitx_angle_unit_product_tl
\cs_set_eq:NN \siunitx_number_in_parse_more:N
\siunitx_number_in_parse_restricted:N
}
@@ -3381,7 +3723,6 @@
{ \siunitx_angle_direct_aux_i:nnn { } }
}
{ \siunitx_angle_direct_aux_i:nnn {#1} }
-
}
\cs_new_protected:Npn \siunitx_angle_direct_aux_i:nnn #1#2 {
\tl_if_empty:nTF {#2}
@@ -3391,7 +3732,6 @@
{ \siunitx_angle_direct_aux_ii:nnn {#1} { } }
}
{ \siunitx_angle_direct_aux_ii:nnn {#1} {#2} }
-
}
\cs_new_protected:Npn \siunitx_angle_direct_aux_ii:nnn #1#2#3 {
\tl_if_empty:nTF {#3}
@@ -3648,7 +3988,8 @@
}
}
\tl_new:N \l_siunitx_declare_list_tl
-\tl_set:Nn \l_siunitx_declare_list_tl { \of \per \raiseto \tothe }
+\tl_set:Nn \l_siunitx_declare_list_tl
+ { \of \highlight \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 }
@@ -3680,6 +4021,13 @@
\cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
{ \siunitx_unit_parse_qualifier:n {#2} }
}
+\cs_new_protected:Npn \siunitx_declare_special: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
+ { #2 {##1} }
+ \cs_set:cpn { siunitx_ \token_to_str:N #1 _function:w }
+ { \siunitx_unit_parse_special:n {#2} }
+}
\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}
@@ -3731,20 +4079,35 @@
\cs_new_protected:cpn { siunitx_ \token_to_str:N \of _function:w } #1 {
\siunitx_unit_parse_qualifier:n {#1}
}
+\AtBeginDocument {
+ \cs_if_exist:NT \cancel
+ {
+ \cs_set_eq:NN \siunitx_cancel:n \cancel
+ \tl_put_right:Nn \l_siunitx_declare_list_tl { \cancel }
+ \cs_new_protected:cpn
+ { siunitx_ \token_to_str:N \cancel _function:w }
+ { \siunitx_unit_parse_special:n { \siunitx_cancel:n } }
+ }
+}
+\cs_new_protected:cpn
+ { siunitx_ \token_to_str:N \highlight _literal:w } #1
+ { \siunitx_textcolor:n {#1} }
+\cs_new_protected:cpn
+ { siunitx_ \token_to_str:N \highlight _function:w } #1
+ { \siunitx_unit_parse_special:n { \siunitx_textcolor:n {#1} } }
\keys_define:nn { siunitx } {
- 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
+ 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 ,
}
\siunitx_option_deactivate:n {
- free-standing-units,
- overwrite-functions,
- space-before-unit,
- unit-optional-argument,
- use-xspace
+ free-standing-units ,
+ overwrite-functions ,
+ space-before-unit ,
+ unit-optional-argument ,
+ use-xspace ,
}
\AtBeginDocument {
\bool_if:NTF \l_siunitx_create_free_bool
@@ -3795,7 +4158,7 @@
\exp_not:n
{
\siunitx_ensuremath:n
- { \l_siunitx_number_unit_separator_tl }
+ { \l_siunitx_number_unit_product_tl }
}
}
\exp_not:n { \siunitx_unit_output:nn {#1} { } }
@@ -3832,7 +4195,7 @@
\exp_not:n
{
\siunitx_ensuremath:n
- { \l_siunitx_number_unit_separator_tl }
+ { \l_siunitx_number_unit_product_tl }
}
}
\exp_not:n { \siunitx_unit_output:nn {#1} { } }
@@ -3903,6 +4266,7 @@
\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 \highlight \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}
@@ -3991,6 +4355,11 @@
{ 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_special:n #1 {
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { special- \int_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_unit:Nn #1#2 {
\tl_set:Nx \l_siunitx_tmpa_tl
{ prefix- \int_use:N \l_siunitx_unit_int }
@@ -4044,7 +4413,8 @@
\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 ,
+ inter-unit-product .tl_set:N = \l_siunitx_unit_product_tl ,
+ inter-unit-separator .tl_set:N = \l_siunitx_unit_product_tl ,
per-mode .choice:,
per-mode / fraction .code:n =
{
@@ -4109,7 +4479,7 @@
}
\keys_set:nn { siunitx } {
bracket-unit-denominator = true,
- inter-unit-separator = \,,
+ inter-unit-product = \,,
per-mode = reciprocal,
per-symbol = /,
power-font = number,
@@ -4117,14 +4487,6 @@
}
\cs_new_protected_nopar:Npn \siunitx_unit_format: {
\siunitx_unit_format_init:
- \int_compare:nNnT { \l_siunitx_unit_int } = { 1 }
- {
- \str_if_eq:VnT \l_siunitx_per_mode_tl { symbol }
- {
- \prop_if_in:NnT \l_siunitx_unit_prop { per-1 }
- { \bool_set_true:N \l_siunitx_omit_unit_space_bool }
- }
- }
\int_while_do:nNnn { \l_siunitx_unit_int } > { 0 }
{
\siunitx_unit_format_prefix:
@@ -4169,17 +4531,37 @@
\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
+ \l_siunitx_unit_product_tl
}
}
{
\siunitx_tl_put_right_math:NV \l_siunitx_unit_current_tl
- \l_siunitx_unit_separator_tl
+ \l_siunitx_unit_product_tl
}
}
- \tl_put_left:cV { l_siunitx_unit #1 _tl } \l_siunitx_unit_current_tl
+ \tl_set:Nx \l_siunitx_tmpa_tl
+ { special- \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_put_left:cV { l_siunitx_unit #1 _tl }
+ \l_siunitx_unit_current_tl
+ }
+ {
+ \tl_put_left:cx { l_siunitx_unit #1 _tl }
+ {
+ \exp_not:V \l_siunitx_tmpa_tl
+ { \exp_not:V \l_siunitx_unit_current_tl }
+ }
+ }
}
\cs_new_protected_nopar:Npn \siunitx_unit_format_fraction: {
+ \int_compare:nNnT { \l_siunitx_unit_numerator_int } = { 0 }
+ {
+ \str_if_eq:VnT \l_siunitx_per_mode_tl { symbol }
+ { \bool_set_true:N \l_siunitx_omit_unit_space_bool }
+ }
\int_compare:nNnTF { \l_siunitx_unit_denominator_int } > { 0 }
{
\bool_if:NTF \l_siunitx_per_auto_bool
@@ -4288,7 +4670,7 @@
\tl_set:Nx \l_siunitx_tmpa_tl
{
\exp_not:N \siunitx_ensuremath:n
- { \exp_not:V \l_siunitx_unit_separator_tl }
+ { \exp_not:V \l_siunitx_unit_product_tl }
}
\tl_replace_all_in:NnV \l_siunitx_unit_tl { . }
\l_siunitx_tmpa_tl
@@ -4364,7 +4746,7 @@
\siunitx_unit_format_power_brackets:
\tl_put_right:Nx \l_siunitx_unit_current_tl
{
- ^
+ \exp_not:N \PrintSuperscript
{
\siunitx_unit_format_power_aux:n
{ \exp_not:V \l_siunitx_tmpa_tl }
@@ -4528,28 +4910,21 @@
\prop_put:NVn \l_siunitx_unit_prop \l_siunitx_tmpa_tl { true }
}
\char_make_space:N \~
-\group_begin:
- \char_set_lccode:nn { `\@ } { `\_ }
- \char_make_math_subscript:N \@
-\tl_to_lowercase:n {
- \group_end:
- \cs_set_protected_nopar:Npn \siunitx_unit_format_qualifier_subscript:
- {
- \tl_put_right:Nx \l_siunitx_unit_current_tl
- { @ { \exp_not:V \l_siunitx_tmpa_tl } }
- }
+\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier_subscript: {
+ \tl_put_right:Nx \l_siunitx_unit_current_tl
+ { \exp_not:N \PrintSubscript { \exp_not:V \l_siunitx_tmpa_tl } }
}
\cs_new_protected_nopar:Npn \siunitx_unit_format_qualifier_text: {
\tl_put_right:NV \l_siunitx_unit_current_tl \l_siunitx_tmpa_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:NTF \l_siunitx_unit_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
+ \l_siunitx_unit_product_tl
}
}
\tl_put_right:NV \l_siunitx_unit_tl \l_siunitx_unit_denominator_tl
@@ -4605,8 +4980,10 @@
\bool_set_false:N \l_siunitx_multi_brackets_bool
\bool_set_false:N \l_siunitx_multi_repeat_bool
},
+ number-unit-product .tl_set:N =
+ \l_siunitx_number_unit_product_tl,
number-unit-separator .tl_set:N =
- \l_siunitx_number_unit_separator_tl,
+ \l_siunitx_number_unit_product_tl,
product-units .choice:,
product-units
/ brackets .code:n =
@@ -4645,9 +5022,9 @@
},
}
\keys_set:nn { siunitx } {
- multi-part-units = brackets,
- number-unit-separator = \,,
- product-units = repeat,
+ multi-part-units = brackets,
+ number-unit-product = \,,
+ product-units = repeat,
}
\cs_new_protected:Npn \siunitx_unit_output:nn #1#2 {
\cs_set_eq:NN \siunitx_unit_format_symbol_aux:
@@ -4655,12 +5032,20 @@
\cs_set_eq:NN \siunitx_unit_format_fraction_symbol_aux_ii:
\siunitx_unit_format_fraction_symbol_aux_alt:
\siunitx_unit_in:nn {#1} {#2}
- \int_compare:nNnF { \l_siunitx_unit_prefix_int } = { 0 }
+ \int_compare:nNnTF { \l_siunitx_unit_prefix_int } = { 0 }
+ {
+ \str_if_eq:VnT \l_siunitx_per_mode_tl { symbol }
+ {
+ \int_compare:nNnT { \l_siunitx_unit_numerator_int } = { 0 }
+ { \siunitx_print:nn { unit } { 1 } }
+ }
+ }
{
\tl_set:Nx \l_siunitx_tmpa_tl
{
\int_use:N \l_siunitx_unit_prefix_base_int
- ^ { \int_use:N \l_siunitx_unit_prefix_int }
+ \exp_not:N \PrintSuperscript
+ { \int_use:N \l_siunitx_unit_prefix_int }
}
\siunitx_print:nV { number } \l_siunitx_tmpa_tl
\siunitx_unit_output_number_sep:
@@ -4678,7 +5063,7 @@
\ensuremath
{
\tex_mathchoice:D
- { \l_siunitx_number_unit_separator_tl }
+ { \l_siunitx_number_unit_product_tl }
{ \siunitx_unit_output_number_sep_aux: }
{ \siunitx_unit_output_number_sep_aux: }
{ \siunitx_unit_output_number_sep_aux: }
@@ -4690,7 +5075,7 @@
}
\cs_new_protected_nopar:Npn \siunitx_unit_output_number_sep_aux: {
\bool_if:NF \l_siunitx_omit_unit_space_bool
- { \siunitx_ensuremath:n { \l_siunitx_number_unit_separator_tl } }
+ { \siunitx_ensuremath:n { \l_siunitx_number_unit_product_tl } }
}
\cs_new_protected_nopar:Npn \siunitx_unit_output_pre_print: {
\tl_if_empty:NF \l_siunitx_pre_unit_tl
@@ -4724,6 +5109,9 @@
\siunitx_print:nV { unit } \l_siunitx_unit_tl
}
}
+\keys_define:nn { siunitx } {
+ preunit .tl_set:N = \l_siunitx_preunit_tl ,
+}
\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 {
@@ -5118,7 +5506,7 @@
{ \cs_set_eq:NN \siunitx_table_collect_next: ##1 }
}
\tl_map_function:nN
- { \cs:w \end \endtabular \scan_stop: \siunitx_table_print: }
+ { \cs:w \end \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:
@@ -5150,22 +5538,20 @@
}
\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
- { \c_zero_skip plus -0.5 fill }
+ \cs_new_protected_nopar:Npn \siunitx_table_colortbl_correction:
+ {
+ \skip_horizontal:n { \c_zero_skip plus -0.5 fill }
+ \tex_kern:D \c_zero_skip
+ }
}
{
- \skip_set:Nn \c_siunitx_table_correction_skip
- { \c_zero_skip }
+ \cs_new_protected_nopar:Npn \siunitx_table_colortbl_correction:
+ { }
}
}
-\cs_new_protected_nopar:Npn \siunitx_table_colortbl_correction: {
- \skip_horizontal:n { \c_siunitx_table_correction_skip }
- \tex_kern:D \c_zero_skip
-}
\cs_new_protected_nopar:Npn \siunitx_table_align_left:n #1 {
\siunitx_table_colortbl_correction:
\skip_horizontal:n {#1}
@@ -5176,6 +5562,37 @@
\tex_kern:D \c_zero_skip
\siunitx_table_colortbl_correction:
}
+\cs_new_eq:NN \siunitx_table_column_begin:n \siunitx_table_align_left:n
+\cs_new_eq:NN \siunitx_table_column_end:n \siunitx_table_align_right:n
+\keys_define:nn { siunitx } {
+ table-column-width .code:n =
+ {
+ \dim_compare:nNnTF {#1} = { \c_zero_dim }
+ {
+ \cs_new_eq:NN \siunitx_table_column_begin:n
+ \siunitx_table_align_left:n
+ \cs_new_eq:NN \siunitx_table_column_end:n
+ \siunitx_table_align_right:n
+ }
+ {
+ \cs_set_protected_nopar:Npn \siunitx_table_column_begin:n ##1
+ {
+ \siunitx_table_colortbl_correction:
+ \tex_hbox:D to \dim_eval:n {#1}
+ \c_group_begin_token
+ \skip_horizontal:n {##1}
+ \tex_kern:D \c_zero_skip
+ }
+ \cs_set_protected_nopar:Npn \siunitx_table_column_end:n ##1
+ {
+ \skip_horizontal:n { \c_siunitx_one_fill_skip - ##1 }
+ \tex_kern:D \c_zero_skip
+ \hbox_set_inline_end:
+ \siunitx_table_colortbl_correction:
+ }
+ }
+ }
+}
\skip_new:N \l_siunitx_table_unit_align_skip
\keys_define:nn { siunitx } {
table-unit-alignment .choice:,
@@ -5199,9 +5616,9 @@
table-unit-alignment = center
}
\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 }
+ \siunitx_table_column_begin:n { \l_siunitx_table_unit_align_skip }
+ \siunitx_unit_output:Vn \l_siunitx_table_collect_tl { }
+ \siunitx_table_column_end:n { \l_siunitx_table_unit_align_skip }
}
\bool_new:N \l_siunitx_table_center_decimal_bool
\box_new:N \l_siunitx_table_fill_box
@@ -5223,6 +5640,8 @@
\skip_new:N \l_siunitx_table_number_align_skip
\skip_new:N \l_siunitx_table_text_align_skip
\keys_define:nn { siunitx } {
+ table-align-comparator .bool_set:N
+ = \l_siunitx_table_align_comparator_bool,
table-align-exponent .bool_set:N
= \l_siunitx_table_align_exp_bool,
table-align-text-post .bool_set:N
@@ -5298,6 +5717,7 @@
\l_siunitx_table_sign_mantissa_bool
}
\keys_set:nn { siunitx } {
+ table-align-comparator = true,
table-align-exponent = true,
table-align-text-post = true,
table-align-uncertainty = true,
@@ -5348,20 +5768,20 @@
\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
+ \siunitx_table_column_begin:n
+ { \l_siunitx_table_text_align_skip }
+ \tl_use:N \l_siunitx_table_collect_pre_tl
+ \siunitx_table_column_end:n
{ \l_siunitx_table_text_align_skip }
}
{
- \siunitx_table_align_left:n
+ \siunitx_table_column_begin:n
{ \l_siunitx_table_number_align_skip }
- \siunitx_table_print_S_aux:
- \siunitx_table_align_right:n
+ \siunitx_table_print_S_aux:
+ \siunitx_table_column_end:n
{ \l_siunitx_table_number_align_skip }
}
}
-
\cs_new_protected_nopar:Npn \siunitx_table_print_S_aux: {
\bool_if:NTF \l_siunitx_table_parse_only_bool
{
@@ -5507,7 +5927,10 @@
}
\siunitx_table_print_S_parse:
\bool_if:NTF \l_siunitx_table_comparator_bool
- { \siunitx_table_print_S_reserved_comparator: }
+ {
+ \bool_if:NT \l_siunitx_table_align_comparator_bool
+ { \siunitx_table_print_S_reserved_comparator: }
+ }
{
\prop_if_in:NnT \l_siunitx_number_out_prop { comparator }
{
@@ -5676,10 +6099,19 @@
}
\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}
+ \bool_if:NTF \l_siunitx_table_align_comparator_bool
+ {
+ \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}
+ }
+ {
+ \siunitx_table_print_S_measure_comparator_integer:N
+ \l_siunitx_table_model_prop
+ \siunitx_table_print_S_measure_comparator_integer_get:N
+ \l_siunitx_number_out_prop
+ }
\box_clear:N \l_siunitx_tmp_box
\tl_if_empty:NF \l_siunitx_tmpa_tl
{
@@ -5755,14 +6187,18 @@
\hbox_set_to_wd:Nnn \l_siunitx_table_result_box
{ \box_wd:N \l_siunitx_table_result_box } { \tex_hfil:D }
}
-
\bool_if:NF \l_siunitx_table_align_uncert_bool
{ \tex_hskip:D -\l_siunitx_table_space_dim }
\box_use:N \l_siunitx_table_result_box
}
\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:
+ \tl_if_empty:NTF \l_siunitx_output_exponent_tl
+ { \siunitx_table_print_S_reserved_exponent_product: }
+ {
+ \bool_if:NF \l_siunitx_table_align_exp_bool
+ { \tex_hskip:D -\l_siunitx_table_space_dim }
+ }
\siunitx_table_print_S_measure:Nnn \l_siunitx_table_model_prop
{ exponent } { }
\siunitx_table_print_S_get_exponent:Nn
@@ -5817,7 +6253,6 @@
}
}
{ \siunitx_table_print_S_reserved_exponent_product_aux_ii: }
-
}
\cs_new_protected_nopar:Npn
\siunitx_table_print_S_reserved_exponent_product_aux_ii: {
@@ -5868,6 +6303,12 @@
\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 }
+ \bool_if:NF \l_siunitx_table_align_comparator_bool
+ {
+ \prop_get:NnN #1 { comparator } \l_siunitx_tmpb_tl
+ \quark_if_no_value:NF \l_siunitx_tmpb_tl
+ { \tl_put_left:NV \l_siunitx_tmpa_tl \l_siunitx_tmpb_tl }
+ }
}
\cs_new_protected_nopar:Npn \siunitx_table_print_S_get_marker:Nn #1#2 {
\tl_set:Nx \l_siunitx_tmpa_tl
@@ -5889,6 +6330,19 @@
\cs_new_protected_nopar:Npn
\siunitx_table_print_S_measure_comparator_integer:N #1
{
+ \siunitx_table_print_S_measure_comparator_integer_get:N #1
+ \tl_if_empty:NTF \l_siunitx_tmpa_tl
+ { \dim_set:Nn \l_siunitx_table_integer_dim { \c_zero_skip } }
+ {
+ \hbox_set:Nn \l_siunitx_tmp_box
+ { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
+ \dim_set:Nn \l_siunitx_table_integer_dim
+ { \box_wd:N \l_siunitx_tmp_box }
+ }
+ }
+\cs_new_protected_nopar:Npn
+ \siunitx_table_print_S_measure_comparator_integer_get:N #1
+ {
\prop_get:NnN #1 { comparator } \l_siunitx_tmpa_tl
\quark_if_no_value:NT \l_siunitx_tmpa_tl
{ \tl_clear:N \l_siunitx_tmpa_tl }
@@ -5899,14 +6353,6 @@
\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
- \tl_if_empty:NTF \l_siunitx_tmpa_tl
- { \dim_set:Nn \l_siunitx_table_integer_dim { \c_zero_skip } }
- {
- \hbox_set:Nn \l_siunitx_tmp_box
- { \siunitx_print:nV { number } \l_siunitx_tmpa_tl }
- \dim_set:Nn \l_siunitx_table_integer_dim
- { \box_wd:N \l_siunitx_tmp_box }
- }
}
\cs_new_protected_nopar:Npn \siunitx_table_direct: {
\m@th
@@ -6194,7 +6640,7 @@
{ Only~one~complex~root~token~can~appear~in~a~single~number. }
\msg_set:nnnn { siunitx } { duplicate-decimal-token }
{ Duplicate~decimal~marker~token~'#1'~in~input. }
- { Only one decimal marker token can appear in a single number. }
+ { Only~one~decimal~marker~token~can~appear~in~a~single~number. }
\msg_set:nnnn { siunitx } { duplicate-exponent-token }
{ Duplicate~exponent~marker~token~'#1'~in~input. }
{ Only~one~exponent~marker~token~can~appear~in~a~single~number. }
@@ -6336,25 +6782,25 @@
\token_to_str:N { siunitx \token_to_str:N } \\
in~the~preamble~to~load~the~appropriate~code.
}
-\cs_new_protected_nopar:Npn \DeclareBinaryPrefix #1#2#3 {
+\NewDocumentCommand \DeclareBinaryPrefix { m m m } {
\siunitx_declare_prefix:Nnnn #1 {#2} { 2 } {#3}
}
-\cs_new_protected_nopar:Npn \DeclareSIPostPower #1#2 {
+\NewDocumentCommand \DeclareSIPostPower { m m } {
\siunitx_declare_power_after:Nn #1 {#2}
}
-\cs_new_protected_nopar:Npn \DeclareSIPrefix #1#2#3 {
+\NewDocumentCommand \DeclareSIPrefix { m m m } {
\siunitx_declare_prefix:Nnnn #1 {#2} { 10 } {#3}
}
-\cs_new_protected_nopar:Npn \DeclareSIPrePower #1#2 {
+\NewDocumentCommand \DeclareSIPrePower { m m } {
\siunitx_declare_power_before:Nn #1 {#2}
}
-\cs_new_protected_nopar:Npn \DeclareSIQualifier #1#2 {
+\NewDocumentCommand \DeclareSIQualifier { m m } {
\siunitx_declare_qualifier:Nn #1 {#2}
}
-\cs_new_protected_nopar:Npn \DeclareSIUnit #1#2 {
- \siunitx_declare_unit:Nnn #1 {#2} { }
+\NewDocumentCommand \DeclareSIUnit { O { } m m } {
+ \siunitx_declare_unit:Nnn #2 {#3} {#1}
}
-\cs_new_protected_nopar:Npn \DeclareSIUnitWithOptions #1#2#3 {
+\NewDocumentCommand \DeclareSIUnitWithOptions { m m m } {
\siunitx_declare_unit:Nnn #1 {#2} {#3}
}
\@onlypreamble \DeclareBinaryPrefix
@@ -6393,16 +6839,6 @@
\siunitx_range_numbers:nn {#2} {#3}
\group_end:
}
-\NewDocumentCommand \si { o m } {
- \group_begin:
- \IfNoValueTF {#1}
- { \siunitx_unit_output:nn {#2} { } }
- {
- \keys_set:nn { siunitx } {#1}
- \siunitx_unit_output:nn {#2} {#1}
- }
- \group_end:
-}
\NewDocumentCommand \SIlist { o > { \SplitList { ; } } m m } {
\group_begin:
\IfNoValueTF {#1}
@@ -6436,6 +6872,23 @@
\NewDocumentCommand \sisetup { m } {
\keys_set:nn { siunitx } {#1}
}
+\NewDocumentCommand \tablenum { o m } {
+ \IfNoValueF {#1}
+ { \keys_set:nn { siunitx } {#1} }
+ \tl_set:Nn \l_siunitx_table_collect_tl {#2}
+ \bool_set_false:N \l_siunitx_table_collect_pre_bool
+ \siunitx_table_print_S:
+}
+\NewDocumentCommand \si { o m } {
+ \group_begin:
+ \IfNoValueTF {#1}
+ { \siunitx_unit_output:nn {#2} { } }
+ {
+ \keys_set:nn { siunitx } {#1}
+ \siunitx_unit_output:nn {#2} {#1}
+ }
+ \group_end:
+}
\AtBeginDocument {
\cs_set:Npn \addtocontents #1#2
{
@@ -6463,6 +6916,7 @@
\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 \si \siunitx_bookmark_si:w
\cs_set_nopar:Npn \SIUnitSymbolAngstrom { \AA }
\cs_set_nopar:Npn \SIUnitSymbolArcminute { ' }
\cs_set_nopar:Npn \SIUnitSymbolArcsecond { '' }
@@ -6474,11 +6928,28 @@
\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_SIlist:w
+ { o m m } { \siunitx_bookmark_SIlist_map:nn {#1} {#2} }
\DeclareExpandableDocumentCommand \siunitx_bookmark_SIrange:w
{ o m m m } { #2 ~ #4 \l_siunitx_range_phrase_tl #3 ~ #4 }
+\DeclareExpandableDocumentCommand \siunitx_bookmark_si:w { o m } {#2}
+\cs_new:Npn \siunitx_bookmark_SIlist_map:nn #1#2 {
+ \siunitx_bookmark_SIlist_map_aux:nw {#2} #1 ; \q_recursion_tail ;
+ \q_recursion_tail ; \q_recursion_stop
+}
+\cs_new:Npn \siunitx_bookmark_SIlist_map_aux:nw #1#2 ; #3 ; #4 {
+ #2 ~ #1
+ \quark_if_recursion_tail_stop:n {#3}
+ \quark_if_recursion_tail_stop_do:nn {#4}
+ {
+ \l_siunitx_list_separator_final_tl
+ #3 ~ #1
+ }
+ \l_siunitx_list_separator_tl
+ \siunitx_bookmark_SIlist_map_aux:nw {#1} #3 ; #4
+}
\AtBeginDocument {
\@ifpackageloaded { hyperref }
{ \pdfstringdefDisableCommands { \siunitx_contents_bookmarks: } }
@@ -6537,15 +7008,13 @@
\DeclareSIUnit \volt { V }
\DeclareSIUnit \watt { W }
\DeclareSIUnit \weber { Wb }
-\DeclareSIUnitWithOptions \arcmin { \arcminute }
- { number-unit-separator = }
-\DeclareSIUnitWithOptions \arcminute { \SIUnitSymbolArcminute }
- { number-unit-separator = }
-\DeclareSIUnitWithOptions \arcsecond { \SIUnitSymbolArcsecond }
- { number-unit-separator = }
+\DeclareSIUnit [ number-unit-product = ] \arcmin { \arcminute }
+\DeclareSIUnit [ number-unit-product = ]
+ \arcminute { \SIUnitSymbolArcminute }
+\DeclareSIUnit [ number-unit-product = ]
+ \arcsecond { \SIUnitSymbolArcsecond }
\DeclareSIUnit \day { d }
-\DeclareSIUnitWithOptions \degree { \SIUnitSymbolDegree }
- { number-unit-separator = }
+\DeclareSIUnit[ number-unit-product = ] \degree { \SIUnitSymbolDegree }
\DeclareSIUnit \hectare { ha }
\DeclareSIUnit \hour { h }
\DeclareSIUnit \litre { l }
@@ -6643,21 +7112,21 @@
DE .meta:n =
{
exponent-product = \cdot ,
- inter-unit-separator = { \, } ,
+ inter-unit-product = { \, } ,
output-decimal-marker = { , } ,
},
locale /
FR .meta:n =
{
exponent-product = \times ,
- inter-unit-separator = { \, } ,
+ inter-unit-product = { \, } ,
output-decimal-marker = { , } ,
},
locale /
UK .meta:n =
{
exponent-product = \times ,
- inter-unit-separator = \, ,
+ inter-unit-product = \, ,
output-decimal-marker = . ,
},
locale /
@@ -6668,7 +7137,7 @@
ZA .meta:n =
{
exponent-product = \times ,
- inter-unit-separator = \cdot ,
+ inter-unit-product = \cdot ,
output-decimal-marker = { , } ,
},
}
@@ -6721,7 +7190,6 @@
\c_siunitx_configuration_ext_tl
}
\ProcessKeysOptions { siunitx }
-%%
%% Copyright (C) 2008-2011 by
%% Joseph Wright <joseph.wright@morningstar2.co.uk>
%%
@@ -6729,9 +7197,7 @@
%% the LaTeX Project Public License (LPPL), either version 1.3c of
%% this license or (at your option) any later version. The latest
%% version of this license is in the file:
-%%
%% http://www.latex-project.org/lppl.txt
-%%
%% This work is "maintained" (as per LPPL maintenance status) by
%% Joseph Wright.
%%