[latex3-commits] [l3svn] 01/03: Move box affine transformations to stable status
noreply at latex-project.org
noreply at latex-project.org
Thu Apr 6 21:39:51 CEST 2017
This is an automated email from the git hooks/post-receive script.
joseph pushed a commit to branch master
in repository l3svn.
commit 21e24be47fdf6a0e7310afbbaadc66317f65e2ba
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Thu Apr 6 19:35:57 2017 +0100
Move box affine transformations to stable status
---
l3kernel/l3box.dtx | 696 +++++++++++++++++++++++++++++++
l3kernel/l3candidates.dtx | 696 -------------------------------
l3kernel/testfiles/m3expl001.luatex.tlg | 144 +++----
l3kernel/testfiles/m3expl001.ptex.tlg | 144 +++----
l3kernel/testfiles/m3expl001.tlg | 144 +++----
l3kernel/testfiles/m3expl001.uptex.tlg | 144 +++----
l3kernel/testfiles/m3expl001.xetex.tlg | 144 +++----
l3kernel/testfiles/m3expl002.luatex.tlg | 56 +--
l3kernel/testfiles/m3expl002.ptex.tlg | 56 +--
l3kernel/testfiles/m3expl002.tlg | 56 +--
l3kernel/testfiles/m3expl002.uptex.tlg | 56 +--
l3kernel/testfiles/m3expl002.xetex.tlg | 56 +--
l3kernel/testfiles/m3expl003.luatex.tlg | 144 +++----
l3kernel/testfiles/m3expl003.ptex.tlg | 144 +++----
l3kernel/testfiles/m3expl003.tlg | 144 +++----
l3kernel/testfiles/m3expl003.uptex.tlg | 144 +++----
l3kernel/testfiles/m3expl003.xetex.tlg | 144 +++----
l3kernel/testfiles/m3expl004.luatex.tlg | 56 +--
l3kernel/testfiles/m3expl004.ptex.tlg | 56 +--
l3kernel/testfiles/m3expl004.tlg | 56 +--
l3kernel/testfiles/m3expl004.uptex.tlg | 56 +--
l3kernel/testfiles/m3expl004.xetex.tlg | 56 +--
l3kernel/testfiles/m3expl006.luatex.tlg | 56 +--
l3kernel/testfiles/m3expl006.ptex.tlg | 56 +--
l3kernel/testfiles/m3expl006.tlg | 56 +--
l3kernel/testfiles/m3expl006.uptex.tlg | 56 +--
l3kernel/testfiles/m3expl006.xetex.tlg | 56 +--
27 files changed, 1836 insertions(+), 1836 deletions(-)
diff --git a/l3kernel/l3box.dtx b/l3kernel/l3box.dtx
index 3ecd58d..dbbce92 100644
--- a/l3kernel/l3box.dtx
+++ b/l3kernel/l3box.dtx
@@ -575,6 +575,168 @@
% \end{texnote}
% \end{function}
%
+% \subsection{Affine transformations}
+%
+% Affine transformations are changes which (informally) preserve straight
+% lines. Simple translations are affine transformations, but are better handled
+% in \TeX{} by doing the translation first, then inserting an unmodified box.
+% 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:Nnn}
+% \begin{syntax}
+% \cs{box_autosize_to_wd_and_ht:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
+% \end{syntax}
+% Resize the \meta{box} to fit within the given \meta{x-size} (horizontally)
+% and \meta{y-size} (vertically): both of the sizes are dimension
+% expressions).
+% The \meta{y-size} is the height only: it does not include any depth.
+% The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied. The final size of the
+% box will be the smaller of \Arg{x-size} and \Arg{y-size}, \emph{i.e.}~the
+% result will fit within the dimensions specified.
+% Negative sizes will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-sizes will result in a box a depth dependent on the
+% height of the original box a height dependent on the depth.
+% The resizing applies within the current \TeX{} group level.
+% \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:Nnn}
+% \begin{syntax}
+% \cs{box_autosize_to_wd_and_ht_plus_dp:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
+% \end{syntax}
+% Resize the \meta{box} to fit within the given \meta{x-size} (horizontally)
+% and \meta{y-size} (vertically): both of the sizes are dimension
+% expressions).
+% The \meta{y-size} is the vertical size (height plus depth) of
+% the box.
+% The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied. The final size of the
+% box will be the smaller of \Arg{x-size} and \Arg{y-size}, \emph{i.e.}~the
+% result will fit within the dimensions specified.
+% Negative sizes will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-sizes will result in a box a depth dependent on the
+% height of the original box a height dependent on the depth.
+% The resizing applies within the current \TeX{} group level.
+% \end{function}
+%
+% \begin{function}{\box_resize:Nnn, \box_resize:cnn}
+% \begin{syntax}
+% \cs{box_resize:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
+% \end{syntax}
+% Resize the \meta{box} to \meta{x-size} horizontally and \meta{y-size}
+% vertically (both of the sizes are dimension expressions).
+% The \meta{y-size} is the vertical size (height plus depth) of
+% the box. The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied. Negative sizes will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-sizes will result in a box a depth dependent on the
+% height of the original box a height dependent on the depth.
+% The resizing applies within the current \TeX{} group level.
+% \end{function}
+%
+% \begin{function}
+% {\box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn}
+% \begin{syntax}
+% \cs{box_resize_to_ht_plus_dp:Nn} \meta{box} \Arg{y-size}
+% \end{syntax}
+% Resize the \meta{box} to \meta{y-size} vertically, scaling the horizontal
+% size by the same amount (\meta{y-size} is a dimension expression).
+% The \meta{y-size} is the vertical size (height plus depth) of
+% the box.
+% The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied. A negative size will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-sizes will result in a box with depth dependent on the
+% height of the original box and height dependent on the depth of the original.
+% The resizing applies within the current \TeX{} group level.
+% \end{function}
+%
+% \begin{function}
+% {\box_resize_to_ht:Nn, \box_resize_to_ht:cn}
+% \begin{syntax}
+% \cs{box_resize_to_ht:Nn} \meta{box} \Arg{y-size}
+% \end{syntax}
+% Resize the \meta{box} to \meta{y-size} vertically, scaling the horizontal
+% size by the same amount (\meta{y-size} is a dimension expression).
+% The \meta{y-size} is the height only, not including depth, of
+% the box.
+% The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied.
+% A negative size will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-sizes will result in a box with depth dependent on the
+% height of the original box and height dependent on the depth of the original.
+% The resizing applies within the current \TeX{} group level.
+% \end{function}
+%
+% \begin{function}{\box_resize_to_wd:Nn, \box_resize_to_wd:cn}
+% \begin{syntax}
+% \cs{box_resize_to_wd:Nn} \meta{box} \Arg{x-size}
+% \end{syntax}
+% Resize the \meta{box} to \meta{x-size} horizontally, scaling the vertical
+% size by the same amount (\meta{x-size} is a dimension expression).
+% The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied. A negative size will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-sizes will result in a box a depth dependent on the
+% height of the original box a height dependent on the depth.
+% The resizing applies within the current \TeX{} group level.
+% \end{function}
+%
+% \begin{function}[added = 2014-07-03]
+% {\box_resize_to_wd_and_ht:Nnn, \box_resize_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}
+% Resize the \meta{box} to a \emph{height} of
+% \meta{x-size} horizontally and \meta{y-size}
+% vertically (both of the sizes are dimension expressions).
+% The \meta{y-size} is the \emph{height} of the box, ignoring any depth.
+% The updated \meta{box} will be an hbox, irrespective of the nature
+% of the \meta{box} before the resizing is applied. Negative sizes will
+% cause the material in the \meta{box} to be reversed in direction, but the
+% reference point of the \meta{box} will be unchanged.
+% \end{function}
+%
+% \begin{function}{\box_rotate:Nn, \box_rotate:cn}
+% \begin{syntax}
+% \cs{box_rotate:Nn} \meta{box} \Arg{angle}
+% \end{syntax}
+% Rotates the \meta{box} by \meta{angle} (in degrees) anti-clockwise about
+% its reference point. The reference point of the updated box will be moved
+% horizontally such that it is at the left side of the smallest rectangle
+% enclosing the rotated material.
+% The updated \meta{box} will be 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{syntax}
+% \cs{box_scale:Nnn} \meta{box} \Arg{x-scale} \Arg{y-scale}
+% \end{syntax}
+% Scales the \meta{box} by factors \meta{x-scale} and \meta{y-scale} in
+% the horizontal and vertical directions, respectively (both scales are
+% integer expressions). The updated \meta{box} will be an hbox, irrespective
+% of the nature of the \meta{box} before the scaling is applied. Negative
+% scalings will cause the material in the \meta{box} to be reversed in
+% direction, but the reference point of the \meta{box} will be unchanged.
+% Thus negative $y$-scales will result in a box a depth dependent on the
+% height of the original box a height dependent on the depth.
+% The resizing applies within the current \TeX{} group level.
+% \end{function}
+%
% \section{Primitive box conditionals}
%
% \begin{function}[EXP]{\if_hbox:N}
@@ -1224,6 +1386,540 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Affine transformations}
+%
+% \begin{variable}{\l_@@_angle_fp}
+% When rotating boxes, the angle itself may be needed by the
+% engine-dependent code. This is done using the \pkg{fp} module so
+% that the value is tidied up properly.
+% \begin{macrocode}
+\fp_new:N \l_@@_angle_fp
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\l_@@_cos_fp, \l_@@_sin_fp}
+% These are used to hold the calculated sine and cosine values while
+% carrying out a rotation.
+% \begin{macrocode}
+\fp_new:N \l_@@_cos_fp
+\fp_new:N \l_@@_sin_fp
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}
+% {\l_@@_top_dim, \l_@@_bottom_dim, \l_@@_left_dim, \l_@@_right_dim}
+% These are the positions of the four edges of a box before
+% manipulation.
+% \begin{macrocode}
+\dim_new:N \l_@@_top_dim
+\dim_new:N \l_@@_bottom_dim
+\dim_new:N \l_@@_left_dim
+\dim_new:N \l_@@_right_dim
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}
+% {
+% \l_@@_top_new_dim, \l_@@_bottom_new_dim ,
+% \l_@@_left_new_dim, \l_@@_right_new_dim
+% }
+% These are the positions of the four edges of a box after
+% manipulation.
+% \begin{macrocode}
+\dim_new:N \l_@@_top_new_dim
+\dim_new:N \l_@@_bottom_new_dim
+\dim_new:N \l_@@_left_new_dim
+\dim_new:N \l_@@_right_new_dim
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\l_@@_internal_box}
+% Scratch space, but also needed by some parts of the driver.
+% \begin{macrocode}
+\box_new:N \l_@@_internal_box
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\box_rotate:Nn}
+% \begin{macro}[aux]{\@@_rotate:N}
+% \begin{macro}[aux]{\@@_rotate_x:nnN, \@@_rotate_y:nnN}
+% \begin{macro}[aux]
+% {
+% \@@_rotate_quadrant_one:, \@@_rotate_quadrant_two:,
+% \@@_rotate_quadrant_three:, \@@_rotate_quadrant_four:
+% }
+% Rotation of a box starts with working out the relevant sine and
+% cosine. The actual rotation is in an auxiliary to keep the flow slightly
+% clearer
+% \begin{macrocode}
+\cs_new_protected:Npn \box_rotate:Nn #1#2
+ {
+ \hbox_set:Nn #1
+ {
+ \fp_set:Nn \l_@@_angle_fp {#2}
+ \fp_set:Nn \l_@@_sin_fp { sind ( \l_@@_angle_fp ) }
+ \fp_set:Nn \l_@@_cos_fp { cosd ( \l_@@_angle_fp ) }
+ \@@_rotate:N #1
+ }
+ }
+% \end{macrocode}
+% The edges of the box are then recorded: the left edge will
+% always be at zero. Rotation of the four edges then takes place: this is
+% most efficiently done on a quadrant by quadrant basis.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_rotate:N #1
+ {
+ \dim_set:Nn \l_@@_top_dim { \box_ht:N #1 }
+ \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
+ \dim_set:Nn \l_@@_right_dim { \box_wd:N #1 }
+ \dim_zero:N \l_@@_left_dim
+% \end{macrocode}
+% The next step is to work out the $x$ and $y$ coordinates of vertices of
+% the rotated box in relation to its original coordinates. The box can be
+% visualized with vertices $B$, $C$, $D$ and $E$ is illustrated
+% (Figure~\ref{fig:l3candidates:rotation}). The vertex $O$ is the reference point
+% on the baseline, and in this implementation is also the centre of rotation.
+% \begin{figure}
+% \centering
+% \setlength{\unitlength}{3pt}^^A
+% \begin{picture}(34,36)(12,44)
+% \thicklines
+% \put(20,52){\dashbox{1}(20,21){}}
+% \put(20,80){\line(0,-1){36}}
+% \put(12,58){\line(1, 0){34}}
+% \put(41,59){A}
+% \put(40,74){B}
+% \put(21,74){C}
+% \put(21,49){D}
+% \put(40,49){E}
+% \put(21,59){O}
+% \end{picture}
+% \caption{Co-ordinates of a box prior to rotation.}
+% \label{fig:l3candidates:rotation}
+% \end{figure}
+% The formulae are, for a point $P$ and angle $\alpha$:
+% \[
+% \begin{array}{l}
+% P'_x = P_x - O_x \\
+% P'_y = P_y - O_y \\
+% P''_x = ( P'_x \cos(\alpha)) - ( P'_y \sin(\alpha) ) \\
+% P''_y = ( P'_x \sin(\alpha)) + ( P'_y \cos(\alpha) ) \\
+% P'''_x = P''_x + O_x + L_x \\
+% P'''_y = P''_y + O_y
+% \end{array}
+% \]
+% The \enquote{extra} horizontal translation $L_x$ at the end is calculated
+% so that the leftmost point of the resulting box has $x$-coordinate $0$.
+% This is desirable as \TeX{} boxes must have the reference point at
+% the left edge of the box. (As $O$ is always $(0,0)$, this part of the
+% calculation is omitted here.)
+% \begin{macrocode}
+ \fp_compare:nNnTF \l_@@_sin_fp > \c_zero_fp
+ {
+ \fp_compare:nNnTF \l_@@_cos_fp > \c_zero_fp
+ { \@@_rotate_quadrant_one: }
+ { \@@_rotate_quadrant_two: }
+ }
+ {
+ \fp_compare:nNnTF \l_@@_cos_fp < \c_zero_fp
+ { \@@_rotate_quadrant_three: }
+ { \@@_rotate_quadrant_four: }
+ }
+% \end{macrocode}
+% The position of the box edges are now known, but the box at this
+% stage be misplaced relative to the current \TeX{} reference point. So the
+% content of the box is moved such that the reference point of the
+% rotated box will be in the same place as the original.
+% \begin{macrocode}
+ \hbox_set:Nn \l_@@_internal_box { \box_use:N #1 }
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \tex_kern:D -\l_@@_left_new_dim
+ \hbox:n
+ {
+ \__driver_box_use_rotate:Nn
+ \l_@@_internal_box
+ \l_@@_angle_fp
+ }
+ }
+% \end{macrocode}
+% Tidy up the size of the box so that the material is actually inside
+% the bounding box. The result can then be used to reset the original
+% box.
+% \begin{macrocode}
+ \box_set_ht:Nn \l_@@_internal_box { \l_@@_top_new_dim }
+ \box_set_dp:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
+ \box_set_wd:Nn \l_@@_internal_box
+ { \l_@@_right_new_dim - \l_@@_left_new_dim }
+ \box_use:N \l_@@_internal_box
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% These functions take a general point $(|#1|, |#2|)$ and rotate its
+% location about the origin, using the previously-set sine and cosine
+% values. Each function gives only one component of the location of the
+% updated point. This is because for rotation of a box each step needs
+% only one value, and so performance is gained by avoiding working
+% out both $x'$ and $y'$ at the same time. Contrast this with
+% the equivalent function in the \pkg{l3coffins} module, where both parts
+% are needed.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_rotate_x:nnN #1#2#3
+ {
+ \dim_set:Nn #3
+ {
+ \fp_to_dim:n
+ {
+ \l_@@_cos_fp * \dim_to_fp:n {#1}
+ - \l_@@_sin_fp * \dim_to_fp:n {#2}
+ }
+ }
+ }
+\cs_new_protected:Npn \@@_rotate_y:nnN #1#2#3
+ {
+ \dim_set:Nn #3
+ {
+ \fp_to_dim:n
+ {
+ \l_@@_sin_fp * \dim_to_fp:n {#1}
+ + \l_@@_cos_fp * \dim_to_fp:n {#2}
+ }
+ }
+ }
+% \end{macrocode}
+% Rotation of the edges is done using a different formula for each
+% quadrant. In every case, the top and bottom edges only need the
+% resulting $y$-values, whereas the left and right edges need the
+% $x$-values. Each case is a question of picking out which corner
+% ends up at with the maximum top, bottom, left and right value. Doing
+% this by hand means a lot less calculating and avoids lots of
+% comparisons.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_rotate_quadrant_one:
+ {
+ \@@_rotate_y:nnN \l_@@_right_dim \l_@@_top_dim
+ \l_@@_top_new_dim
+ \@@_rotate_y:nnN \l_@@_left_dim \l_@@_bottom_dim
+ \l_@@_bottom_new_dim
+ \@@_rotate_x:nnN \l_@@_left_dim \l_@@_top_dim
+ \l_@@_left_new_dim
+ \@@_rotate_x:nnN \l_@@_right_dim \l_@@_bottom_dim
+ \l_@@_right_new_dim
+ }
+\cs_new_protected:Npn \@@_rotate_quadrant_two:
+ {
+ \@@_rotate_y:nnN \l_@@_right_dim \l_@@_bottom_dim
+ \l_@@_top_new_dim
+ \@@_rotate_y:nnN \l_@@_left_dim \l_@@_top_dim
+ \l_@@_bottom_new_dim
+ \@@_rotate_x:nnN \l_@@_right_dim \l_@@_top_dim
+ \l_@@_left_new_dim
+ \@@_rotate_x:nnN \l_@@_left_dim \l_@@_bottom_dim
+ \l_@@_right_new_dim
+ }
+\cs_new_protected:Npn \@@_rotate_quadrant_three:
+ {
+ \@@_rotate_y:nnN \l_@@_left_dim \l_@@_bottom_dim
+ \l_@@_top_new_dim
+ \@@_rotate_y:nnN \l_@@_right_dim \l_@@_top_dim
+ \l_@@_bottom_new_dim
+ \@@_rotate_x:nnN \l_@@_right_dim \l_@@_bottom_dim
+ \l_@@_left_new_dim
+ \@@_rotate_x:nnN \l_@@_left_dim \l_@@_top_dim
+ \l_@@_right_new_dim
+ }
+\cs_new_protected:Npn \@@_rotate_quadrant_four:
+ {
+ \@@_rotate_y:nnN \l_@@_left_dim \l_@@_top_dim
+ \l_@@_top_new_dim
+ \@@_rotate_y:nnN \l_@@_right_dim \l_@@_bottom_dim
+ \l_@@_bottom_new_dim
+ \@@_rotate_x:nnN \l_@@_left_dim \l_@@_bottom_dim
+ \l_@@_left_new_dim
+ \@@_rotate_x:nnN \l_@@_right_dim \l_@@_top_dim
+ \l_@@_right_new_dim
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{variable}{\l_@@_scale_x_fp, \l_@@_scale_y_fp}
+% Scaling is potentially-different in the two axes.
+% \begin{macrocode}
+\fp_new:N \l_@@_scale_x_fp
+\fp_new:N \l_@@_scale_y_fp
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\box_resize:Nnn, \box_resize:cnn}
+% \begin{macro}[aux]{\@@_resize_set_corners:N}
+% \begin{macro}[aux]{\@@_resize:N}
+% \begin{macro}[aux]{\@@_resize:NNN}
+% Resizing a box starts by working out the various dimensions of the
+% existing box.
+% \begin{macrocode}
+\cs_new_protected:Npn \box_resize:Nnn #1#2#3
+ {
+ \hbox_set:Nn #1
+ {
+ \@@_resize_set_corners:N #1
+% \end{macrocode}
+% The $x$-scaling and resulting box size is easy enough to work
+% out: the dimension is that given as |#2|, and the scale is simply the
+% new width divided by the old one.
+% \begin{macrocode}
+ \fp_set:Nn \l_@@_scale_x_fp
+ { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
+% \end{macrocode}
+% The $y$-scaling needs both the height and the depth of the current box.
+% \begin{macrocode}
+ \fp_set:Nn \l_@@_scale_y_fp
+ {
+ \dim_to_fp:n {#3}
+ / \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim }
+ }
+% \end{macrocode}
+% Hand off to the auxiliary which does the rest of the work.
+% \begin{macrocode}
+ \@@_resize:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_resize:Nnn { c }
+\cs_new_protected:Npn \@@_resize_set_corners:N #1
+ {
+ \dim_set:Nn \l_@@_top_dim { \box_ht:N #1 }
+ \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
+ \dim_set:Nn \l_@@_right_dim { \box_wd:N #1 }
+ \dim_zero:N \l_@@_left_dim
+ }
+% \end{macrocode}
+% With at least one real scaling to do, the next phase is to find the new
+% edge co-ordinates. In the $x$~direction this is relatively easy: just
+% scale the right edge. In the $y$~direction, both dimensions have to be
+% scaled, and this again needs the absolute scale value.
+% Once that is all done, the common resize/rescale code can be employed.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_resize:N #1
+ {
+ \@@_resize:NNN \l_@@_right_new_dim
+ \l_@@_scale_x_fp \l_@@_right_dim
+ \@@_resize:NNN \l_@@_bottom_new_dim
+ \l_@@_scale_y_fp \l_@@_bottom_dim
+ \@@_resize:NNN \l_@@_top_new_dim
+ \l_@@_scale_y_fp \l_@@_top_dim
+ \@@_resize_common:N #1
+ }
+\cs_new_protected:Npn \@@_resize:NNN #1#2#3
+ {
+ \dim_set:Nn #1
+ { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } }
+ }
+% \end{macrocode}
+% \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}
+% 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
+% both parts is needed (as this allows the same internal code to be used as
+% for the general case).
+% \begin{macrocode}
+\cs_new_protected:Npn \box_resize_to_ht:Nn #1#2
+ {
+ \hbox_set:Nn #1
+ {
+ \@@_resize_set_corners:N #1
+ \fp_set:Nn \l_@@_scale_y_fp
+ {
+ \dim_to_fp:n {#2}
+ / \dim_to_fp:n { \l_@@_top_dim }
+ }
+ \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp
+ \@@_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
+ {
+ \hbox_set:Nn #1
+ {
+ \@@_resize_set_corners:N #1
+ \fp_set:Nn \l_@@_scale_y_fp
+ {
+ \dim_to_fp:n {#2}
+ / \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim }
+ }
+ \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp
+ \@@_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
+ {
+ \hbox_set:Nn #1
+ {
+ \@@_resize_set_corners:N #1
+ \fp_set:Nn \l_@@_scale_x_fp
+ { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
+ \fp_set_eq:NN \l_@@_scale_y_fp \l_@@_scale_x_fp
+ \@@_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
+ {
+ \hbox_set:Nn #1
+ {
+ \@@_resize_set_corners:N #1
+ \fp_set:Nn \l_@@_scale_x_fp
+ { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
+ \fp_set:Nn \l_@@_scale_y_fp
+ {
+ \dim_to_fp:n {#3}
+ / \dim_to_fp:n { \l_@@_top_dim }
+ }
+ \@@_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}
+%
+% \begin{macro}{\box_scale:Nnn, \box_scale:cnn}
+% \begin{macro}[aux]{\@@_scale_aux: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
+% after a check for the trivial scaling a hand-off can be made to the
+% common code. The code here is split into two as this allows sharing
+% with the auto-resizing functions.
+% \begin{macrocode}
+\cs_new_protected:Npn \box_scale:Nnn #1#2#3
+ {
+ \hbox_set:Nn #1
+ {
+ \fp_set:Nn \l_@@_scale_x_fp {#2}
+ \fp_set:Nn \l_@@_scale_y_fp {#3}
+ \@@_scale_aux:N #1
+ }
+ }
+\cs_generate_variant:Nn \box_scale:Nnn { c }
+\cs_new_protected:Npn \@@_scale_aux:N #1
+ {
+ \dim_set:Nn \l_@@_top_dim { \box_ht:N #1 }
+ \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
+ \dim_set:Nn \l_@@_right_dim { \box_wd:N #1 }
+ \dim_zero:N \l_@@_left_dim
+ \dim_set:Nn \l_@@_top_new_dim
+ { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_top_dim }
+ \dim_set:Nn \l_@@_bottom_new_dim
+ { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_bottom_dim }
+ \dim_set:Nn \l_@@_right_new_dim
+ { \fp_abs:n { \l_@@_scale_x_fp } \l_@@_right_dim }
+ \@@_resize_common:N #1
+ }
+% \end{macrocode}
+% \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:cnn ,
+% \box_autosize_to_wd_and_ht_plus_dp:Nnn
+% }
+% \begin{macro}[aux]{\@@_autosize:Nnnn}
+% 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 } }
+\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 } }
+\cs_generate_variant:Nn \box_autosize_to_wd_and_ht_plus_dp:Nnn { c }
+\cs_new_protected:Npn \@@_autosize:Nnnn #1#2#3#4
+ {
+ \hbox_set:Nn #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
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[aux]{\@@_resize_common:N}
+% The main resize function places in input into a box which will start
+% of with zero width, and includes the handles for engine rescaling.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_resize_common:N #1
+ {
+ \hbox_set:Nn \l_@@_internal_box
+ {
+ \__driver_box_use_scale:Nnn
+ #1
+ \l_@@_scale_x_fp
+ \l_@@_scale_y_fp
+ }
+% \end{macrocode}
+% The new height and depth can be applied directly.
+% \begin{macrocode}
+ \fp_compare:nNnTF \l_@@_scale_y_fp > \c_zero_fp
+ {
+ \box_set_ht:Nn \l_@@_internal_box { \l_@@_top_new_dim }
+ \box_set_dp:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
+ }
+ {
+ \box_set_dp:Nn \l_@@_internal_box { \l_@@_top_new_dim }
+ \box_set_ht:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
+ }
+% \end{macrocode}
+% Things are not quite as obvious for the width, as the reference point
+% needs to remain unchanged. For positive scaling factors resizing the
+% box is all that is needed. However, for case of a negative scaling
+% the material must be shifted such that the reference point ends up in
+% the right place.
+% \begin{macrocode}
+ \fp_compare:nNnTF \l_@@_scale_x_fp < \c_zero_fp
+ {
+ \hbox_to_wd:nn { \l_@@_right_new_dim }
+ {
+ \tex_kern:D \l_@@_right_new_dim
+ \box_use:N \l_@@_internal_box
+ \tex_hss:D
+ }
+ }
+ {
+ \box_set_wd:Nn \l_@@_internal_box { \l_@@_right_new_dim }
+ \hbox:n
+ {
+ \tex_kern:D \c_zero_dim
+ \box_use:N \l_@@_internal_box
+ \tex_hss:D
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</initex|package>
% \end{macrocode}
diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index b8a7cf4..257eeb4 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -84,168 +84,6 @@
%
% \section{Additions to \pkg{l3box}}
%
-% \subsection{Affine transformations}
-%
-% Affine transformations are changes which (informally) preserve straight
-% lines. Simple translations are affine transformations, but are better handled
-% in \TeX{} by doing the translation first, then inserting an unmodified box.
-% 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:Nnn}
-% \begin{syntax}
-% \cs{box_autosize_to_wd_and_ht:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
-% \end{syntax}
-% Resize the \meta{box} to fit within the given \meta{x-size} (horizontally)
-% and \meta{y-size} (vertically): both of the sizes are dimension
-% expressions).
-% The \meta{y-size} is the height only: it does not include any depth.
-% The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied. The final size of the
-% box will be the smaller of \Arg{x-size} and \Arg{y-size}, \emph{i.e.}~the
-% result will fit within the dimensions specified.
-% Negative sizes will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-sizes will result in a box a depth dependent on the
-% height of the original box a height dependent on the depth.
-% The resizing applies within the current \TeX{} group level.
-% \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:Nnn}
-% \begin{syntax}
-% \cs{box_autosize_to_wd_and_ht_plus_dp:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
-% \end{syntax}
-% Resize the \meta{box} to fit within the given \meta{x-size} (horizontally)
-% and \meta{y-size} (vertically): both of the sizes are dimension
-% expressions).
-% The \meta{y-size} is the vertical size (height plus depth) of
-% the box.
-% The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied. The final size of the
-% box will be the smaller of \Arg{x-size} and \Arg{y-size}, \emph{i.e.}~the
-% result will fit within the dimensions specified.
-% Negative sizes will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-sizes will result in a box a depth dependent on the
-% height of the original box a height dependent on the depth.
-% The resizing applies within the current \TeX{} group level.
-% \end{function}
-%
-% \begin{function}{\box_resize:Nnn, \box_resize:cnn}
-% \begin{syntax}
-% \cs{box_resize:Nnn} \meta{box} \Arg{x-size} \Arg{y-size}
-% \end{syntax}
-% Resize the \meta{box} to \meta{x-size} horizontally and \meta{y-size}
-% vertically (both of the sizes are dimension expressions).
-% The \meta{y-size} is the vertical size (height plus depth) of
-% the box. The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied. Negative sizes will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-sizes will result in a box a depth dependent on the
-% height of the original box a height dependent on the depth.
-% The resizing applies within the current \TeX{} group level.
-% \end{function}
-%
-% \begin{function}
-% {\box_resize_to_ht_plus_dp:Nn, \box_resize_to_ht_plus_dp:cn}
-% \begin{syntax}
-% \cs{box_resize_to_ht_plus_dp:Nn} \meta{box} \Arg{y-size}
-% \end{syntax}
-% Resize the \meta{box} to \meta{y-size} vertically, scaling the horizontal
-% size by the same amount (\meta{y-size} is a dimension expression).
-% The \meta{y-size} is the vertical size (height plus depth) of
-% the box.
-% The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied. A negative size will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-sizes will result in a box with depth dependent on the
-% height of the original box and height dependent on the depth of the original.
-% The resizing applies within the current \TeX{} group level.
-% \end{function}
-%
-% \begin{function}
-% {\box_resize_to_ht:Nn, \box_resize_to_ht:cn}
-% \begin{syntax}
-% \cs{box_resize_to_ht:Nn} \meta{box} \Arg{y-size}
-% \end{syntax}
-% Resize the \meta{box} to \meta{y-size} vertically, scaling the horizontal
-% size by the same amount (\meta{y-size} is a dimension expression).
-% The \meta{y-size} is the height only, not including depth, of
-% the box.
-% The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied.
-% A negative size will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-sizes will result in a box with depth dependent on the
-% height of the original box and height dependent on the depth of the original.
-% The resizing applies within the current \TeX{} group level.
-% \end{function}
-%
-% \begin{function}{\box_resize_to_wd:Nn, \box_resize_to_wd:cn}
-% \begin{syntax}
-% \cs{box_resize_to_wd:Nn} \meta{box} \Arg{x-size}
-% \end{syntax}
-% Resize the \meta{box} to \meta{x-size} horizontally, scaling the vertical
-% size by the same amount (\meta{x-size} is a dimension expression).
-% The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied. A negative size will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-sizes will result in a box a depth dependent on the
-% height of the original box a height dependent on the depth.
-% The resizing applies within the current \TeX{} group level.
-% \end{function}
-%
-% \begin{function}[added = 2014-07-03]
-% {\box_resize_to_wd_and_ht:Nnn, \box_resize_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}
-% Resize the \meta{box} to a \emph{height} of
-% \meta{x-size} horizontally and \meta{y-size}
-% vertically (both of the sizes are dimension expressions).
-% The \meta{y-size} is the \emph{height} of the box, ignoring any depth.
-% The updated \meta{box} will be an hbox, irrespective of the nature
-% of the \meta{box} before the resizing is applied. Negative sizes will
-% cause the material in the \meta{box} to be reversed in direction, but the
-% reference point of the \meta{box} will be unchanged.
-% \end{function}
-%
-% \begin{function}{\box_rotate:Nn, \box_rotate:cn}
-% \begin{syntax}
-% \cs{box_rotate:Nn} \meta{box} \Arg{angle}
-% \end{syntax}
-% Rotates the \meta{box} by \meta{angle} (in degrees) anti-clockwise about
-% its reference point. The reference point of the updated box will be moved
-% horizontally such that it is at the left side of the smallest rectangle
-% enclosing the rotated material.
-% The updated \meta{box} will be 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{syntax}
-% \cs{box_scale:Nnn} \meta{box} \Arg{x-scale} \Arg{y-scale}
-% \end{syntax}
-% Scales the \meta{box} by factors \meta{x-scale} and \meta{y-scale} in
-% the horizontal and vertical directions, respectively (both scales are
-% integer expressions). The updated \meta{box} will be an hbox, irrespective
-% of the nature of the \meta{box} before the scaling is applied. Negative
-% scalings will cause the material in the \meta{box} to be reversed in
-% direction, but the reference point of the \meta{box} will be unchanged.
-% Thus negative $y$-scales will result in a box a depth dependent on the
-% height of the original box a height dependent on the depth.
-% The resizing applies within the current \TeX{} group level.
-% \end{function}
-%
% \subsection{Viewing part of a box}
%
% \begin{function}{\box_clip:N, \box_clip:c}
@@ -990,540 +828,6 @@
%<@@=box>
% \end{macrocode}
%
-% \subsection{Affine transformations}
-%
-% \begin{variable}{\l_@@_angle_fp}
-% When rotating boxes, the angle itself may be needed by the
-% engine-dependent code. This is done using the \pkg{fp} module so
-% that the value is tidied up properly.
-% \begin{macrocode}
-\fp_new:N \l_@@_angle_fp
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}{\l_@@_cos_fp, \l_@@_sin_fp}
-% These are used to hold the calculated sine and cosine values while
-% carrying out a rotation.
-% \begin{macrocode}
-\fp_new:N \l_@@_cos_fp
-\fp_new:N \l_@@_sin_fp
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}
-% {\l_@@_top_dim, \l_@@_bottom_dim, \l_@@_left_dim, \l_@@_right_dim}
-% These are the positions of the four edges of a box before
-% manipulation.
-% \begin{macrocode}
-\dim_new:N \l_@@_top_dim
-\dim_new:N \l_@@_bottom_dim
-\dim_new:N \l_@@_left_dim
-\dim_new:N \l_@@_right_dim
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}
-% {
-% \l_@@_top_new_dim, \l_@@_bottom_new_dim ,
-% \l_@@_left_new_dim, \l_@@_right_new_dim
-% }
-% These are the positions of the four edges of a box after
-% manipulation.
-% \begin{macrocode}
-\dim_new:N \l_@@_top_new_dim
-\dim_new:N \l_@@_bottom_new_dim
-\dim_new:N \l_@@_left_new_dim
-\dim_new:N \l_@@_right_new_dim
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}{\l_@@_internal_box}
-% Scratch space, but also needed by some parts of the driver.
-% \begin{macrocode}
-\box_new:N \l_@@_internal_box
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}{\box_rotate:Nn}
-% \begin{macro}[aux]{\@@_rotate:N}
-% \begin{macro}[aux]{\@@_rotate_x:nnN, \@@_rotate_y:nnN}
-% \begin{macro}[aux]
-% {
-% \@@_rotate_quadrant_one:, \@@_rotate_quadrant_two:,
-% \@@_rotate_quadrant_three:, \@@_rotate_quadrant_four:
-% }
-% Rotation of a box starts with working out the relevant sine and
-% cosine. The actual rotation is in an auxiliary to keep the flow slightly
-% clearer
-% \begin{macrocode}
-\cs_new_protected:Npn \box_rotate:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \fp_set:Nn \l_@@_angle_fp {#2}
- \fp_set:Nn \l_@@_sin_fp { sind ( \l_@@_angle_fp ) }
- \fp_set:Nn \l_@@_cos_fp { cosd ( \l_@@_angle_fp ) }
- \@@_rotate:N #1
- }
- }
-% \end{macrocode}
-% The edges of the box are then recorded: the left edge will
-% always be at zero. Rotation of the four edges then takes place: this is
-% most efficiently done on a quadrant by quadrant basis.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_rotate:N #1
- {
- \dim_set:Nn \l_@@_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l_@@_right_dim { \box_wd:N #1 }
- \dim_zero:N \l_@@_left_dim
-% \end{macrocode}
-% The next step is to work out the $x$ and $y$ coordinates of vertices of
-% the rotated box in relation to its original coordinates. The box can be
-% visualized with vertices $B$, $C$, $D$ and $E$ is illustrated
-% (Figure~\ref{fig:l3candidates:rotation}). The vertex $O$ is the reference point
-% on the baseline, and in this implementation is also the centre of rotation.
-% \begin{figure}
-% \centering
-% \setlength{\unitlength}{3pt}^^A
-% \begin{picture}(34,36)(12,44)
-% \thicklines
-% \put(20,52){\dashbox{1}(20,21){}}
-% \put(20,80){\line(0,-1){36}}
-% \put(12,58){\line(1, 0){34}}
-% \put(41,59){A}
-% \put(40,74){B}
-% \put(21,74){C}
-% \put(21,49){D}
-% \put(40,49){E}
-% \put(21,59){O}
-% \end{picture}
-% \caption{Co-ordinates of a box prior to rotation.}
-% \label{fig:l3candidates:rotation}
-% \end{figure}
-% The formulae are, for a point $P$ and angle $\alpha$:
-% \[
-% \begin{array}{l}
-% P'_x = P_x - O_x \\
-% P'_y = P_y - O_y \\
-% P''_x = ( P'_x \cos(\alpha)) - ( P'_y \sin(\alpha) ) \\
-% P''_y = ( P'_x \sin(\alpha)) + ( P'_y \cos(\alpha) ) \\
-% P'''_x = P''_x + O_x + L_x \\
-% P'''_y = P''_y + O_y
-% \end{array}
-% \]
-% The \enquote{extra} horizontal translation $L_x$ at the end is calculated
-% so that the leftmost point of the resulting box has $x$-coordinate $0$.
-% This is desirable as \TeX{} boxes must have the reference point at
-% the left edge of the box. (As $O$ is always $(0,0)$, this part of the
-% calculation is omitted here.)
-% \begin{macrocode}
- \fp_compare:nNnTF \l_@@_sin_fp > \c_zero_fp
- {
- \fp_compare:nNnTF \l_@@_cos_fp > \c_zero_fp
- { \@@_rotate_quadrant_one: }
- { \@@_rotate_quadrant_two: }
- }
- {
- \fp_compare:nNnTF \l_@@_cos_fp < \c_zero_fp
- { \@@_rotate_quadrant_three: }
- { \@@_rotate_quadrant_four: }
- }
-% \end{macrocode}
-% The position of the box edges are now known, but the box at this
-% stage be misplaced relative to the current \TeX{} reference point. So the
-% content of the box is moved such that the reference point of the
-% rotated box will be in the same place as the original.
-% \begin{macrocode}
- \hbox_set:Nn \l_@@_internal_box { \box_use:N #1 }
- \hbox_set:Nn \l_@@_internal_box
- {
- \tex_kern:D -\l_@@_left_new_dim
- \hbox:n
- {
- \__driver_box_use_rotate:Nn
- \l_@@_internal_box
- \l_@@_angle_fp
- }
- }
-% \end{macrocode}
-% Tidy up the size of the box so that the material is actually inside
-% the bounding box. The result can then be used to reset the original
-% box.
-% \begin{macrocode}
- \box_set_ht:Nn \l_@@_internal_box { \l_@@_top_new_dim }
- \box_set_dp:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
- \box_set_wd:Nn \l_@@_internal_box
- { \l_@@_right_new_dim - \l_@@_left_new_dim }
- \box_use:N \l_@@_internal_box
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% These functions take a general point $(|#1|, |#2|)$ and rotate its
-% location about the origin, using the previously-set sine and cosine
-% values. Each function gives only one component of the location of the
-% updated point. This is because for rotation of a box each step needs
-% only one value, and so performance is gained by avoiding working
-% out both $x'$ and $y'$ at the same time. Contrast this with
-% the equivalent function in the \pkg{l3coffins} module, where both parts
-% are needed.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_rotate_x:nnN #1#2#3
- {
- \dim_set:Nn #3
- {
- \fp_to_dim:n
- {
- \l_@@_cos_fp * \dim_to_fp:n {#1}
- - \l_@@_sin_fp * \dim_to_fp:n {#2}
- }
- }
- }
-\cs_new_protected:Npn \@@_rotate_y:nnN #1#2#3
- {
- \dim_set:Nn #3
- {
- \fp_to_dim:n
- {
- \l_@@_sin_fp * \dim_to_fp:n {#1}
- + \l_@@_cos_fp * \dim_to_fp:n {#2}
- }
- }
- }
-% \end{macrocode}
-% Rotation of the edges is done using a different formula for each
-% quadrant. In every case, the top and bottom edges only need the
-% resulting $y$-values, whereas the left and right edges need the
-% $x$-values. Each case is a question of picking out which corner
-% ends up at with the maximum top, bottom, left and right value. Doing
-% this by hand means a lot less calculating and avoids lots of
-% comparisons.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_rotate_quadrant_one:
- {
- \@@_rotate_y:nnN \l_@@_right_dim \l_@@_top_dim
- \l_@@_top_new_dim
- \@@_rotate_y:nnN \l_@@_left_dim \l_@@_bottom_dim
- \l_@@_bottom_new_dim
- \@@_rotate_x:nnN \l_@@_left_dim \l_@@_top_dim
- \l_@@_left_new_dim
- \@@_rotate_x:nnN \l_@@_right_dim \l_@@_bottom_dim
- \l_@@_right_new_dim
- }
-\cs_new_protected:Npn \@@_rotate_quadrant_two:
- {
- \@@_rotate_y:nnN \l_@@_right_dim \l_@@_bottom_dim
- \l_@@_top_new_dim
- \@@_rotate_y:nnN \l_@@_left_dim \l_@@_top_dim
- \l_@@_bottom_new_dim
- \@@_rotate_x:nnN \l_@@_right_dim \l_@@_top_dim
- \l_@@_left_new_dim
- \@@_rotate_x:nnN \l_@@_left_dim \l_@@_bottom_dim
- \l_@@_right_new_dim
- }
-\cs_new_protected:Npn \@@_rotate_quadrant_three:
- {
- \@@_rotate_y:nnN \l_@@_left_dim \l_@@_bottom_dim
- \l_@@_top_new_dim
- \@@_rotate_y:nnN \l_@@_right_dim \l_@@_top_dim
- \l_@@_bottom_new_dim
- \@@_rotate_x:nnN \l_@@_right_dim \l_@@_bottom_dim
- \l_@@_left_new_dim
- \@@_rotate_x:nnN \l_@@_left_dim \l_@@_top_dim
- \l_@@_right_new_dim
- }
-\cs_new_protected:Npn \@@_rotate_quadrant_four:
- {
- \@@_rotate_y:nnN \l_@@_left_dim \l_@@_top_dim
- \l_@@_top_new_dim
- \@@_rotate_y:nnN \l_@@_right_dim \l_@@_bottom_dim
- \l_@@_bottom_new_dim
- \@@_rotate_x:nnN \l_@@_left_dim \l_@@_bottom_dim
- \l_@@_left_new_dim
- \@@_rotate_x:nnN \l_@@_right_dim \l_@@_top_dim
- \l_@@_right_new_dim
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{variable}{\l_@@_scale_x_fp, \l_@@_scale_y_fp}
-% Scaling is potentially-different in the two axes.
-% \begin{macrocode}
-\fp_new:N \l_@@_scale_x_fp
-\fp_new:N \l_@@_scale_y_fp
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}{\box_resize:Nnn, \box_resize:cnn}
-% \begin{macro}[aux]{\@@_resize_set_corners:N}
-% \begin{macro}[aux]{\@@_resize:N}
-% \begin{macro}[aux]{\@@_resize:NNN}
-% Resizing a box starts by working out the various dimensions of the
-% existing box.
-% \begin{macrocode}
-\cs_new_protected:Npn \box_resize:Nnn #1#2#3
- {
- \hbox_set:Nn #1
- {
- \@@_resize_set_corners:N #1
-% \end{macrocode}
-% The $x$-scaling and resulting box size is easy enough to work
-% out: the dimension is that given as |#2|, and the scale is simply the
-% new width divided by the old one.
-% \begin{macrocode}
- \fp_set:Nn \l_@@_scale_x_fp
- { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
-% \end{macrocode}
-% The $y$-scaling needs both the height and the depth of the current box.
-% \begin{macrocode}
- \fp_set:Nn \l_@@_scale_y_fp
- {
- \dim_to_fp:n {#3}
- / \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim }
- }
-% \end{macrocode}
-% Hand off to the auxiliary which does the rest of the work.
-% \begin{macrocode}
- \@@_resize:N #1
- }
- }
-\cs_generate_variant:Nn \box_resize:Nnn { c }
-\cs_new_protected:Npn \@@_resize_set_corners:N #1
- {
- \dim_set:Nn \l_@@_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l_@@_right_dim { \box_wd:N #1 }
- \dim_zero:N \l_@@_left_dim
- }
-% \end{macrocode}
-% With at least one real scaling to do, the next phase is to find the new
-% edge co-ordinates. In the $x$~direction this is relatively easy: just
-% scale the right edge. In the $y$~direction, both dimensions have to be
-% scaled, and this again needs the absolute scale value.
-% Once that is all done, the common resize/rescale code can be employed.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_resize:N #1
- {
- \@@_resize:NNN \l_@@_right_new_dim
- \l_@@_scale_x_fp \l_@@_right_dim
- \@@_resize:NNN \l_@@_bottom_new_dim
- \l_@@_scale_y_fp \l_@@_bottom_dim
- \@@_resize:NNN \l_@@_top_new_dim
- \l_@@_scale_y_fp \l_@@_top_dim
- \@@_resize_common:N #1
- }
-\cs_new_protected:Npn \@@_resize:NNN #1#2#3
- {
- \dim_set:Nn #1
- { \fp_to_dim:n { \fp_abs:n { #2 } * \dim_to_fp:n { #3 } } }
- }
-% \end{macrocode}
-% \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}
-% 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
-% both parts is needed (as this allows the same internal code to be used as
-% for the general case).
-% \begin{macrocode}
-\cs_new_protected:Npn \box_resize_to_ht:Nn #1#2
- {
- \hbox_set:Nn #1
- {
- \@@_resize_set_corners:N #1
- \fp_set:Nn \l_@@_scale_y_fp
- {
- \dim_to_fp:n {#2}
- / \dim_to_fp:n { \l_@@_top_dim }
- }
- \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp
- \@@_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
- {
- \hbox_set:Nn #1
- {
- \@@_resize_set_corners:N #1
- \fp_set:Nn \l_@@_scale_y_fp
- {
- \dim_to_fp:n {#2}
- / \dim_to_fp:n { \l_@@_top_dim - \l_@@_bottom_dim }
- }
- \fp_set_eq:NN \l_@@_scale_x_fp \l_@@_scale_y_fp
- \@@_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
- {
- \hbox_set:Nn #1
- {
- \@@_resize_set_corners:N #1
- \fp_set:Nn \l_@@_scale_x_fp
- { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
- \fp_set_eq:NN \l_@@_scale_y_fp \l_@@_scale_x_fp
- \@@_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
- {
- \hbox_set:Nn #1
- {
- \@@_resize_set_corners:N #1
- \fp_set:Nn \l_@@_scale_x_fp
- { \dim_to_fp:n {#2} / \dim_to_fp:n { \l_@@_right_dim } }
- \fp_set:Nn \l_@@_scale_y_fp
- {
- \dim_to_fp:n {#3}
- / \dim_to_fp:n { \l_@@_top_dim }
- }
- \@@_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}
-%
-% \begin{macro}{\box_scale:Nnn, \box_scale:cnn}
-% \begin{macro}[aux]{\@@_scale_aux: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
-% after a check for the trivial scaling a hand-off can be made to the
-% common code. The code here is split into two as this allows sharing
-% with the auto-resizing functions.
-% \begin{macrocode}
-\cs_new_protected:Npn \box_scale:Nnn #1#2#3
- {
- \hbox_set:Nn #1
- {
- \fp_set:Nn \l_@@_scale_x_fp {#2}
- \fp_set:Nn \l_@@_scale_y_fp {#3}
- \@@_scale_aux:N #1
- }
- }
-\cs_generate_variant:Nn \box_scale:Nnn { c }
-\cs_new_protected:Npn \@@_scale_aux:N #1
- {
- \dim_set:Nn \l_@@_top_dim { \box_ht:N #1 }
- \dim_set:Nn \l_@@_bottom_dim { -\box_dp:N #1 }
- \dim_set:Nn \l_@@_right_dim { \box_wd:N #1 }
- \dim_zero:N \l_@@_left_dim
- \dim_set:Nn \l_@@_top_new_dim
- { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_top_dim }
- \dim_set:Nn \l_@@_bottom_new_dim
- { \fp_abs:n { \l_@@_scale_y_fp } \l_@@_bottom_dim }
- \dim_set:Nn \l_@@_right_new_dim
- { \fp_abs:n { \l_@@_scale_x_fp } \l_@@_right_dim }
- \@@_resize_common:N #1
- }
-% \end{macrocode}
-% \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:cnn ,
-% \box_autosize_to_wd_and_ht_plus_dp:Nnn
-% }
-% \begin{macro}[aux]{\@@_autosize:Nnnn}
-% 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 } }
-\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 } }
-\cs_generate_variant:Nn \box_autosize_to_wd_and_ht_plus_dp:Nnn { c }
-\cs_new_protected:Npn \@@_autosize:Nnnn #1#2#3#4
- {
- \hbox_set:Nn #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
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[aux]{\@@_resize_common:N}
-% The main resize function places in input into a box which will start
-% of with zero width, and includes the handles for engine rescaling.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_resize_common:N #1
- {
- \hbox_set:Nn \l_@@_internal_box
- {
- \__driver_box_use_scale:Nnn
- #1
- \l_@@_scale_x_fp
- \l_@@_scale_y_fp
- }
-% \end{macrocode}
-% The new height and depth can be applied directly.
-% \begin{macrocode}
- \fp_compare:nNnTF \l_@@_scale_y_fp > \c_zero_fp
- {
- \box_set_ht:Nn \l_@@_internal_box { \l_@@_top_new_dim }
- \box_set_dp:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
- }
- {
- \box_set_dp:Nn \l_@@_internal_box { \l_@@_top_new_dim }
- \box_set_ht:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
- }
-% \end{macrocode}
-% Things are not quite as obvious for the width, as the reference point
-% needs to remain unchanged. For positive scaling factors resizing the
-% box is all that is needed. However, for case of a negative scaling
-% the material must be shifted such that the reference point ends up in
-% the right place.
-% \begin{macrocode}
- \fp_compare:nNnTF \l_@@_scale_x_fp < \c_zero_fp
- {
- \hbox_to_wd:nn { \l_@@_right_new_dim }
- {
- \tex_kern:D \l_@@_right_new_dim
- \box_use:N \l_@@_internal_box
- \tex_hss:D
- }
- }
- {
- \box_set_wd:Nn \l_@@_internal_box { \l_@@_right_new_dim }
- \hbox:n
- {
- \tex_kern:D \c_zero_dim
- \box_use:N \l_@@_internal_box
- \tex_hss:D
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
% \subsection{Viewing part of a box}
%
% \begin{macro}{\box_clip:N, \box_clip:c}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 582c1e4..47e86b2 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -4501,10 +4501,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4512,19 +4565,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4553,15 +4606,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4605,18 +4658,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4676,59 +4729,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index aadb927..edec775 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -4469,10 +4469,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4480,19 +4533,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4521,15 +4574,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4573,18 +4626,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4644,59 +4697,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index d3dc1a5..60fc063 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -4489,10 +4489,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4500,19 +4553,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4541,15 +4594,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4593,18 +4646,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4664,59 +4717,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 86c8a4c..29a5d96 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -4469,10 +4469,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4480,19 +4533,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4521,15 +4574,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4573,18 +4626,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4644,59 +4697,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index b329611..0c74c36 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -4479,10 +4479,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4490,19 +4543,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4531,15 +4584,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4583,18 +4636,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4654,59 +4707,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl002.luatex.tlg b/l3kernel/testfiles/m3expl002.luatex.tlg
index 1455692..e7a825e 100644
--- a/l3kernel/testfiles/m3expl002.luatex.tlg
+++ b/l3kernel/testfiles/m3expl002.luatex.tlg
@@ -61,34 +61,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl002.ptex.tlg b/l3kernel/testfiles/m3expl002.ptex.tlg
index 897508f..5d811d2 100644
--- a/l3kernel/testfiles/m3expl002.ptex.tlg
+++ b/l3kernel/testfiles/m3expl002.ptex.tlg
@@ -57,34 +57,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl002.tlg b/l3kernel/testfiles/m3expl002.tlg
index 7161474..1436076 100644
--- a/l3kernel/testfiles/m3expl002.tlg
+++ b/l3kernel/testfiles/m3expl002.tlg
@@ -60,34 +60,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl002.uptex.tlg b/l3kernel/testfiles/m3expl002.uptex.tlg
index 897508f..5d811d2 100644
--- a/l3kernel/testfiles/m3expl002.uptex.tlg
+++ b/l3kernel/testfiles/m3expl002.uptex.tlg
@@ -57,34 +57,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl002.xetex.tlg b/l3kernel/testfiles/m3expl002.xetex.tlg
index f864c81..17016e8 100644
--- a/l3kernel/testfiles/m3expl002.xetex.tlg
+++ b/l3kernel/testfiles/m3expl002.xetex.tlg
@@ -57,34 +57,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 6eb2e34..453c269 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -4502,10 +4502,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4513,19 +4566,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4554,15 +4607,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4606,18 +4659,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4677,59 +4730,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 341ef7a..c4bfa7c 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -4470,10 +4470,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4481,19 +4534,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4522,15 +4575,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4574,18 +4627,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4645,59 +4698,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index aa01fc8..857f8ee 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -4490,10 +4490,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4501,19 +4554,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4542,15 +4595,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4594,18 +4647,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4665,59 +4718,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 1ea195f..9acf4f6 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -4470,10 +4470,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4481,19 +4534,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4522,15 +4575,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4574,18 +4627,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4645,59 +4698,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 5d11ab1..2f75573 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -4480,10 +4480,63 @@ Defining \vbox_unpack_clear:N on line ...
Defining \vbox_unpack:c on line ...
Defining \vbox_unpack_clear:c on line ...
Defining \vbox_set_split_to_ht:NNn on line ...
+Defining \l__box_angle_fp on line ...
+Defining \l__box_cos_fp on line ...
+Defining \l__box_sin_fp on line ...
+Defining \l__box_top_dim on line ...
+\l__box_top_dim=\dimen138
+Defining \l__box_bottom_dim on line ...
+\l__box_bottom_dim=\dimen139
+Defining \l__box_left_dim on line ...
+\l__box_left_dim=\dimen140
+Defining \l__box_right_dim on line ...
+\l__box_right_dim=\dimen141
+Defining \l__box_top_new_dim on line ...
+\l__box_top_new_dim=\dimen142
+Defining \l__box_bottom_new_dim on line ...
+\l__box_bottom_new_dim=\dimen143
+Defining \l__box_left_new_dim on line ...
+\l__box_left_new_dim=\dimen144
+Defining \l__box_right_new_dim on line ...
+\l__box_right_new_dim=\dimen145
+Defining \l__box_internal_box on line ...
+\l__box_internal_box=\box61
+Defining \box_rotate:Nn on line ...
+Defining \__box_rotate:N on line ...
+Defining \__box_rotate_x:nnN on line ...
+Defining \__box_rotate_y:nnN on line ...
+Defining \__box_rotate_quadrant_one: on line ...
+Defining \__box_rotate_quadrant_two: on line ...
+Defining \__box_rotate_quadrant_three: on line ...
+Defining \__box_rotate_quadrant_four: on line ...
+Defining \l__box_scale_x_fp on line ...
+Defining \l__box_scale_y_fp on line ...
+Defining \box_resize:Nnn on line ...
+Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
+Defining \box_resize_to_ht_plus_dp:cn on line ...
+Defining \box_resize_to_wd:Nn on line ...
+Defining \box_resize_to_wd:cn on line ...
+Defining \box_resize_to_wd_and_ht:Nnn on line ...
+Defining \box_resize_to_wd_and_ht:cnn on line ...
+Defining \box_scale:Nnn on line ...
+Defining \box_scale:cnn on line ...
+Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \l__coffin_internal_box on line ...
-\l__coffin_internal_box=\box61
+\l__coffin_internal_box=\box62
Defining \l__coffin_internal_dim on line ...
-\l__coffin_internal_dim=\dimen138
+\l__coffin_internal_dim=\dimen146
Defining \l__coffin_internal_tl on line ...
Defining \c__coffin_corners_prop on line ...
Defining \c__coffin_poles_prop on line ...
@@ -4491,19 +4544,19 @@ Defining \l__coffin_slope_x_fp on line ...
Defining \l__coffin_slope_y_fp on line ...
Defining \l__coffin_error_bool on line ...
Defining \l__coffin_offset_x_dim on line ...
-\l__coffin_offset_x_dim=\dimen139
+\l__coffin_offset_x_dim=\dimen147
Defining \l__coffin_offset_y_dim on line ...
-\l__coffin_offset_y_dim=\dimen140
+\l__coffin_offset_y_dim=\dimen148
Defining \l__coffin_pole_a_tl on line ...
Defining \l__coffin_pole_b_tl on line ...
Defining \l__coffin_x_dim on line ...
-\l__coffin_x_dim=\dimen141
+\l__coffin_x_dim=\dimen149
Defining \l__coffin_y_dim on line ...
-\l__coffin_y_dim=\dimen142
+\l__coffin_y_dim=\dimen150
Defining \l__coffin_x_prime_dim on line ...
-\l__coffin_x_prime_dim=\dimen143
+\l__coffin_x_prime_dim=\dimen151
Defining \l__coffin_y_prime_dim on line ...
-\l__coffin_y_prime_dim=\dimen144
+\l__coffin_y_prime_dim=\dimen152
Defining \coffin_if_exist_p:N on line ...
Defining \coffin_if_exist:NT on line ...
Defining \coffin_if_exist:NF on line ...
@@ -4532,15 +4585,15 @@ Defining \coffin_set_eq:cN on line ...
Defining \coffin_set_eq:Nc on line ...
Defining \coffin_set_eq:cc on line ...
Defining \c_empty_coffin on line ...
-\c_empty_coffin=\box62
+\c_empty_coffin=\box63
Defining \l__coffin_aligned_coffin on line ...
-\l__coffin_aligned_coffin=\box63
+\l__coffin_aligned_coffin=\box64
Defining \l__coffin_aligned_internal_coffin on line ...
-\l__coffin_aligned_internal_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
Defining \l_tmpa_coffin on line ...
-\l_tmpa_coffin=\box65
+\l_tmpa_coffin=\box66
Defining \l_tmpb_coffin on line ...
-\l_tmpb_coffin=\box66
+\l_tmpb_coffin=\box67
Defining \coffin_dp:N on line ...
Defining \coffin_dp:c on line ...
Defining \coffin_ht:N on line ...
@@ -4584,18 +4637,18 @@ Defining \__coffin_update_B:nnnnnnnnN on line ...
Defining \coffin_typeset:Nnnnn on line ...
Defining \coffin_typeset:cnnnn on line ...
Defining \l__coffin_display_coffin on line ...
-\l__coffin_display_coffin=\box67
+\l__coffin_display_coffin=\box68
Defining \l__coffin_display_coord_coffin on line ...
-\l__coffin_display_coord_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
Defining \l__coffin_display_pole_coffin on line ...
-\l__coffin_display_pole_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
Defining \l__coffin_display_handles_prop on line ...
Defining \l__coffin_display_offset_dim on line ...
-\l__coffin_display_offset_dim=\dimen145
+\l__coffin_display_offset_dim=\dimen153
Defining \l__coffin_display_x_dim on line ...
-\l__coffin_display_x_dim=\dimen146
+\l__coffin_display_x_dim=\dimen154
Defining \l__coffin_display_y_dim on line ...
-\l__coffin_display_y_dim=\dimen147
+\l__coffin_display_y_dim=\dimen155
Defining \l__coffin_display_poles_prop on line ...
Defining \l__coffin_display_font_tl on line ...
Defining \coffin_mark_handle:Nnnn on line ...
@@ -4655,59 +4708,6 @@ Defining \sys_if_output_pdf_p: on line ...
Defining \c_sys_output_str on line ...
Defining \__deprecation_error:Nnn on line ...
Defining \deprecation_error: on line ...
-Defining \l__box_angle_fp on line ...
-Defining \l__box_cos_fp on line ...
-Defining \l__box_sin_fp on line ...
-Defining \l__box_top_dim on line ...
-\l__box_top_dim=\dimen148
-Defining \l__box_bottom_dim on line ...
-\l__box_bottom_dim=\dimen149
-Defining \l__box_left_dim on line ...
-\l__box_left_dim=\dimen150
-Defining \l__box_right_dim on line ...
-\l__box_right_dim=\dimen151
-Defining \l__box_top_new_dim on line ...
-\l__box_top_new_dim=\dimen152
-Defining \l__box_bottom_new_dim on line ...
-\l__box_bottom_new_dim=\dimen153
-Defining \l__box_left_new_dim on line ...
-\l__box_left_new_dim=\dimen154
-Defining \l__box_right_new_dim on line ...
-\l__box_right_new_dim=\dimen155
-Defining \l__box_internal_box on line ...
-\l__box_internal_box=\box70
-Defining \box_rotate:Nn on line ...
-Defining \__box_rotate:N on line ...
-Defining \__box_rotate_x:nnN on line ...
-Defining \__box_rotate_y:nnN on line ...
-Defining \__box_rotate_quadrant_one: on line ...
-Defining \__box_rotate_quadrant_two: on line ...
-Defining \__box_rotate_quadrant_three: on line ...
-Defining \__box_rotate_quadrant_four: on line ...
-Defining \l__box_scale_x_fp on line ...
-Defining \l__box_scale_y_fp on line ...
-Defining \box_resize:Nnn on line ...
-Defining \box_resize:cnn 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_resize_to_ht_plus_dp:Nn on line ...
-Defining \box_resize_to_ht_plus_dp:cn on line ...
-Defining \box_resize_to_wd:Nn on line ...
-Defining \box_resize_to_wd:cn on line ...
-Defining \box_resize_to_wd_and_ht:Nnn on line ...
-Defining \box_resize_to_wd_and_ht:cnn on line ...
-Defining \box_scale:Nnn on line ...
-Defining \box_scale:cnn on line ...
-Defining \__box_scale_aux: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_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_resize_common:N on line ...
Defining \box_clip:N on line ...
Defining \box_clip:c on line ...
Defining \box_trim:Nnnnn on line ...
diff --git a/l3kernel/testfiles/m3expl004.luatex.tlg b/l3kernel/testfiles/m3expl004.luatex.tlg
index 1455692..e7a825e 100644
--- a/l3kernel/testfiles/m3expl004.luatex.tlg
+++ b/l3kernel/testfiles/m3expl004.luatex.tlg
@@ -61,34 +61,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl004.ptex.tlg b/l3kernel/testfiles/m3expl004.ptex.tlg
index 897508f..5d811d2 100644
--- a/l3kernel/testfiles/m3expl004.ptex.tlg
+++ b/l3kernel/testfiles/m3expl004.ptex.tlg
@@ -57,34 +57,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl004.tlg b/l3kernel/testfiles/m3expl004.tlg
index 7161474..1436076 100644
--- a/l3kernel/testfiles/m3expl004.tlg
+++ b/l3kernel/testfiles/m3expl004.tlg
@@ -60,34 +60,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl004.uptex.tlg b/l3kernel/testfiles/m3expl004.uptex.tlg
index 897508f..5d811d2 100644
--- a/l3kernel/testfiles/m3expl004.uptex.tlg
+++ b/l3kernel/testfiles/m3expl004.uptex.tlg
@@ -57,34 +57,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl004.xetex.tlg b/l3kernel/testfiles/m3expl004.xetex.tlg
index f864c81..17016e8 100644
--- a/l3kernel/testfiles/m3expl004.xetex.tlg
+++ b/l3kernel/testfiles/m3expl004.xetex.tlg
@@ -57,34 +57,34 @@ Don't change this file in any respect.
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl006.luatex.tlg b/l3kernel/testfiles/m3expl006.luatex.tlg
index d58b71f..9bbba16 100644
--- a/l3kernel/testfiles/m3expl006.luatex.tlg
+++ b/l3kernel/testfiles/m3expl006.luatex.tlg
@@ -62,34 +62,34 @@ Author: Bruno Le Floch and Joseph Wright
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl006.ptex.tlg b/l3kernel/testfiles/m3expl006.ptex.tlg
index 11b53c7..5b14ec1 100644
--- a/l3kernel/testfiles/m3expl006.ptex.tlg
+++ b/l3kernel/testfiles/m3expl006.ptex.tlg
@@ -58,34 +58,34 @@ Author: Bruno Le Floch and Joseph Wright
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl006.tlg b/l3kernel/testfiles/m3expl006.tlg
index 0106afb..db745e3 100644
--- a/l3kernel/testfiles/m3expl006.tlg
+++ b/l3kernel/testfiles/m3expl006.tlg
@@ -61,34 +61,34 @@ Author: Bruno Le Floch and Joseph Wright
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl006.uptex.tlg b/l3kernel/testfiles/m3expl006.uptex.tlg
index 11b53c7..5b14ec1 100644
--- a/l3kernel/testfiles/m3expl006.uptex.tlg
+++ b/l3kernel/testfiles/m3expl006.uptex.tlg
@@ -58,34 +58,34 @@ Author: Bruno Le Floch and Joseph Wright
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
diff --git a/l3kernel/testfiles/m3expl006.xetex.tlg b/l3kernel/testfiles/m3expl006.xetex.tlg
index 89ed7ac..25a37ef 100644
--- a/l3kernel/testfiles/m3expl006.xetex.tlg
+++ b/l3kernel/testfiles/m3expl006.xetex.tlg
@@ -58,34 +58,34 @@ Author: Bruno Le Floch and Joseph Wright
\l_tmpb_box=\box58
\g_tmpa_box=\box59
\g_tmpb_box=\box60
-\l__coffin_internal_box=\box61
-\l__coffin_internal_dim=\dimen138
-\l__coffin_offset_x_dim=\dimen139
-\l__coffin_offset_y_dim=\dimen140
-\l__coffin_x_dim=\dimen141
-\l__coffin_y_dim=\dimen142
-\l__coffin_x_prime_dim=\dimen143
-\l__coffin_y_prime_dim=\dimen144
-\c_empty_coffin=\box62
-\l__coffin_aligned_coffin=\box63
-\l__coffin_aligned_internal_coffin=\box64
-\l_tmpa_coffin=\box65
-\l_tmpb_coffin=\box66
-\l__coffin_display_coffin=\box67
-\l__coffin_display_coord_coffin=\box68
-\l__coffin_display_pole_coffin=\box69
-\l__coffin_display_offset_dim=\dimen145
-\l__coffin_display_x_dim=\dimen146
-\l__coffin_display_y_dim=\dimen147
-\l__box_top_dim=\dimen148
-\l__box_bottom_dim=\dimen149
-\l__box_left_dim=\dimen150
-\l__box_right_dim=\dimen151
-\l__box_top_new_dim=\dimen152
-\l__box_bottom_new_dim=\dimen153
-\l__box_left_new_dim=\dimen154
-\l__box_right_new_dim=\dimen155
-\l__box_internal_box=\box70
+\l__box_top_dim=\dimen138
+\l__box_bottom_dim=\dimen139
+\l__box_left_dim=\dimen140
+\l__box_right_dim=\dimen141
+\l__box_top_new_dim=\dimen142
+\l__box_bottom_new_dim=\dimen143
+\l__box_left_new_dim=\dimen144
+\l__box_right_new_dim=\dimen145
+\l__box_internal_box=\box61
+\l__coffin_internal_box=\box62
+\l__coffin_internal_dim=\dimen146
+\l__coffin_offset_x_dim=\dimen147
+\l__coffin_offset_y_dim=\dimen148
+\l__coffin_x_dim=\dimen149
+\l__coffin_y_dim=\dimen150
+\l__coffin_x_prime_dim=\dimen151
+\l__coffin_y_prime_dim=\dimen152
+\c_empty_coffin=\box63
+\l__coffin_aligned_coffin=\box64
+\l__coffin_aligned_internal_coffin=\box65
+\l_tmpa_coffin=\box66
+\l_tmpb_coffin=\box67
+\l__coffin_display_coffin=\box68
+\l__coffin_display_coord_coffin=\box69
+\l__coffin_display_pole_coffin=\box70
+\l__coffin_display_offset_dim=\dimen153
+\l__coffin_display_x_dim=\dimen154
+\l__coffin_display_y_dim=\dimen155
\l__coffin_bounding_shift_dim=\dimen156
\l__coffin_left_corner_dim=\dimen157
\l__coffin_right_corner_dim=\dimen158
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the latex3-commits
mailing list