[latex3-commits] [git/LaTeX3-latex3-pdfresources] splitting: start to move backend code out (6159774)

Ulrike Fischer fischer at troubleshooting-tex.de
Tue Jul 7 19:16:42 CEST 2020


Repository : https://github.com/latex3/pdfresources
On branch  : splitting
Link       : https://github.com/latex3/pdfresources/commit/6159774402de0174024814bc719b932a690bbb14

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

commit 6159774402de0174024814bc719b932a690bbb14
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Sun Jun 21 19:07:51 2020 +0200

    start to move backend code out


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

6159774402de0174024814bc719b932a690bbb14
 l3backend-pdf-extra.dtx | 87 +++++++++++++++++++++++++++++++++++++++++++++++++
 pdfresources.dtx        | 64 +++++++++++++-----------------------
 pdfresources.ins        | 49 +++++++++++++++++++++++++---
 3 files changed, 154 insertions(+), 46 deletions(-)

diff --git a/l3backend-pdf-extra.dtx b/l3backend-pdf-extra.dtx
new file mode 100644
index 0000000..74402e8
--- /dev/null
+++ b/l3backend-pdf-extra.dtx
@@ -0,0 +1,87 @@
+% \iffalse meta-comment
+%
+%% File: l3backend-pdf.dtx
+%
+% Copyright (C) 2019,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 "pdfresources bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/pdfresources
+%
+% for those people who are interested.
+%
+%
+%<*driver>
+\documentclass[full,kernel]{l3doc}
+\begin{document}
+  \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+%   The \textsf{l3backend-pdf-extra} package\\ Additional backend PDF features^^A
+% }
+%
+% \author{^^A
+%  The \LaTeX3 Project\thanks
+%    {^^A
+%      E-mail:
+%        \href{mailto:latex-team at latex-project.org}
+%          {latex-team at latex-project.org}^^A
+%    }^^A
+% }
+%
+% \date{Released XXXX-XX-XX}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3backend-pdf-extra} Implementation}
+%
+%    \begin{macrocode}
+%<@@=pdf>
+%    \end{macrocode}
+%
+% \begin{variable}
+%  {\g_@@_backend_resourceid_int, \g_@@_backend_name_int, \g_@@_backend_page_int}
+%  a counter to create labels for the resources, a counter
+%  to number properties in bdc marks, a counter for the \cs{pdfpageref} implementation.
+%    \begin{macrocode}
+%<*drivers>
+\int_new:N \g_@@_backend_resourceid_int
+\int_new:N \g_@@_backend_name_int
+\int_new:N \g_@@_backend_page_int
+%</drivers>
+%    \end{macrocode}
+% \end{variable}
+% \subsection{luacode}
+% Load the lua code.
+%    \begin{macrocode}
+%<*pdfmode>
+\sys_if_engine_luatex:T
+  {
+    \directlua { require("pdfresources.lua") }
+  }
+%</pdfmode>
+%    \end{macrocode}
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/pdfresources.dtx b/pdfresources.dtx
index 8d9efc6..ca84669 100644
--- a/pdfresources.dtx
+++ b/pdfresources.dtx
@@ -106,18 +106,6 @@
 %    \end{macrocode}
 % \end{variable}
 % \subsection{some zref code, needs to be replaced later}
-% \begin{variable}
-%  {\g_@@_backend_resourceid_int, \g_@@_backend_name_int, \g_@@_backend_page_int}
-%  a counter to create labels for the resources, a counter
-%  to number properties in bdc marks, a counter for the \cs{pdfpageref} implementation.
-%    \begin{macrocode}
-%<*drivers>
-\int_new:N \g_@@_backend_resourceid_int
-\int_new:N \g_@@_backend_name_int
-\int_new:N \g_@@_backend_page_int
-%</drivers>
-%    \end{macrocode}
-% \end{variable}
 % a reference for the absolute page counter. This use the counter from the
 % new lthooks/ltshipout package.
 %    \begin{macrocode}
@@ -128,16 +116,6 @@
 %</package>
 %    \end{macrocode}
 %
