texlive[61093] Master/texmf-dist: siunitx (20nov21)

commits+karl at tug.org commits+karl at tug.org
Sat Nov 20 00:12:25 CET 2021


Revision: 61093
          http://tug.org/svn/texlive?view=revision&revision=61093
Author:   karl
Date:     2021-11-20 00:12:24 +0100 (Sat, 20 Nov 2021)
Log Message:
-----------
siunitx (20nov21)

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-print.dtx
    trunk/Master/texmf-dist/source/latex/siunitx/siunitx-table.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-11-19 23:11:56 UTC (rev 61092)
+++ trunk/Master/texmf-dist/doc/latex/siunitx/CHANGELOG.md	2021-11-19 23:12:24 UTC (rev 61093)
@@ -7,6 +7,16 @@
 
 ## [Unreleased]
 
+## [v3.0.36]
+
+### Changed
+- Internal changes to tabular code to improve visual output when integer part
+  is overfull (in preparation for _The LaTeX Companion_, 3rd Edition)
+
+### Fixed
+- Printing fractional units using `\sfrac` (see issue
+  [#558](https://github.com/josephwright/siunitx/issues/558))
+
 ## [v3.0.35]
 
 ### Changed
@@ -1622,7 +1632,8 @@
 ### Added
 - First public testing release (as `si`)
 
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.35...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.36...HEAD
+[v3.0.36]: https://github.com/josephwright/siunitx/compare/v3.0.35...v3.0.36
 [v3.0.35]: https://github.com/josephwright/siunitx/compare/v3.0.34...v3.0.35
 [v3.0.34]: https://github.com/josephwright/siunitx/compare/v3.0.33...v3.0.34
 [v3.0.33]: https://github.com/josephwright/siunitx/compare/v3.0.32...v3.0.33

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-print.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-print.dtx	2021-11-19 23:11:56 UTC (rev 61092)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-print.dtx	2021-11-19 23:12:24 UTC (rev 61093)
@@ -532,6 +532,7 @@
 %     \@@_math_auxi:n,
 %     \@@_math_auxii:n,
 %   }
+% \begin{macro}{\@@_math_text_setup:}
 % \begin{macro}{\@@_math_replace:Nn}
 % \begin{macro}
 %   {
@@ -622,11 +623,16 @@
 \cs_new_protected:Npn \@@_math_auxii:n #1
   {
     \group_begin:
-      \cs_set_protected:Npn \text ##1
+      \tl_if_head_eq_meaning:nNTF {#1} \sfrac
         {
-          \cs_set_eq:NN \text \@@_ams_text:n
-          \siunitx_print_text:n {##1}
+          \cs_set_protected:Npn \text ##1
+            {
+              \cs_set_eq:NN \text \@@_ams_text:n
+              \@@_math_text_setup:
+              ##1
+            }
         }
+        { \@@_math_text_setup: }
       \tl_set:Nn \l_@@_tmp_tl {#1}
       \exp_after:wN \@@_math_replace:Nn
         \l_@@_math_html_tl
@@ -634,6 +640,23 @@
       \exp_args:NV \@@_math_auxiii:n \l_@@_tmp_tl
      \group_end:
   }
+%    \end{macrocode}
+%   Within the math mode argument, there might be a nested \cs{text}, at which
+%   point we need to apply the text-mode support. Within \emph{that}, we need
+%   to reset \cs{text} to normal. There is one wrinkle, which is covered in the
+%   function above: the \cs{sfrac} command from \pkg{xfrac}. In the latter,
+%   there is a \cs{text} applied to the two arguments, and the material that is
+%   passed contains a lot of code: we cannot apply search-and-replace there.
+%   Instead, we delay things by one expansion.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_math_text_setup:
+  {
+    \cs_set_protected:Npn \text ##1
+      {
+        \cs_set_eq:NN \text \@@_ams_text:n
+        \siunitx_print_text:n {##1}
+      }
+  }
 \cs_new_protected:Npn \@@_math_replace:Nn #1#2
   {
     \quark_if_recursion_tail_stop:N #1
@@ -764,6 +787,7 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\siunitx_print_text:n}
 % \begin{macro}{\@@_text_replace:n, \@@_text_replace_aux:n}

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx-table.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-table.dtx	2021-11-19 23:11:56 UTC (rev 61092)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-table.dtx	2021-11-19 23:12:24 UTC (rev 61093)
@@ -1114,8 +1114,6 @@
 %     \l_@@_align_before_bool      ,
 %     \l_@@_align_uncertainty_bool
 %   }
-%   Alignment is handled using a |tl| as this allows a fast lookup at the
-%   point of use.
 %    \begin{macrocode}
 \keys_define:nn { siunitx }
   {
@@ -1323,10 +1321,15 @@
 %    \end{macrocode}
 %   The integer part follows much the same pattern, except now it is control
 %   of the comparator alignment that determines where the white space goes.
+%   We want to make sure that \emph{if} the integer is too long, it pokes out
+%   to the left, and at the same time we want to issue exactly one overfull
+%   box warning. That is achieved using an explicit test, such that if there
+%   is an issue we force the size of the content appropriately. That process
+%   will lead to a hit but only for \enquote{defective} input.
+%
 %   As we already have content in the |integer| box, we need to measure how
-%   much \emph{extra} material has been added. To avoid using more boxes
-%   or re-setting, we do that by recording sizes before and after the change.
-%   (In effect, \cs{l_@@_tmp_dim} is here \enquote{l_@@_comparator_dim}.)
+%   much \emph{extra} material has been added.
+%
 %   As the integer part is completed here, we are able to finalise the width
 %   of the pre-numeral part, reboxing it to have the correct width and possibly
 %   to force a single overfull warning if appropriate.
@@ -1335,6 +1338,18 @@
   #1 \q_nil #2 \q_nil #3 \q_mark #4 \q_nil #5 \q_nil #6 \q_stop
   {
     \@@_print_format_box:Nn \l_@@_tmp_box {#1#2}
+    \dim_set:Nn \l_@@_tmp_dim { \box_wd:N \l_@@_tmp_box }
+    \@@_print_format_box:Nn \l_@@_tmp_box {#4#5}
+    \dim_compare:nNnT { \box_wd:N \l_@@_tmp_box } > \l_@@_tmp_dim
+      {
+        \hbox_set_to_wd:Nnn \l_@@_tmp_box \l_@@_tmp_dim
+          { \hbox_unpack:N \l_@@_tmp_box }
+        \hbox_set_to_wd:Nnn \l_@@_tmp_box \l_@@_tmp_dim
+          {
+            \tex_hss:D
+            \hbox_unpack:N \l_@@_tmp_box
+          }
+      }
     \bool_lazy_and:nnTF
       { \l_@@_align_comparator_bool }
       { \dim_compare_p:nNn { \box_wd:N \l_@@_integer_box } > { 0pt } }
@@ -1342,12 +1357,12 @@
         \hbox_set_to_wd:Nnn \l_@@_integer_box
           {
               \box_wd:N \l_@@_integer_box
-            + \box_wd:N \l_@@_tmp_box
+            + \l_@@_tmp_dim
           }
           {
             \hbox_unpack:N \l_@@_integer_box
             \@@_fil:
-            \siunitx_print_number:n {#4#5}
+            \hbox_unpack:N \l_@@_tmp_box
           }
       }
       {
@@ -1356,27 +1371,24 @@
             \hbox_set_to_wd:Nnn \l_@@_integer_box
               {
                   \box_wd:N \l_@@_integer_box
-                + \box_wd:N \l_@@_tmp_box
+                + \l_@@_tmp_dim
               }
               {
                 \@@_fil:
                 \hbox_unpack:N \l_@@_integer_box
-                \siunitx_print_number:n {#4#5}
+                \hbox_unpack:N \l_@@_tmp_box
               }
           }
           {
-            \dim_set:Nn \l_@@_tmp_dim
-              { \box_wd:N \l_@@_integer_box }
             \hbox_set:Nn \l_@@_integer_box
               {
                 \hbox_unpack:N \l_@@_integer_box
-                \siunitx_print_number:n {#4#5}
+                \hbox_unpack:N \l_@@_tmp_box
               }
             \dim_add:Nn \l_@@_before_dim
               {
-                + \box_wd:N \l_@@_tmp_box
-                + \l_@@_tmp_dim
-                - \box_wd:N \l_@@_integer_box
+                  \l_@@_tmp_dim
+                - \box_wd:N \l_@@_tmp_box
               }
           }
       }

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx	2021-11-19 23:11:56 UTC (rev 61092)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx	2021-11-19 23:12:24 UTC (rev 61093)
@@ -121,7 +121,7 @@
 %
 % Identify the package and give the over all version information.
 %    \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2021-11-03} {3.0.35}
+\ProvidesExplPackage {siunitx} {2021-11-18} {3.0.36}
   {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-11-19 23:11:56 UTC (rev 61092)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx.tex	2021-11-19 23:12:24 UTC (rev 61093)
@@ -590,7 +590,7 @@
 for a number of units which are accepted for use in the \acro{SI} although they
 are not \acro{SI} units. Table~\ref{tab:unit:accepted} lists the
 \enquote{accepted} units. The command \cs{percent} is also provided for use in
-units: this is accepted with the \acro{SI} as detailed in Section~5.3.7 of the
+units: this is accepted with the \acro{SI} as detailed in Section~5.4.7 of the
 Brochure.
 \begin{table}
   \caption{Non-\acro{SI} units accepted for use with the International System of

Modified: trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty	2021-11-19 23:11:56 UTC (rev 61092)
+++ trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty	2021-11-19 23:12:24 UTC (rev 61093)
@@ -42,7 +42,7 @@
       }%
     \endinput
   }%
-\ProvidesExplPackage {siunitx} {2021-11-03} {3.0.35}
+\ProvidesExplPackage {siunitx} {2021-11-18} {3.0.36}
   {A comprehensive (SI) units package}
 \msg_new:nnnn { siunitx } { incompatible-package }
   { Package~'#1'~incompatible. }
@@ -3772,11 +3772,16 @@
 \cs_new_protected:Npn \__siunitx_print_math_auxii:n #1
   {
     \group_begin:
-      \cs_set_protected:Npn \text ##1
+      \tl_if_head_eq_meaning:nNTF {#1} \sfrac
         {
-          \cs_set_eq:NN \text \__siunitx_print_ams_text:n
-          \siunitx_print_text:n {##1}
+          \cs_set_protected:Npn \text ##1
+            {
+              \cs_set_eq:NN \text \__siunitx_print_ams_text:n
+              \__siunitx_print_math_text_setup:
+              ##1
+            }
         }
+        { \__siunitx_print_math_text_setup: }
       \tl_set:Nn \l__siunitx_print_tmp_tl {#1}
       \exp_after:wN \__siunitx_print_math_replace:Nn
         \l__siunitx_print_math_html_tl
@@ -3784,6 +3789,14 @@
       \exp_args:NV \__siunitx_print_math_auxiii:n \l__siunitx_print_tmp_tl
      \group_end:
   }
+\cs_new_protected:Npn \__siunitx_print_math_text_setup:
+  {
+    \cs_set_protected:Npn \text ##1
+      {
+        \cs_set_eq:NN \text \__siunitx_print_ams_text:n
+        \siunitx_print_text:n {##1}
+      }
+  }
 \cs_new_protected:Npn \__siunitx_print_math_replace:Nn #1#2
   {
     \quark_if_recursion_tail_stop:N #1
@@ -4763,6 +4776,18 @@
   #1 \q_nil #2 \q_nil #3 \q_mark #4 \q_nil #5 \q_nil #6 \q_stop
   {
     \__siunitx_table_print_format_box:Nn \l__siunitx_table_tmp_box {#1#2}
+    \dim_set:Nn \l__siunitx_table_tmp_dim { \box_wd:N \l__siunitx_table_tmp_box }
+    \__siunitx_table_print_format_box:Nn \l__siunitx_table_tmp_box {#4#5}
+    \dim_compare:nNnT { \box_wd:N \l__siunitx_table_tmp_box } > \l__siunitx_table_tmp_dim
+      {
+        \hbox_set_to_wd:Nnn \l__siunitx_table_tmp_box \l__siunitx_table_tmp_dim
+          { \hbox_unpack:N \l__siunitx_table_tmp_box }
+        \hbox_set_to_wd:Nnn \l__siunitx_table_tmp_box \l__siunitx_table_tmp_dim
+          {
+            \tex_hss:D
+            \hbox_unpack:N \l__siunitx_table_tmp_box
+          }
+      }
     \bool_lazy_and:nnTF
       { \l__siunitx_table_align_comparator_bool }
       { \dim_compare_p:nNn { \box_wd:N \l__siunitx_table_integer_box } > { 0pt } }
@@ -4770,12 +4795,12 @@
         \hbox_set_to_wd:Nnn \l__siunitx_table_integer_box
           {
               \box_wd:N \l__siunitx_table_integer_box
-            + \box_wd:N \l__siunitx_table_tmp_box
+            + \l__siunitx_table_tmp_dim
           }
           {
             \hbox_unpack:N \l__siunitx_table_integer_box
             \__siunitx_table_fil:
-            \siunitx_print_number:n {#4#5}
+            \hbox_unpack:N \l__siunitx_table_tmp_box
           }
       }
       {
@@ -4784,27 +4809,24 @@
             \hbox_set_to_wd:Nnn \l__siunitx_table_integer_box
               {
                   \box_wd:N \l__siunitx_table_integer_box
-                + \box_wd:N \l__siunitx_table_tmp_box
+                + \l__siunitx_table_tmp_dim
               }
               {
                 \__siunitx_table_fil:
                 \hbox_unpack:N \l__siunitx_table_integer_box
-                \siunitx_print_number:n {#4#5}
+                \hbox_unpack:N \l__siunitx_table_tmp_box
               }
           }
           {
-            \dim_set:Nn \l__siunitx_table_tmp_dim
-              { \box_wd:N \l__siunitx_table_integer_box }
             \hbox_set:Nn \l__siunitx_table_integer_box
               {
                 \hbox_unpack:N \l__siunitx_table_integer_box
-                \siunitx_print_number:n {#4#5}
+                \hbox_unpack:N \l__siunitx_table_tmp_box
               }
             \dim_add:Nn \l__siunitx_table_before_dim
               {
-                + \box_wd:N \l__siunitx_table_tmp_box
-                + \l__siunitx_table_tmp_dim
-                - \box_wd:N \l__siunitx_table_integer_box
+                  \l__siunitx_table_tmp_dim
+                - \box_wd:N \l__siunitx_table_tmp_box
               }
           }
       }



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