[latex3-commits] [git/LaTeX3-latex3-latex2e] develop: Revert "Update l3backend to 2020-02-03" (6fb47c90)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Feb 3 22:39:54 CET 2020


Repository : https://github.com/latex3/latex2e
On branch  : develop
Link       : https://github.com/latex3/latex2e/commit/6fb47c90df5b76be3322ced84e8527e6edb5cde1

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

commit 6fb47c90df5b76be3322ced84e8527e6edb5cde1
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Mon Feb 3 20:16:28 2020 +0000

    Revert "Update l3backend to 2020-02-03"
    
    This reverts commit ae845f2e48945cc9736cccae51e05b6026f2d7f4.


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

6fb47c90df5b76be3322ced84e8527e6edb5cde1
 texmf/dvips/l3backend/l3backend-dvips.pro         | 402 ---------------------
 texmf/tex/latex/l3backend/l3backend-dvipdfmx.def  |   4 +-
 texmf/tex/latex/l3backend/l3backend-dvips.def     | 416 +++++++++++++++++++++-
 texmf/tex/latex/l3backend/l3backend-dvisvgm.def   |   4 +-
 texmf/tex/latex/l3backend/l3backend-pdfmode.def   |   4 +-
 texmf/tex/latex/l3backend/l3backend-xdvipdfmx.def |   4 +-
 6 files changed, 418 insertions(+), 416 deletions(-)