-% \subsection{luacode}
-% Load the lua code.
-%    \begin{macrocode}
-%<*pdfmode>
-\sys_if_engine_luatex:T
-  {
-    \directlua { require("pdfresources.lua") }
-  }
-%</pdfmode>
-%    \end{macrocode}
 %
 % \subsection{shipout and end of run code}
 % Code is executed in three places: At shipout of every page,
@@ -151,9 +129,9 @@
 % specific grouping.
 % +++++++++++++++++
 % \cs{@@_backend_end_run:} setups the end of run hook for the code stored in
-% \cs{g_@@_BACKEND_end_run_code_tl} at the end of the compilation.
-% \cs{@@_BACKEND_end_run_gput:n} adds its argument to
-% \cs{g_@@_BACKEND_end_run_code_tl}
+% \cs{g_@@_backend_end_run_code_tl} at the end of the compilation.
+% \cs{@@_backend_end_run_gput:n} adds its argument to
+% \cs{g_@@_backend_end_run_code_tl}
 % With pdflatex/lualatex |AtEndDocument{\clearpage|\meta{code}|}| is used,
 % so the code is executed at the first compilation.
 % To avoid that specials are lost the code is added to
@@ -172,6 +150,9 @@
 \tl_new:N\g_@@_backend_end_run_tl
 \tl_new:N\g_@@_backend_lastpage_shipout_tl
 \tl_new:N\g_@@_backend_thispage_shipout_tl
+\hook_new:n {pdf/core/end_run}
+\hook_new:n {pdf/core/lastpage_shipout}
+\hook_new:n {pdf/core/thispage_shipout}
 %</drivers>
 %    \end{macrocode}
 % \end{variable}
@@ -212,16 +193,17 @@
   {pdf/endrun}
   {
     \g_@@_backend_end_run_tl
+    %\hook_use_once:n
   }
 %</pdfmode>
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
 \hook_gput_code:nnn {shipout/lastpage}
   {pdf/endrun}
   {
     \g_@@_backend_end_run_tl
   }
 \hook_gset_rule:nnnn {shipout/lastpage}{pdf}{<}{pdf/endrun}
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 %<*dvips>
 \hook_gput_code:nnn {shipout/lastpage}
   {pdf/endrun}
@@ -369,12 +351,12 @@
     \tex_special:D{ps:~[#1~/PAGES~pdfmark} %]
   }
 %</dvips>
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
 \cs_new_protected:Npn \@@_backend_Pages_primitive:n #1
   {
     \@@_backend:n{put~@pages~<<#1>>}
   }
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 %    \end{macrocode}
 % \end{macro}
 %
@@ -566,7 +548,7 @@
     }
   }
 %</pdfmode>
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
   %the primitive
 \cs_new_protected:Npn \@@_backend_Page_primitive:n #1
   {
@@ -605,7 +587,7 @@
     \exp_args:Nx \@@_backend_Page_primitive:n
       { \pdfdict_gmap:n {Core/Page} }
   }
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 %<*dvips>
 \cs_new_protected:Npn \@@_backend_Page_primitive:n #1
    {
@@ -760,7 +742,7 @@
 % https://tug.org/pipermail/dvipdfmx/2019-August/000021.html,
 % so we use \special{pdf:put @resources}
 % this must be issued on every page!
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
 %objects should not only be created but also "initialized"
 \clist_map_inline:Nn \c_@@_backend_PageResources_clist
   {
@@ -784,7 +766,7 @@
   }
 
 \cs_new_protected:Npn \@@_backend_PageResources_obj_gpush: {}
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 %<*dvips>
 % dvips unneeded, or no-op
 \cs_new_protected:Npn \@@_backend_PageResources:n #1 {}
@@ -829,14 +811,14 @@
      }
  }
 %</pdfmode>
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
 \cs_new_protected:Npn \@@_backend_NamesEmbeddedFiles_gpush:n #1 %array content
   {
     \pdf_object_now:nn {dict} { /Names [#1] }
     %n or x?
     \__pdf_backend:x {put~@names~<</EmbeddedFiles~\pdf_object_last: >>}
   }
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 
 %dvips: noop
 %<*dvips>
@@ -1009,7 +991,7 @@
 % https://chat.stackexchange.com/transcript/message/50832016#50832016
 % the property is added to xform resources automatically,
 % no need to worry about it.
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
  \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
    {
      \int_gincr:N \g_@@_backend_name_int
@@ -1072,7 +1054,7 @@
           }
       }
   }
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 % luatex
 %<*pdfmode>
 \sys_if_engine_luatex:T
