[latex3-commits] [git/LaTeX3-latex3-latex3] master: New internal interface for kerns (150570c39)

Joseph Wright joseph.wright at morningstar2.co.uk
Sat Feb 6 12:44:45 CET 2021


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/150570c39e832aa6e232190c9334ea7391a5cdf8

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

commit 150570c39e832aa6e232190c9334ea7391a5cdf8
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Sat Feb 6 11:44:45 2021 +0000

    New internal interface for kerns


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

150570c39e832aa6e232190c9334ea7391a5cdf8
 l3backend/CHANGELOG.md                 |  3 +++
 l3backend/l3backend-pdf.dtx            | 20 ++++++++++----------
 l3experimental/CHANGELOG.md            |  3 +++
 l3experimental/l3draw/l3draw-boxes.dtx |  2 +-
 l3kernel/CHANGELOG.md                  |  3 +++
 l3kernel/l3box.dtx                     | 16 +++++++++++++---
 l3kernel/l3candidates.dtx              |  8 ++++----
 l3kernel/l3coffins.dtx                 | 16 +++++++---------
 l3kernel/l3kernel-functions.dtx        |  7 +++++++
 l3trial/l3tree/l3tree.dtx              |  4 ++--
 l3trial/xbox/xbox.dtx                  |  6 +++---
 11 files changed, 56 insertions(+), 32 deletions(-)

diff --git a/l3backend/CHANGELOG.md b/l3backend/CHANGELOG.md
index 9cd12c36d..a9aa2d96f 100644
--- a/l3backend/CHANGELOG.md
+++ b/l3backend/CHANGELOG.md
@@ -6,6 +6,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Changed
+- Use new (internal) interface for kerns
+
 ## [2021-01-29]
 
 ### Added