diff --git a/texmf/dvips/l3backend/l3backend-dvips.pro b/texmf/dvips/l3backend/l3backend-dvips.pro
deleted file mode 100644
index ac097642..00000000
--- a/texmf/dvips/l3backend/l3backend-dvips.pro
+++ /dev/null
@@ -1,402 +0,0 @@
-%%
-%% This is file `l3backend-dvips.pro',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3backend-header.dtx  (with options: `header,dvips')
-%% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
-%% 
-%% It may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License (LPPL), either version 1.3c of
-%% this license or (at your option) any later version.  The latest
-%% version of this license is in the file:
-%% 
-%%    https://www.latex-project.org/lppl.txt
-%% 
-%% This file is part of the "l3backend bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%% 
-%% File: l3backend-header.dtx
-true setglobal
-/pdf.globaldict 4 dict def
-false setglobal
-
-/pdf.cvs { 65534 string cvs } def
-/pdf.dvi.pt { 72.27 mul Resolution div } def
-/pdf.pt.dvi { 72.27 div Resolution mul } def
-/pdf.rect.ht { dup 1 get neg exch 3 get add } def
-/pdf.linkmargin { 1 pdf.pt.dvi } def
-/pdf.linkdp.pad { 0 } def
-/pdf.linkht.pad { 0 } def
-/pdf.rect
-  { /Rect [ pdf.llx pdf.lly pdf.urx pdf.ury ] } def
-/pdf.save.ll
-  {
-    currentpoint
-    /pdf.lly exch def
-    /pdf.llx exch def
-  }
-    def
-/pdf.save.ur
-  {
-    currentpoint
-    /pdf.ury exch def
-    /pdf.urx exch def
-  }
-    def
-/pdf.save.linkll
-  {
-    currentpoint
-    pdf.linkmargin add
-    pdf.linkdp.pad add
-    /pdf.lly exch def
-    pdf.linkmargin sub
-    /pdf.llx exch def
-  }
-    def
-/pdf.save.linkur
-  {
-    currentpoint
-    pdf.linkmargin sub
-    pdf.linkht.pad sub
-    /pdf.ury exch def
-    pdf.linkmargin add
-    /pdf.urx exch def
-  }
-    def
-/pdf.dest.anchor
-  {
-    currentpoint exch
-    pdf.dvi.pt 72 add
-    /pdf.dest.x exch def
-    pdf.dvi.pt
-    vsize 72 sub exch sub
-    /pdf.dest.y exch def
-  }
-    def
-/pdf.dest.point
-  { pdf.dest.x pdf.dest.y } def
-/pdf.dest2device
-  {
-    /pdf.dest.y exch def
-    /pdf.dest.x exch def
-    matrix currentmatrix
-    matrix defaultmatrix
-    matrix invertmatrix
-    matrix concatmatrix
-    cvx exec
-    /pdf.dev.y exch def
-    /pdf.dev.x exch def
-    /pdf.tmpd exch def
-    /pdf.tmpc exch def
-    /pdf.tmpb exch def
-    /pdf.tmpa exch def
-    pdf.dest.x pdf.tmpa mul
-      pdf.dest.y pdf.tmpc mul add
-      pdf.dev.x add
-    pdf.dest.x pdf.tmpb mul
-     pdf.dest.y pdf.tmpd mul add
-     pdf.dev.y add
-  }
-    def
-/pdf.bordertracking false def
-/pdf.bordertracking.begin
-  {
-    SDict /pdf.bordertracking true put
-    SDict /pdf.leftboundary undef
-    SDict /pdf.rightboundary undef
-    /a where
-      {
-        /a
-          {
-            currentpoint pop
-            SDict /pdf.rightboundary known dup
-              {
-                SDict /pdf.rightboundary get 2 index lt
-                  { not }
-                if
-              }
-            if
-              { pop }
-              { SDict exch /pdf.rightboundary exch put }
-            ifelse
-            moveto
-            currentpoint pop
-            SDict /pdf.leftboundary known dup
-              {
-                SDict /pdf.leftboundary get 2 index gt
-                  { not }
-                if
-              }
-            if
-              { pop }
-              { SDict exch /pdf.leftboundary exch put }
-            ifelse
-          }
-        put
-      }
-    if
-  }
-    def
-/pdf.bordertracking.end
-  {
-    /a where { /a { moveto } put } if
-    /x where { /x { 0 exch rmoveto } put } if
-    SDict /pdf.leftboundary known
-      { pdf.outerbox 0 pdf.leftboundary put }
-    if
-    SDict /pdf.rightboundary known
-      { pdf.outerbox 2 pdf.rightboundary put }
-    if
-    SDict /pdf.bordertracking false put
-  }
-    def
-  /pdf.bordertracking.endpage
-{
-  pdf.bordertracking
-    {
-      pdf.bordertracking.end
-      true setglobal
-      pdf.globaldict
-        /pdf.brokenlink.rect [ pdf.outerbox aload pop ] put
-      pdf.globaldict
-        /pdf.brokenlink.skip pdf.baselineskip put
-      pdf.globaldict
-        /pdf.brokenlink.dict
-          pdf.link.dict pdf.cvs put
-      false setglobal
-      mark pdf.link.dict cvx exec /Rect
-        [
-          pdf.llx
-          pdf.lly
-          pdf.outerbox 2 get pdf.linkmargin add
-          currentpoint exch pop
-          pdf.outerbox pdf.rect.ht sub pdf.linkmargin sub
-        ]
-      /ANN pdf.pdfmark
-    }
-  if
-}
-  def
-/pdf.bordertracking.continue
-  {
-    /pdf.link.dict pdf.globaldict
-      /pdf.brokenlink.dict get def
-    /pdf.outerbox pdf.globaldict
-      /pdf.brokenlink.rect get def
-    /pdf.baselineskip pdf.globaldict
-      /pdf.brokenlink.skip get def
-    pdf.globaldict dup dup
-    /pdf.brokenlink.dict undef
-    /pdf.brokenlink.skip undef
-    /pdf.brokenlink.rect undef
-    currentpoint
-    /pdf.originy exch def
-    /pdf.originx exch def
-    /a where
-      {
-        /a
-          {
-            moveto
-            SDict
-            begin
-            currentpoint pdf.originy ne exch
-              pdf.originx ne or
-              {
-                pdf.save.linkll
-                /pdf.lly
-                  pdf.lly pdf.outerbox 1 get sub def
-                pdf.bordertracking.begin
-              }
-            if
-            end
-          }
-        put
-      }
-    if
-    /x where
-      {
-        /x
-          {
-            0 exch rmoveto
-            SDict~
-            begin
-            currentpoint
-            pdf.originy ne exch pdf.originx ne or
-              {
-                pdf.save.linkll
-                /pdf.lly
-                  pdf.lly pdf.outerbox 1 get sub def
-                pdf.bordertracking.begin
-              }
-            if
-            end
-          }
-        put
-      }
-    if
-  }
-    def
-/pdf.breaklink
-  {
-    pop
-    counttomark 2 mod 0 eq
-      {
-        counttomark /pdf.count exch def
-          {
-           pdf.count 0 eq { exit } if
-           counttomark 2 roll
-           1 index /Rect eq
-             {
-               dup 4 array copy
-               dup dup
-                 1 get
-                 pdf.outerbox pdf.rect.ht
-                 pdf.linkmargin 2 mul add sub
-                 3 exch put
-               dup
-                 pdf.outerbox 2 get
-                 pdf.linkmargin add
-                 2 exch put
-               dup dup
-                 3 get
-                 pdf.outerbox pdf.rect.ht
-                 pdf.linkmargin 2 mul add add
-                 1 exch put
-               /pdf.currentrect exch  def
-               pdf.breaklink.write
-                 {
-                   pdf.currentrect
-                   dup
-                     pdf.outerbox 0 get
-                     pdf.linkmargin sub
-                     0 exch put
-                   dup
-                     pdf.outerbox 2 get
-                     pdf.linkmargin add
-                     2 exch put
-                   dup dup
-                     1 get
-                     pdf.baselineskip add
-                     1 exch put
-                   dup dup
-                     3 get
-                     pdf.baselineskip add
-                     3 exch put
-                   /pdf.currentrect exch def
-                   pdf.breaklink.write
-                  }
-                1 index 3 get
-                pdf.linkmargin 2 mul add
-                pdf.outerbox pdf.rect.ht add
-                2 index 1 get sub
-                pdf.baselineskip div round cvi 1 sub
-                exch
-              repeat
-              pdf.currentrect
-              dup
-                pdf.outerbox 0 get
-                pdf.linkmargin sub
-                0 exch put
-              dup dup
-                1 get
-                pdf.baselineskip add
-                1 exch put
-              dup dup
-                3 get
-                pdf.baselineskip add
-                3 exch put
-              dup 2 index 2 get  2 exch put
-              /pdf.currentrect exch def
-              pdf.breaklink.write
-              SDict /pdf.pdfmark.good false put
-              exit
-            }
-            { pdf.count 2 sub /pdf.count exch def }
-          ifelse
-        }
-      loop
-    }
-  if
-  /ANN
-}
-  def
-/pdf.breaklink.write
-  {
-    counttomark 1 sub
-    index /_objdef eq
-      {
-        counttomark -2 roll
-        dup wcheck
-          {
-            readonly
-            counttomark 2 roll
-          }
-          { pop pop }
-        ifelse
-      }
-    if
-    counttomark 1 add copy
-    pop pdf.currentrect
-    /ANN pdfmark
-  }
-    def
-/pdf.pdfmark
-  {
-    SDict /pdf.pdfmark.good true put
-    dup /ANN eq
-      {
-        pdf.pdfmark.store
-        pdf.pdfmark.dict
-          begin
-            Subtype /Link eq
-            currentdict /Rect known and
-            SDict /pdf.outerbox known and
-            SDict /pdf.baselineskip known and
-              {
-                Rect 3 get
-                pdf.linkmargin 2 mul add
-                pdf.outerbox pdf.rect.ht add
-                Rect 1 get sub
-                pdf.baselineskip div round cvi 0 gt
-                  { pdf.breaklink }
-                if
-              }
-            if
-          end
-        SDict /pdf.outerbox undef
-        SDict /pdf.baselineskip undef
-        currentdict /pdf.pdfmark.dict undef
-      }
-    if
-    pdf.pdfmark.good
-      { pdfmark }
-      { cleartomark }
-    ifelse
-  }
-    def
-/pdf.pdfmark.store
-  {
-    /pdf.pdfmark.dict 65534 dict def
-    counttomark 1 add copy
-    pop
-      {
-        dup mark eq
-          {
-            pop
-            exit
-          }
-          {
-            pdf.pdfmark.dict
-            begin def end
-          }
-        ifelse
-      }
-    loop
-}
-  def
-%% 
-%%
-%% End of file `l3backend-dvips.pro'.
diff --git a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
index 0f9c0988..0b9fb621 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,dvipdfmx')
 %% l3backend-pdf.dtx  (with options: `package,dvipdfmx')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2019 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2020-02-03}{}
