[latex3-commits] [git/LaTeX3-latex3-latex3] master: Global versions of box affine function (61f18e5)

Joseph Wright joseph.wright at morningstar2.co.uk
Tue Jan 22 09:58:11 CET 2019


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/61f18e539ba3f098cc90e189a48d9442c866da17

>---------------------------------------------------------------

commit 61f18e539ba3f098cc90e189a48d9442c866da17
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Tue Jan 22 08:58:11 2019 +0000

    Global versions of box affine function


>---------------------------------------------------------------

61f18e539ba3f098cc90e189a48d9442c866da17
 l3kernel/CHANGELOG.md                   |    1 +
 l3kernel/l3box.dtx                      |  255 +++++++++++++++++++++++--------
 l3kernel/testfiles/m3expl001.luatex.tlg |   30 +++-
 l3kernel/testfiles/m3expl001.ptex.tlg   |   30 +++-
 l3kernel/testfiles/m3expl001.tlg        |   30 +++-
 l3kernel/testfiles/m3expl001.uptex.tlg  |   30 +++-
 l3kernel/testfiles/m3expl001.xetex.tlg  |   30 +++-
 l3kernel/testfiles/m3expl003.luatex.tlg |   30 +++-
 l3kernel/testfiles/m3expl003.ptex.tlg   |   30 +++-
 l3kernel/testfiles/m3expl003.tlg        |   30 +++-
 l3kernel/testfiles/m3expl003.uptex.tlg  |   30 +++-
 l3kernel/testfiles/m3expl003.xetex.tlg  |   30 +++-
 12 files changed, 472 insertions(+), 84 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 8d7e9b5..5a990cc 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -9,6 +9,7 @@ this project uses date-based 'snapshot' version identifiers.
 
 ### Added
 
+- Global versions of box affine functions, e.g. `\box_grotate:Nn`
 - `\box_(g)set_eq_drop:NN`, `\(h|v)box_unpack_drop:N`
 - `\file_get:nnN` and `\file_get:nnNTF`
 - Experimental functions `\sys_shell_get:nnN` and `\sys_shell_get:nnNTF`
diff --git a/l3kernel/l3box.dtx b/l3kernel/l3box.dtx
index 6fe0970..5d13401 100644
--- a/l3kernel/l3box.dtx
+++ b/l3kernel/l3box.dtx
@@ -651,8 +651,11 @@
 % On the other hand, rotation and resizing of boxed material can best be
 % handled by modifying boxes. These transformations are described here.
 %
-% \begin{function}[added = 2017-04-04]
-%   {\box_autosize_to_wd_and_ht:Nnn, \box_autosize_to_wd_and_ht:cnn}
+% \begin{function}[added = 2017-04-04, updated = 2019-01-22]
+%   {
+%     \box_autosize_to_wd_and_ht:Nnn, \box_autosize_to_wd_and_ht:cnn,
+%     \box_gautosize_to_wd_and_ht:Nnn, \box_gautosize_to_wd_and_ht:cnn,
+%   }
 %   \begin{syntax}
 %     \cs{box_autosize_to_wd_and_ht:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
 %   \end{syntax}
@@ -666,12 +669,16 @@
 %   sizes cause the material in the \meta{box} to be reversed in direction,
 %   but the reference point of the \meta{box} is unchanged. Thus a negative
 %   \meta{y-size} results in the \meta{box} having a depth dependent on the
-%   height of the original and \emph{vice versa}. The resizing applies within
-%   the current \TeX{} group level.
+%   height of the original and \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}[added = 2017-04-04]
-%   {\box_autosize_to_wd_and_ht_plus_dp:Nnn, \box_autosize_to_wd_and_ht_plus_dp:cnn}
+% \begin{function}[added = 2017-04-04, updated = 2019-01-22]]
+%   {
+%     \box_autosize_to_wd_and_ht_plus_dp:Nnn,
+%     \box_autosize_to_wd_and_ht_plus_dp:cnn,
+%     \box_gautosize_to_wd_and_ht_plus_dp:Nnn,
+%     \box_gautosize_to_wd_and_ht_plus_dp:cnn
+%   }
 %   \begin{syntax}
 %     \cs{box_autosize_to_wd_and_ht_plus_dp:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
 %   \end{syntax}
@@ -685,12 +692,14 @@
 %   sizes cause the material in the \meta{box} to be reversed in direction,
 %   but the reference point of the \meta{box} is unchanged. Thus a negative
 %   \meta{y-size} results in the \meta{box} having a depth dependent on the
-%   height of the original and \emph{vice versa}. The resizing applies within
-%   the current \TeX{} group level.
+%   height of the original and \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}
-%   {\box_resize_to_ht:Nn, \box_resize_to_ht:cn}
+% \begin{function}[updated = 2019-01-22]
+%   {
+%     \box_resize_to_ht:Nn, \box_resize_to_ht:cn,
+%     \box_gresize_to_ht:Nn, \box_gresize_to_ht:cn
+%   }
 %   \begin{syntax}
 %     \cs{box_resize_to_ht:Nn} \meta{box} \Arg{y-size}
 %   \end{syntax}
