[latex3-commits] [git/LaTeX3-latex3-latex3] pdf_destination: Adjust PDF destination 'box' setup (df8cf15a6)

Joseph Wright joseph.wright at morningstar2.co.uk
Wed Jan 27 16:54:07 CET 2021


Repository : https://github.com/latex3/latex3
On branch  : pdf_destination
Link       : https://github.com/latex3/latex3/commit/df8cf15a61a0fc31b560e25b2b09d6112f014fe3

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

commit df8cf15a61a0fc31b560e25b2b09d6112f014fe3
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Wed Jan 27 15:54:07 2021 +0000

    Adjust PDF destination 'box' setup
    
    There's no real need for any 'content'.


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

df8cf15a61a0fc31b560e25b2b09d6112f014fe3
 l3backend/l3backend-pdf.dtx             | 142 +++++++++++++++++---------------
 l3experimental/l3pdf/l3pdf.dtx          |  19 +----
 l3kernel/testfiles/m3expl001.luatex.tlg |   2 +-
 l3kernel/testfiles/m3expl001.ptex.tlg   |   3 +-
 l3kernel/testfiles/m3expl001.tlg        |   2 +-
 l3kernel/testfiles/m3expl001.uptex.tlg  |   3 +-
 l3kernel/testfiles/m3expl001.xetex.tlg  |   3 +-
 l3kernel/testfiles/m3expl003.luatex.tlg |   2 +-
 l3kernel/testfiles/m3expl003.ptex.tlg   |   3 +-
 l3kernel/testfiles/m3expl003.tlg        |   2 +-
 l3kernel/testfiles/m3expl003.uptex.tlg  |   3 +-
 l3kernel/testfiles/m3expl003.xetex.tlg  |   3 +-
 12 files changed, 92 insertions(+), 95 deletions(-)

diff --git a/l3backend/l3backend-pdf.dtx b/l3backend/l3backend-pdf.dtx
index ec609350f..4349f714c 100644
--- a/l3backend/l3backend-pdf.dtx
+++ b/l3backend/l3backend-pdf.dtx
@@ -616,7 +616,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_backend_destination:nn, \@@_backend_destination_box:nn}
+% \begin{macro}{\@@_backend_destination:nn}
+% \begin{macro}{\@@_backend_destination:nnnn, \@@_backend_destination_aux:nnnn}
 %   Here, we need to turn the zoom into a scale. We also need to know where
 %   the current anchor point actually is: worked out in PostScript. For the
 %   rectangle version, we have a bit more PostScript: we need two points.
@@ -648,32 +649,36 @@
         /DEST
       }
   }
