texlive[73499] Master/texmf-dist: siunitx (18jan25)

commits+karl at tug.org commits+karl at tug.org
Sat Jan 18 22:03:20 CET 2025


Revision: 73499
          https://tug.org/svn/texlive?view=revision&revision=73499
Author:   karl
Date:     2025-01-18 22:03:20 +0100 (Sat, 18 Jan 2025)
Log Message:
-----------
siunitx (18jan25)

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-angle.dtx
    trunk/Master/texmf-dist/source/latex/siunitx/siunitx-quantity.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	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/doc/latex/siunitx/CHANGELOG.md	2025-01-18 21:03:20 UTC (rev 73499)
@@ -7,6 +7,18 @@
 
 ## [Unreleased]
 
+## [v3.4.2] - 2025-01-17
+
+### Changed
+- Suppress prefix conversion for angle units and `\percent` (see issue
+  [\#771](https://github.com/josephwright/siunitx/issues/771))
+
+### Fixed
+- Printing of exponent part in `\ang` (see issue
+  [\#769](https://github.com/josephwright/siunitx/issues/769))
+- Parsing of exponent part in `\ang` (see issue
+  [\#770](https://github.com/josephwright/siunitx/issues/770))
+
 ## [v3.4.1] - 2025-01-14
 
 ### Fixed
@@ -2209,7 +2221,8 @@
 ### Added
 - First public testing release (as `si`)
 
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.4.1...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.4.2...HEAD
+[v3.4.2]: https://github.com/josephwright/siunitx/compare/v3.4.1...v3.4.2
 [v3.4.1]: https://github.com/josephwright/siunitx/compare/v3.4.0...v3.4.1
 [v3.4.0]: https://github.com/josephwright/siunitx/compare/v3.3.24...v3.4.0
 [v3.3.24]: https://github.com/josephwright/siunitx/compare/v3.3.23...v3.3.24

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-angle.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-angle.dtx	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-angle.dtx	2025-01-18 21:03:20 UTC (rev 73499)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% File: siunitx-angle.dtx Copyright (C) 2016-2019,2021-2024 Joseph Wright
+% File: siunitx-angle.dtx Copyright (C) 2016-2019,2021-2025 Joseph Wright
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -408,10 +408,10 @@
 \cs_new_protected:Npn \@@_arc_sign:nnn #1#2#3
   {
     \group_begin:
-      \@@_suppress_exp:
       \tl_clear:N \l_@@_sign_tl
       \bool_set_false:N \l_@@_signed_bool
       \group_begin:
+        \@@_suppress_exp:
         \@@_suppress_uncert:
         \str_if_eq:nnTF {#1} { -0 }
           {
@@ -543,10 +543,13 @@
 %     \@@_arc_print_auxi:nnn, \@@_arc_print_auxi:nVn
 %   }
 % \begin{macro}{\@@_arc_print_auxii:w}
-% \begin{macro}{\@@_arc_print_auxiii:n}
-% \begin{macro}{\@@_arc_print_auxiv:NN}
-% \begin{macro}{\@@_arc_print_auxv:w}
-% \begin{macro}{\@@_arc_print_auxvi:n}
+% \begin{macro}{\@@_arc_print_auxiii:nw}
+% \begin{macro}{\@@_arc_print_auxiv:nnnnn}
+% \begin{macro}{\@@_arc_print_auxv:n}
+% \begin{macro}{\@@_arc_print_auxvi:NN}
+% \begin{macro}{\@@_arc_print_auxvii:w}
+% \begin{macro}{\@@_arc_print_auxiix:w}
+% \begin{macro}{\@@_arc_print_auxix:n}
 %   The final stage of printing an angle is to put together the three parts:
 %   this works even for decimal angles as they will blank arguments for the
 %   other two parts The need to handle astronomy-style formatting means that
@@ -571,13 +574,13 @@
             \bool_if:NTF \l_@@_astronomy_bool
               { \@@_arc_print_auxii:nw {#2} #1 \q_stop }
               {
-                \@@_arc_print_auxv:w #1 \q_stop
-                \@@_arc_print_auxvi:n {#2}
+                \@@_arc_print_auxvii:w #1 \q_stop
+                \@@_arc_print_auxix:n {#2}
               }
           }
           {
             \siunitx_print_number:n {#1}
-            \@@_arc_print_auxvi:n {#2}
+            \@@_arc_print_auxix:n {#2}
           }
        \tl_if_blank:nF {#3}
           {
@@ -592,25 +595,36 @@
 %    for the |\scriptspace|.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_arc_print_auxii:nw
-  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_nil #8 \q_stop
+  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_stop
   {
+    \@@_arc_print_auxiii:nw {#6} #7 \q_stop
+      {#2#3#4} {#5} {#1}
+  }
+\cs_new_protected:Npn \@@_arc_print_auxiii:nw
+  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_stop
+  { \@@_arc_print_auxiv:nnnnn {#1} {#6#7} }
+\cs_new_protected:Npn \@@_arc_print_auxiv:nnnnn #1#2#3#4#5
+  {
     \mode_if_math:TF
       { \bool_set_true:N \l_@@_tmp_bool }
       { \bool_set_false:N \l_@@_tmp_bool }
-    \siunitx_print_number:n {#2#3#4}
-    \tl_if_blank:nTF {#6}
-      { \@@_arc_print_auxvi:n {#1} }
+    \siunitx_print_number:n {#3}
+    \tl_if_blank:nTF {#1}
       {
+        \siunitx_print_number:n {#2}
+        \@@_arc_print_auxix:n {#5}
+      }
+      {
         \hbox_set:Nn \l_@@_marker_box
           {
-            \@@_arc_print_auxiii:n
-               { \siunitx_print_number:n {#5} }
+            \@@_arc_print_auxv:n
+               { \siunitx_print_number:n {#4} }
           }
         \hbox_set:Nn \l_@@_unit_box
           {
-            \@@_arc_print_auxiii:n
+            \@@_arc_print_auxv:n
               {
-                \siunitx_unit_format:nN {#1} \l_@@_tmp_tl
+                \siunitx_unit_format:nN {#5} \l_@@_tmp_tl
                 \siunitx_print_unit:V \l_@@_tmp_tl
                 \skip_horizontal:n { -\scriptspace }
               }
@@ -618,12 +632,12 @@
         \dim_compare:nNnTF { \box_wd:N \l_@@_marker_box } >
           { \box_wd:N \l_@@_unit_box }
           {
-            \@@_arc_print_auxiv:NN
+            \@@_arc_print_auxvi:NN
               \l_@@_marker_box
               \l_@@_unit_box
           }
           {
-            \@@_arc_print_auxiv:NN
+            \@@_arc_print_auxvi:NN
               \l_@@_unit_box
               \l_@@_marker_box
           }
@@ -638,10 +652,10 @@
           }
         \box_use:N \l_@@_marker_box
         \skip_horizontal:N \scriptspace
-        \siunitx_print_number:n {#6}
+        \siunitx_print_number:n {#1#2}
       }
   }
-\cs_new_protected:Npn \@@_arc_print_auxiii:n #1
+\cs_new_protected:Npn \@@_arc_print_auxv:n #1
   {
     \bool_if:NTF \l_@@_tmp_bool
       { \ensuremath }
@@ -648,7 +662,7 @@
       { \use:n }
         {#1}
   }
-\cs_new_protected:Npn \@@_arc_print_auxiv:NN #1#2
+\cs_new_protected:Npn \@@_arc_print_auxvi:NN #1#2
   {
     \dim_set:Nn \l_@@_tmp_dim { \box_wd:N #1 }
     \hbox_set_to_wd:Nnn #2
@@ -659,10 +673,13 @@
         \tex_hss:D
       }
   }
-\cs_new_protected:Npn \@@_arc_print_auxv:w
+\cs_new_protected:Npn \@@_arc_print_auxvii:w
   #1 \q_nil #2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_stop
-  { \siunitx_print_number:n {#1#2#3#4#5} }
-\cs_new_protected:Npn \@@_arc_print_auxvi:n #1
+  { \@@_arc_print_auxiix:w {#1#2#3#4#5} #6 \q_stop }
+\cs_new_protected:Npn \@@_arc_print_auxiix:w
+  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_stop
+  { \siunitx_print_number:n {#1#6#7} }
+\cs_new_protected:Npn \@@_arc_print_auxix:n #1
   {
     \group_begin:
       \siunitx_unit_options_apply:n {#1}
@@ -677,6 +694,9 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
 %    \begin{macrocode}
 \msg_new:nnnn { siunitx } { arc-multi-sign }

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx-quantity.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-quantity.dtx	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-quantity.dtx	2025-01-18 21:03:20 UTC (rev 73499)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% File: siunitx-quantity.dtx Copyright (C) 2018-2024 Joseph Wright
+% File: siunitx-quantity.dtx Copyright (C) 2018-2025 Joseph Wright
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -434,11 +434,13 @@
 %   \pkg{siunitx-unit} on options it does not contain.
 %    \begin{macrocode}
 \siunitx_unit_options_declare:Nn \arcminute
-  { quantity-product = { } }
+  { prefix-mode = input , quantity-product = { } }
 \siunitx_unit_options_declare:Nn \arcsecond
-  { quantity-product = { } }
+  { prefix-mode = input , quantity-product = { } }
 \siunitx_unit_options_declare:Nn \degree
-  { quantity-product = { } }
+  { prefix-mode = input , quantity-product = { } }
+\siunitx_unit_options_declare:Nn \percent
+  { prefix-mode = input }
 %    \end{macrocode}
 % \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx-symbol.dtx	2025-01-18 21:03:20 UTC (rev 73499)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% File: siunitx-symbol.dtx Copyright (C) 2018-2024 Joseph Wright
+% File: siunitx-symbol.dtx Copyright (C) 2018-2025 Joseph Wright
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -144,13 +144,13 @@
       {
         \siunitx_declare_unit:Nnn \arcminute
           { \ensuremath { { } ' } }
-          { quantity-product = { } }
+          { prefix-mode = input , quantity-product = { } }
       }
     \@@_if_replace:NnT \arcsecond { "02BA }
       {
         \siunitx_declare_unit:Nnn \arcsecond
           { \ensuremath { { } '' } }
-          { quantity-product = { } }
+          { prefix-mode = input , quantity-product = { } }
       }
 %    \end{macrocode}
 %   For |\degree|, direct input works in text mode so there is only a need to
@@ -172,7 +172,7 @@
                   { { } ^ { \exp_not:N \circ } }
               }
           }
-          { quantity-product = { } }
+          { prefix-mode = input , quantity-product = { } }
       }
 %    \end{macrocode}
 %   For |\degreeCelsius|, much the same to think about but the comparison

Modified: trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx.dtx	2025-01-18 21:03:20 UTC (rev 73499)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% File: siunitx.dtx Copyright (C) 2008-2019,2021-2024 Joseph Wright
+% File: siunitx.dtx Copyright (C) 2008-2019,2021-2025 Joseph Wright
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -137,7 +137,7 @@
 %
 % Identify the package and give the over all version information.
 %    \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2025-01-14} {3.4.1}
+\ProvidesExplPackage {siunitx} {2025-01-17} {3.4.2}
   {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	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/source/latex/siunitx/siunitx.tex	2025-01-18 21:03:20 UTC (rev 73499)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File: siunitx.tex Copyright (C) 2014-2024 Joseph Wright
+File: siunitx.tex Copyright (C) 2014-2025 Joseph Wright
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -33,6 +33,10 @@
 % The next line is needed so that \GetFileInfo will be able to pick up
 % version data (quite apart from making the demos work).
 \usepackage{siunitx}
+% So we can have 'sensible' demos for \arcsecond
+\DeclareSIUnit\arcsecond{as}
+\DeclareSIUnit[quantity-product = {}]\stdarcsecond{\ensuremath {{}''}}
+\sisetup{angle-symbol-second = \stdarcsecond}
 \DeclareSIUnit\noop{\relax} % For printing prefixes
 \DeclareSIPower\quartic\tothefourth{4} % For demos
 \DeclareSIUnit\KWH{kWh}
@@ -392,7 +396,8 @@
 either as a decimal number or as a semi-colon separated list of degrees,
 minutes and seconds, which is called \enquote{arc format} in this document. The
 numbers which make up an angle are processed using the same system as other
-numbers.
+numbers. However, no unit prefixes are applied here: as such, conversion from
+exponent form to unit prefixes does not apply.
 \begin{LaTeXdemo}
   \ang{10}    \\
   \ang{12.3}  \\
@@ -624,7 +629,7 @@
        & \cs{liter} & \unit{\liter} \\
       \DescribeUnit[minute (plane angle)]{arcminute} \\
       \DescribeUnit[minute (time)]{minute} \\
-      \DescribeUnit[second (plane angle)]{arcsecond} \\
+      second (plane angle) & \cs{arcsecond} & \unit{\stdarcsecond} \\
       \DescribeUnit{neper}            \\
       \DescribeUnit{tonne}            \\
     \bottomrule
@@ -2406,7 +2411,7 @@
 using \opt{angle-symbol-degree}, \opt{angle-symbol-minute} and
 \opt{angle-symbol-second}. This is most likely to be used when the definition
 of the unit macros is altered, for example to set \cs{arcsecond} as
-\texttt{as}.
+\texttt{as} (see also Section~\ref{sec:hint:prefixangle}).
 \begin{LaTeXdemo}
   \ang{6;7;6.5} \\
   \sisetup{
@@ -2771,6 +2776,8 @@
   \qty[prefix-mode = extract-exponent]{10}{\kilo\gram\squared\deci\second} \\
   \qty[prefix-mode = extract-exponent]{7.5}{\gram} \\
 \end{LaTeXdemo}
+This option does not apply to units \cs{degree}, \cs{arcminute}, \cs{arcsecond}
+and \cs{percent}.
 
 \DescribeOption{separate-uncertainty-units}
 When a number has multiple parts (such as a separate uncertainty) then the unit
@@ -3915,6 +3922,21 @@
   \unit[sticky-per]{\candela\per\kWh}
 \end{LaTeXdemo}
 
+\subsection{Prefixes and small angles%
+  \label{sec:hint:prefixangle}}
+
+Typically, prefixes are not applied to the standard symbols for angles: as
+such, the \cs{ang} command is not subject to the \opt{prefix-mode} option. In
+some areas, very small angles are given in arcseconds using the symbol
+\unit{as}. To apply prefixes in this case, use the \cs{qty} command rather than
+\cs{ang}.
+\begin{LaTeXdemo}
+  % In the preamble
+  % \DeclareSIUnit\arcsecond{as}
+  \qty{1e-3}{\arcsecond} \\
+  \qty[prefix-mode = combine-exponent]{1e-3}{\arcsecond}
+\end{LaTeXdemo}
+
 \subsection{Creating a column with numbers and units%
   \label{sec:hint:mixed}}
 

Modified: trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty	2025-01-18 21:03:09 UTC (rev 73498)
+++ trunk/Master/texmf-dist/tex/latex/siunitx/siunitx.sty	2025-01-18 21:03:20 UTC (rev 73499)
@@ -47,7 +47,7 @@
       }%
     \endinput
   }%
-\ProvidesExplPackage {siunitx} {2025-01-14} {3.4.1}
+\ProvidesExplPackage {siunitx} {2025-01-17} {3.4.2}
   {A comprehensive (SI) units package}
 \msg_new:nnnn { siunitx } { incompatible-package }
   { Package~'#1'~incompatible. }
@@ -3087,10 +3087,10 @@
 \cs_new_protected:Npn \__siunitx_angle_arc_sign:nnn #1#2#3
   {
     \group_begin:
-      \__siunitx_angle_suppress_exp:
       \tl_clear:N \l__siunitx_angle_sign_tl
       \bool_set_false:N \l__siunitx_angle_signed_bool
       \group_begin:
+        \__siunitx_angle_suppress_exp:
         \__siunitx_angle_suppress_uncert:
         \str_if_eq:nnTF {#1} { -0 }
           {
@@ -3222,13 +3222,13 @@
             \bool_if:NTF \l__siunitx_angle_astronomy_bool
               { \__siunitx_angle_arc_print_auxii:nw {#2} #1 \q_stop }
               {
-                \__siunitx_angle_arc_print_auxv:w #1 \q_stop
-                \__siunitx_angle_arc_print_auxvi:n {#2}
+                \__siunitx_angle_arc_print_auxvii:w #1 \q_stop
+                \__siunitx_angle_arc_print_auxix:n {#2}
               }
           }
           {
             \siunitx_print_number:n {#1}
-            \__siunitx_angle_arc_print_auxvi:n {#2}
+            \__siunitx_angle_arc_print_auxix:n {#2}
           }
        \tl_if_blank:nF {#3}
           {
@@ -3239,25 +3239,36 @@
   }
 \cs_generate_variant:Nn \__siunitx_angle_arc_print_auxi:nnn { nV }
 \cs_new_protected:Npn \__siunitx_angle_arc_print_auxii:nw
-  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_nil #8 \q_stop
+  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_stop
   {
+    \__siunitx_angle_arc_print_auxiii:nw {#6} #7 \q_stop
+      {#2#3#4} {#5} {#1}
+  }
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxiii:nw
+  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_stop
+  { \__siunitx_angle_arc_print_auxiv:nnnnn {#1} {#6#7} }
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxiv:nnnnn #1#2#3#4#5
+  {
     \mode_if_math:TF
       { \bool_set_true:N \l__siunitx_angle_tmp_bool }
       { \bool_set_false:N \l__siunitx_angle_tmp_bool }
-    \siunitx_print_number:n {#2#3#4}
-    \tl_if_blank:nTF {#6}
-      { \__siunitx_angle_arc_print_auxvi:n {#1} }
+    \siunitx_print_number:n {#3}
+    \tl_if_blank:nTF {#1}
       {
+        \siunitx_print_number:n {#2}
+        \__siunitx_angle_arc_print_auxix:n {#5}
+      }
+      {
         \hbox_set:Nn \l__siunitx_angle_marker_box
           {
-            \__siunitx_angle_arc_print_auxiii:n
-               { \siunitx_print_number:n {#5} }
+            \__siunitx_angle_arc_print_auxv:n
+               { \siunitx_print_number:n {#4} }
           }
         \hbox_set:Nn \l__siunitx_angle_unit_box
           {
-            \__siunitx_angle_arc_print_auxiii:n
+            \__siunitx_angle_arc_print_auxv:n
               {
-                \siunitx_unit_format:nN {#1} \l__siunitx_angle_tmp_tl
+                \siunitx_unit_format:nN {#5} \l__siunitx_angle_tmp_tl
                 \siunitx_print_unit:V \l__siunitx_angle_tmp_tl
                 \skip_horizontal:n { -\scriptspace }
               }
@@ -3265,12 +3276,12 @@
         \dim_compare:nNnTF { \box_wd:N \l__siunitx_angle_marker_box } >
           { \box_wd:N \l__siunitx_angle_unit_box }
           {
-            \__siunitx_angle_arc_print_auxiv:NN
+            \__siunitx_angle_arc_print_auxvi:NN
               \l__siunitx_angle_marker_box
               \l__siunitx_angle_unit_box
           }
           {
-            \__siunitx_angle_arc_print_auxiv:NN
+            \__siunitx_angle_arc_print_auxvi:NN
               \l__siunitx_angle_unit_box
               \l__siunitx_angle_marker_box
           }
@@ -3285,10 +3296,10 @@
           }
         \box_use:N \l__siunitx_angle_marker_box
         \skip_horizontal:N \scriptspace
-        \siunitx_print_number:n {#6}
+        \siunitx_print_number:n {#1#2}
       }
   }
-\cs_new_protected:Npn \__siunitx_angle_arc_print_auxiii:n #1
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxv:n #1
   {
     \bool_if:NTF \l__siunitx_angle_tmp_bool
       { \ensuremath }
@@ -3295,7 +3306,7 @@
       { \use:n }
         {#1}
   }
-\cs_new_protected:Npn \__siunitx_angle_arc_print_auxiv:NN #1#2
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxvi:NN #1#2
   {
     \dim_set:Nn \l__siunitx_angle_tmp_dim { \box_wd:N #1 }
     \hbox_set_to_wd:Nnn #2
@@ -3306,10 +3317,13 @@
         \tex_hss:D
       }
   }
-\cs_new_protected:Npn \__siunitx_angle_arc_print_auxv:w
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxvii:w
   #1 \q_nil #2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_stop
-  { \siunitx_print_number:n {#1#2#3#4#5} }
-\cs_new_protected:Npn \__siunitx_angle_arc_print_auxvi:n #1
+  { \__siunitx_angle_arc_print_auxiix:w {#1#2#3#4#5} #6 \q_stop }
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxiix:w
+  #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_stop
+  { \siunitx_print_number:n {#1#6#7} }
+\cs_new_protected:Npn \__siunitx_angle_arc_print_auxix:n #1
   {
     \group_begin:
       \siunitx_unit_options_apply:n {#1}
@@ -7875,11 +7889,13 @@
     separate-uncertainty-units = bracket
   }
 \siunitx_unit_options_declare:Nn \arcminute
-  { quantity-product = { } }
+  { prefix-mode = input , quantity-product = { } }
 \siunitx_unit_options_declare:Nn \arcsecond
-  { quantity-product = { } }
+  { prefix-mode = input , quantity-product = { } }
 \siunitx_unit_options_declare:Nn \degree
-  { quantity-product = { } }
+  { prefix-mode = input , quantity-product = { } }
+\siunitx_unit_options_declare:Nn \percent
+  { prefix-mode = input }
 \tl_new:N \l__siunitx_symbol_tmpa_tl
 \tl_new:N \l__siunitx_symbol_tmpb_tl
 \AtBeginDocument
@@ -7914,13 +7930,13 @@
       {
         \siunitx_declare_unit:Nnn \arcminute
           { \ensuremath { { } ' } }
-          { quantity-product = { } }
+          { prefix-mode = input , quantity-product = { } }
       }
     \__siunitx_symbol_if_replace:NnT \arcsecond { "02BA }
       {
         \siunitx_declare_unit:Nnn \arcsecond
           { \ensuremath { { } '' } }
-          { quantity-product = { } }
+          { prefix-mode = input , quantity-product = { } }
       }
     \__siunitx_symbol_if_replace:NnT \degree { "00B0 }
       {
@@ -7938,7 +7954,7 @@
                   { { } ^ { \exp_not:N \circ } }
               }
           }
-          { quantity-product = { } }
+          { prefix-mode = input , quantity-product = { } }
       }
     \group_begin:
       \tl_set:Nx \l__siunitx_symbol_tmpa_tl { \__siunitx_symbol_non_latin:n { "00B0 } C }



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