[latex3-commits] [git/LaTeX3-latex3-latex3] master: Support for referencing last link with (x)dvipdfmx (788928400)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Dec 7 20:52:04 CET 2020


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/7889284008987e7197c11abc3eba47e9d6f5c510

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

commit 7889284008987e7197c11abc3eba47e9d6f5c510
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Mon Dec 7 19:48:46 2020 +0000

    Support for referencing last link with (x)dvipdfmx


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

7889284008987e7197c11abc3eba47e9d6f5c510
 l3backend/CHANGELOG.md                             |   4 +
 l3backend/l3backend-basics.dtx                     |  29 ++++
 l3backend/l3backend-pdf.dtx                        |  29 +++-
 ...{d3pdfmode.luatex.tlg => d3dvipdfmx.luatex.tlg} | 155 +++++++++++----------
 l3kernel/testfiles/d3dvipdfmx.tlg                  |   3 +
 l3kernel/testfiles/d3dvipdfmx.xetex.tlg            |   3 +
 l3kernel/testfiles/d3dvips.xetex.tlg               |   3 +
 l3kernel/testfiles/d3pdfmode.xetex.tlg             |   3 +
 l3kernel/testfiles/d3xetex.xetex.tlg               |   3 +
 l3kernel/testfiles/m3expl001.xetex.tlg             |   5 +
 l3kernel/testfiles/m3expl002.xetex.tlg             |   3 +
 l3kernel/testfiles/m3expl003.xetex.tlg             |   5 +
 l3kernel/testfiles/m3expl004.xetex.tlg             |   3 +
 l3kernel/testfiles/m3expl006.xetex.tlg             |   3 +
 l3kernel/testfiles/m3expl007.xetex.tlg             |   6 +-
 15 files changed, 176 insertions(+), 81 deletions(-)

diff --git a/l3backend/CHANGELOG.md b/l3backend/CHANGELOG.md
index 61b75641d..54a32b1de 100644
--- a/l3backend/CHANGELOG.md
+++ b/l3backend/CHANGELOG.md
@@ -6,6 +6,10 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Added
+- Support for referencing last link with `(x)dvipdfmx` (requires an up-to-date
+  backend)
+
 ## [2020-09-24]
 
 ### Fixed
diff --git a/l3backend/l3backend-basics.dtx b/l3backend/l3backend-basics.dtx
index cef8626f3..4d45381dc 100644
--- a/l3backend/l3backend-basics.dtx
+++ b/l3backend/l3backend-basics.dtx
@@ -380,6 +380,35 @@
 % \end{macro}
 %
 %    \begin{macrocode}