@@ -702,12 +711,14 @@
 %   material in the \meta{box} to be reversed in direction, but the reference
 %   point of the \meta{box} is unchanged. Thus a negative \meta{y-size}
 %   results in the \meta{box} having a depth dependent on the height of the
-%   original and \emph{vice versa}. The resizing applies within the current
-%   \TeX{} group level.
+%   original and \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}
-%   {\box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn}
+% \begin{function}[updated = 2019-01-22]
+%   {
+%     \box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn,
+%     \box_gresize_to_ht_plus_dp:Nn, \box_gresize_to_ht_plus_dp:cn,
+%   }
 %   \begin{syntax}
 %     \cs{box_resize_to_ht_plus_dp:Nn} \meta{box} \Arg{y-size}
 %   \end{syntax}
@@ -719,11 +730,14 @@
 %   the material in the \meta{box} to be reversed in direction, but the
 %   reference point of the \meta{box} is unchanged. Thus a negative
 %   \meta{y-size} results in the \meta{box} having a depth dependent on the
-%   height of the original and \emph{vice versa}. The resizing applies within
-%   the current \TeX{} group level.
+%   height of the original and \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}{\box_resize_to_wd:Nn, \box_resize_to_wd:cn}
+% \begin{function}[updated = 2019-01-22]
+%   {
+%     \box_resize_to_wd:Nn, \box_resize_to_wd:cn,
+%     \box_gresize_to_wd:Nn, \box_gresize_to_wd:cn
+%   }
 %   \begin{syntax}
 %     \cs{box_resize_to_wd:Nn} \meta{box} \Arg{x-size}
 %   \end{syntax}
@@ -734,12 +748,14 @@
 %   material in the \meta{box} to be reversed in direction, but the reference
 %   point of the \meta{box} is unchanged. Thus a negative \meta{x-size}
 %   results in the \meta{box} having a depth dependent on the height of the
