[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.