+%<@@=sys>
+%    \end{macrocode}
+%
+% \begin{macro}{\c__kernel_sys_dvipdfmx_version_int}
+%   A short excursion into the |sys| module to set up the backend version
+%   information.
+%    \begin{macrocode}
+\group_begin:
+  \cs_set:Npn \@@_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2}
+  \sys_get_shell:nnNTF { extractbb~--version }
+    { \char_set_catcode_space:n { `\  } }
+    \l_@@_internal_tl
+    {
+      \int_const:Nn \c__kernel_sys_dvipdfmx_version_int
+        {
+          \exp_after:wN \@@_tmp:w \l_@@_internal_tl
+            \q_stop
+        }
+    }
+    { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } }
+\group_end:
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 %</dvipdfmx|xetex>
 %    \end{macrocode}
 %
diff --git a/l3backend/l3backend-pdf.dtx b/l3backend/l3backend-pdf.dtx
index eadfdf813..6607ead69 100644
--- a/l3backend/l3backend-pdf.dtx
+++ b/l3backend/l3backend-pdf.dtx
@@ -1404,6 +1404,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{variable}{\g_@@_backend_link_int}
+%   To track annotations which are links.
+%    \begin{macrocode}
+\int_new:N \g_@@_backend_link_int
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{macro}
 %   {\@@_backend_link_begin_goto:nnw, \@@_backend_link_begin_user:nnw}
 % \begin{macro}{\@@_backend_link_begin:n}
@@ -1414,11 +1421,17 @@
   { \@@_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
 \cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2
   { \@@_backend_link_begin:n {#1#2} }
-\cs_new_protected:Npn \@@_backend_link_begin:n #1
+\cs_new_protected:Npx \@@_backend_link_begin:n #1
   {
     \@@_backend:n
       {
-         bann
+         bann ~
+         \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+           {
+             @pdf.obj
+             \exp_not:N \int_use:N \exp_not:N  \g_@@_backend_object_int
+             \c_space_tl
+           }
          <<
            /Type /Annot
            #1
@@ -1433,9 +1446,17 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_backend_link_last:}
-%   Data not available.
+%   Available using the backend mechanism with a suitably-recent
+%   version.
 %    \begin{macrocode}
-\cs_new:Npn \@@_backend_link_last: { }
+\cs_new:Npx \@@_backend_link_last:
+  {
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+      {
+        @pdf.obj
+          \exp_not:N \int_use:N \exp_not:N \g_@@_backend_link_int
+      }
+  }
 %    \end{macrocode}
 % \end{macro}
 %
diff --git a/l3kernel/testfiles/d3pdfmode.luatex.tlg b/l3kernel/testfiles/d3dvipdfmx.luatex.tlg
similarity index 85%
copy from l3kernel/testfiles/d3pdfmode.luatex.tlg
copy to l3kernel/testfiles/d3dvipdfmx.luatex.tlg
index 0ee815d53..5d19443fe 100644
--- a/l3kernel/testfiles/d3pdfmode.luatex.tlg
+++ b/l3kernel/testfiles/d3dvipdfmx.luatex.tlg
@@ -4,10 +4,15 @@ Don't change this file in any respect.
 Package: expl3 ....-..-.. L3 programming layer (loader) 
 (l3debug.def
 File: l3debug.def ....-..-.. L3 Debugging support
-) (l3backend-luatex.def
-File: l3backend-luatex.def ....-..-.. L3 backend support: PDF output (LuaTeX)
-\l__kernel_color_stack_int=\count...
+) (l3backend-dvipdfmx.def
+File: l3backend-dvipdfmx.def ....-..-.. L3 backend support: dvipdfmx
+("|extractbb --version")
+\c__kernel_sys_dvipdfmx_version_int=\count...
+\g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
+\g__pdf_backend_object_int=\count...
+\g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
 Author: Joseph Wright
 ============================================================
@@ -15,8 +20,8 @@ TEST 1: Clip box
 ============================================================
 > \box...=
 \hbox(6.94444+1.0)x86.45851, direction TLT
-.\pdfsave
-.\pdfliteral origin{0 -0.99626 86.1355 7.91476 re W n}
+.\special{x:gsave}
+.\special{pdf:literal 0 -0.99626 86.1355 7.91476 re W n}
 .\hbox(6.94444+1.0)x0.0, glue set - 86.45851fil, direction TLT
 ..\hbox(6.94444+1.0)x86.45851, direction TLT
 ...\OT1/cmr/m/n/10 G
@@ -40,15 +45,15 @@ TEST 1: Clip box
 ...\OT1/cmr/m/n/10 w
 ...\OT1/cmr/m/n/10 n
 ..\glue 0.0 plus 1.0fil minus 1.0fil
-.\pdfrestore
+.\special{x:grestore}
 .\glue 86.45851
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
 > \box...=
 \hbox(6.94444+0.0)x86.45851, direction TLT
-.\pdfsave
-.\pdfliteral origin{0 0 86.1355 6.9185 re W n}
+.\special{x:gsave}
+.\special{pdf:literal 0 0 86.1355 6.9185 re W n}
 .\hbox(6.94444+0.0)x0.0, glue set - 86.45851fil, direction TLT
 ..\hbox(6.94444+0.0)x86.45851, direction TLT
 ...\OT1/cmr/m/n/10 G
@@ -72,15 +77,15 @@ l. ...  }
 ...\OT1/cmr/m/n/10 w
 ...\OT1/cmr/m/n/10 n
 ..\glue 0.0 plus 1.0fil minus 1.0fil
-.\pdfrestore
+.\special{x:grestore}
 .\glue 86.45851
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
 > \box...=
 \hbox(6.94444+1.0)x86.45851, direction TLT
-.\pdfsave
-.\pdfliteral origin{0 -0.99626 86.1355 7.91476 re W n}
+.\special{x:gsave}
+.\special{pdf:literal 0 -0.99626 86.1355 7.91476 re W n}
 .\hbox(6.94444+1.0)x0.0, glue set - 86.45851fil, direction TLT
 ..\hbox(6.94444+1.0)x86.45851, direction TLT
 ...\OT1/cmr/m/n/10 G
@@ -104,15 +109,15 @@ l. ...  }
 ...\OT1/cmr/m/n/10 w
 ...\OT1/cmr/m/n/10 n
 ..\glue 0.0 plus 1.0fil minus 1.0fil
-.\pdfrestore
+.\special{x:grestore}
 .\glue 86.45851
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
 > \box...=
 \hbox(6.94444+1.94444)x20.0, direction TLT
-.\pdfsave
-.\pdfliteral origin{0 -1.93718 19.92528 8.85568 re W n}
+.\special{x:gsave}
+.\special{pdf:literal 0 -1.93718 19.92528 8.85568 re W n}
 .\hbox(6.94444+1.94444)x0.0, glue set - 20.0fil, direction TLT
 ..\hbox(6.94444+1.94444)x20.0, direction TLT
 ...\OT1/cmr/m/n/10 G
@@ -136,7 +141,7 @@ l. ...  }
 ...\OT1/cmr/m/n/10 w
 ...\OT1/cmr/m/n/10 n
 ..\glue 0.0 plus 1.0fil minus 1.0fil
-.\pdfrestore
+.\special{x:grestore}
 .\glue 20.0
 ! OK.
 <argument> \l_tmpa_box 
@@ -166,10 +171,10 @@ l. ...  }
 \hbox(6.94444+0.0)x50.02786, direction TLT
 .\hbox(6.94444+0.0)x50.02786, direction TLT
 ..\kern0.0
-..\hbox(6.94444+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{1 0 0 1}
-...\hbox(6.94444+0.0)x0.0, direction TLT
+..\hbox(6.94444+0.0)x50.02786, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 0}
+...\hbox(6.94444+0.0)x50.02786, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
 .....\OT1/cmr/m/n/10 e
@@ -183,7 +188,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 r
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
-...\pdfrestore
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -191,10 +196,10 @@ l. ...  }
 \hbox(31.028+0.0)x46.79762, direction TLT
 .\hbox(31.028+0.0)x46.79762, direction TLT
 ..\kern3.47223
-..\hbox(6.94444+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{0.86603 0.5 -0.5 0.86603}
-...\hbox(6.94444+0.0)x0.0, direction TLT
+..\hbox(6.94444+0.0)x50.02786, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 30}
+...\hbox(6.94444+0.0)x50.02786, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
 .....\OT1/cmr/m/n/10 e
@@ -208,7 +213,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 r
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
-...\pdfrestore
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -216,10 +221,10 @@ l. ...  }
 \hbox(40.2855+0.0)x40.2855, direction TLT
 .\hbox(40.2855+0.0)x40.2855, direction TLT
 ..\kern4.91046
-..\hbox(6.94444+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{0.70711 0.70711 -0.70711 0.70711}
-...\hbox(6.94444+0.0)x0.0, direction TLT
+..\hbox(6.94444+0.0)x50.02786, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 45}
+...\hbox(6.94444+0.0)x50.02786, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
 .....\OT1/cmr/m/n/10 e
@@ -233,7 +238,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 r
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
-...\pdfrestore
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -241,10 +246,10 @@ l. ...  }
 \hbox(35.37505+4.91046)x40.2855, direction TLT
 .\hbox(35.37505+4.91046)x40.2855, direction TLT
 ..\kern40.2855
-..\hbox(6.94444+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{-0.70711 0.70711 -0.70711 -0.70711}
-...\hbox(6.94444+0.0)x0.0, direction TLT
+..\hbox(6.94444+0.0)x50.02786, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 135}
+...\hbox(6.94444+0.0)x50.02786, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
 .....\OT1/cmr/m/n/10 e
@@ -258,7 +263,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 r
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
-...\pdfrestore
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -266,10 +271,10 @@ l. ...  }
 \hbox(0.0+40.2855)x40.2855, direction TLT
 .\hbox(0.0+40.2855)x40.2855, direction TLT
 ..\kern35.37505
-..\hbox(6.94444+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{-0.70711 -0.70711 0.70711 -0.70711}
-...\hbox(6.94444+0.0)x0.0, direction TLT
+..\hbox(6.94444+0.0)x50.02786, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 225}
+...\hbox(6.94444+0.0)x50.02786, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
 .....\OT1/cmr/m/n/10 e
@@ -283,7 +288,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 r
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
-...\pdfrestore
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -291,10 +296,10 @@ l. ...  }
 \hbox(4.91046+35.37505)x40.2855, direction TLT
 .\hbox(4.91046+35.37505)x40.2855, direction TLT
 ..\kern0.0
-..\hbox(6.94444+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{0.70711 -0.70711 0.70711 0.70711}
-...\hbox(6.94444+0.0)x0.0, direction TLT
+..\hbox(6.94444+0.0)x50.02786, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 315}
+...\hbox(6.94444+0.0)x50.02786, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
 .....\OT1/cmr/m/n/10 e
@@ -308,7 +313,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 r
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
-...\pdfrestore
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -316,17 +321,17 @@ l. ...  }
 \hbox(56.9723+0.0)x56.97232, direction TLT
 .\hbox(56.9723+0.0)x56.97232, direction TLT
 ..\kern28.48616
-..\hbox(40.2855+0.0)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{0.70711 0.70711 -0.70711 0.70711}
-...\hbox(40.2855+0.0)x0.0, direction TLT
+..\hbox(40.2855+0.0)x40.2855, direction TLT
+...\special{x:gsave}
+...\special{x:rotate 45}
+...\hbox(40.2855+0.0)x40.2855, direction TLT
 ....\hbox(40.2855+0.0)x40.2855, direction TLT
 .....\hbox(40.2855+0.0)x40.2855, direction TLT
 ......\kern4.91046
-......\hbox(6.94444+0.0)x0.0, direction TLT
-.......\pdfsave
-.......\pdfsetmatrix{0.70711 0.70711 -0.70711 0.70711}
-.......\hbox(6.94444+0.0)x0.0, direction TLT
+......\hbox(6.94444+0.0)x50.02786, direction TLT
+.......\special{x:gsave}
+.......\special{x:rotate 45}
+.......\hbox(6.94444+0.0)x50.02786, direction TLT
 ........\hbox(6.94444+0.0)x50.02786, direction TLT
 .........\OT1/cmr/m/n/10 H
 .........\OT1/cmr/m/n/10 e
@@ -340,8 +345,8 @@ l. ...  }
 .........\OT1/cmr/m/n/10 r
 .........\OT1/cmr/m/n/10 l
 .........\OT1/cmr/m/n/10 d
-.......\pdfrestore
-...\pdfrestore
+.......\special{x:grestore}
+...\special{x:grestore}
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
@@ -371,8 +376,8 @@ l. ...  }
 .\hbox(6.94444+0.0)x50.02786, direction TLT
 ..\kern0.0
 ..\hbox(6.94444+0.0)x50.02786, direction TLT
-...\pdfsave
-...\pdfsetmatrix{1 0 0 1}
+...\special{x:gsave}
+...\special{x:scale 1 1}
 ...\hbox(6.94444+0.0)x0.0, glue set - 50.02786fil, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
@@ -388,7 +393,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
 ....\glue 0.0 plus 1.0fil minus 1.0fil
-...\pdfrestore
+...\special{x:grestore}
 ..\glue 0.0 plus 1.0fil minus 1.0fil
 ! OK.
 <argument> \l_tmpa_box 
@@ -398,8 +403,8 @@ l. ...  }
 .\hbox(6.94444+0.0)x125.06966, direction TLT
 ..\kern0.0
 ..\hbox(6.94444+0.0)x125.06966, direction TLT
-...\pdfsave
-...\pdfsetmatrix{2.5 0 0 1}
+...\special{x:gsave}
+...\special{x:scale 2.5 1}
 ...\hbox(6.94444+0.0)x0.0, glue set - 50.02786fil, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
@@ -415,7 +420,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
 ....\glue 0.0 plus 1.0fil minus 1.0fil
-...\pdfrestore
+...\special{x:grestore}
 ..\glue 0.0 plus 1.0fil minus 1.0fil
 ! OK.
 <argument> \l_tmpa_box 
@@ -425,8 +430,8 @@ l. ...  }
 .\hbox(2.31477+0.0)x50.02786, direction TLT
 ..\kern0.0
 ..\hbox(2.31477+0.0)x50.02786, direction TLT
-...\pdfsave
-...\pdfsetmatrix{1 0 0 0.33333}
+...\special{x:gsave}
+...\special{x:scale 1 0.33333}
 ...\hbox(6.94444+0.0)x0.0, glue set - 50.02786fil, direction TLT
 ....\hbox(6.94444+0.0)x50.02786, direction TLT
 .....\OT1/cmr/m/n/10 H
@@ -442,7 +447,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 l
 .....\OT1/cmr/m/n/10 d
 ....\glue 0.0 plus 1.0fil minus 1.0fil
-...\pdfrestore
+...\special{x:grestore}
 ..\glue 0.0 plus 1.0fil minus 1.0fil
 ! OK.
 <argument> \l_tmpa_box 
@@ -452,8 +457,8 @@ l. ...  }
 .\hbox(6.94444+1.94444)x103.61133, direction TLT
 ..\kern0.0
 ..\hbox(6.94444+1.94444)x103.61133, direction TLT
-...\pdfsave
-...\pdfsetmatrix{1 0 0 1}
+...\special{x:gsave}
+...\special{x:scale 1 1}
 ...\hbox(6.94444+1.94444)x0.0, glue set - 103.61133fil, direction TLT
 ....\hbox(6.94444+1.94444)x103.61133, direction TLT
 .....\OT1/cmr/m/n/10 T
@@ -482,7 +487,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 w
 .....\OT1/cmr/m/n/10 n
 ....\glue 0.0 plus 1.0fil minus 1.0fil
-...\pdfrestore
+...\special{x:grestore}
 ..\glue 0.0 plus 1.0fil minus 1.0fil
 ! OK.
 <argument> \l_tmpa_box 
@@ -492,8 +497,8 @@ l. ...  }
 .\hbox(20.83333+5.83333)x310.83398, direction TLT
 ..\kern0.0
 ..\hbox(20.83333+5.83333)x310.83398, direction TLT
-...\pdfsave
-...\pdfsetmatrix{3 0 0 3}
+...\special{x:gsave}
+...\special{x:scale 3 3}
 ...\hbox(6.94444+1.94444)x0.0, glue set - 103.61133fil, direction TLT
 ....\hbox(6.94444+1.94444)x103.61133, direction TLT
 .....\OT1/cmr/m/n/10 T
@@ -522,7 +527,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 w
 .....\OT1/cmr/m/n/10 n
 ....\glue 0.0 plus 1.0fil minus 1.0fil
-...\pdfrestore
+...\special{x:grestore}
 ..\glue 0.0 plus 1.0fil minus 1.0fil
 ! OK.
 <argument> \l_tmpa_box 
@@ -532,8 +537,8 @@ l. ...  }
 .\hbox(5.83333+20.83333)x310.83398, direction TLT
 ..\kern310.83398
 ..\hbox(5.83333+20.83333)x0.0, direction TLT
-...\pdfsave
-...\pdfsetmatrix{-3 0 0 -3}
+...\special{x:gsave}
+...\special{x:scale -3 -3}
 ...\hbox(6.94444+1.94444)x0.0, glue set - 103.61133fil, direction TLT
 ....\hbox(6.94444+1.94444)x103.61133, direction TLT
 .....\OT1/cmr/m/n/10 T
@@ -562,7 +567,7 @@ l. ...  }
 .....\OT1/cmr/m/n/10 w
 .....\OT1/cmr/m/n/10 n
 ....\glue 0.0 plus 1.0fil minus 1.0fil
-...\pdfrestore
+...\special{x:grestore}
 ..\glue 0.0 plus 1.0fil minus 1.0fil
 ! OK.
 <argument> \l_tmpa_box 
@@ -573,7 +578,7 @@ TEST 4: Color
 ============================================================
 > \box...=
 \hbox(6.94444+0.0)x50.02786, direction TLT
-.\pdfcolorstack 0 push {0 g 0 G}
+.\special{pdf:bc [0]}
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 l
@@ -586,7 +591,7 @@ TEST 4: Color
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 l
 .\OT1/cmr/m/n/10 d
-.\pdfcolorstack 0 pop
+.\special{pdf:ec}
 ! OK.
 <argument> \l_tmpa_coffin 
 l. ...  }
diff --git a/l3kernel/testfiles/d3dvipdfmx.tlg b/l3kernel/testfiles/d3dvipdfmx.tlg
index 30c43e28d..626af9a73 100644
--- a/l3kernel/testfiles/d3dvipdfmx.tlg
+++ b/l3kernel/testfiles/d3dvipdfmx.tlg
@@ -6,10 +6,13 @@ Package: expl3 ....-..-.. L3 programming layer (loader)
 File: l3debug.def ....-..-.. L3 Debugging support
 ) (l3backend-dvipdfmx.def
 File: l3backend-dvipdfmx.def ....-..-.. L3 backend support: dvipdfmx
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
 Author: Joseph Wright
 ============================================================
diff --git a/l3kernel/testfiles/d3dvipdfmx.xetex.tlg b/l3kernel/testfiles/d3dvipdfmx.xetex.tlg
index 2cfc8bc5c..5fe1f8268 100644
--- a/l3kernel/testfiles/d3dvipdfmx.xetex.tlg
+++ b/l3kernel/testfiles/d3dvipdfmx.xetex.tlg
@@ -14,10 +14,13 @@ You have requested backend 'dvipdfmx', but this is not suitable for use with
 the active engine. LaTeX3 will use the 'xetex' backend instead.
 (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
 Author: Joseph Wright
 ============================================================
diff --git a/l3kernel/testfiles/d3dvips.xetex.tlg b/l3kernel/testfiles/d3dvips.xetex.tlg
index c905d300f..d434283c4 100644
--- a/l3kernel/testfiles/d3dvips.xetex.tlg
+++ b/l3kernel/testfiles/d3dvips.xetex.tlg
@@ -14,10 +14,13 @@ You have requested backend 'dvips', but this is not suitable for use with the
 active engine. LaTeX3 will use the 'xetex' backend instead.
 (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
 Author: Joseph Wright
 ============================================================
diff --git a/l3kernel/testfiles/d3pdfmode.xetex.tlg b/l3kernel/testfiles/d3pdfmode.xetex.tlg
index c94cd1916..8ed522d3b 100644
--- a/l3kernel/testfiles/d3pdfmode.xetex.tlg
+++ b/l3kernel/testfiles/d3pdfmode.xetex.tlg
@@ -14,10 +14,13 @@ You have requested backend 'pdfmode', but this is not suitable for use with
 the active engine. LaTeX3 will use the 'xetex' backend instead.
 (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
 Author: Joseph Wright
 ============================================================
diff --git a/l3kernel/testfiles/d3xetex.xetex.tlg b/l3kernel/testfiles/d3xetex.xetex.tlg
index 76575f7df..9fe7a9a6b 100644
--- a/l3kernel/testfiles/d3xetex.xetex.tlg
+++ b/l3kernel/testfiles/d3xetex.xetex.tlg
@@ -6,10 +6,13 @@ Package: expl3 ....-..-.. L3 programming layer (loader)
 File: l3debug.def ....-..-.. L3 Debugging support
 ) (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
 Author: Joseph Wright
 ============================================================
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 13b2e496a..c2380be9d 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -25,6 +25,9 @@ Defining \__kernel_backend_literal_pdf:x on line ...
 Defining \__kernel_backend_literal_page:n on line ...
 Defining \__kernel_backend_scope_begin: on line ...
 Defining \__kernel_backend_scope_end: on line ...
+(|extractbb --version)
+Defining \c__kernel_sys_dvipdfmx_version_int on line ...
+\c__kernel_sys_dvipdfmx_version_int=\count...
 Defining \__color_backend_select_cmyk:n on line ...
 Defining \__color_backend_select_gray:n on line ...
 Defining \__color_backend_select_rgb:n on line ...
@@ -143,6 +146,8 @@ Defining \g__pdf_backend_annotation_int on line ...
 Defining \__pdf_backend_annotation:nnnn on line ...
 Defining \__pdf_backend_annotation_aux:nnnn on line ...
 Defining \__pdf_backend_annotation_last: on line ...
+Defining \g__pdf_backend_link_int on line ...
+\g__pdf_backend_link_int=\count...
 Defining \__pdf_backend_link_begin_goto:nnw on line ...
 Defining \__pdf_backend_link_begin_user:nnw on line ...
 Defining \__pdf_backend_link_begin:n on line ...
diff --git a/l3kernel/testfiles/m3expl002.xetex.tlg b/l3kernel/testfiles/m3expl002.xetex.tlg
index 2bd7e5c4b..8fcbd1911 100644
--- a/l3kernel/testfiles/m3expl002.xetex.tlg
+++ b/l3kernel/testfiles/m3expl002.xetex.tlg
@@ -6,8 +6,11 @@ Package: expl3 ....-..-.. L3 programming layer (loader)
 File: l3debug.def ....-..-.. L3 Debugging support
 ) (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 13b2e496a..c2380be9d 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -25,6 +25,9 @@ Defining \__kernel_backend_literal_pdf:x on line ...
 Defining \__kernel_backend_literal_page:n on line ...
 Defining \__kernel_backend_scope_begin: on line ...
 Defining \__kernel_backend_scope_end: on line ...
+(|extractbb --version)
+Defining \c__kernel_sys_dvipdfmx_version_int on line ...
+\c__kernel_sys_dvipdfmx_version_int=\count...
 Defining \__color_backend_select_cmyk:n on line ...
 Defining \__color_backend_select_gray:n on line ...
 Defining \__color_backend_select_rgb:n on line ...
@@ -143,6 +146,8 @@ Defining \g__pdf_backend_annotation_int on line ...
 Defining \__pdf_backend_annotation:nnnn on line ...
 Defining \__pdf_backend_annotation_aux:nnnn on line ...
 Defining \__pdf_backend_annotation_last: on line ...
+Defining \g__pdf_backend_link_int on line ...
+\g__pdf_backend_link_int=\count...
 Defining \__pdf_backend_link_begin_goto:nnw on line ...
 Defining \__pdf_backend_link_begin_user:nnw on line ...
 Defining \__pdf_backend_link_begin:n on line ...
diff --git a/l3kernel/testfiles/m3expl004.xetex.tlg b/l3kernel/testfiles/m3expl004.xetex.tlg
index ee1682bb6..384ac3ba3 100644
--- a/l3kernel/testfiles/m3expl004.xetex.tlg
+++ b/l3kernel/testfiles/m3expl004.xetex.tlg
@@ -4,8 +4,11 @@ Don't change this file in any respect.
 Package: expl3 ....-..-.. L3 programming layer (loader) 
 (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
diff --git a/l3kernel/testfiles/m3expl006.xetex.tlg b/l3kernel/testfiles/m3expl006.xetex.tlg
index 3113e86bb..6da8c2d2f 100644
--- a/l3kernel/testfiles/m3expl006.xetex.tlg
+++ b/l3kernel/testfiles/m3expl006.xetex.tlg
@@ -5,8 +5,11 @@ Author: Bruno Le Floch and Joseph Wright
 Package: expl3 ....-..-.. L3 programming layer (loader) 
 (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 ))
diff --git a/l3kernel/testfiles/m3expl007.xetex.tlg b/l3kernel/testfiles/m3expl007.xetex.tlg
index 649e2d811..2931d3ceb 100644
--- a/l3kernel/testfiles/m3expl007.xetex.tlg
+++ b/l3kernel/testfiles/m3expl007.xetex.tlg
@@ -5,13 +5,15 @@ Author: Phelype Oleinik
 Package: expl3 ....-..-.. L3 programming layer (loader) 
 (l3backend-xetex.def
 File: l3backend-xetex.def ....-..-.. L3 backend support: XeTeX
+(|extractbb --version)
+\c__kernel_sys_dvipdfmx_version_int=\count...
 \g__graphics_track_int=\count...
 \l__pdf_internal_box=\box...
 \g__pdf_backend_object_int=\count...
 \g__pdf_backend_annotation_int=\count...
+\g__pdf_backend_link_int=\count...
 )) (expl3.sty
 Package: expl3 ....-..-.. L3 programming layer (loader) 
 (l3debug.def
 File: l3debug.def ....-..-.. L3 Debugging support
-))
-(expl3.ltx)
+)) (expl3.ltx)





More information about the latex3-commits mailing list.