diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/siunitx/siunitx.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/siunitx/siunitx.sty | 163 |
1 files changed, 97 insertions, 66 deletions
diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty index c67097bd938..bf0cc10e738 100644 --- a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty +++ b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty @@ -42,7 +42,7 @@ }% \endinput }% -\ProvidesExplPackage {siunitx} {2022-02-07} {3.0.48} +\ProvidesExplPackage {siunitx} {2022-02-15} {3.0.49} {A comprehensive (SI) units package} \msg_new:nnnn { siunitx } { incompatible-package } { Package~'#1'~incompatible. } @@ -1558,6 +1558,8 @@ } , parse-numbers .bool_set:N = \l_siunitx_number_parse_bool , + retain-explicit-decimal-marker .bool_set:N = + \l__siunitx_number_explicit_decimal_bool , retain-explicit-plus .bool_set:N = \l__siunitx_number_explicit_plus_bool , retain-zero-uncertainty .bool_set:N = @@ -1927,9 +1929,15 @@ } \cs_new_protected:Npn \__siunitx_number_parse_loop_main_end:NN #1#2 { - \bool_lazy_and:nnT - {#2} { \tl_if_empty_p:N \l__siunitx_number_partial_tl } - { \tl_set:Nn \l__siunitx_number_partial_tl { 0 } } + \tl_if_empty:NT \l__siunitx_number_partial_tl + { + \bool_if:NTF #2 + { \tl_set:Nn \l__siunitx_number_partial_tl { 0 } } + { + \bool_if:NT \l__siunitx_number_explicit_decimal_bool + { \tl_set:Nn \l__siunitx_number_partial_tl { \empty } } + } + } \tl_put_right:Nx #1 { { \exp_not:V \l__siunitx_number_partial_tl } @@ -2524,14 +2532,18 @@ { \tl_set:Nx #2 { - \cs:w - __siunitx_number_round_ \l__siunitx_number_round_mode_tl :nnnnnnn - \exp_after:wN - \cs_end: #1 - } + \str_if_eq:VnTF \l__siunitx_number_round_mode_tl { none } + { \exp_not:V #1 } + { \exp_after:wN \__siunitx_number_round:nnnnnnn #1 } + } + } +\cs_new:Npn \__siunitx_number_round:nnnnnnn #1#2#3#4#5#6#7 + { + \str_if_eq:nnTF {#4} { \empty } + { \use:c { __siunitx_number_round_ \l__siunitx_number_round_mode_tl :nnnnnnn } {#1} {#2} {#3} { } } + { \use:c { __siunitx_number_round_ \l__siunitx_number_round_mode_tl :nnnnnnn } {#1} {#2} {#3} {#4} } + {#5} {#6} {#7} } -\cs_new:Npn \__siunitx_number_round_none:nnnnnnn #1#2#3#4#5#6#7 - { \exp_not:n { {#1} {#2} {#3} {#4} {#5} {#6} {#7} } } \cs_new:Npn \__siunitx_number_round:nnn #1#2#3 { \__siunitx_number_round_auxi:nnnN {#1} {#2} { } @@ -3191,6 +3203,8 @@ \l__siunitx_number_unity_mantissa_bool , print-zero-exponent .bool_set:N = \l__siunitx_number_zero_exponent_bool , + print-zero-integer .bool_set:N = + \l__siunitx_number_zero_integer_bool , tight-spacing .bool_set:N = \l__siunitx_number_tight_bool , uncertainty-mode .choices:nn = @@ -3310,17 +3324,27 @@ { \__siunitx_number_output_digits:nn { integer } { 1 } } } { - \bool_lazy_any:nT - { - { \l__siunitx_number_unity_mantissa_bool } - { ! \str_if_eq_p:nn { #1 . #2 } { 1. } } - { - \bool_lazy_and_p:nn - { \str_if_eq_p:nn {#3} { 0 } } - { ! \l__siunitx_number_zero_exponent_bool } - } + \bool_lazy_or:nnT + { \l__siunitx_number_zero_integer_bool } + { ! \str_if_eq_p:nn {#1} { 0 } } + { + \bool_lazy_any:nT + { + { \l__siunitx_number_unity_mantissa_bool } + { ! \str_if_eq_p:nn { #1 . #2 } { 1. } } + { + \bool_lazy_and_p:nn + { \str_if_eq_p:nn {#3} { 0 } } + { ! \l__siunitx_number_zero_exponent_bool } + } + { + \bool_lazy_and_p:nn + { \str_if_eq_p:nn {#1} { 0 } } + { \l__siunitx_number_zero_integer_bool } + } + } + { \__siunitx_number_output_digits:nn { integer } {#1} } } - { \__siunitx_number_output_digits:nn { integer } {#1} } } } \cs_new:Npn \__siunitx_number_output_decimal:nn #1#2 @@ -3334,7 +3358,8 @@ { \exp_not:V \l_siunitx_number_output_decimal_tl } } \exp_not:n {#2} - \__siunitx_number_output_digits:nn { decimal } {#1} + \str_if_eq:nnF {#1} { \empty } + { \__siunitx_number_output_digits:nn { decimal } {#1} } } \cs_generate_variant:Nn \__siunitx_number_output_decimal:nn { f } \cs_new:Npn \__siunitx_number_output_digits:nn #1#2 @@ -3624,49 +3649,51 @@ } \keys_set:nn { siunitx } { - bracket-ambiguous-numbers = true , - bracket-negative-numbers = false , - drop-exponent = false , - drop-uncertainty = false , - drop-zero-decimal = false , - evaluate-expression = false , - exponent-base = 10 , - exponent-mode = input , - exponent-product = \times , - expression = #1 , - fixed-exponent = 0 , - group-digits = all , - group-minimum-digits = 5 , - group-separator = \, , % ( - input-close-uncertainty = ) , - input-comparators = { <=>\approx\ge\geq\gg\le\leq\ll\sim } , - input-decimal-markers = { ., } , - input-digits = 0123456789 , - input-exponent-markers = dDeE , - input-ignore = \, , - input-open-uncertainty = ( , % ) - input-signs = +-\mp\pm , - input-uncertainty-signs = \pm , - minimum-decimal-digits = 0 , - minimum-integer-digits = 0 , - negative-color = , % ( - output-close-uncertainty = ) , - output-decimal-marker = . , - output-open-uncertainty = ( , % ) - parse-numbers = true , - print-implicit-plus = false , - print-unity-mantissa = true , - print-zero-exponent = false , - retain-explicit-plus = false , - retain-zero-uncertainty = false , - round-half = up , - round-minimum = 0 , - round-mode = none , - round-pad = true , - round-precision = 2 , - tight-spacing = false , - uncertainty-mode = compact , - uncertainty-separator = + bracket-ambiguous-numbers = true , + bracket-negative-numbers = false , + drop-exponent = false , + drop-uncertainty = false , + drop-zero-decimal = false , + evaluate-expression = false , + exponent-base = 10 , + exponent-mode = input , + exponent-product = \times , + expression = #1 , + fixed-exponent = 0 , + group-digits = all , + group-minimum-digits = 5 , + group-separator = \, , % ( + input-close-uncertainty = ) , + input-comparators = { <=>\approx\ge\geq\gg\le\leq\ll\sim } , + input-decimal-markers = { ., } , + input-digits = 0123456789 , + input-exponent-markers = dDeE , + input-ignore = \, , + input-open-uncertainty = ( , % ) + input-signs = +-\mp\pm , + input-uncertainty-signs = \pm , + minimum-decimal-digits = 0 , + minimum-integer-digits = 0 , + negative-color = , % ( + output-close-uncertainty = ) , + output-decimal-marker = . , + output-open-uncertainty = ( , % ) + parse-numbers = true , + print-implicit-plus = false , + print-unity-mantissa = true , + print-zero-exponent = false , + print-zero-integer = true , + retain-explicit-decimal-marker = false , + retain-explicit-plus = false , + retain-zero-uncertainty = false , + round-half = up , + round-minimum = 0 , + round-mode = none , + round-pad = true , + round-precision = 2 , + tight-spacing = false , + uncertainty-mode = compact , + uncertainty-separator = } \RequirePackage { amstext } \cs_new_eq:NN \__siunitx_print_ams_text:n \text @@ -7037,7 +7064,11 @@ } , add-decimal-zero .default:n = true , add-integer-zero .code:n = - { \__siunitx_option_removed:V \l_keys_key_tl } , + { + \__siunitx_option_deprecated:nn + { add-integer-zero } + { print-zero-integer } + } , close-bracket .code:n = { \__siunitx_option_removed:V \l_keys_key_tl } , bracket-numbers .choice: , |