summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/siunitx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-06-02 20:59:05 +0000
committerKarl Berry <karl@freefriends.org>2021-06-02 20:59:05 +0000
commitd33b92d9d4a7e58fe1a2b2a7795a1ac51b25f0b3 (patch)
tree98f483a0f383e0cbcd33b6f450836843d0732c58 /Master/texmf-dist/tex/latex/siunitx
parent3b90242ab28c1c59546d3cf26e0663803f397407 (diff)
siunitx (2jun21)
git-svn-id: svn://tug.org/texlive/trunk@59437 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/siunitx')
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/siunitx.sty152
1 files changed, 73 insertions, 79 deletions
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
}
{