+  {l3backend-dvipdfmx.def}{2019-04-06}{}
   {L3 backend support: dvipdfmx}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-dvips.def b/texmf/tex/latex/l3backend/l3backend-dvips.def
index 04c0f4fb..1fa2e583 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvips.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvips.def
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,dvips')
 %% l3backend-pdf.dtx  (with options: `package,dvips')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2019 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2020-02-03}{}
+  {l3backend-dvips.def}{2019-04-06}{}
   {L3 backend support: dvips}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
@@ -37,10 +37,13 @@
 \cs_new_protected:Npn \__kernel_backend_postscript:n #1
   { \__kernel_backend_literal:n { ps: SDict ~ begin ~ #1 ~ end } }
 \cs_generate_variant:Nn \__kernel_backend_postscript:n { x }
-\cs_if_exist:NTF \AtBeginDvi
-  { \exp_not:N \AtBeginDvi }
-  { \use:n }
-    { \__kernel_backend_literal:n { header = l3backend-dvips.pro } }
+\cs_new_protected:Npx \__kernel_backend_postscript_header:n #1
+  {
+    \cs_if_exist:NTF \AtBeginDvi
+      { \exp_not:N \AtBeginDvi }
+      { \use:n }
+        { \__kernel_backend_literal:n { ! #1 } }
+  }
 \cs_new_protected:Npn \__kernel_backend_align_begin:
   {
     \__kernel_backend_literal:n { ps::[begin] }
@@ -511,6 +514,407 @@
 \cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx }
 \cs_new:Npn \__pdf_backend_object_last:
   { { pdf.obj \int_use:N \g__pdf_backend_object_int } }
+\__kernel_backend_postscript_header:n
+  {
+    true ~ setglobal ~
+    /pdf.globaldict ~ 4 ~ dict ~ def ~
+    false ~ setglobal
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.cvs { 65534 ~ string ~ cvs } def
+    /pdf.dvi.pt { 72.27 ~ mul ~ Resolution ~ div } def
+    /pdf.pt.dvi { 72.27 ~ div ~ Resolution ~ mul } def
+    /pdf.rect.ht { dup ~ 1 ~ get ~ neg ~ exch ~ 3 ~ get ~ add } def
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.linkmargin { 1 ~ pdf.pt.dvi } def
+    /pdf.linkdp.pad { 0 } def
+    /pdf.linkht.pad { 0 } def
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.rect
+      { /Rect [ pdf.llx ~ pdf.lly ~ pdf.urx ~ pdf.ury ] } def
+    /pdf.save.ll
+      {
+        currentpoint
+        /pdf.lly ~ exch ~ def
+        /pdf.llx ~ exch ~ def
+      }
+        def
+    /pdf.save.ur
+      {
+        currentpoint
+        /pdf.ury ~ exch ~ def
+        /pdf.urx ~ exch ~ def
+      }
+        def
+    /pdf.save.linkll
+      {
+        currentpoint ~
+        pdf.linkmargin ~ add ~
+        pdf.linkdp.pad ~ add
+        /pdf.lly ~ exch ~ def ~
+        pdf.linkmargin ~ sub
+        /pdf.llx ~ exch ~ def
+      }
+        def
+    /pdf.save.linkur
+      {
+        currentpoint ~
+        pdf.linkmargin ~ sub ~
+        pdf.linkht.pad ~ sub
+        /pdf.ury ~ exch ~ def ~
+        pdf.linkmargin ~ add
+        /pdf.urx ~ exch ~ def
+      }
+        def
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.dest.anchor
+      {
+        currentpoint ~ exch ~
+        pdf.dvi.pt ~ 72 ~ add ~
+        /pdf.dest.x ~ exch ~ def ~
+        pdf.dvi.pt ~
+        vsize ~ 72 ~ sub ~ exch ~ sub ~
+        /pdf.dest.y ~ exch ~ def
+      }
+        def
+    /pdf.dest.point
+      { pdf.dest.x ~ pdf.dest.y } def
+   /pdf.dest2device
+     {
+       /pdf.dest.y ~ exch ~ def
+       /pdf.dest.x ~ exch ~ def ~
+       matrix ~ currentmatrix ~
+       matrix ~ defaultmatrix ~
+       matrix ~ invertmatrix ~
+       matrix ~ concatmatrix ~
+       cvx ~ exec
+       /pdf.dev.y ~ exch ~ def
+       /pdf.dev.x ~ exch ~ def
+       /pdf.tmpd ~ exch ~ def
+       /pdf.tmpc ~ exch ~ def
+       /pdf.tmpb ~ exch ~ def
+       /pdf.tmpa ~ exch ~ def ~
+       pdf.dest.x ~ pdf.tmpa ~ mul ~
+         pdf.dest.y ~ pdf.tmpc ~ mul ~ add ~
+         pdf.dev.x ~ add ~
+       pdf.dest.x ~ pdf.tmpb ~ mul ~
+         pdf.dest.y ~ pdf.tmpd ~ mul ~ add ~
+         pdf.dev.y ~ add
+     }
+       def
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.bordertracking ~ false ~ def
+    /pdf.bordertracking.begin
+      {
+        SDict ~ /pdf.bordertracking ~ true ~ put ~
+        SDict ~ /pdf.leftboundary ~ undef ~
+        SDict ~ /pdf.rightboundary ~ undef ~
+        /a ~ where
+          {
+            /a
+              {
+                currentpoint ~ pop ~
+                SDict /pdf.rightboundary ~ known ~ dup
+                  {
+                    SDict /pdf.rightboundary ~ get ~ 2 ~ index ~ lt
+                      { not }
+                    if
+                  }
+                if
+                  { pop }
+                  { SDict ~ exch /pdf.rightboundary ~ exch ~ put }
+                ifelse ~
+                moveto ~
+                currentpoint ~ pop ~
+                SDict /pdf.leftboundary ~ known ~ dup
+                  {
+                    SDict /pdf.leftboundary ~ get ~ 2 ~ index ~ gt
+                      { not }
+                    if
+                  }
+                if
+                  { pop }
+                  { SDict ~ exch /pdf.leftboundary ~ exch ~ put }
+                ifelse
+              }
+            put
+          }
+        if
+      }
+        def
+    /pdf.bordertracking.end
+      {
+        /a ~ where { /a { moveto } put } if
+        /x ~ where { /x { 0 ~ exch ~ rmoveto } put } if ~
+        SDict /pdf.leftboundary ~ known
+          { pdf.outerbox ~ 0 ~ pdf.leftboundary ~ put }
+        if ~
+        SDict /pdf.rightboundary ~ known
+          { pdf.outerbox ~ 2 ~ pdf.rightboundary ~ put }
+        if ~
+        SDict /pdf.bordertracking ~ false ~ put
+      }
+        def
+  /pdf.bordertracking.endpage
+    {
+      pdf.bordertracking
+        {
+          pdf.bordertracking.end ~
+          true ~ setglobal ~
+          pdf.globaldict
+            /pdf.brokenlink.rect [ pdf.outerbox ~ aload ~ pop ] put ~
+          pdf.globaldict
+            /pdf.brokenlink.skip ~ pdf.baselineskip ~ put ~
+          pdf.globaldict
+            /pdf.brokenlink.dict ~
+              pdf.link.dict ~ pdf.cvs ~ put ~
+          false ~ setglobal ~
+          mark ~ pdf.link.dict ~ cvx ~ exec ~ /Rect
+            [
+              pdf.llx ~
+              pdf.lly ~
+              pdf.outerbox ~ 2 ~ get ~ pdf.linkmargin ~ add ~
+              currentpoint ~ exch ~ pop ~
+              pdf.outerbox ~ pdf.rect.ht ~ sub ~ pdf.linkmargin ~ sub
+            ]
+          /ANN ~ pdf.pdfmark
+        }
+      if
+    }
+      def
+    /pdf.bordertracking.continue
+      {
+        /pdf.link.dict ~ pdf.globaldict
+          /pdf.brokenlink.dict ~ get ~ def
+        /pdf.outerbox ~ pdf.globaldict
+          /pdf.brokenlink.rect ~ get ~ def
+        /pdf.baselineskip ~ pdf.globaldict
+          /pdf.brokenlink.skip ~ get ~ def ~
+        pdf.globaldict ~ dup ~ dup
+        /pdf.brokenlink.dict ~ undef
+        /pdf.brokenlink.skip ~ undef
+        /pdf.brokenlink.rect ~ undef ~
+        currentpoint
+        /pdf.originy ~ exch ~ def
+        /pdf.originx ~ exch ~ def
+        /a ~ where
+          {
+            /a
+              {
+                moveto ~
+                SDict ~
+                begin ~
+                currentpoint ~ pdf.originy ~ ne ~ exch ~
+                  pdf.originx ~ ne ~ or
+                  {
+                    pdf.save.linkll
+                    /pdf.lly ~
+                      pdf.lly ~ pdf.outerbox ~ 1 ~ get ~ sub ~ def ~
+                    pdf.bordertracking.begin
+                  }
+                if ~
+                end
+              }
+            put
+          }
+        if
+        /x ~ where
+          {
+            /x
+              {
+                0 ~ exch ~ rmoveto ~
+                SDict~
+                begin ~
+                currentpoint ~
+                pdf.originy ~ ne ~ exch ~ pdf.originx ~ ne ~ or
+                  {
+                    pdf.save.linkll
+                    /pdf.lly ~
+                      pdf.lly ~ pdf.outerbox ~ 1 ~ get ~ sub ~ def ~
+                    pdf.bordertracking.begin
+                  }
+                if ~
+                end
+              }
+            put
+          }
+        if
+      }
+        def
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.breaklink
+      {
+        pop ~
+        counttomark ~ 2 ~ mod ~ 0 ~ eq
+          {
+            counttomark /pdf.count ~ exch ~ def
+              {
+               pdf.count ~ 0 ~ eq { exit } if ~
+               counttomark ~ 2 ~ roll ~
+               1 ~ index ~ /Rect ~ eq
+                 {
+                   dup ~ 4 ~ array ~ copy ~
+                   dup ~ dup ~
+                     1 ~ get ~
+                     pdf.outerbox ~ pdf.rect.ht ~
+                     pdf.linkmargin ~ 2 ~ mul ~ add ~ sub ~
+                     3 ~ exch ~ put ~
+                   dup ~
+                     pdf.outerbox ~ 2 ~ get ~
+                     pdf.linkmargin ~ add ~
+                     2 ~ exch ~ put ~
+                   dup ~ dup ~
+                     3 ~ get ~
+                     pdf.outerbox ~ pdf.rect.ht ~
+                     pdf.linkmargin ~ 2 ~ mul ~ add ~ add ~
+                     1 ~ exch ~ put
+                   /pdf.currentrect ~ exch ~  def ~
+                   pdf.breaklink.write
+                     {
+                       pdf.currentrect ~
+                       dup ~
+                         pdf.outerbox ~ 0 ~ get ~
+                         pdf.linkmargin ~ sub ~
+                         0 ~ exch ~ put ~
+                       dup ~
+                         pdf.outerbox ~ 2 ~ get ~
+                         pdf.linkmargin ~ add ~
+                         2 ~ exch ~ put ~
+                       dup ~ dup ~
+                         1 ~ get ~
+                         pdf.baselineskip ~ add ~
+                         1 ~ exch ~ put ~
+                       dup ~ dup ~
+                         3 ~ get ~
+                         pdf.baselineskip ~ add ~
+                         3 ~ exch ~ put ~
+                       /pdf.currentrect ~ exch ~ def ~
+                       pdf.breaklink.write
+                      }
+                    1 ~ index ~ 3 ~ get ~
+                    pdf.linkmargin ~ 2 ~ mul ~ add ~
+                    pdf.outerbox ~ pdf.rect.ht ~ add ~
+                    2 ~ index ~ 1 ~ get ~ sub ~
+                    pdf.baselineskip ~ div ~ round ~ cvi ~ 1 ~ sub ~
+                    exch ~
+                  repeat ~
+                  pdf.currentrect ~
+                  dup ~
+                    pdf.outerbox ~ 0 ~ get ~
+                    pdf.linkmargin ~ sub ~
+                    0 ~ exch ~ put ~
+                  dup ~ dup ~
+                    1 ~ get ~
+                    pdf.baselineskip ~ add ~
+                    1 ~ exch ~ put ~
+                  dup ~ dup ~
+                    3 ~ get ~
+                    pdf.baselineskip ~ add ~
+                    3 ~ exch ~ put ~
+                  dup ~ 2 ~ index ~ 2 ~ get ~  2 ~ exch ~ put
+                  /pdf.currentrect ~ exch ~ def ~
+                  pdf.breaklink.write ~
+                  SDict /pdf.pdfmark.good ~ false ~ put ~
+                  exit
+                }
+                { pdf.count ~ 2 ~ sub /pdf.count ~ exch ~ def }
+              ifelse
+            }
+          loop
+        }
+      if
+      /ANN
+    }
+      def
+    /pdf.breaklink.write
+      {
+        counttomark ~ 1 ~ sub ~
+        index /_objdef ~ eq
+          {
+            counttomark ~ -2 ~ roll ~
+            dup ~ wcheck ~
+              {
+                readonly ~
+                counttomark ~ 2 ~ roll
+              }
+              { pop ~ pop }
+            ifelse
+          }
+        if ~
+        counttomark ~ 1 ~ add ~ copy ~
+        pop ~ pdf.currentrect
+        /ANN ~ pdfmark
+      }
+        def
+  }
+\__kernel_backend_postscript_header:n
+  {
+    /pdf.pdfmark
+      {
+        SDict /pdf.pdfmark.good ~ true ~ put ~
+        dup /ANN ~ eq
+          {
+            pdf.pdfmark.store ~
+            pdf.pdfmark.dict ~
+              begin ~
+                Subtype /Link ~ eq ~
+                currentdict /Rect ~ known ~ and ~
+                SDict /pdf.outerbox ~ known ~ and ~
+                SDict /pdf.baselineskip ~ known ~ and ~
+                  {
+                    Rect ~ 3 ~ get ~
+                    pdf.linkmargin ~ 2 ~ mul ~ add ~
+                    pdf.outerbox ~ pdf.rect.ht ~ add ~
+                    Rect ~ 1 ~ get ~ sub ~
+                    pdf.baselineskip ~ div ~ round ~ cvi ~ 0 ~ gt
+                      { pdf.breaklink }
+                    if
+                  }
+                if ~
+              end ~
+            SDict /pdf.outerbox ~ undef ~
+            SDict /pdf.baselineskip ~ undef ~
+            currentdict /pdf.pdfmark.dict ~ undef ~
+          }
+        if ~
+        pdf.pdfmark.good
+          { pdfmark }
+          { cleartomark }
+        ifelse
+      }
+        def
+    /pdf.pdfmark.store
+      {
+        /pdf.pdfmark.dict ~ 65534 ~ dict ~ def ~
+        counttomark ~ 1 ~ add ~ copy ~
+        pop
+          {
+            dup ~ mark ~ eq
+              {
+                pop ~
+                exit
+              }
+              {
+                pdf.pdfmark.dict ~
+                begin ~ def ~ end
+              }
+            ifelse
+          }
+        loop
+    }
+      def
+  }
 \box_new:N \l__pdf_backend_content_box
 \box_new:N \l__pdf_backend_model_box
 \int_new:N \g__pdf_backend_annotation_int
diff --git a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
index 0e02610d..4c336c61 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,dvisvgm')
 %% l3backend-pdf.dtx  (with options: `package,dvisvgm')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2019 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2020-02-03}{}
+  {l3backend-dvisvgm.def}{2019-04-06}{}
   {L3 backend support: dvisvgm}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-pdfmode.def b/texmf/tex/latex/l3backend/l3backend-pdfmode.def
index 80a9e44a..bebefe30 100644
--- a/texmf/tex/latex/l3backend/l3backend-pdfmode.def
+++ b/texmf/tex/latex/l3backend/l3backend-pdfmode.def
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,pdfmode')
 %% l3backend-pdf.dtx  (with options: `package,pdfmode')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2019 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdfmode.def}{2020-02-03}{}
+  {l3backend-pdfmode.def}{2019-04-06}{}
   {L3 backend support: PDF mode}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-xdvipdfmx.def b/texmf/tex/latex/l3backend/l3backend-xdvipdfmx.def
index 5b4f76cc..da7289b8 100644
--- a/texmf/tex/latex/l3backend/l3backend-xdvipdfmx.def
+++ b/texmf/tex/latex/l3backend/l3backend-xdvipdfmx.def
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,xdvipdfmx')
 %% l3backend-pdf.dtx  (with options: `package,xdvipdfmx')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2019 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xdvipdfmx.def}{2020-02-03}{}
+  {l3backend-xdvipdfmx.def}{2019-04-06}{}
   {L3 backend support: xdvipdfmx}
 \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
 \cs_new_protected:Npn \__kernel_backend_literal:n #1





More information about the latex3-commits mailing list.