@@ -1549,7 +1531,7 @@
       { \int_use:c { c_@@_backend_xform_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
   }
 %</pdfmode>
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
 % xetex
    % it needs a bit testing if it really works to set the box to 0 before the special ...
    % does it disturb viewing the xobject?
@@ -1654,7 +1636,7 @@
        \box_set_dp:Nn  \l_@@_tmpa_box { \pdf_xform_dp:n { #1 } }
        \box_use_drop:N \l_@@_tmpa_box
      }
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 %<*drivers>
 %% all
 \prg_new_conditional:Npnn \@@_backend_xform_if_exist:n #1 { p , T , F , TF }
@@ -2168,9 +2150,9 @@
 % is this still needed??
 %see https://tug.org/pipermail/dvipdfmx/2019-May/000002.html
 %</package>
-%<*xdvipdfmx>
+%<*dvipdfmx|xdvipdfmx>
     \__kernel_backend_literal:x { dvipdfmx:config~C~ 0x10 }
-%</xdvipdfmx>
+%</dvipdfmx|xdvipdfmx>
 %    \end{macrocode}
 % \section{Drop?}
 % \subsubsection{Doc View/Openaction}
diff --git a/pdfresources.ins b/pdfresources.ins
index b8f646b..747e1b9 100644
--- a/pdfresources.ins
+++ b/pdfresources.ins
@@ -62,11 +62,50 @@ and all files in that bundle must be distributed together.
       }%
   }
 
-\generate{\file{l3dvipdfmx-pdf.def} {\from{pdfresources.dtx}{drivers,dvipdfmx} }}
-\generate{\file{l3dvips-pdf.def}    {\from{pdfresources.dtx}{drivers,dvips}    }}
-\generate{\file{l3dvisvgm-pdf.def}  {\from{pdfresources.dtx}{drivers,dvisvgm}  }}
-\generate{\file{l3pdfmode-pdf.def}  {\from{pdfresources.dtx}{drivers,pdfmode}  }}
-\generate{\file{l3xdvipdfmx-pdf.def}{\from{pdfresources.dtx}{drivers,xdvipdfmx}}}
+\generate
+  {
+   \file{l3dvipdfmx-pdf.def}
+     {
+       \from{l3backend-pdf-extra.dtx}{drivers,dvipdfmx}
+       \from{pdfresources.dtx}{drivers,dvipdfmx}
+     }
+  }
+
+\generate
+  {
+    \file{l3dvips-pdf.def}
+      {
+        \from{l3backend-pdf-extra.dtx}{drivers,dvips}
+        \from{pdfresources.dtx}{drivers,dvips}
+      }
+  }
+
+\generate
+  {
+    \file{l3dvisvgm-pdf.def}
+      {
+        \from{l3backend-pdf-extra.dtx}{drivers,dvisvgm}
+        \from{pdfresources.dtx}{drivers,dvisvgm}
+      }
+  }
+
+\generate
+  {
+    \file{l3pdfmode-pdf.def}
+      {
+        \from{l3backend-pdf-extra.dtx}{drivers,pdfmode}
+        \from{pdfresources.dtx}{drivers,pdfmode}
+      }
+  }
+
+\generate
+  {
+    \file {l3xdvipdfmx-pdf.def}
+      {
+       \from{l3backend-pdf-extra.dtx}{drivers,xdvipdfmx}
+        \from{pdfresources.dtx}{drivers,xdvipdfmx}
+      }
+  }
 
 \def\MetaPrefix{-- }
 \def\defaultpostamble{%





More information about the latex3-commits mailing list.