-\cs_new_protected:Npn \@@_backend_destination_box:nn #1#2
-  {
-    \group_begin:
-      \hbox_set:Nn \l_@@_internal_box {#2}
-      \box_move_down:nn
-        { \box_dp:N \l_@@_internal_box }
-        { \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } } }
-      \box_use:N \l_@@_internal_box
-      \box_move_up:nn
-        { \box_ht:N \l_@@_internal_box }
-        { \hbox:n { \__kernel_backend_postscript:n { pdf.save.ur } } }
-      \@@_backend_pdfmark:n
-        {
-          /View
-          [
-            /FitR ~
-              pdf.llx ~ pdf.lly ~ pdf.dest2device ~
-              pdf.urx ~ pdf.ury ~ pdf.dest2device
-          ]
-          /Dest ( #1 ) cvn
-          /DEST
-        }
-    \group_end:
+\cs_new_protected:Npn \@@_backend_destination:nnnn #1#2#3#4
+  {
+    \exp_args:Ne \@@_backend_destination_aux:nnnn
+      { \dim_eval:n {#2} } {#1} {#3} {#4}
+  }
+\cs_new_protected:Npn \@@_backend_destination_aux:nnnn #1#2#3#4
+  {
+    \box_move_down:nn
+      {#4}
+      { \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } } }
+    \tex_kern:D #1 \scan_stop:
+    \box_move_up:nn
+      {#3}
+      { \hbox:n { \__kernel_backend_postscript:n { pdf.save.ur } } }
+    \tex_kern:D -#2 \scan_stop:
+    \@@_backend_pdfmark:n
+      {
+        /View
+        [
+          /FitR ~
+            pdf.llx ~ pdf.lly ~ pdf.dest2device ~
+            pdf.urx ~ pdf.ury ~ pdf.dest2device
+        ]
+        /Dest ( #2 ) cvn
+        /DEST
+      }
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \subsubsection{Structure}
 %
@@ -859,7 +864,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_backend_destination:nn, \@@_backend_destination_box:nn}
+% \begin{macro}{\@@_backend_destination:nn}
+% \begin{macro}{\@@_backend_destination:nnnn}
 %   A simple task: pass the data to the primitive. The |\scan_stop:| deals
 %   with the danger of an unterminated keyword. The zoom given here is a
 %   percentage, but we need to pass it as \emph{per mille}. The rectangle
@@ -888,26 +894,23 @@
           { xyz ~ zoom \fp_eval:n { #2 * 10 } }
         \scan_stop:
   }
-\cs_new_protected:Npn \@@_backend_destination_box:nn #1#2
+\cs_new_protected:Npn \@@_backend_destination:nnnn #1#2#3#4
   {
-    \group_begin:
-      \hbox_set:Nn \l_@@_internal_box {#2}
 %<*luatex>
-      \tex_pdfextension:D dest ~
+    \tex_pdfextension:D dest ~
 %</luatex>
 %<*pdftex>
-      \tex_pdfdest:D
+    \tex_pdfdest:D
 %</pdftex>
-      name {#1}
-      fitr ~
-        width  \box_wd:N \l_@@_internal_box
-        height \box_ht:N \l_@@_internal_box
-        depth  \box_dp:N \l_@@_internal_box
-      \box_use:N \l_@@_internal_box
-    \group_end:
+    name {#1}
+    fitr ~
+      width  \dim_eval:n {#2} ~
+      height \dim_eval:n {#3} ~
+      depth  \dim_eval:n {#4} \scan_stop:
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \subsubsection{Catalogue entries}
 %
@@ -1475,7 +1478,8 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_backend_destination:nn, \@@_backend_destination_box:nn}
+% \begin{macro}{\@@_backend_destination:nn}
+% \begin{macro}{\@@_backend_destination:nnnn,\@@_backend_destination_aux:nnnn}
 %   Here, we need to turn the zoom into a scale. The method for \texttt{FitR}
 %   is from Alexander Grahn: the idea is to avoid needing to do any calculations
 %   in \TeX{} by using the backend data for \texttt{@xpos} and \texttt{@ypos}.
@@ -1503,39 +1507,43 @@
         ]
       }
   }
-\cs_new_protected:Npn \@@_backend_destination_box:nn #1#2
+\cs_new_protected:Npn \@@_backend_destination:nnnn #1#2#3#4
   {
-    \group_begin:
-      \hbox_set:Nn \l_@@_internal_box {#2}
-      \box_move_down:nn { \box_dp:N \l_@@_internal_box }
-        {
-          \hbox:n
-            {
-              \@@_backend:n { obj ~ @pdf_ #1 _llx ~ @xpos }
-              \@@_backend:n { obj ~ @pdf_ #1 _lly ~ @ypos }
-            }
-        }
-      \box_use:N \l_@@_internal_box
-      \box_move_up:nn { \box_ht:N \l_@@_internal_box }
-        {
-          \hbox:n
-            {
-              \@@_backend:n
-                {
-                  dest ~ (#1)
-                  [
-                    @thispage
-                    /FitR ~
-                      @pdf_ #1 _llx ~ @pdf_ #1 _lly ~
-                      @xpos ~ @ypos
-                  ]
-                }
-            }
-        }
-    \group_end:
+    \exp_args:Ne \@@_backend_destination_aux:nnnn
+      { \dim_eval:n {#2} } {#1} {#3} {#4}
+  }
+\cs_new_protected:Npn \@@_backend_destination_aux:nnnn #1#2#3#4
+  {
+    \box_move_down:nn {#3}
+      {
+        \hbox:n
+          {
+            \@@_backend:n { obj ~ @pdf_ #2 _llx ~ @xpos }
+             \@@_backend:n { obj ~ @pdf_ #2 _lly ~ @ypos }
+          }
+      }
+    \tex_kern:D #1 \scan_stop:
+    \box_move_up:nn {#4}
+      {
+        \hbox:n
+          {
+            \@@_backend:n
+              {
+                dest ~ (#2)
+                [
+                  @thispage
+                  /FitR ~
+                    @pdf_ #2 _llx ~ @pdf_ #1 _lly ~
+                    @xpos ~ @ypos
+                ]
+              }
+          }
+      }
+    \tex_kern:D -#2 \scan_stop:
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \subsubsection{Structure}
 %
diff --git a/l3experimental/l3pdf/l3pdf.dtx b/l3experimental/l3pdf/l3pdf.dtx
index ce40d3b12..f7df6908d 100644
--- a/l3experimental/l3pdf/l3pdf.dtx
+++ b/l3experimental/l3pdf/l3pdf.dtx
@@ -422,29 +422,12 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \begin{variable}{\l_@@_tmpa_box,\l_@@_tmpb_box}
-%    \begin{macrocode}
-\box_new:N \l_@@_tmpa_box
-\box_new:N \l_@@_tmpb_box
-%    \end{macrocode}
-% \end{variable}
 %
 % \begin{macro}{\pdf_destination:nnnn}
 %    \begin{macrocode}
 \cs_new_protected:Npn \pdf_destination:nnnn #1 #2 #3 #4
   {
-    \hbox_set_to_wd:Nnn \l_@@_tmpa_box {#2} {}
-    \box_set_ht:Nn \l_@@_tmpa_box {#3}
-    \box_set_dp:Nn \l_@@_tmpa_box {#4}
-    \hbox_set_to_wd:Nnn \l_@@_tmpb_box {0pt}
-      {
-        \@@_backend_destination_box:nn
-          { #1 }
-          { \box_use:N \l_@@_tmpa_box }
-      }
-    \box_set_dp:Nn \l_@@_tmpb_box {0pt}
-    \box_set_ht:Nn \l_@@_tmpb_box {0pt}
-    \box_use:N\l_@@_tmpb_box
+    \@@_backend_destination:nnnn {#1} {#2} {#3} {#4}
   }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 11f55377e..0b202af55 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -120,7 +120,7 @@ Defining \__pdf_backend_link_end: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
 Defining \__pdf_backend_catalog_gput:nn on line ...
 Defining \__pdf_backend_info_gput:nn on line ...
 Defining \g__pdf_backend_object_prop on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 4d3d1ed8d..1d0bf3707 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -157,7 +157,8 @@ Defining \__pdf_backend_link_sf_restore: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
+Defining \__pdf_backend_destination_aux:nnnn on line ...
 Defining \__pdf_backend_compresslevel:n on line ...
 Defining \__pdf_backend_compress_objects:n on line ...
 Defining \__pdf_backend_version_major_gset:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 764cd2ae4..cb7d83964 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -120,7 +120,7 @@ Defining \__pdf_backend_link_end: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
 Defining \__pdf_backend_catalog_gput:nn on line ...
 Defining \__pdf_backend_info_gput:nn on line ...
 Defining \g__pdf_backend_object_prop on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 4d3d1ed8d..1d0bf3707 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -157,7 +157,8 @@ Defining \__pdf_backend_link_sf_restore: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
+Defining \__pdf_backend_destination_aux:nnnn on line ...
 Defining \__pdf_backend_compresslevel:n on line ...
 Defining \__pdf_backend_compress_objects:n on line ...
 Defining \__pdf_backend_version_major_gset:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index ce0a75368..a23a81c18 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -157,7 +157,8 @@ Defining \__pdf_backend_link_end: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
+Defining \__pdf_backend_destination_aux:nnnn on line ...
 Defining \__pdf_backend_compresslevel:n on line ...
 Defining \__pdf_backend_compress_objects:n on line ...
 Defining \__pdf_backend_version_major_gset:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 11f55377e..0b202af55 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -120,7 +120,7 @@ Defining \__pdf_backend_link_end: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
 Defining \__pdf_backend_catalog_gput:nn on line ...
 Defining \__pdf_backend_info_gput:nn on line ...
 Defining \g__pdf_backend_object_prop on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 4d3d1ed8d..1d0bf3707 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -157,7 +157,8 @@ Defining \__pdf_backend_link_sf_restore: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
+Defining \__pdf_backend_destination_aux:nnnn on line ...
 Defining \__pdf_backend_compresslevel:n on line ...
 Defining \__pdf_backend_compress_objects:n on line ...
 Defining \__pdf_backend_version_major_gset:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 764cd2ae4..cb7d83964 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -120,7 +120,7 @@ Defining \__pdf_backend_link_end: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
 Defining \__pdf_backend_catalog_gput:nn on line ...
 Defining \__pdf_backend_info_gput:nn on line ...
 Defining \g__pdf_backend_object_prop on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 4d3d1ed8d..1d0bf3707 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -157,7 +157,8 @@ Defining \__pdf_backend_link_sf_restore: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
+Defining \__pdf_backend_destination_aux:nnnn on line ...
 Defining \__pdf_backend_compresslevel:n on line ...
 Defining \__pdf_backend_compress_objects:n on line ...
 Defining \__pdf_backend_version_major_gset:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index ce0a75368..a23a81c18 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -157,7 +157,8 @@ Defining \__pdf_backend_link_end: on line ...
 Defining \__pdf_backend_link_last: on line ...
 Defining \__pdf_backend_link_margin:n on line ...
 Defining \__pdf_backend_destination:nn on line ...
-Defining \__pdf_backend_destination_box:nn on line ...
+Defining \__pdf_backend_destination:nnnn on line ...
+Defining \__pdf_backend_destination_aux:nnnn on line ...
 Defining \__pdf_backend_compresslevel:n on line ...
 Defining \__pdf_backend_compress_objects:n on line ...
 Defining \__pdf_backend_version_major_gset:n on line ...





More information about the latex3-commits mailing list.