texlive[59348] Master/texmf-dist: siunitx (25may21)

commits+karl at tug.org commits+karl at tug.org
Tue May 25 22:50:00 CEST 2021


Revision: 59348
          http://tug.org/svn/texlive?view=revision&revision=59348
Author:   karl
Date:     2021-05-25 22:49:59 +0200 (Tue, 25 May 2021)
Log Message:
-----------
siunitx (25may21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/siunitx/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/siunitx/siunitx-code.pdf
    trunk/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf
    trunk/Master/texmf-dist/source/latex/siunitx/siunitx-number.dtx
    trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx
    trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
    trunk/Master/texmf-dist/source/latex/siunitx/siunitx.tex
    trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty

Modified: trunk/Master/texmf-dist/doc/latex/siunitx/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/siunitx/CHANGELOG.md	2021-05-25 20:49:43 UTC (rev 59347)
+++ trunk/Master/texmf-dist/doc/latex/siunitx/CHANGELOG.md	2021-05-25 20:49:59 UTC (rev 59348)
@@ -7,6 +7,17 @@
 
 ## [Unreleased]
 
+## [v3.0.6]
+
+### Changed
+- Documentation improvements
+
+### Fixed
+- Avoid error if `forbid-literal-units` is set in the preamble
+  (issue #452)
+- Format separate uncertainty correctly where it falls purely
+  in the integer part (issue #454)
+
 ## [v3.0.5]
 
 ### Changed
@@ -1301,7 +1312,8 @@
 ### Added
 - First public testing release (as `si`)
 
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.5...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.6...HEAD
+[v3.0.6]: https://github.com/josephwright/siunitx/compare/v3.0.5...v3.0.6
 [v3.0.5]: https://github.com/josephwright/siunitx/compare/v3.0.4...v3.0.5
 [v3.0.4]: https://github.com/josephwright/siunitx/compare/v3.0.3...v3.0.4
 [v3.0.3]: https://github.com/josephwright/siunitx/compare/v3.0.2...v3.0.3

Modified: trunk/Master/texmf-dist/doc/latex/siunitx/siunitx-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/siunitx/siunitx.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx-number.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-number.dtx	2021-05-25 20:49:43 UTC (rev 59347)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-number.dtx	2021-05-25 20:49:59 UTC (rev 59348)
@@ -2963,14 +2963,17 @@
 % \begin{macro}[rEXP]{\@@_output_decimal_loop:NNNN}
 % \begin{macro}[rEXP]{\@@_output_integer_first:nnNN}
 % \begin{macro}[rEXP]{\@@_output_integer_loop:NNNN}
-% \begin{macro}[rEXP]{\@@_output_uncertainty:nnn}
+% \begin{macro}[rEXP]{\@@_output_uncertainty:nnnn}
 % \begin{macro}[rEXP]{\@@_output_uncertainty_unaligned:n}
-% \begin{macro}[rEXP]{\@@_output_uncert_S:nnnw}
+% \begin{macro}[rEXP]{\@@_output_uncert_S:nnnnw}
+% \begin{macro}[rEXP]{\@@_output_uncert_S_auxi:nn}
+% \begin{macro}[rEXP]{\@@_output_uncert_S_auxii:nnN}
+% \begin{macro}[rEXP]{\@@_output_uncert_S_auxiii:nnn}
 % \begin{macro}[rEXP]
-%   {\@@_output_uncert_S_aux:nnn, \@@_output_uncert_S_aux:fnn}
+%   {\@@_output_uncert_S_auxiv:nnn, \@@_output_uncert_S_auxiv:fnn}
 % \begin{macro}[rEXP]
-%   {\@@_output_uncert_S:nnnw, \@@_output_uncert_S:fnw}
-% \begin{macro}[rEXP]{\@@_output_uncert_S:nnw}
+%   {\@@_output_uncert_S_auxv:nnnw, \@@_output_uncert_S_auxv:fnnw}
+% \begin{macro}[rEXP]{\@@_output_uncert_S_auxvi:nnw}
 % \begin{macro}[rEXP]
 %   {
 %     \@@_output_uncert_S_compact:nn        ,
@@ -3010,7 +3013,7 @@
     \@@_output_sign:nnn {#1} {#2} {#8}
     \@@_output_integer:nnn {#3} {#4} {#7}
     \@@_output_decimal:nn {#4} {#8}
-    \@@_output_uncertainty:nnn {#5} {#4} {#8}
+    \@@_output_uncertainty:nnnn {#5} {#3} {#4} {#8}
     \@@_output_exponent:nnnn {#6} {#7} { #3 . #4 } {#8}
     \@@_output_end:
   }
@@ -3224,41 +3227,77 @@
 %   digit tokens need to be removed from the start of the uncertainty and
 %   the split result sent to the appropriate auxiliaries.
 %    \begin{macrocode}
-\cs_new:Npn \@@_output_uncertainty:nnn #1#2#3
+\cs_new:Npn \@@_output_uncertainty:nnnn #1#2#3#4
   {
     \tl_if_blank:nTF {#1}
-      { \@@_output_uncertainty_unaligned:n {#3} }
+      { \@@_output_uncertainty_unaligned:n {#4} }
       {
-        \use:c { @@_output_uncert_ \tl_head:n {#1} :nnnw }
-          {#2} {#3} #1
+        \use:c { @@_output_uncert_ \tl_head:n {#1} :nnnnw }
+          {#2} {#3} {#4} #1
       }
   }
 \cs_new:Npn \@@_output_uncertainty_unaligned:n #1
   { \exp_not:n { #1 #1 #1 #1 } }
-\cs_new:Npn \@@_output_uncert_S:nnnw #1#2#3#4
+%    \end{macrocode}
+%   There is a bit more to do here if the uncertainty is purely in the integer
+%   part and printed separately. We need to pad it by the number of
+%   non-significant figures, then pass on to allow digit separation.
+%    \begin{macrocode}
+\cs_new:Npn \@@_output_uncert_S:nnnnw #1#2#3#4#5
   {
     \str_if_eq:VnTF \l_@@_uncert_mode_tl { separate }
       {
-        \exp_not:n {#2}
+        \exp_not:n {#3}
         \@@_output_sign:N \pm
-        \exp_not:n {#2}
-        \@@_output_uncert_S_aux:nnn
-          { \int_eval:n { \tl_count:n {#4} - \tl_count:n {#1} } }
-          {#4} {#2}
+        \exp_not:n {#3}
+        \tl_if_blank:nTF {#2}
+          { \@@_output_uncert_S_auxi:nnn {#1} {#5} {#3} }
+          {
+            \@@_output_uncert_S_auxiv:fnn
+              { \int_eval:n { \tl_count:n {#5} - \tl_count:n {#2} } }
+              {#5} {#3}
+          }
       }
       {
         \exp_not:V \l_@@_uncert_separator_tl
         \exp_not:V \l_@@_output_uncert_open_tl
-        \use:c { @@_output_uncert_S_ \l_@@_uncert_mode_tl :nn } {#1} {#4}
+        \use:c { @@_output_uncert_S_ \l_@@_uncert_mode_tl :nn } {#2} {#5}
         \exp_not:V \l_@@_output_uncert_close_tl
-        \@@_output_uncertainty_unaligned:n {#2}
+        \@@_output_uncertainty_unaligned:n {#3}
       }
   }
-\cs_new:Npn \@@_output_uncert_S_aux:nnn #1#2#3
+\cs_new:Npn \@@_output_uncert_S_auxi:nnn #1#2#3
   {
+    \@@_output_uncert_S_auxii:nnN { 0 } {#2} #1
+      \q_recursion_tail \q_recursion_stop {#3}
+  }
+\cs_new:Npn \@@_output_uncert_S_auxii:nnN #1#2#3
+  {
+    \quark_if_recursion_tail_stop_do:Nn #3
+      {
+        \exp_args:Nf \@@_output_uncert_S_auxiii:nnn
+          { \prg_replicate:nn {#1} { 0 } } {#2}
+      }
+    \str_if_eq:nnTF {#3} { 0 }
+      {
+        \exp_args:Nf \@@_output_uncert_S_auxii:nnN
+          { \int_eval:n { #1 + 1 } } {#2}
+      }
+      { \@@_output_uncert_S_auxii:nnN { 0 } {#2} }
+  }
+\cs_new:Npn \@@_output_uncert_S_auxiii:nnn #1#2#3
+  {
+    \@@_output_uncert_S_auxiv:fnn
+      { \int_eval:n { \tl_count:n {#2#1} } } {#2#1} {#3}
+  }
+%    \end{macrocode}
+%   All separated uncertainties bring us to here.
+%    \begin{macrocode} 
+\cs_new:Npn \@@_output_uncert_S_auxiv:nnn #1#2#3
+  {
     \int_compare:nNnTF {#1} > 0
       {
-        \@@_output_uncert_S_aux:fnnw
+        \@@_output_uncert_S_auxv:fnnw
           { \int_eval:n { #1 - 1 } }
           {#3}
           { }
@@ -3274,15 +3313,15 @@
           {#3}
       }
   }
-\cs_generate_variant:Nn \@@_output_uncert_S_aux:nnn { f }
-\cs_new:Npn \@@_output_uncert_S_aux:nnnw #1#2#3#4
+\cs_generate_variant:Nn \@@_output_uncert_S_auxiv:nnn { f }
+\cs_new:Npn \@@_output_uncert_S_auxv:nnnw #1#2#3#4
   {
     \quark_if_nil:NF #4
       {
         \int_compare:nNnTF {#1} = 0
-          { \@@_output_uncert_S_aux:nnw {#3#4} {#2} }
+          { \@@_output_uncert_S_auxvi:nnw {#3#4} {#2} }
           {
-            \@@_output_uncert_S_aux:fnnw
+            \@@_output_uncert_S_auxv:fnnw
               { \int_eval:n { #1 - 1 } }
               {#2}
               {#3#4}
@@ -3289,8 +3328,8 @@
           }
       }
   }
-\cs_generate_variant:Nn \@@_output_uncert_S_aux:nnnw { f }
-\cs_new:Npn \@@_output_uncert_S_aux:nnw #1#2#3 \q_nil
+\cs_generate_variant:Nn \@@_output_uncert_S_auxv:nnnw { f }
+\cs_new:Npn \@@_output_uncert_S_auxvi:nnw #1#2#3 \q_nil
   {
     \@@_output_digits:nn { integer } {#1}
     \@@_output_decimal:nn {#3} {#2}
@@ -3312,7 +3351,7 @@
   }
 \cs_new:Npn \@@_output_uncert_S_full:nn #1#2
   {
-    \@@_output_uncert_S_aux:fnn
+    \@@_output_uncert_S_auxiv:fnn
       { \int_eval:n { \tl_count:n {#2} - \tl_count:n {#1} } }
       {#2} { }
   }
@@ -3395,6 +3434,9 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \subsection{Miscellaneous tools}
 %

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx	2021-05-25 20:49:43 UTC (rev 59347)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx	2021-05-25 20:49:59 UTC (rev 59348)
@@ -292,6 +292,7 @@
               { \group_end: }
           }
     \group_begin:
+      \keys_set:nn { siunitx } { forbid-literal-units = false }
       \tl_set:Nn \l_@@_tmpa_tl { \mathrm { m } \cdot \mathrm { s } }
       \tl_set:Nn \l_siunitx_unit_font_tl { \mathrm }
       \siunitx_unit_format:nN { m . s } \l_@@_tmpb_tl

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx	2021-05-25 20:49:43 UTC (rev 59347)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx	2021-05-25 20:49:59 UTC (rev 59348)
@@ -121,7 +121,7 @@
 %
 % Identify the package and give the over all version information.
 %    \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2021-05-24} {3.0.5}
+\ProvidesExplPackage {siunitx} {2021-05-25} {3.0.6}
   {A comprehensive (SI) units package}
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx.tex	2021-05-25 20:49:43 UTC (rev 59347)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx.tex	2021-05-25 20:49:59 UTC (rev 59348)
@@ -2852,7 +2852,7 @@
 number of unit macros have been removed: of those accepted for use,
 \cs{angstrom} is no longer present, whilst the units determined experimentally
 are all no longer listed (\cs{atomicmassunit}, \cs{bohr}, \cs{clight},
-\cs{electronmass}, \cs{elementarycharge}, \cs{hartree}, \cs{plackbar}).
+\cs{electronmass}, \cs{elementarycharge}, \cs{hartree}, \cs{planckbar}).
 
 It is possible to use the \LaTeXe{} kernel mechanism to load the last
 version~$2$ release for documents that cannot be successfully processed using
@@ -2907,6 +2907,10 @@
 units: these are now handled directly where needed, for example in the
 definition of the \cs{micro} prefix.
 
+Translation of fixed strings is now carried out using the \pkg{translations}
+package. If you have manually set up translations in version~$2$ using
+\pkg{translator}, you will need to load it manually.
+
 The letter used for a numerical tabular column can now be selected by the
 user: the letter |S| has been retained as the standard interface. The unit
 column (|s|) has been removed from this release. It can be emulated using
@@ -3326,7 +3330,13 @@
 \end{LaTeXdemo}
 Each extra entry should be a single token, and should either have a definition
 which is safe in both math and text mode, or should only be used when the
-output mode is known.
+output mode is known. It may be necessary to make some tokens robust using
+\pkg{etoolbox} for this to work, for example
+\begin{LaTeXdemo}
+  \robustify\dots
+  \sisetup{input-digits = 0123456789\dots}%
+  \qty{0,4066\dots}{\metre\squared}
+\end{LaTeXdemo}
 
 \subsection{Demonstrating prefixes
   \label{sec:hint:prefixes}}

Modified: trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty	2021-05-25 20:49:43 UTC (rev 59347)
+++ trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty	2021-05-25 20:49:59 UTC (rev 59348)
@@ -42,7 +42,7 @@
       }%
     \endinput
   }%
-\ProvidesExplPackage {siunitx} {2021-05-24} {3.0.5}
+\ProvidesExplPackage {siunitx} {2021-05-25} {3.0.6}
   {A comprehensive (SI) units package}
 \msg_new:nnnn { siunitx } { incompatible-package }
   { Package~'#1'~incompatible. }
@@ -3031,7 +3031,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:nnn {#5} {#4} {#8}
+    \__siunitx_number_output_uncertainty:nnnn {#5} {#3} {#4} {#8}
     \__siunitx_number_output_exponent:nnnn {#6} {#7} { #3 . #4 } {#8}
     \__siunitx_number_output_end:
   }
@@ -3200,41 +3200,69 @@
           }
       }
   }
-\cs_new:Npn \__siunitx_number_output_uncertainty:nnn #1#2#3
+\cs_new:Npn \__siunitx_number_output_uncertainty:nnnn #1#2#3#4
   {
     \tl_if_blank:nTF {#1}
-      { \__siunitx_number_output_uncertainty_unaligned:n {#3} }
+      { \__siunitx_number_output_uncertainty_unaligned:n {#4} }
       {
-        \use:c { __siunitx_number_output_uncert_ \tl_head:n {#1} :nnnw }
-          {#2} {#3} #1
+        \use:c { __siunitx_number_output_uncert_ \tl_head:n {#1} :nnnnw }
+          {#2} {#3} {#4} #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:nnnw #1#2#3#4
+\cs_new:Npn \__siunitx_number_output_uncert_S:nnnnw #1#2#3#4#5
   {
     \str_if_eq:VnTF \l__siunitx_number_uncert_mode_tl { separate }
       {
-        \exp_not:n {#2}
+        \exp_not:n {#3}
         \__siunitx_number_output_sign:N \pm
-        \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: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: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 } {#1} {#4}
+        \use:c { __siunitx_number_output_uncert_S_ \l__siunitx_number_uncert_mode_tl :nn } {#2} {#5}
         \exp_not:V \l__siunitx_number_output_uncert_close_tl
-        \__siunitx_number_output_uncertainty_unaligned:n {#2}
+        \__siunitx_number_output_uncertainty_unaligned:n {#3}
       }
   }
-\cs_new:Npn \__siunitx_number_output_uncert_S_aux:nnn #1#2#3
+\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
+  {
     \int_compare:nNnTF {#1} > 0
       {
-        \__siunitx_number_output_uncert_S_aux:fnnw
+        \__siunitx_number_output_uncert_S_auxv:fnnw
           { \int_eval:n { #1 - 1 } }
           {#3}
           { }
@@ -3250,15 +3278,15 @@
           {#3}
       }
   }
-\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
+\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
   {
     \quark_if_nil:NF #4
       {
         \int_compare:nNnTF {#1} = 0
-          { \__siunitx_number_output_uncert_S_aux:nnw {#3#4} {#2} }
+          { \__siunitx_number_output_uncert_S_auxvi:nnw {#3#4} {#2} }
           {
-            \__siunitx_number_output_uncert_S_aux:fnnw
+            \__siunitx_number_output_uncert_S_auxv:fnnw
               { \int_eval:n { #1 - 1 } }
               {#2}
               {#3#4}
@@ -3265,8 +3293,8 @@
           }
       }
   }
-\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
+\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
   {
     \__siunitx_number_output_digits:nn { integer } {#1}
     \__siunitx_number_output_decimal:nn {#3} {#2}
@@ -3284,7 +3312,7 @@
   }
 \cs_new:Npn \__siunitx_number_output_uncert_S_full:nn #1#2
   {
-    \__siunitx_number_output_uncert_S_aux:fnn
+    \__siunitx_number_output_uncert_S_auxiv:fnn
       { \int_eval:n { \tl_count:n {#2} - \tl_count:n {#1} } }
       {#2} { }
   }
@@ -6121,6 +6149,7 @@
               { \group_end: }
           }
     \group_begin:
+      \keys_set:nn { siunitx } { forbid-literal-units = false }
       \tl_set:Nn \l__siunitx_symbol_tmpa_tl { \mathrm { m } \cdot \mathrm { s } }
       \tl_set:Nn \l_siunitx_unit_font_tl { \mathrm }
       \siunitx_unit_format:nN { m . s } \l__siunitx_symbol_tmpb_tl



More information about the tex-live-commits mailing list.