[latex3-commits] [git/LaTeX3-latex3-pdfresources] test-drop-zref: using zref as fall back (da2ae5e)

Ulrike Fischer fischer at troubleshooting-tex.de
Tue Nov 17 23:21:54 CET 2020


Repository : https://github.com/latex3/pdfresources
On branch  : test-drop-zref
Link       : https://github.com/latex3/pdfresources/commit/da2ae5e80d304219c3b87bae0a9ccc8111c02022

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

commit da2ae5e80d304219c3b87bae0a9ccc8111c02022
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Tue Nov 17 23:21:54 2020 +0100

    using zref as fall back


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

da2ae5e80d304219c3b87bae0a9ccc8111c02022
 l3backend-pdf-extra.dtx | 76 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 55 insertions(+), 21 deletions(-)

diff --git a/l3backend-pdf-extra.dtx b/l3backend-pdf-extra.dtx
index b1a05ce..b45065d 100644
--- a/l3backend-pdf-extra.dtx
+++ b/l3backend-pdf-extra.dtx
@@ -55,13 +55,51 @@
 % \begin{implementation}
 %
 % \section{\pkg{l3backend-pdf-extra} Implementation}
-%
+% \subsection{some zref/xref code, needs to be replaced later}
+% If l3xref exists we use, else we fall back to zref.
+% It is only need to get a reference for the absolute page counter.
+% This uses the counter from the
+% new lthooks/ltshipout package.
 %    \begin{macrocode}
 %<@@=pdf>
 %<*drivers>
-\RequirePackage{l3xref}
-\cs_generate_variant:Nn \xref_label:nn {en}
-\cs_generate_variant:Nn \xref_value:nn {en}
+\IfFileExists{l3xref.sty}
+ {%
+   \RequirePackage{l3xref}
+   \cs_generate_variant:Nn \xref_label:nn {en}
+   \cs_generate_variant:Nn \xref_value:nn {en}
+   \cs_new_protected:Npn \@@_backend_abspage_label:n #1
+     {
+          \xref_label:nn{#1}{abspage}
+     }
+   \cs_new:Npn \@@_backend_abspage_value:n #1
+     {
+       \zref at extractdefault
+          {#1}
+          {pdf at abspage}
+          {0}
+        \xref_value:nn{#1}{abspage}
+     }
+ }
+ {
+   \RequirePackage{zref-base}
+   \zref at newlist  { l3pdf }
+   \zref at newprop* { pdf at abspage } [0] { \int_use:N \g_shipout_readonly_int }
+   \zref at addprop  { l3pdf } { pdf at abspage }
+    \cs_new_protected:Npn \@@_backend_abspage_label:n #1
+     {
+         \zref at labelbylist {#1} {l3pdf}
+     }
+    \cs_new:Npn \@@_backend_abspage_value:n #1
+     {
+        \zref at extractdefault
+          {#1}
+          {pdf at abspage}
+          {0}
+     }
+ }
+\cs_generate_variant:Nn \@@_backend_abspage_label:n {e}
+\cs_generate_variant:Nn \@@_backend_abspage_value:n {e}
 %</drivers>
 %    \end{macrocode}
 %    \begin{macrocode}
@@ -82,16 +120,6 @@
 %</drivers>
 %    \end{macrocode}
 % \end{variable}
-% \subsection{some zref code, needs to be replaced later}
-% a reference for the absolute page counter. This uses the counter from the
-% new lthooks/ltshipout package.
-%    \begin{macrocode}
-%<*drivers>
-%\zref at newlist  { l3pdf }
-%\zref at newprop* { pdf at abspage } [0] { \int_use:N \g_shipout_readonly_int }
-%\zref at addprop  { l3pdf } { pdf at abspage }
-%</drivers>
-%    \end{macrocode}
 %
 % \begin{variable}
 %  {\g_@@_backend_resourceid_int, \g_@@_backend_name_int, \g_@@_backend_page_int}
@@ -204,7 +232,7 @@
 % \begin{NOTE}{UF}
 %  path: Page
 %  !!!!!!!!!!!!!!!!!!!!!!
-%  This part of the code depends on zref as it sets labels.
+%  This part of the code depends on zref/xref as it sets labels.
 %  It also depends on code in coredict as the code uses the Core-dictionaries
 %  !!!!!!!!!!!!!!!!!!!!!!
 %
@@ -276,14 +304,16 @@
     %we need to know the page the resource should be added too.
     \int_gincr:N\g_@@_backend_resourceid_int
     %\zref at labelbylist {l3pdf\int_use:N\g_@@_backend_resourceid_int} {l3pdf}
-    \xref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+    %\xref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+     \@@_backend_abspage_label:e { l3pdf\int_use:N\g_@@_backend_resourceid_int }
     \tl_set:Nx \l_@@_tmpa_tl
       {
         %\zref at extractdefault
 %          {l3pdf\int_use:N\g_@@_backend_resourceid_int}
 %          {pdf at abspage}
 %          {0}
-        \xref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+%        \xref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+        \@@_backend_abspage_value:e {l3pdf\int_use:N\g_@@_backend_resourceid_int}
       }
     \pdfdict_if_exist:nnF { g } {Core/backend_Page\l_@@_tmpa_tl}
       {
@@ -874,14 +904,16 @@
         %\zref at labelbylist
 %          { l3pdf\int_use:N\g_@@_backend_resourceid_int }
 %          { l3pdf }
-        \xref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+%        \xref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+        \@@_backend_abspage_label:e{l3pdf\int_use:N\g_@@_backend_resourceid_int}
         \tl_set:Nx \l_@@_tmpa_tl
           {
             %\zref at extractdefault
 %              { l3pdf\int_use:N\g_@@_backend_resourceid_int }
 %              {pdf at abspage}
 %              {0}
-            \xref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+            %\xref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+            \@@_backend_abspage_value:e{l3pdf\int_use:N\g_@@_backend_resourceid_int}
           }
         \pdfdict_if_exist:nnF { g } { Core/backend_Page\l_@@_tmpa_tl/Resources/Properties }
           {
@@ -911,14 +943,16 @@
         %\zref at labelbylist
 %          { l3pdf\int_use:N\g_@@_backend_resourceid_int }
 %          { l3pdf }
-       \xref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+       %\xref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+        \@@_backend_abspage_label:e{l3pdf\int_use:N\g_@@_backend_resourceid_int}
         \tl_set:Nx \l_@@_tmpa_tl
           {
             %\zref at extractdefault
 %              { l3pdf\int_use:N\g_@@_backend_resourceid_int }
 %              {pdf at abspage}
 %              {0}
-            \xref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+         %   \xref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage}
+            \@@_backend_abspage_value:e{l3pdf\int_use:N\g_@@_backend_resourceid_int}
           }
         \pdfdict_if_exist:nnF { g } { Core/backend_Page\l_@@_tmpa_tl/Resources/Properties }
           {





More information about the latex3-commits mailing list.