From d9693aad97874c33587c8f39cfc75e201901630f Mon Sep 17 00:00:00 2001 From: Ulrike Fischer Date: Mon, 18 Jan 2021 19:25:41 +0100 Subject: [PATCH] switch to new shipout hooks --- l3backend-pdf-extra.dtx | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/l3backend-pdf-extra.dtx b/l3backend-pdf-extra.dtx index 2c59bbce..d0c5f8d1 100644 --- a/l3backend-pdf-extra.dtx +++ b/l3backend-pdf-extra.dtx @@ -150,17 +150,42 @@ % \end{macrocode} % \subsubsection{Add the \enquote{shipout} hooks} % Now we add to the shipout hooks the relevant token lists. +% We also push the page resources in shipout/firstpage (AtBeginDvi) +% as the backend code sets color stack there. The xetex driver needs a rule here. +% If it clashes on the first page, we will need a test ... % \begin{macrocode} %<*drivers> -\hook_gput_code:nnn{shipout/background}{pdf} +\tl_if_exist:NTF \@kernel@after@shipout@background { - \hook_use:n {pdf/management/thispage_shipout} + \g@addto@macro \@kernel@before@shipout@background{\relax} + \g@addto@macro \@kernel@after@shipout@background + { + \hook_use:n {pdf/management/thispage_shipout} + } + \g@addto@macro \@kernel@after@shipout@lastpage + { + \hook_use:n {pdf/management/lastpage_shipout} + } } -\hook_gput_code:nnn {shipout/lastpage} {pdf} { - \hook_use:n {pdf/management/lastpage_shipout} + \hook_gput_code:nnn{shipout/background}{pdf} + { + \hook_use:n {pdf/management/thispage_shipout} + } + \hook_gput_code:nnn {shipout/lastpage} {pdf} + { + \hook_use:n {pdf/management/lastpage_shipout} + } + } +\hook_gput_code:nnn {shipout/firstpage} {pdf} + { + \hook_use:n {pdf/management/thispage_shipout} } + % +%<*dvipdfmx|xdvipdfmx> +\hook_gset_rule:nnnn{shipout/firstpage}{l3backend-xetex}{after}{pdf} +% % \end{macrocode} % \subsection{ The /Pages dictionary (pdfpagesattr) } % \begin{macro}{\@@_backend_Pages_primitive:n}