From d33b92d9d4a7e58fe1a2b2a7795a1ac51b25f0b3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 2 Jun 2021 20:59:05 +0000 Subject: siunitx (2jun21) git-svn-id: svn://tug.org/texlive/trunk@59437 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/siunitx/siunitx.sty | 152 ++++++++++++------------ 1 file changed, 73 insertions(+), 79 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty index 1e3411436d2..2140838f83a 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} {2021-05-31} {3.0.8} +\ProvidesExplPackage {siunitx} {2021-06-01} {3.0.9} {A comprehensive (SI) units package} \msg_new:nnnn { siunitx } { incompatible-package } { Package~'#1'~incompatible. } @@ -1077,7 +1077,7 @@ \str_if_eq:VnT \l_siunitx_quantity_prefix_mode_tl { combine-exponent } { \tl_clear:N \l__siunitx_compound_exp_tl } \bool_if:NTF \l__siunitx_compound_unit_repeat_bool - { \__siunitx_compound_print:N \__siunitx_compound_print_quantity:n } + { \__siunitx_compound_print:N \__siunitx_compound_print_quantity:x } { \bool_lazy_and:nnTF { \l__siunitx_compound_unit_bracket_bool } @@ -1184,6 +1184,7 @@ } \cs_new_protected:Npn \__siunitx_compound_print_quantity:n #1 { \siunitx_quantity_print:nV {#1} \l__siunitx_compound_unit_tl } +\cs_generate_variant:Nn \__siunitx_compound_print_quantity:n { x } \cs_new_protected:Npn \__siunitx_compound_print_separator:n #1 { \bool_if:NTF \l__siunitx_compound_separator_text_bool @@ -2882,22 +2883,43 @@ \exp_last_unbraced:Nf \__siunitx_number_round_uncertainty:nnnnn { \__siunitx_number_round:fnn - { \tl_count:n {#3} - \l__siunitx_number_round_precision_int } { } {#3} + { + \int_eval:n + { \tl_count:n {#3} - \l__siunitx_number_round_precision_int } + } + { } {#3} } {#1} {#2} {#3} } \cs_new:Npn \__siunitx_number_round_uncertainty:nnnnn #1#2#3#4#5 { - \tl_if_blank:nTF {#1} + \exp_args:Nf \__siunitx_number_round_uncertainty_aux:nnnnn + { \int_eval:n { \tl_count:n {#5} - \tl_count:n {#2} } } + {#1} {#2} {#3} {#4} + } +\cs_new:Npn \__siunitx_number_round_uncertainty_aux:nnnnn #1#2#3#4#5 + { + \exp_args:Nf \__siunitx_number_round_uncertainty_aux:nnnnnn { - \__siunitx_number_round:fnn - { \tl_count:n {#5} - \tl_count:n {#2} } {#3} {#4} - { { S } {#2} } + \tl_if_blank:nT {#5} + { \prg_replicate:nn {#1} { 0 } } + } + {#1} {#2} {#3} {#4} {#5} + } +\cs_new:Npn \__siunitx_number_round_uncertainty_aux:nnnnnn #1#2#3#4#5#6 + { + \tl_if_blank:nTF {#3} + { + \__siunitx_number_round:nnn + {#2} + {#5} {#6} + { { S } { #4 #1 } } } { \__siunitx_number_round:fnn - { \tl_count:n {#5} - \tl_count:n {#2} + 1 } {#3} {#4} - { { S } { #1 \__siunitx_number_round_truncate_direct:n {#2} } } + { \int_eval:n { #2 + 1 } } + {#5} {#6} + { { S } { #3 \__siunitx_number_round_truncate_direct:n {#4} #1 } } } } \cs_new_protected:Npn \__siunitx_number_zero_decimal:NN #1#2 @@ -3033,7 +3055,7 @@ \__siunitx_number_output_sign:nnn {#1} {#2} {#8} \__siunitx_number_output_integer:nnn {#3} {#4} {#7} \__siunitx_number_output_decimal:nn {#4} {#8} - \__siunitx_number_output_uncertainty:nnnn {#5} {#3} {#4} {#8} + \__siunitx_number_output_uncertainty:nnn {#5} {#4} {#8} \__siunitx_number_output_exponent:nnnn {#6} {#7} { #3 . #4 } {#8} \__siunitx_number_output_end: } @@ -3198,69 +3220,41 @@ } } } -\cs_new:Npn \__siunitx_number_output_uncertainty:nnnn #1#2#3#4 +\cs_new:Npn \__siunitx_number_output_uncertainty:nnn #1#2#3 { \tl_if_blank:nTF {#1} - { \__siunitx_number_output_uncertainty_unaligned:n {#4} } + { \__siunitx_number_output_uncertainty_unaligned:n {#3} } { - \use:c { __siunitx_number_output_uncert_ \tl_head:n {#1} :nnnnw } - {#2} {#3} {#4} #1 + \use:c { __siunitx_number_output_uncert_ \tl_head:n {#1} :nnnw } + {#2} {#3} #1 } } \cs_new:Npn \__siunitx_number_output_uncertainty_unaligned:n #1 { \exp_not:n { #1 #1 #1 #1 } } -\cs_new:Npn \__siunitx_number_output_uncert_S:nnnnw #1#2#3#4#5 +\cs_new:Npn \__siunitx_number_output_uncert_S:nnnw #1#2#3#4 { \str_if_eq:VnTF \l__siunitx_number_uncert_mode_tl { separate } { - \exp_not:n {#3} + \exp_not:n {#2} \__siunitx_number_output_sign:N \pm - \exp_not:n {#3} - \tl_if_blank:nTF {#2} - { \__siunitx_number_output_uncert_S_auxi:nnn {#1} {#5} {#3} } - { - \__siunitx_number_output_uncert_S_auxiv:fnn - { \int_eval:n { \tl_count:n {#5} - \tl_count:n {#2} } } - {#5} {#3} - } + \exp_not:n {#2} + \__siunitx_number_output_uncert_S_aux:nnn + { \int_eval:n { \tl_count:n {#4} - \tl_count:n {#1} } } + {#4} {#2} } { \exp_not:V \l__siunitx_number_uncert_separator_tl \exp_not:V \l__siunitx_number_output_uncert_open_tl - \use:c { __siunitx_number_output_uncert_S_ \l__siunitx_number_uncert_mode_tl :nn } {#2} {#5} + \use:c { __siunitx_number_output_uncert_S_ \l__siunitx_number_uncert_mode_tl :nn } {#1} {#4} \exp_not:V \l__siunitx_number_output_uncert_close_tl - \__siunitx_number_output_uncertainty_unaligned:n {#3} + \__siunitx_number_output_uncertainty_unaligned:n {#2} } } -\cs_new:Npn \__siunitx_number_output_uncert_S_auxi:nnn #1#2#3 - { - \__siunitx_number_output_uncert_S_auxii:nnN { 0 } {#2} #1 - \q_recursion_tail \q_recursion_stop {#3} - } -\cs_new:Npn \__siunitx_number_output_uncert_S_auxii:nnN #1#2#3 - { - \quark_if_recursion_tail_stop_do:Nn #3 - { - \exp_args:Nf \__siunitx_number_output_uncert_S_auxiii:nnn - { \prg_replicate:nn {#1} { 0 } } {#2} - } - \str_if_eq:nnTF {#3} { 0 } - { - \exp_args:Nf \__siunitx_number_output_uncert_S_auxii:nnN - { \int_eval:n { #1 + 1 } } {#2} - } - { \__siunitx_number_output_uncert_S_auxii:nnN { 0 } {#2} } - } -\cs_new:Npn \__siunitx_number_output_uncert_S_auxiii:nnn #1#2#3 - { - \__siunitx_number_output_uncert_S_auxiv:fnn - { \int_eval:n { \tl_count:n {#2#1} } } {#2#1} {#3} - } -\cs_new:Npn \__siunitx_number_output_uncert_S_auxiv:nnn #1#2#3 +\cs_new:Npn \__siunitx_number_output_uncert_S_aux:nnn #1#2#3 { \int_compare:nNnTF {#1} > 0 { - \__siunitx_number_output_uncert_S_auxv:fnnw + \__siunitx_number_output_uncert_S_aux:fnnw { \int_eval:n { #1 - 1 } } {#3} { } @@ -3276,23 +3270,23 @@ {#3} } } -\cs_generate_variant:Nn \__siunitx_number_output_uncert_S_auxiv:nnn { f } -\cs_new:Npn \__siunitx_number_output_uncert_S_auxv:nnnw #1#2#3#4 +\cs_generate_variant:Nn \__siunitx_number_output_uncert_S_aux:nnn { f } +\cs_new:Npn \__siunitx_number_output_uncert_S_aux:nnnw #1#2#3#4 { \quark_if_nil:NF #4 { \int_compare:nNnTF {#1} = 0 - { \__siunitx_number_output_uncert_S_auxvi:nnw {#3#4} {#2} } + { \__siunitx_number_output_uncert_S_aux:nnw {#3#4} {#2} } { - \__siunitx_number_output_uncert_S_auxv:fnnw + \__siunitx_number_output_uncert_S_aux:fnnw { \int_eval:n { #1 - 1 } } {#2} {#3#4} } } } -\cs_generate_variant:Nn \__siunitx_number_output_uncert_S_auxv:nnnw { f } -\cs_new:Npn \__siunitx_number_output_uncert_S_auxvi:nnw #1#2#3 \q_nil +\cs_generate_variant:Nn \__siunitx_number_output_uncert_S_aux:nnnw { f } +\cs_new:Npn \__siunitx_number_output_uncert_S_aux:nnw #1#2#3 \q_nil { \__siunitx_number_output_digits:nn { integer } {#1} \__siunitx_number_output_decimal:nn {#3} {#2} @@ -3310,7 +3304,7 @@ } \cs_new:Npn \__siunitx_number_output_uncert_S_full:nn #1#2 { - \__siunitx_number_output_uncert_S_auxiv:fnn + \__siunitx_number_output_uncert_S_aux:fnn { \int_eval:n { \tl_count:n {#2} - \tl_count:n {#1} } } {#2} { } } @@ -4357,6 +4351,7 @@ \cs_new_protected:Npn \__siunitx_table_direct_none_end: { \c_math_toggle_token } \box_new:N \l__siunitx_table_before_box \box_new:N \l__siunitx_table_after_box +\dim_new:N \l__siunitx_table_before_dim \dim_new:N \l__siunitx_table_carry_dim \keys_define:nn { siunitx } { @@ -4445,12 +4440,7 @@ \box_clear:N \l__siunitx_table_before_box #1 } - \hbox_set_to_wd:Nnn \l__siunitx_table_before_box - { \box_wd:N \l__siunitx_table_tmp_box } - { - \__siunitx_table_fil: - \hbox_unpack:N \l__siunitx_table_before_box - } + \dim_set:Nn \l__siunitx_table_before_dim { \box_wd:N \l__siunitx_table_tmp_box } \siunitx_number_parse:nN {#2} \l__siunitx_table_tmp_tl \group_begin: \bool_if:NT \l__siunitx_table_auto_round_bool @@ -4511,16 +4501,11 @@ } { \__siunitx_table_print_format_box:Nn \l__siunitx_table_integer_box {#3} - \hbox_set_to_wd:Nnn \l__siunitx_table_before_box + \dim_add:Nn \l__siunitx_table_before_dim { - \box_wd:N \l__siunitx_table_before_box - + \box_wd:N \l__siunitx_table_tmp_box + \box_wd:N \l__siunitx_table_tmp_box - \box_wd:N \l__siunitx_table_integer_box } - { - \__siunitx_table_fil: - \hbox_unpack:N \l__siunitx_table_before_box - } } \__siunitx_table_print_format_auxii:w #2 \q_mark #4 \q_stop } @@ -4565,19 +4550,19 @@ \hbox_unpack:N \l__siunitx_table_integer_box \siunitx_print_number:n {#4#5} } - \hbox_set_to_wd:Nnn \l__siunitx_table_before_box + \dim_add:Nn \l__siunitx_table_before_dim { - \box_wd:N \l__siunitx_table_before_box + \box_wd:N \l__siunitx_table_tmp_box + \l__siunitx_table_tmp_dim - \box_wd:N \l__siunitx_table_integer_box } - { - \__siunitx_table_fil: - \hbox_unpack:N \l__siunitx_table_before_box - } } } + \hbox_set_to_wd:Nnn \l__siunitx_table_before_box \l__siunitx_table_before_dim + { + \__siunitx_table_fil: + \hbox_unpack:N \l__siunitx_table_before_box + } \__siunitx_table_print_format_auxiii:w #3 \q_mark #6 \q_stop } \cs_new_protected:Npn \__siunitx_table_print_format_auxiii:w @@ -4980,9 +4965,17 @@ \exp_not:N \token_if_eq_meaning:NNTF #2 \c__siunitx_unit_math_subscript_tl { \exp_not:N \__siunitx_unit_format_literal_sub:nn {#1} } - { \exp_not:N \__siunitx_unit_format_literal_auxvi:nN {#1#2} } + { \exp_not:N \__siunitx_unit_format_literal_auxvii:nN {#1} #2 } } } +\cs_new_protected:Npn \__siunitx_unit_format_literal_auxvii:nN #1#2 + { + \str_if_eq:nnTF {#2} { \protect } + { \__siunitx_unit_format_literal_auxviii:nN {#1} } + { \__siunitx_unit_format_literal_auxvi:nN {#1#2} } + } +\cs_new_protected:Npn \__siunitx_unit_format_literal_auxviii:nN #1#2 + { \__siunitx_unit_format_literal_auxv:nw { #1 \protect #2 } } \cs_new_protected:Npn \__siunitx_unit_format_literal_super:nn #1#2 { \quark_if_recursion_tail_stop:n {#2} @@ -6610,6 +6603,7 @@ { input-protect-tokens , input-quotient , + output-product , quotient-mode } { -- cgit v1.2.3