diff --git a/l3backend/l3backend-pdf.dtx b/l3backend/l3backend-pdf.dtx
index 8bc45503e..e4772a848 100644
--- a/l3backend/l3backend-pdf.dtx
+++ b/l3backend/l3backend-pdf.dtx
@@ -297,9 +297,9 @@
       {
         \hbox:n
           {
-            \tex_kern:D #1 \scan_stop:
+            \__kernel_kern:n {#1}
             \__kernel_backend_postscript:n { pdf.save.ur }
-            \tex_kern:D -#1 \scan_stop:
+            \__kernel_kern:n { -#1 }
           }
       }
     \int_gincr:N \g_@@_backend_object_int
@@ -658,18 +658,18 @@
   {
     \vbox_to_zero:n
       {
-        \tex_kern:D \dim_eval:n {#4} \scan_stop:
+        \__kernel_kern:n {#4}
         \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } }
         \tex_vss:D
       }
-    \tex_kern:D #1 \scan_stop:
+    \__kernel_kern:n {#1}
     \vbox_to_zero:n
       {
-        \tex_kern:D \dim_eval:n { -#3 } \scan_stop:
+        \__kernel_kern:n { -#3 }
         \hbox:n { \__kernel_backend_postscript:n { pdf.save.ur } }
         \tex_vss:D
       }
-    \tex_kern:D -#1 \scan_stop:
+    \__kernel_kern:n { -#1 }
     \@@_backend_pdfmark:n
       {
         /View
@@ -1523,7 +1523,7 @@
   {
     \vbox_to_zero:n
       {
-        \tex_kern:D \dim_eval:n {#4} \scan_stop:
+        \__kernel_kern:n {#4}
         \hbox:n
           {
             \@@_backend:n { obj ~ @pdf_ #2 _llx ~ @xpos }
@@ -1531,10 +1531,10 @@
           }
         \tex_vss:D
       }
-    \tex_kern:D #1 \scan_stop:
+    \__kernel_kern:n {#1}
     \vbox_to_zero:n
       {
-        \tex_kern:D \dim_eval:n { -#3 } \scan_stop:
+        \__kernel_kern:n { -#3 }
         \hbox:n
           {
             \@@_backend:n
@@ -1550,7 +1550,7 @@
           }
         \tex_vss:D
       }
-    \tex_kern:D -#1 \scan_stop:
+    \__kernel_kern:n { -#1 }
   }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3experimental/CHANGELOG.md b/l3experimental/CHANGELOG.md
index fa437900c..42147ca5d 100644
--- a/l3experimental/CHANGELOG.md
+++ b/l3experimental/CHANGELOG.md
@@ -7,6 +7,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Changed
+- Use new (internal) interface for kerns
+
 ## [2021-01-29]
 
 ### Added
diff --git a/l3experimental/l3draw/l3draw-boxes.dtx b/l3experimental/l3draw/l3draw-boxes.dtx
index 0f040620d..bd88443e7 100644
--- a/l3experimental/l3draw/l3draw-boxes.dtx
+++ b/l3experimental/l3draw/l3draw-boxes.dtx
@@ -113,7 +113,7 @@
         }
       \hbox_set:Nn \l_@@_tmp_box
         {
-          \tex_kern:D \l_@@_xshift_dim
+          \__kernel_kern:n { \l_@@_xshift_dim }
           \box_move_up:nn { \l_@@_yshift_dim }
             { \box_use_drop:N \l_@@_tmp_box }
         }
diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index ce8e2d5ab..6b9621ec8 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -7,6 +7,9 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Changed
+- Use new (internal) interface for kerns
+
 ## [2021-02-02]
 
 ### Added
diff --git a/l3kernel/l3box.dtx b/l3kernel/l3box.dtx
index 647f5b68d..14dd62234 100644
--- a/l3kernel/l3box.dtx
+++ b/l3kernel/l3box.dtx
@@ -917,6 +917,16 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}{'\__kernel_kern:n}
+%   We need kerns in a few places. At present, we don't have a module for
+%   this concept, so it goes in at first use: here. The idea is to avoid
+%   repeated use of the bare primitive.
+%    \begin{macrocode}
+\cs_new_protected:Npn \__kernel_kern:n #1
+  { \tex_kern:D \@@_dim_eval:n {#1} }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Creating and initialising boxes}
 %
 % \TestFiles{m3box001.lvt}
@@ -1768,7 +1778,7 @@
     \hbox_set:Nn \l_@@_internal_box { \box_use:N #1 }
     \hbox_set:Nn \l_@@_internal_box
       {
-        \tex_kern:D -\l_@@_left_new_dim
+        \__kernel_kern:n { -\l_@@_left_new_dim }
         \hbox:n
           {
             \@@_backend_rotate:Nn
@@ -2227,7 +2237,7 @@
       {
         \hbox_to_wd:nn { \l_@@_right_new_dim }
           {
-            \tex_kern:D \l_@@_right_new_dim
+            \__kernel_kern:n { \l_@@_right_new_dim }
             \box_use_drop:N \l_@@_internal_box
             \tex_hss:D
           }
@@ -2236,7 +2246,7 @@
         \box_set_wd:Nn \l_@@_internal_box { \l_@@_right_new_dim }
         \hbox:n
           {
-            \tex_kern:D \c_zero_dim
+            \__kernel_kern:n { 0pt }
             \box_use_drop:N \l_@@_internal_box
             \tex_hss:D
           }
diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index 9c7e92521..8830b81c4 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -732,9 +732,9 @@
   {
     \hbox_set:Nn \l_@@_internal_box
       {
-        \tex_kern:D - \@@_dim_eval:n {#2}
+        \__kernel_kern:n { -#2 }
         \box_use:N #1
-        \tex_kern:D - \@@_dim_eval:n {#4}
+        \__kernel_kern:n { -#4 }
       }
 %    \end{macrocode}
 %   For the height and depth, there is a need to watch the baseline is
@@ -809,9 +809,9 @@
   {
     \hbox_set:Nn \l_@@_internal_box
       {
-        \tex_kern:D - \@@_dim_eval:n {#2}
+        \__kernel_kern:n { -#2 }
         \box_use:N #1
-        \tex_kern:D \@@_dim_eval:n { #4 - \box_wd:N #1 }
+        \__kernel_kern:n { #4 - \box_wd:N #1 }
       }
     \dim_compare:nNnTF {#3} < \c_zero_dim
       {
diff --git a/l3kernel/l3coffins.dtx b/l3kernel/l3coffins.dtx
index 1df2770f8..1c02fa1d6 100644
--- a/l3kernel/l3coffins.dtx
+++ b/l3kernel/l3coffins.dtx
@@ -1412,10 +1412,8 @@
 %    \begin{macrocode}
     \hbox_set:Nn \l_@@_internal_box
       {
-        \tex_kern:D
-          \dim_eval:n
+        \__kernel_kern:n
             { \l_@@_bounding_shift_dim - \l_@@_left_corner_dim }
-          \exp_stop_f:
         \box_move_down:nn { \l_@@_bottom_corner_dim }
           { \box_use:N #1 }
       }
@@ -1870,12 +1868,12 @@
     \hbox_set:Nn \l_@@_aligned_coffin
       {
         \dim_compare:nNnT { \l_@@_offset_x_dim } < \c_zero_dim
-          { \tex_kern:D -\l_@@_offset_x_dim }
+          { \__kernel_kern:n { -\l_@@_offset_x_dim } }
         \hbox_unpack:N \l_@@_aligned_coffin
         \dim_set:Nn \l_@@_internal_dim
           { \l_@@_offset_x_dim - \box_wd:N #1 + \box_wd:N #4 }
         \dim_compare:nNnT \l_@@_internal_dim < \c_zero_dim
-          { \tex_kern:D -\l_@@_internal_dim }
+          { \__kernel_kern:n { -\l_@@_internal_dim } }
       }
 %    \end{macrocode}
 %   The coffin structure is reset, and the corners are cleared: only
@@ -2001,8 +1999,8 @@
     \hbox_set:Nn \l_@@_aligned_internal_coffin
       {
         \box_use:N #1
-        \tex_kern:D -\box_wd:N #1
-        \tex_kern:D \l_@@_offset_x_dim
+        \__kernel_kern:n { -\box_wd:N #1 }
+        \__kernel_kern:n { \l_@@_offset_x_dim }
         \box_move_up:nn { \l_@@_offset_y_dim } { \box_use:N #4 }
       }
     \coffin_set_eq:NN #9 \l_@@_aligned_internal_coffin
@@ -2455,8 +2453,8 @@
     \hbox_set:Nn \l_@@_aligned_coffin
       {
         \box_use:N \l_@@_display_coffin
-        \tex_kern:D -\box_wd:N \l_@@_display_coffin
-        \tex_kern:D \l_@@_offset_x_dim
+        \__kernel_kern:n { -\box_wd:N \l_@@_display_coffin }
+        \__kernel_kern:n { \l_@@_offset_x_dim }
         \box_move_up:nn { \l_@@_offset_y_dim } { \box_use:N #1 }
       }
     \box_set_ht:Nn \l_@@_aligned_coffin
diff --git a/l3kernel/l3kernel-functions.dtx b/l3kernel/l3kernel-functions.dtx
index bc10c5e5c..9990bb0cd 100644
--- a/l3kernel/l3kernel-functions.dtx
+++ b/l3kernel/l3kernel-functions.dtx
@@ -259,6 +259,13 @@
 %   that \tn{errorcontextlines} is $-1$ when displaying a message.
 % \end{function}
 %
+% \begin{variable}{\__kernel_kern:n}
+%   \begin{syntax}
+%     \cs{__kernel_kern:n} \Arg{length}
+%   \end{syntax}
+%   Inserts a kern of the specified \meta{length}, a dimension expression.
+% \end{variable}
+%
 % \begin{function}
 %   {\__kernel_msg_new:nnnn, \__kernel_msg_new:nnn}
 %   \begin{syntax}
diff --git a/l3trial/l3tree/l3tree.dtx b/l3trial/l3tree/l3tree.dtx
index 92cb95127..a93adfaf7 100644
--- a/l3trial/l3tree/l3tree.dtx
+++ b/l3trial/l3tree/l3tree.dtx
@@ -414,7 +414,7 @@
 \cs_new_protected:Npn \tree_ordered:
   {
     \box_use_drop:N \l_tree_parent_box
-    \tex_kern:D \c_one_sp_dim
+    \__kernel_kern:n { \c_one_sp_dim }
   }
 \cs_new_protected:Npn \tree_reversed:
   {
@@ -422,7 +422,7 @@
     \box_use_drop:N \l_tree_first_box
     \tex_setbox:D \l_tree_first_box \tex_box:D \l_tree_second_box
     \box_use_drop:N \l_tree_parent_box
-    \tex_kern:D - \c_one_sp_dim
+    \__kernel_kern:n { -\c_one_sp_dim }
   }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3trial/xbox/xbox.dtx b/l3trial/xbox/xbox.dtx
index ff3f02f47..59b472435 100644
--- a/l3trial/xbox/xbox.dtx
+++ b/l3trial/xbox/xbox.dtx
@@ -852,7 +852,7 @@
                 \hbox_to_wd:nn {#1}
                   { \@@_hposition:n { \hbox_unpack_drop:N \l_@@_internal_box } }
               }
-            \tex_kern:D 0pt \scan_stop:
+            \__kernel_kern:n { 0pt }
           }
       }
   }
@@ -1255,13 +1255,13 @@
 \cs_new_protected:Npn \kern_horizontal:n #1
   {
     \mode_leave_vertical:
-    \tex_kern:D \dim_eval:n {#1} \exp_stop_f:
+    \__kernel_kern:n {#1}
   }
 \cs_new_protected:Npn \kern_vertical:n #1
   {
     \mode_if_vertical:F
       { \par }
-    \tex_kern:D \dim_eval:n {#1}  \exp_stop_f:
+    \__kernel_kern:n {#1}
   }
 %    \end{macrocode}
 % \end{macro}





More information about the latex3-commits mailing list.