-%   original and \emph{vice versa}. The resizing applies within the current
-%   \TeX{} group level.
+%   original and \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}[added = 2014-07-03]
-%   {\box_resize_to_wd_and_ht:Nnn, \box_resize_to_wd_and_ht:cnn}
+% \begin{function}[added = 2014-07-03, updated = 2019-01-22]
+%   {
+%     \box_resize_to_wd_and_ht:Nnn, \box_resize_to_wd_and_ht:cnn,
+%     \box_gresize_to_wd_and_ht:Nnn, \box_gresize_to_wd_and_ht:cnn
+%   }
 %   \begin{syntax}
 %     \cs{box_resize_to_wd_and_ht:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
 %   \end{syntax}
@@ -751,12 +767,16 @@
 %   the \meta{box} to be reversed in direction, but the reference point of the
 %   \meta{box} is unchanged. Thus a negative \meta{y-size} results in
 %   the \meta{box} having a depth dependent on the height of the original and
-%   \emph{vice versa}. The resizing applies within the current \TeX{} group
-%   level.
+%   \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}[added = 2017-04-06]
-%   {\box_resize_to_wd_and_ht_plus_dp:Nnn, \box_resize_to_wd_and_ht_plus_dp:cnn}
+% \begin{function}[added = 2017-04-06, updated = 2019-01-22]
+%   {
+%     \box_resize_to_wd_and_ht_plus_dp:Nnn,
+%     \box_resize_to_wd_and_ht_plus_dp:cnn,
+%     \box_gresize_to_wd_and_ht_plus_dp:Nnn,
+%     \box_gresize_to_wd_and_ht_plus_dp:cnn
+%   }
 %   \begin{syntax}
 %     \cs{box_resize_to_wd_and_ht_plus_dp:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
 %   \end{syntax}
@@ -768,11 +788,14 @@
 %   the \meta{box} to be reversed in direction, but the reference point of the
 %   \meta{box} is unchanged. Thus a negative \meta{y-size} results in
 %   the \meta{box} having a depth dependent on the height of the original and
-%   \emph{vice versa}. The resizing applies within the current \TeX{} group
-%   level.
+%   \emph{vice versa}.
 % \end{function}
 %
-% \begin{function}{\box_rotate:Nn, \box_rotate:cn}
+% \begin{function}[updated = 2019-01-22]
+%   {
+%     \box_rotate:Nn, \box_rotate:cn,
+%     \box_grotate:Nn, \box_grotate:cn
+%   }
 %   \begin{syntax}
 %     \cs{box_rotate:Nn} \meta{box} \Arg{angle}
 %   \end{syntax}
@@ -781,10 +804,13 @@
 %   horizontally such that it is at the left side of the smallest rectangle
 %   enclosing the rotated material. The updated \meta{box} is an |hbox|,
 %   irrespective of the nature of the \meta{box} before the rotation is applied.
-%   The rotation applies within the current \TeX{} group level.
 % \end{function}
 %
-% \begin{function}{\box_scale:Nnn, \box_scale:cnn}
+% \begin{function}[updated = 2019-01-22]
+%   {
+%     \box_scale:Nnn, \box_scale:cnn,
+%     \box_gscale:Nnn, \box_gscale:cnn
+%   }
 %   \begin{syntax}
 %     \cs{box_scale:Nnn} \meta{box} \Arg{x-scale} \Arg{y-scale}
 %   \end{syntax}
@@ -795,8 +821,7 @@
 %   scalings cause the material in the \meta{box} to be reversed in
 %   direction, but the reference point of the \meta{box} is unchanged.
 %   Thus a negative \meta{y-scale} results in the \meta{box} having a depth
-%   dependent on the height of the original and \emph{vice versa}. The resizing
-%   applies within the current \TeX{} group level.
+%   dependent on the height of the original and \emph{vice versa}.
 % \end{function}
 %
 % \section{Primitive box conditionals}
@@ -1633,7 +1658,12 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{macro}{\box_rotate:Nn}
+% \begin{macro}
+%   {
+%     \box_rotate:Nn, \box_rotate:cn,
+%     \box_grotate:Nn, \box_grotate:cn
+%   }
+% \begin{macro}{\@@_rotate:NnN}
 % \begin{macro}{\@@_rotate:N}
 % \begin{macro}{\@@_rotate_xdir:nnN, \@@_rotate_ydir:nnN}
 % \begin{macro}
@@ -1646,8 +1676,14 @@
 %   clearer
 %    \begin{macrocode}
 \cs_new_protected:Npn \box_rotate:Nn #1#2
+  { \@@_rotate:NnN #1 {#2} \hbox_set:Nn }
+\cs_generate_variant:Nn \box_rotate:Nn { c }
+\cs_new_protected:Npn \box_grotate:Nn #1#2
+  { \@@_rotate:NnN #1 {#2} \hbox_gset:Nn }
+\cs_generate_variant:Nn \box_grotate:Nn { c }
+\cs_new_protected:Npn \@@_rotate:NnN #1#2#3
   {
-    \hbox_set:Nn #1
+    #3 #1
       {
         \fp_set:Nn \l_@@_angle_fp {#2}
         \fp_set:Nn \l_@@_sin_fp { sind ( \l_@@_angle_fp ) }
@@ -1836,6 +1872,7 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{variable}{\l_@@_scale_x_fp, \l_@@_scale_y_fp}
 %   Scaling is potentially-different in the two axes.
@@ -1846,7 +1883,13 @@
 % \end{variable}
 %
 % \begin{macro}
-%   {\box_resize_to_wd_and_ht_plus_dp:Nnn, \box_resize_to_wd_and_ht_plus_dp:cnn}
+%   {
+%     \box_resize_to_wd_and_ht_plus_dp:Nnn,
+%     \box_resize_to_wd_and_ht_plus_dp:cnn,
+%     \box_gresize_to_wd_and_ht_plus_dp:Nnn,
+%     \box_gresize_to_wd_and_ht_plus_dp:cnn
+%   }
+% \begin{macro}{\@@_resize_to_wd_and_ht_plus_dp:NnnN}
 % \begin{macro}{\@@_resize_set_corners:N}
 % \begin{macro}{\@@_resize:N}
 % \begin{macro}{\@@_resize:NNN}
@@ -1855,7 +1898,19 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \box_resize_to_wd_and_ht_plus_dp:Nnn #1#2#3
   {
-    \hbox_set:Nn #1
+    \@@_resize_to_wd_and_ht_plus_dp:NnnN #1 {#2} {#3}
+      \hbox_set:Nn
+  }
+\cs_generate_variant:Nn \box_resize_to_wd_and_ht_plus_dp:Nnn { c }
+\cs_new_protected:Npn \box_gresize_to_wd_and_ht_plus_dp:Nnn #1#2#3
+  {
+    \@@_resize_to_wd_and_ht_plus_dp:NnnN #1 {#2} {#3}
+      \hbox_gset:Nn
+  }
+\cs_generate_variant:Nn \box_gresize_to_wd_and_ht_plus_dp:Nnn { c }
+\cs_new_protected:Npn \@@_resize_to_wd_and_ht_plus_dp:NnnN #1#2#3#4
+  {
+    #4 #1
       {
         \@@_resize_set_corners:N #1
 %    \end{macrocode}
@@ -1879,7 +1934,6 @@
         \@@_resize:N #1
       }
   }
-\cs_generate_variant:Nn \box_resize_to_wd_and_ht_plus_dp:Nnn { c }
 \cs_new_protected:Npn \@@_resize_set_corners:N #1
   {
     \dim_set:Nn \l_@@_top_dim    {  \box_ht:N #1 }
@@ -1914,11 +1968,32 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
-% \begin{macro}{\box_resize_to_ht:Nn, \box_resize_to_ht:cn}
-% \begin{macro}{\box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn}
-% \begin{macro}{\box_resize_to_wd:Nn, \box_resize_to_wd:cn}
-% \begin{macro}{\box_resize_to_wd_and_ht:Nnn, \box_resize_to_wd_and_ht:cnn}
+% \begin{macro}
+%   {
+%     \box_resize_to_ht:Nn, \box_resize_to_ht:cn,
+%     \box_gresize_to_ht:Nn, \box_gresize_to_ht:cn
+%   }
+% \begin{macro}{\@@_resize_to_ht:NnN}
+% \begin{macro}
+%   {
+%     \box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn,
+%     \box_gresize_to_ht_plus_dp:Nn, \box_gresize_to_ht_plus_dp:cn
+%   }
+% \begin{macro}{\@@_resize_to_ht_plus_dp:NnN}
+% \begin{macro}
+%   {
+%     \box_resize_to_wd:Nn, \box_resize_to_wd:cn,
+%     \box_gresize_to_wd:Nn, \box_gresize_to_wd:cn
+%   }
+% \begin{macro}{\@@_resize_to_wd:NnN}
+% \begin{macro}
+%   {
+%     \box_resize_to_wd_and_ht:Nnn, \box_resize_to_wd_and_ht:cnn,
+%     \box_gresize_to_wd_and_ht:Nnn, \box_gresize_to_wd_and_ht:cnn
+%   }
+% \begin{macro}{\@@_resize_to_wd_ht:NnnN}
 %   Scaling to a (total) height or to a width is a simplified version of the main
 %   resizing operation, with the scale simply copied between the two parts. The
 %   internal auxiliary is called using the scaling value twice, as the sign for
@@ -1926,8 +2001,14 @@
 %   for the general case).
 %    \begin{macrocode}
 \cs_new_protected:Npn \box_resize_to_ht:Nn #1#2
+  { \@@_resize_to_ht:NnN #1 {#2} \hbox_set:Nn }
+\cs_generate_variant:Nn \box_resize_to_ht:Nn { c }
+\cs_new_protected:Npn \box_gresize_to_ht:Nn #1#2
+  { \@@_resize_to_ht:NnN #1 {#2} \hbox_gset:Nn }
+\cs_generate_variant:Nn \box_gresize_to_ht:Nn { c }
+\cs_new_protected:Npn \@@_resize_to_ht:NnN #1#2#3
   {
-    \hbox_set:Nn #1
+    #3 #1
       {
         \@@_resize_set_corners:N #1
         \fp_set:Nn \l_@@_scale_y_fp
@@ -1939,8 +2020,13 @@
         \@@_resize:N #1
       }
   }
-\cs_generate_variant:Nn \box_resize_to_ht:Nn { c }
 \cs_new_protected:Npn \box_resize_to_ht_plus_dp:Nn #1#2
+  { \@@_resize_to_ht_plus_dp:NnN #1 {#2} \hbox_set:Nn }
+\cs_generate_variant:Nn \box_resize_to_ht_plus_dp:Nn { c }
+\cs_new_protected:Npn \box_gresize_to_ht_plus_dp:Nn #1#2
+  { \@@_resize_to_ht_plus_dp:NnN #1 {#2} \hbox_gset:Nn }
+\cs_generate_variant:Nn \box_gresize_to_ht_plus_dp:Nn { c }
+\cs_new_protected:Npn \@@_resize_to_ht_plus_dp:NnN #1#2#3
   {
     \hbox_set:Nn #1
       {
@@ -1954,10 +2040,15 @@
         \@@_resize:N #1
       }
   }
-\cs_generate_variant:Nn \box_resize_to_ht_plus_dp:Nn { c }
 \cs_new_protected:Npn \box_resize_to_wd:Nn #1#2
+  { \@@_resize_to_wd:NnN #1 {#2} \hbox_set:Nn }
+\cs_generate_variant:Nn \box_resize_to_wd:Nn { c }
+\cs_new_protected:Npn \box_gresize_to_wd:Nn #1#2
+  { \@@_resize_to_wd:NnN #1 {#2} \hbox_gset:Nn }
+\cs_generate_variant:Nn \box_gresize_to_wd:Nn { c }
+\cs_new_protected:Npn \@@_resize_to_wd:NnN #1#2#3
   {
-    \hbox_set:Nn #1
+    #3 #1
       {
         \@@_resize_set_corners:N #1
         \fp_set:Nn \l_@@_scale_x_fp
@@ -1966,10 +2057,15 @@
         \@@_resize:N #1
       }
   }
-\cs_generate_variant:Nn \box_resize_to_wd:Nn { c }
 \cs_new_protected:Npn \box_resize_to_wd_and_ht:Nnn #1#2#3
+  { \@@_resize_to_wd_and_ht:NnnN #1 {#2} {#3} \hbox_set:Nn }
+\cs_generate_variant:Nn \box_resize_to_wd_and_ht:Nnn { c }
+\cs_new_protected:Npn \box_gresize_to_wd_and_ht:Nnn #1#2#3
+  { \@@_resize_to_wd_and_ht:NnnN #1 {#2} {#3} \hbox_gset:Nn }
+\cs_generate_variant:Nn \box_gresize_to_wd_and_ht:Nnn { c }
+\cs_new_protected:Npn \@@_resize_to_wd_and_ht:NnnN #1#2#3#4
   {
-    \hbox_set:Nn #1
+    #4 #1
       {
         \@@_resize_set_corners:N #1
         \fp_set:Nn \l_@@_scale_x_fp
@@ -1982,15 +2078,23 @@
         \@@_resize:N #1
       }
   }
-\cs_generate_variant:Nn \box_resize_to_wd_and_ht:Nnn { c }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
-% \begin{macro}{\box_scale:Nnn, \box_scale:cnn}
-% \begin{macro}{\@@_scale_aux:N}
+% \begin{macro}
+%   {
+%     \box_scale:Nnn, \box_scale:cnn,
+%     \box_gscale:Nnn, \box_gscale:cnn
+%   }
+% \begin{macro}{\@@_scale:NnnN}
+% \begin{macro}{\@@_scale:N}
 %   When scaling a box, setting the scaling itself is easy enough. The
 %   new dimensions are also relatively easy to find, allowing only for
 %   the need to keep them positive in all cases. Once that is done then
@@ -1999,16 +2103,21 @@
 %   with the auto-resizing functions.
 %    \begin{macrocode}
 \cs_new_protected:Npn \box_scale:Nnn #1#2#3
+  { \@@_scale:NnnN #1 {#2} {#3} \hbox_set:Nn }
+\cs_generate_variant:Nn \box_scale:Nnn { c }
+\cs_new_protected:Npn \box_gscale:Nnn #1#2#3
+  { \@@_scale:NnnN #1 {#2} {#3} \hbox_gset:Nn }
+\cs_generate_variant:Nn \box_gscale:Nnn { c }
+\cs_new_protected:Npn \@@_scale:NnnN #1#2#3#4
   {
-    \hbox_set:Nn #1
+    #4 #1
       {
         \fp_set:Nn \l_@@_scale_x_fp {#2}
         \fp_set:Nn \l_@@_scale_y_fp {#3}
-        \@@_scale_aux:N #1
+        \@@_scale:N #1
       }
   }
-\cs_generate_variant:Nn \box_scale:Nnn { c }
-\cs_new_protected:Npn \@@_scale_aux:N #1
+\cs_new_protected:Npn \@@_scale:N #1
   {
     \dim_set:Nn \l_@@_top_dim    {  \box_ht:N #1 }
     \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
@@ -2025,40 +2134,58 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}
 %   {
-%     \box_autosize_to_wd_and_ht:Nnn         ,
-%     \box_autosize_to_wd_and_ht:cnn         ,
-%     \box_autosize_to_wd_and_ht_plus_dp:Nnn ,
-%     \box_autosize_to_wd_and_ht_plus_dp:cnn
+%     \box_autosize_to_wd_and_ht:Nnn          ,
+%     \box_autosize_to_wd_and_ht:cnn          ,
+%     \box_gautosize_to_wd_and_ht:Nnn         ,
+%     \box_gautosize_to_wd_and_ht:cnn         ,
+%     \box_autosize_to_wd_and_ht_plus_dp:Nnn  ,
+%     \box_autosize_to_wd_and_ht_plus_dp:cnn  ,
+%     \box_gautosize_to_wd_and_ht_plus_dp:Nnn ,
+%     \box_gautosize_to_wd_and_ht_plus_dp:cnn
 %   }
-% \begin{macro}{\@@_autosize:Nnnn}
+% \begin{macro}{\@@_autosize:NnnnN}
 %   Although autosizing a box uses dimensions, it has more in common in
 %   implementation with scaling. As such, most of the real work here is
 %   done elsewhere.
 %    \begin{macrocode}
 \cs_new_protected:Npn \box_autosize_to_wd_and_ht:Nnn #1#2#3
-  { \@@_autosize:Nnnn #1 {#2} {#3} { \box_ht:N #1 } }
+  { \@@_autosize:NnnnN #1 {#2} {#3} { \box_ht:N #1 } \hbox_set:Nn }
+\cs_generate_variant:Nn \box_autosize_to_wd_and_ht:Nnn { c }
+\cs_new_protected:Npn \box_gautosize_to_wd_and_ht:Nnn #1#2#3
+  { \@@_autosize:NnnnN #1 {#2} {#3} { \box_ht:N #1 } \hbox_gset:Nn }
 \cs_generate_variant:Nn \box_autosize_to_wd_and_ht:Nnn { c }
 \cs_new_protected:Npn \box_autosize_to_wd_and_ht_plus_dp:Nnn #1#2#3
-  { \@@_autosize:Nnnn #1 {#2} {#3} { \box_ht:N #1 + \box_dp:N #1 } }
+  {
+    \@@_autosize:NnnnN #1 {#2} {#3} { \box_ht:N #1 + \box_dp:N #1 } 
+      \hbox_set:Nn
+  }
 \cs_generate_variant:Nn \box_autosize_to_wd_and_ht_plus_dp:Nnn { c }
-\cs_new_protected:Npn \@@_autosize:Nnnn #1#2#3#4
+\cs_new_protected:Npn \box_gautosize_to_wd_and_ht_plus_dp:Nnn #1#2#3
   {
-    \hbox_set:Nn #1
+    \@@_autosize:NnnnN #1 {#2} {#3} { \box_ht:N #1 + \box_dp:N #1 } 
+      \hbox_gset:Nn
+  }
+\cs_generate_variant:Nn \box_gautosize_to_wd_and_ht_plus_dp:Nnn { c }
+\cs_new_protected:Npn \@@_autosize:NnnnN #1#2#3#4#5
+  {
+    #5 #1
       {
         \fp_set:Nn \l_@@_scale_x_fp { ( #2 ) / \box_wd:N #1 }
         \fp_set:Nn \l_@@_scale_y_fp { ( #3 ) / ( #4 ) }
         \fp_compare:nNnTF \l_@@_scale_x_fp > \l_@@_scale_y_fp
           { \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp }
           { \fp_set_eq:NN \l_@@_scale_y_fp \l_@@_scale_x_fp }
-        \@@_scale_aux:N #1
+        \@@_scale:N #1
       }
   }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\@@_resize_common:N}
 %   The main resize function places its input into a box which start
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index f83df2f..36b137e 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -5223,6 +5223,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5234,25 +5238,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index b7f9095..5a9a9ea 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -5519,6 +5519,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5530,25 +5534,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index f213d10..6026bc9 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -5519,6 +5519,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5530,25 +5534,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 44b9913..e79ea93 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -5516,6 +5516,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5527,25 +5531,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 2f88564..f0032b0 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -5234,6 +5234,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5245,25 +5249,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index f83df2f..36b137e 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -5223,6 +5223,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5234,25 +5238,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index b7f9095..5a9a9ea 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -5519,6 +5519,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5530,25 +5534,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index f213d10..6026bc9 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -5519,6 +5519,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5530,25 +5534,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 44b9913..e79ea93 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -5516,6 +5516,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5527,25 +5531,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 2f88564..f0032b0 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -5234,6 +5234,10 @@ Defining \l__box_right_new_dim on line ...
 Defining \l__box_internal_box on line ...
 \l__box_internal_box=\box...
 Defining \box_rotate:Nn on line ...
+Defining \box_rotate:cn on line ...
+Defining \box_grotate:Nn on line ...
+Defining \box_grotate:cn on line ...
+Defining \__box_rotate:NnN on line ...
 Defining \__box_rotate:N on line ...
 Defining \__box_rotate_xdir:nnN on line ...
 Defining \__box_rotate_ydir:nnN on line ...
@@ -5245,25 +5249,47 @@ Defining \l__box_scale_x_fp on line ...
 Defining \l__box_scale_y_fp on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_resize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_resize_to_wd_and_ht_plus_dp:NnnN on line ...
 Defining \__box_resize_set_corners:N on line ...
 Defining \__box_resize:N on line ...
 Defining \__box_resize:NNN on line ...
 Defining \box_resize_to_ht:Nn on line ...
 Defining \box_resize_to_ht:cn on line ...
+Defining \box_gresize_to_ht:Nn on line ...
+Defining \box_gresize_to_ht:cn on line ...
+Defining \__box_resize_to_ht:NnN on line ...
 Defining \box_resize_to_ht_plus_dp:Nn on line ...
 Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_gresize_to_ht_plus_dp:Nn on line ...
+Defining \box_gresize_to_ht_plus_dp:cn on line ...
+Defining \__box_resize_to_ht_plus_dp:NnN on line ...
 Defining \box_resize_to_wd:Nn on line ...
 Defining \box_resize_to_wd:cn on line ...
+Defining \box_gresize_to_wd:Nn on line ...
+Defining \box_gresize_to_wd:cn on line ...
+Defining \__box_resize_to_wd:NnN on line ...
 Defining \box_resize_to_wd_and_ht:Nnn on line ...
 Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_gresize_to_wd_and_ht:Nnn on line ...
+Defining \box_gresize_to_wd_and_ht:cnn on line ...
+Defining \__box_resize_to_wd_and_ht:NnnN on line ...
 Defining \box_scale:Nnn on line ...
 Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux:N on line ...
+Defining \box_gscale:Nnn on line ...
+Defining \box_gscale:cnn on line ...
+Defining \__box_scale:NnnN on line ...
+Defining \__box_scale:N on line ...
 Defining \box_autosize_to_wd_and_ht:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht:cnn on line ...
+Defining \box_gautosize_to_wd_and_ht:Nnn on line ...
+Variant \box_autosize_to_wd_and_ht:cnn already defined; not changing it on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:Nnn on line ...
 Defining \box_autosize_to_wd_and_ht_plus_dp:cnn on line ...
-Defining \__box_autosize:Nnnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:Nnn on line ...
+Defining \box_gautosize_to_wd_and_ht_plus_dp:cnn on line ...
+Defining \__box_autosize:NnnnN on line ...
 Defining \__box_resize_common:N on line ...
 Defining \box_set_eq_clear:NN on line ...
 Defining \box_gset_eq_clear:NN on line ...





More information about the latex3-commits mailing list