summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/siunitx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-08-17 20:49:32 +0000
committerKarl Berry <karl@freefriends.org>2021-08-17 20:49:32 +0000
commitf1eec09cda1fe0f51c7dd3c722cbc8621e6d1295 (patch)
treedaa55c91db57cf444983230f0e509a1274e0095c /Master/texmf-dist/tex/latex/siunitx
parenta72444daf54a90226829464d6e5fe9ec42d1a3c9 (diff)
siunitx (17aug21)
git-svn-id: svn://tug.org/texlive/trunk@60258 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/siunitx')
-rw-r--r--Master/texmf-dist/tex/latex/siunitx/siunitx.sty212
1 files changed, 176 insertions, 36 deletions
diff --git a/Master/texmf-dist/tex/latex/siunitx/siunitx.sty b/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
index 3bef92d6566..3978b3fe629 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-08-04} {3.0.24}
+\ProvidesExplPackage {siunitx} {2021-08-16} {3.0.25}
{A comprehensive (SI) units package}
\msg_new:nnnn { siunitx } { incompatible-package }
{ Package~'#1'~incompatible. }
@@ -1586,6 +1586,11 @@
{
\group_begin:
\tl_clear:N \l__siunitx_number_parsed_tl
+ \tl_map_inline:Nn \l__siunitx_number_input_ignore_tl
+ {
+ \token_if_macro:NT ##1
+ { \cs_set_eq:NN ##1 \scan_stop: }
+ }
\protected@edef \l__siunitx_number_arg_tl
{
\bool_if:NTF \l__siunitx_number_expression_bool
@@ -1594,9 +1599,8 @@
}
\tl_set_eq:NN \l__siunitx_number_input_tl \l__siunitx_number_arg_tl
\siunitx_number_normalize_symbols:N \l__siunitx_number_arg_tl
- \protected@edef \l__siunitx_number_input_ignore_tl { \l__siunitx_number_input_ignore_tl }
- \tl_if_empty:NF \l__siunitx_number_input_ignore_tl
- { \tl_remove_all:NV \l__siunitx_number_arg_tl \l__siunitx_number_input_ignore_tl }
+ \tl_map_inline:Nn \l__siunitx_number_input_ignore_tl
+ { \tl_remove_all:Nn \l__siunitx_number_arg_tl {##1} }
\tl_if_empty:NF \l__siunitx_number_arg_tl
{ \__siunitx_number_parse_comparator: }
\__siunitx_number_parse_check:
@@ -2545,13 +2549,20 @@
\cs_new:Npn \__siunitx_number_round_auxiv:nnnN #1#2#3#4
{
\quark_if_recursion_tail_stop_do:Nn #4
- { { 0 } { } }
+ {
+ \int_compare:nNnTF {#1} = 0
+ {
+ \__siunitx_number_round_auxvi:nnN {#3} {#2}
+ 0 \q_recursion_tail \q_recursion_stop
+ }
+ { { 0 } { } }
+ }
\int_compare:nNnTF {#1} > 0
{
\exp_args:Nf \__siunitx_number_round_auxiv:nnnN
{ \int_eval:n { #1 - 1 } } { #2 0 } { #4#3 }
}
- { \__siunitx_number_round_auxvi:nnnN {#3} {#2} #4 }
+ { \__siunitx_number_round_auxvi:nnN {#3} {#2} #4 }
}
\cs_new:Npn \__siunitx_number_round_auxv:nnN #1#2#3
{
@@ -2574,7 +2585,7 @@
{ \__siunitx_number_round_auxvii:nnN }
{#2} { } #3
}
-\cs_new:Npn \__siunitx_number_round_auxvi:nnnN #1#2#3
+\cs_new:Npn \__siunitx_number_round_auxvi:nnN #1#2#3
{
\quark_if_recursion_tail_stop_do:Nn #3
{ { 0 } { } }
@@ -2660,9 +2671,27 @@
#1#2#3 \q_recursion_tail \q_recursion_stop
{
\__siunitx_number_round_final_output:ff
- { \tl_reverse:n {#3} #2 }
+ { \exp_args:Ne \__siunitx_number_round_final_significant:n { \tl_reverse:n {#3} #2 } }
{#1}
}
+\cs_new:Npn \__siunitx_number_round_final_significant:n #1
+ {
+ \__siunitx_number_round_final_significant:N #1
+ \q_recursion_tail \q_recursion_stop
+ }
+\cs_new:Npn \__siunitx_number_round_final_significant:N #1
+ {
+ \quark_if_recursion_tail_stop_do:Nn #1 { 0 }
+ \int_compare:nNnTF {#1} = 0
+ { \__siunitx_number_round_final_significant:N }
+ {
+ #1
+ \__siunitx_number_round_final_significant:w
+ }
+ }
+\cs_new:Npn \__siunitx_number_round_final_significant:w
+ #1 \q_recursion_tail \q_recursion_stop
+ {#1}
\cs_new:Npn \__siunitx_number_round_final_output:nn #1#2 { {#1} {#2} }
\cs_generate_variant:Nn \__siunitx_number_round_final_output:nn { ff }
\cs_new:Npn \__siunitx_number_round_final:nn #1#2
@@ -2684,7 +2713,6 @@
\int_compare:nNnTF { \tl_count:n {#1} } = 4
{
\__siunitx_number_round_engineering:NNNNn #1 {#2}
- { }
\__siunitx_number_round_final_shift:Nw 3
}
{ {#1} {#2} }
@@ -2709,11 +2737,13 @@
{
\__siunitx_number_exponent_shift:nnf
{ 1 } {#1} { \__siunitx_number_round_truncate_direct:n {#2} }
- { }
\__siunitx_number_round_final_shift:Nw 1
}
-\cs_new:Npn \__siunitx_number_round_final_shift:Nw #1#2 \__siunitx_number_round_places_end:nn #3#4
- { \__siunitx_number_exponent_finalise:n { #3#4 + #1 } }
+\cs_new:Npn \__siunitx_number_round_final_shift:Nw #1#2 \__siunitx_number_round_places_end:nnn #3#4#5
+ {
+ \exp_not:n { {#3} }
+ \__siunitx_number_exponent_finalise:n { #4#5 + #1 }
+ }
\cs_new:Npn \__siunitx_number_round_truncate:n #1
{
\str_if_eq:VnTF \l__siunitx_number_round_mode_tl { figures }
@@ -2819,12 +2849,12 @@
{ \__siunitx_number_round_places_decimal:nn }
{ \__siunitx_number_round_places_integer:nn }
{#3} {#4}
- \__siunitx_number_round_places_end:nn {#6} {#7}
+ \__siunitx_number_round_places_end:nnn { } {#6} {#7}
}
}
{ \exp_not:n { {#1} {#2} {#3} {#4} {#5} {#6} {#7} } }
}
-\cs_new:Npn \__siunitx_number_round_places_end:nn #1#2 { { } \exp_not:n { {#1} {#2} } }
+\cs_new:Npn \__siunitx_number_round_places_end:nnn #1#2#3 { \exp_not:n { {#1} {#2} {#3} } }
\cs_new:Npn \__siunitx_number_round_places_decimal:nn #1#2
{
\int_compare:nNnTF
@@ -2890,18 +2920,20 @@
\bool_lazy_or:nnTF
{ \tl_if_blank_p:n {#5} }
{ ! \int_compare_p:nNn \l__siunitx_number_round_precision_int > 0 }
- { \exp_not:n { {#1} #2 {#3} {#4} { } #6 {#7} } }
+ { \exp_not:n { {#1} {#2} {#3} {#4} { } {#6} {#7} } }
{
\str_if_eq:eeTF { \tl_head:n {#5} } { S }
{
\exp_not:n { {#1} {#2} }
\exp_args:Nnno \__siunitx_number_round_uncertainty:nnn
{#3} {#4} { \use_ii:nn #5 }
- \exp_not:n { {#6} {#7} }
+ \__siunitx_number_round_uncertainty_end:nn {#6} {#7}
}
{ \exp_not:n { {#1} {#2} {#3} {#4} {#5} {#6} {#7} } }
}
}
+\cs_new:Npn \__siunitx_number_round_uncertainty_end:nn #1#2
+ { \exp_not:n { {#1} {#2} } }
\cs_new:Npn \__siunitx_number_round_uncertainty:nnn #1#2#3
{
\exp_last_unbraced:Nf \__siunitx_number_round_uncertainty:nnnnn
@@ -2941,11 +2973,79 @@
{ { S } { #4 #1 } }
}
{
- \__siunitx_number_round:fnn
- { \int_eval:n { #2 + 1 } }
- {#5} {#6}
- { { S } { #3 \__siunitx_number_round_truncate_direct:n {#4} #1 } }
+ \exp_args:Ne \__siunitx_number_round_uncertainty_shift:nn
+ {
+ \__siunitx_number_round:fnn
+ { \int_eval:n { #2 + 1 } }
+ {#5} {#6}
+ }
+ { { S } { #3 #1 } }
+ }
+ }
+\cs_new:Npn \__siunitx_number_round_uncertainty_shift:nn #1#2
+ { \__siunitx_number_round_uncertainty_shift:nnnw #1 {#2} }
+\cs_new:Npn \__siunitx_number_round_uncertainty_shift:nnnw
+ #1#2#3 #4 \__siunitx_number_round_uncertainty_end:nn #5#6
+ {
+ #4
+ \bool_lazy_and:nnTF
+ {
+ \int_compare_p:nNn
+ { \tl_count:o { \use_ii:nn #3 } } = \l__siunitx_number_round_precision_int
+ }
+ {
+ ! \str_if_eq_p:nn { {#1} {#2} {#3} } { { 10 } { } { { S } { 1 } } }
+ }
+ {
+ \use:c
+ { __siunitx_number_round_ \l__siunitx_number_exponent_mode_tl :nn }
+ {#1} {#2}
+ \__siunitx_number_round_places_end:nnn {#3} {#5} {#6}
+ }
+ {
+ \use:c
+ { __siunitx_number_round_uncertainty_ \l__siunitx_number_exponent_mode_tl :nnn }
+ {#1} {#5} {#6}
+ }
+ }
+\cs_new:Npn \__siunitx_number_round_uncertainty_engineering:nnn #1#2#3
+ {
+ \use:c
+ {
+ __siunitx_number_round_uncertainty_
+ \l__siunitx_number_exponent_mode_tl _
+ \tl_count:n {#1}
+ :n
}
+ {#2#3}
+ }
+\cs_new:cpn { __siunitx_number_round_uncertainty_engineering_2:n } #1
+ {
+ { 10 } { } { { S } { 10 } }
+ \__siunitx_number_exponent_finalise:n {#1}
+ }
+\cs_new:cpn { __siunitx_number_round_uncertainty_engineering_3:n } #1
+ {
+ { 100 } { } { { S } { 100 } }
+ \__siunitx_number_exponent_finalise:n {#1}
+ }
+\cs_new:cpn { __siunitx_number_round_uncertainty_engineering_4:n } #1
+ {
+ { 1 } { } { { S } { 1 } }
+ \__siunitx_number_exponent_finalise:n { #1 + 3 }
+ }
+\cs_new:Npn \__siunitx_number_round_uncertainty_fixed:nnn #1#2#3
+ {
+ {#1} { }
+ { { S } { 1 \prg_replicate:nn { \tl_count:n {#1} - 1 } { 0 } } }
+ {#2} {#3}
+ }
+\cs_new_eq:NN \__siunitx_number_round_uncertainty_input:nnn
+ \__siunitx_number_round_uncertainty_fixed:nnn
+\cs_new:Npn \__siunitx_number_round_uncertainty_scientific:nnn #1#2#3
+ {
+ { 1 } { } { { S } { 1 } }
+ \__siunitx_number_exponent_finalise:n { #2#3 + \tl_count:n {#1} - 1 }
}
\cs_new_protected:Npn \__siunitx_number_zero_decimal:NN #1#2
{
@@ -3662,7 +3762,11 @@
\cs_new_protected:Npn \__siunitx_print_math_auxiv:n #1
{
\bool_if:NTF \l__siunitx_print_math_font_bool
- { \__siunitx_print_math_aux:N \mathsf \mathtt \q_recursion_tail \q_recursion_stop }
+ {
+ \__siunitx_print_math_aux:N
+ \mathbf \mathit \mathsf \mathtt
+ \q_recursion_tail \q_recursion_stop
+ }
{ \__siunitx_print_math_auxv:n }
{#1}
}
@@ -4215,26 +4319,53 @@
- \box_wd:N \l__siunitx_table_tmp_box
}
{
- \hbox_set_to_wd:Nnn \l__siunitx_table_decimal_box
+ \bool_if:NTF \l__siunitx_table_align_after_bool
{
- \box_wd:N \l__siunitx_table_integer_box
- + \box_wd:N \l__siunitx_table_tmp_box
- }
- {
- \hbox_unpack:N \l__siunitx_table_decimal_box
- \__siunitx_table_fil:
- }
+ \__siunitx_table_center_marker_aux:Nnnn \l__siunitx_table_decimal_box
+ {
+ \box_wd:N \l__siunitx_table_integer_box
+ + \box_wd:N \l__siunitx_table_tmp_box
+ }
+ }
+ {
+ \__siunitx_table_center_marker_aux:Nnnn \l__siunitx_table_after_box
+ {
+ \box_wd:N \l__siunitx_table_after_box
+ + \box_wd:N \l__siunitx_table_integer_box
+ - \box_wd:N \l__siunitx_table_decimal_box
+ + \box_wd:N \l__siunitx_table_tmp_box
+ }
+ }
+ { } { \__siunitx_table_fil: }
}
{
- \hbox_set_to_wd:Nnn \l__siunitx_table_integer_box
+ \bool_if:NTF \l__siunitx_table_align_before_bool
{
- \box_wd:N \l__siunitx_table_decimal_box
- - \box_wd:N \l__siunitx_table_tmp_box
+ \__siunitx_table_center_marker_aux:Nnnn \l__siunitx_table_integer_box
+ {
+ \box_wd:N \l__siunitx_table_decimal_box
+ - \box_wd:N \l__siunitx_table_tmp_box
+ }
}
{
- \__siunitx_table_fil:
- \hbox_unpack:N \l__siunitx_table_integer_box
+ \__siunitx_table_center_marker_aux:Nnnn \l__siunitx_table_before_box
+ {
+ \box_wd:N \l__siunitx_table_before_box
+ + \box_wd:N \l__siunitx_table_decimal_box
+ - \box_wd:N \l__siunitx_table_integer_box
+ - \box_wd:N \l__siunitx_table_tmp_box
+ }
}
+ { \__siunitx_table_fil: } { }
+ }
+ }
+\cs_new_protected:Npn \__siunitx_table_center_marker_aux:Nnnn #1#2#3#4
+ {
+ \hbox_set_to_wd:Nnn #1 {#2}
+ {
+ #3
+ \hbox_unpack:N #1
+ #4
}
}
\keys_define:nn { siunitx }
@@ -4368,6 +4499,8 @@
{
\c_math_toggle_token
\hbox_set_end:
+ \bool_set_true:N \l__siunitx_table_align_before_bool
+ \bool_set_true:N \l__siunitx_table_align_after_bool
\__siunitx_table_center_marker:
\use:c { __siunitx_table_align_ \l__siunitx_table_align_text_tl :n }
{
@@ -4471,7 +4604,6 @@
\__siunitx_table_fil:
}
}
- \box_use_drop:N \l__siunitx_table_before_box
\siunitx_number_parse:nN {#2} \l__siunitx_table_tmp_tl
\siunitx_number_process:NN \l__siunitx_table_tmp_tl \l__siunitx_table_tmp_tl
\tl_set:Nx \l__siunitx_table_tmp_tl
@@ -4479,7 +4611,6 @@
\__siunitx_table_color_check:N \l__siunitx_table_tmp_tl
\exp_after:wN \__siunitx_table_print_marker:w
\l__siunitx_table_tmp_tl \q_stop
- \box_use_drop:N \l__siunitx_table_after_box
}
\cs_new_protected:Npn \__siunitx_table_print_marker:w
#1 \q_nil #2 \q_nil #3 \q_nil #4 \q_stop
@@ -4494,8 +4625,10 @@
\__siunitx_table_center_marker:
\use:c { __siunitx_table_align_ \l__siunitx_table_align_text_tl :n }
{
+ \box_use_drop:N \l__siunitx_table_before_box
\box_use_drop:N \l__siunitx_table_integer_box
\box_use_drop:N \l__siunitx_table_decimal_box
+ \box_use_drop:N \l__siunitx_table_after_box
}
}
\cs_new:Npn \__siunitx_table_print_marker_aux:w
@@ -5911,6 +6044,13 @@
sticky-per = false ,
unit-font-command = \mathrm
}
+\AtBeginDocument
+ {
+ \str_if_eq:eeTF
+ { \exp_not:o { \familydefault } }
+ { \exp_not:n { \sfdefault } }
+ { \keys_set:nn { siunitx } { unit-font-command = \mathsf } }
+ }
\tl_new:N \l__siunitx_quantity_tmp_fp
\tl_new:N \l__siunitx_quantity_tmp_tl
\tl_new:N \l__siunitx_quantity_bracket_close_tl