[latex3-commits] [git/LaTeX3-latex3-latex2e] shipout-hook-adjust: Added internal \@kernel at after@shipout at background hook. Added public shipout/after hook (1bf26871)

Frank Mittelbach frank.mittelbach at latex-project.org
Sun Jan 10 22:13:37 CET 2021


Repository : https://github.com/latex3/latex2e
On branch  : shipout-hook-adjust
Link       : https://github.com/latex3/latex2e/commit/1bf2687190655622a1ccce7ce9538ddfd0141597

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

commit 1bf2687190655622a1ccce7ce9538ddfd0141597
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Sun Jan 10 22:13:37 2021 +0100

            Added internal \@kernel at after@shipout at background hook.
            Added public shipout/after hook
    
            (subsection{Overloading the \shipout primitive}):
            Add \RawShipout for shipping out while bypassing most hooks.
    
            (subsection{Emulating atbegshi}): Added
            \AtBeginShipoutOriginalShipout to the emulation of atbegshi.


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

1bf2687190655622a1ccce7ce9538ddfd0141597
 base/changes.txt                          |  12 ++
 base/ltshipout.dtx                        | 233 ++++++++++++++++++++++++------
 base/testfiles-lthooks/lthooks-000.tlg    |   1 +
 base/testfiles-lthooks/lthooks-001.tlg    |   3 +
 base/testfiles-lthooks/lthooks-002.tlg    |   3 +
 base/testfiles-lthooks/lthooks-003.tlg    |   2 +
 base/testfiles-lthooks/lthooks-004.tlg    |   2 +
 base/testfiles-lthooks/lthooks-005.tlg    |   2 +
 base/testfiles-lthooks/lthooks-006.tlg    |   2 +
 base/testfiles-lthooks/lthooks-007.tlg    |   3 +
 base/testfiles-lthooks/lthooks-008.tlg    |   2 +
 base/testfiles-lthooks/lthooks-009.tlg    |   1 +
 base/testfiles-lthooks/lthooks-011.tlg    |   4 +
 base/testfiles-lthooks/lthooks-013.tlg    |   1 +
 base/testfiles-lthooks/lthooks-021.tlg    |   1 +
 base/testfiles-lthooks/lthooks-legacy.tlg |   1 +
 base/testfiles-lthooks2/lthooks2-002.tlg  |   1 +
 base/testfiles-lthooks2/lthooks2-005.tlg  |   2 +
 18 files changed, 231 insertions(+), 45 deletions(-)

diff --git a/base/changes.txt b/base/changes.txt
index bdb299ae..efe2d184 100644
--- a/base/changes.txt
+++ b/base/changes.txt
@@ -6,6 +6,18 @@ completeness or accuracy and it contains some references to files that
 are not part of the distribution.
 ================================================================================
 
+2021-01-10  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltshipout.dtx:
+	Added internal \@kernel at after@shipout at background hook.
+        Added public shipout/after hook
+
+	(subsection{Overloading the \shipout primitive}):
+	Add \RawShipout for shipping out while bypassing moast hooks.
+
+	(subsection{Emulating atbegshi}): Added
+	\AtBeginShipoutOriginalShipout to the emulation of atbegshi.
+
 2020-12-22  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* ltfssaxes.dtx (subsection{Changing to a new series}):
diff --git a/base/ltshipout.dtx b/base/ltshipout.dtx
index 64d77456..f70c5444 100644
--- a/base/ltshipout.dtx
+++ b/base/ltshipout.dtx
@@ -108,11 +108,25 @@
 %    It then stores it in a named box register.  This box can then be
 %    manipulated through a set of hooks after which it is shipped out
 %    for real.
+%
+%    Each shipout that actually happens (i.e., where the material is
+%    not discarded for one or the other reason) is recorded and the
+%    total number is available in a readonly variable and in a
+%    \LaTeX{} counter.
+% \end{function}
+%
+%
+% \begin{function}{\RawShipout}
+%    This command implements a simplified shipout that bypasses the
+%    forground and background 
+%    hooks, e.g., only \hook{shipout/firstpage} and
+%    \hook{shipout/lastpage} are executed and the total shipout
+%    counters are incremented.
 % \end{function}
 %
 %  \begin{variable}{\ShipoutBox,\l_shipout_box}
-%    This box register is called \cs{ShipoutBox} (alternatively available via the
-%    L3 name \cs{l_shipout_box}).
+%    This box register is called \cs{ShipoutBox} (alternatively
+%    available via the L3 name \cs{l_shipout_box}).
 %  \end{variable}
 %
 %
@@ -133,11 +147,11 @@
 %
 % \subsection{Provided hooks}
 %
-%  \begin{variable}{shipout/before,
+%  \begin{variable}{shipout/before,shipout/after,
 %                   shipout/foreground,shipout/background,
 %                   shipout/firstpage,
 %                   shipout/lastpage}
-%    The code offers a number of hooks into which packages (or the
+%    The code for \cs{shipout} offers a number of hooks into which packages (or the
 %    user) can add code to support different use cases.
 %    These are:
 %    \begin{description}
@@ -203,6 +217,11 @@
 %       extra page to place the material and also request a rerun to
 %       get the correct placement sorted out.
 %
+%    \item[\hook{shipout/after}]
+%
+%       This hook is executed after a shipout has happened. If the
+%       shipout box is discarded this hook is not looked at.
+%
 %    \end{description}
 %  \end{variable}\footnotetext{In
 %         \LaTeXe{} that was already existing, but implemented using a box
@@ -226,10 +245,18 @@
 %    If any of the hooks has no code then that particular no box is
 %    added at that point.
 %
+%    Once the (page) box has been shipped out  the
+%    \hook{shipout/after} hook is called (while you are still inide
+%    the output routine.
+%
 %    In a document that doesn't produce pages, e.g., only makes
 %    \cs{typeout}s, none of the hooks are executed (as there is no
 %    \cs{shipout}) not even the \hook{shipout/lastpage} hook.
 %
+%    If \cs{RawShipout} is used instead of \cs{shipout} then only the
+%    hooks \hook{shipout/firstpage} and \hook{shipout/lastpage} are
+%    executed, all others are bypassed.
+%
 %
 % \subsection{Legacy \LaTeX{} commands}
 %
@@ -295,7 +322,7 @@
 %
 %  \begin{variable}{\ReadonlyShipoutCounter,\g_shipout_readonly_int}
 %   \begin{syntax}
-%     \cs{ifnum}\cs{ReadOnlyShipoutCounter}\texttt{=...}
+%     \cs{ifnum}\cs{ReadonlyShipoutCounter}\texttt{=...}
 %     \cs{int_use:N} \cs{g_shipout_readonly_int} \texttt{\% expl3 usage}
 %   \end{syntax}
 %    This integer holds the number of pages shipped out up to now
@@ -303,6 +330,7 @@
 %    routine). More precisely, it is incremented only after it is
 %    clear that a page will be shipped out, i.e., after the
 %    \hook{shipout/before} hook (because that might discard the page)!
+%    In contrast \hook{shipout/after} sees the incremented value.
 %
 %    Just like with the \texttt{page} counter its value is
 %    only accurate within the output routine. In the body of the
@@ -310,10 +338,11 @@
 %    asynchronously!
 %
 %    Also important: it \emph{must not} be set, only read. There are
-%    no provisions to prevent that but if you do, chaos will be the
-%    result. To emphasize this fact it is not provided as a \LaTeX{}
-%    counter but as a \TeX{} counter (i.e., a command), so
-%    \cs{Alph}\Arg{\cs{ReadonlyShipoutCounter}} etc, would not work.
+%    no provisions to prevent that restricition, but if you manipulate
+%    it, chaos will be the result. To emphasize this fact it is not
+%    provided as a \LaTeX{} counter but as a \TeX{} counter (i.e., a
+%    command), so \cs{Alph}\verb={=\cs{ReadonlyShipoutCounter}\verb=}=
+%    etc, would not work.
 %  \end{variable}
 %
 %  \begin{variable}{totalpages,\g_shipout_totalpages_int}
@@ -325,7 +354,8 @@
 %    \texttt{totalpages} counter is a \LaTeX{} counter and incremented
 %    for each shipout attempt including those pages that are discarded
 %    for one or the other reason. Again \hook{shipout/before} sees
-%    the counter before it is incremented).
+%    the counter before it is incremented. In contrast
+%    \hook{shipout/after} sees the incremented value.
 %
 %    Furthermore, while it is incremented for each page, its value is
 %    never used by \LaTeX. It can therefore be freely reset or changed by user
@@ -427,6 +457,21 @@
 %    This is the name of the shipout box as \pkg{atbegshi} knows it.
 % \end{function}
 %
+%
+% \begin{function}{\AtBeginShipoutOriginalShipout}
+%    This is the name of the \cs{shipout} primitive as \pkg{atbegshi}
+%    knows it. This bypasses all the mechanisms set up by the \LaTeX{}
+%    kernel and there are various scenarios in which it can therefore
+%    fail. It should only be used to run existing legacy
+%    \pkg{atbegshi} code but not in newly developed applications.
+%
+%    The kernel alternative is \cs{RawShipout} which is integrated
+%    with the \LaTeX{} mechanisms and updates, for example, the
+%    \cs{ReadonlyShipoutCounter} counter. Please use \cs{RawShipout}
+%    for new code if you want to bypass the before, forground and
+%    background hooks.
+% \end{function}
+%
 % \begin{function}{\AtBeginShipoutInit}
 %   By default \pkg{atbegshi} delayed its action until
 %    \verb=\begin{document}=.  This command was forcing it in an earlier
@@ -618,7 +663,8 @@
 %
 %  \begin{macro}{\l_@@_group_level_tl}
 %    Helper token list to record the group level at which
-%    \cs{@@_execute:} is encountered.  \begin{macrocode}
+%    \cs{@@_execute:} is encountered.
+%    \begin{macrocode}
 \tl_new:N \l_@@_group_level_tl
 %    \end{macrocode}
 %  \end{macro}
@@ -632,17 +678,65 @@
 \cs_new:Npn \@@_execute_test_level: {
   \int_compare:nNnT
      \l_@@_group_level_tl < \tex_currentgrouplevel:D 
-     \tex_aftergroup:D
-  \@@_execute_cont:
+     \tex_aftergroup:D \@@_execute_cont:
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\@@_execute_cont}
+%    This does the actual shipout running several hooks as part of it.
+%    The code for them is passed as argument \verb=#1= and \verb=#2=
+%    to \cs{@@_execute_raw_cont:nn}.
+%    \begin{macrocode}
+\cs_new:Npn \@@_execute_cont: {
+  \@@_execute_raw_cont:nnn
+     { \hook_use:n {shipout/before} }
+     { \hook_if_empty:nF {shipout/foreground}
+         { \@@_add_foreground_picture:n
+             { \hook_use:n {shipout/foreground} } }
+%    \end{macrocode}
+%    If the user hook for the backgroun (\hook(shipout/background) has
+%    no code, there might still code in the kernel hook so we need to
+%    test for this too.
+%    We only test for the \cs{@kernel at before@shipout at background}
+%    though. If the  \cs{@kernel at after@shipout at background} needs
+%    executing even if the user hook is empty then we can add another
+%    test (or the kernel could put something into the before hook).
+%                   
+% \changes{v1.0d}{2020/11/23}{Check for both kernel and user hook (gh/431)}
+% \changes{v1.0f}{2021/01/08}{Added another kernel hook for more
+%    flexibility (cf \texttt{https://github.com/pgf-tikz/pgf/issues/960}}
+%    \begin{macrocode}
+       \bool_lazy_and:nnF
+         { \hook_if_empty_p:n {shipout/background} }
+         { \tl_if_empty_p:N \@kernel at before@shipout at background }
+         { \@@_add_background_picture:n
+           { \@kernel at before@shipout at background
+             \hook_use:n {shipout/background}
+             \@kernel at after@shipout at background }
+         }
+     }
+     { \hook_use:n {shipout/after} }
 }
 %    \end{macrocode}
 %  \end{macro}
 %
 %
-%  \begin{macro}{\@@_execute_cont:}
+%  \begin{macro}{\@@_execute_raw_cont:nnn}
 %    When we have reached this point the shipout box has been
 %    processed and is available in \cs{l_shipout_box} and ready for
-%    real ship out (perhaps)..
+%    real ship out (unless it gets discarded during the process).
+%
+%    The three arguments hold hook code that is executed just before the
+%    actual shipout (\verb=#1=), within the shipout adding
+%    background and foreground material (\verb=#2=) and after the
+%    shipout has happened (\verb=#3=).
+%    These are passed as arguments because the same code without those
+%    hooks is also used when doing a ``raw'' shipout implemented by
+%    \cs{RawShipout).
+%    The only hook that is always executed is that for the very last
+%    page, i.e., \hook{shipout/lastpage}.
 %
 %    First we quickly check if it is void (can't happen in the
 %    standard \LaTeX{} output routine but \cs{shipout} might be called
@@ -651,7 +745,7 @@
 %    case we don't reset the deadcyles, that would be up to the OR
 %    processing logic to do.}
 %    \begin{macrocode}
-\cs_new:Npn \@@_execute_cont: {
+\cs_new:Npn \@@_execute_raw_cont:nnn #1#2#3 {
   \box_if_empty:NTF \l_shipout_box
     { \PackageWarning{ltshipout}{Ignoring~ void~ shipout~ box} }
     {
@@ -672,9 +766,10 @@
 %    \begin{macrocode}
       \@@_get_box_size:N \l_shipout_box
 %    \end{macrocode}
-%    Then we execute the \hook{shipout/before} hook.
+%    Then we execute the \hook{shipout/before} hook (or nothing in
+%    case of \cs{RawShipout}).
 %    \begin{macrocode}
-      \hook_use:n {shipout/before}
+      #1
 %    \end{macrocode}
 %    In \cs{g_shipout_totalpages_int} we count all shipout attempts so
 %    we increment that counter already here (the other one is
@@ -743,32 +838,16 @@
 %    changed) and then look at the hooks \hook{shipout/foreground}
 %    and \hook{shipout/background}. If either or both are non-empty
 %    we add a \texttt{picture} environment to the box (in the
-%    foreground and or in the background) and execute the hook code
+%    foreground and/or in the background) and execute the hook code
 %    inside that environment.
 %    
 %    \begin{macrocode}
               \@@_get_box_size:N \l_shipout_box
-              \hook_if_empty:nF {shipout/foreground}
-                   { \@@_add_foreground_picture:n
-                     { \hook_use:n {shipout/foreground} } }
 %    \end{macrocode}
-%    If there is no user hook, there might still code in the kernel hook.
-%    We only test for the \cs{@kernel at before@shipout at background}
-%    though. If the  \cs{@kernel at after@shipout at background} needs
-%    executing even if the user hook is empty then we can add another
-%    test (or the kernel could put something into the before hook.
-%                   
-% \changes{v1.0d}{2020/11/23}{Check for both kernel and user hook (gh/431)}
-% \changes{v1.0f}{2021/01/08}{Added another kernel hook for more
-%    flexibility (cf \texttt{https://github.com/pgf-tikz/pgf/issues/960}}
+%    Run the hooks for background and foreground (or nothing if this
+%    is called by \cs{RawShipout}.
 %    \begin{macrocode}
-              \bool_lazy_and:nnF
-                   { \hook_if_empty_p:n {shipout/background} }
-                   { \tl_if_empty_p:N \@kernel at before@shipout at background }
-                   { \@@_add_background_picture:n
-                     { \@kernel at before@shipout at background
-                       \hook_use:n {shipout/background}
-                       \@kernel at after@shipout at background } }
+              #2
 %    \end{macrocode}
 %    We then run \cs{@@_execute_firstpage_hook:} that adds
 %    the content of the hook \hook{shipout/firstpage} to the
@@ -777,7 +856,7 @@
 %    \begin{macrocode}
               \@@_execute_firstpage_hook:
 %    \end{macrocode}
-%    The we check if we have to add the \hook{shipout/lastpage} hook
+%    Then we check if we have to add the \hook{shipout/lastpage} hook
 %    or the corresponding kernel hook
 %    because we have reached the last page. This test will be false for
 %    all but one (and hopefully the correct) page.
@@ -789,8 +868,8 @@
                     { \tl_if_empty_p:N \@kernel at after@shipout at lastpage }
                     { \@@_debug:n { \typeout{Executing~ lastpage~ hook~
                           on~ page~ \int_use:N \g_shipout_readonly_int }        }
-                      \_@@_add_foreground_box:n { \UseHook{shipout/lastpage}
-                                                  \@kernel at after@shipout at lastpage }
+                      \@@_add_foreground_box:n { \UseHook{shipout/lastpage}
+                                                 \@kernel at after@shipout at lastpage }
                     }
                     \bool_gset_true:N \g_@@_lastpage_handled_bool
                 }
@@ -802,6 +881,10 @@
 %    \begin{macrocode}
               \cs_set_eq:NN \protect \exp_not:N
               \tex_shipout:D \box_use:N \l_shipout_box
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+              #3
             }
         }
 %    \end{macrocode}
@@ -816,6 +899,50 @@
 %  \end{macro}
 %
 %
+%
+%
+%  \begin{macro}{\@@_execute_raw:,
+%                \@@_execute_test_level_raw:}
+%
+%    This implements the ``raw'' shipout which bypasses the before,
+%    foreground, background and after hooks. It follows the same pattern than
+%    \cs{_@@_execute_raw:} except that it finally calls
+%    \cs{_@@_execute_raw_cont:nnn} with three empty arguments.
+%    instead of the hook code.
+%    \begin{macrocode}
+\cs_set_protected:Npn \@@_execute_raw: {
+  \tl_set:Nx \l_@@_group_level_tl
+     { \int_value:w \tex_currentgrouplevel:D }
+  \tex_afterassignment:D \@@_execute_test_level_raw:
+  \tex_setbox:D \l_shipout_box
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\cs_new:Npn \@@_execute_test_level_raw: {
+  \int_compare:nNnT
+     \l_@@_group_level_tl < \tex_currentgrouplevel:D
+     \tex_aftergroup:D \@@_execute_nohooks_cont:
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\cs_new:Npn \@@_execute_nohooks_cont: {
+  \@@_execute_raw_cont:nnn{}{}{}
+}  
+%    \end{macrocode}
+%  \end{macro}
+
+%  \begin{macro}{\RawShipout}
+%    The interface name for raw shipout.
+%    \begin{macrocode}
+\cs_gset_eq:NN \RawShipout \@@_execute_raw:
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
 %  \begin{macro}{\@@_saved_protect:}
 %    Remember the current \cs{protect} state.
 %    \begin{macrocode}
@@ -823,13 +950,14 @@
 %    \end{macrocode}
 %  \end{macro}
 %
-%  \begin{macro}{shipout/before,
+%  \begin{macro}{shipout/before,shipout/after,
 %                   shipout/foreground,shipout/background,
 %                   shipout/firstpage,
 %                   shipout/lastpage}
 %    Declaring all hooks for the shipout code.
 %    \begin{macrocode}
 \hook_new:n{shipout/before}
+\hook_new:n{shipout/after}
 \hook_new:n{shipout/foreground}
 \hook_new:n{shipout/background}
 \hook_new:n{shipout/firstpage}
@@ -840,12 +968,14 @@
 %
 %
 %  \begin{macro}{\@kernel at after@shipout at lastpage,
-%                \@kernel at before@shipout at background}
+%                \@kernel at before@shipout at background,
+%                \@kernel at after@shipout at background}
 %    And here are the internal kernel hooks going before or after the
 %    public ones where needed.
 %    \begin{macrocode}
 \let\@kernel at after@shipout at lastpage\@empty
 \let\@kernel at before@shipout at background\@empty
+\let\@kernel at after@shipout at background\@empty
 %    \end{macrocode}
 %  \end{macro}
 %
@@ -1655,7 +1785,7 @@
 %    \begin{macrocode}
 %<*atbegshi-ltx>
 \ProvidesPackage{atbegshi-ltx}
-   [2020/10/15 v1.0b
+   [2021/01/10 v1.0c
      Emulation of the original atbegshi^^Jpackage with kernel methods]
 %    \end{macrocode}
 %
@@ -1667,6 +1797,7 @@
 %  \end{macro}
 %
 %
+%
 %  \begin{macro}{\AtBeginShipoutInit}
 %    Compatibility only, we aren't delaying \ldots
 %    \begin{macrocode}
@@ -1720,6 +1851,19 @@
 %    \end{macrocode}
 %  \end{macro}
 %
+%  \begin{macro}\AtBeginShipoutOriginalShipout}
+%    This offers the raw \cs{shipout} primitive of the engine. A page
+%    shipped out with this is not counted by
+%    \cs{ReadonlyShipoutCounter} counter and thus the mechanism to
+%    place \cs{special}s at the very end of the output might fail,
+%    etc. It should therefore not be used in new applications but is
+%    only provided to allow  running legacy code. For new code use the
+%    commands provided by the kernel instead.
+%    \begin{macrocode}
+\ExplSyntaxOn
+\cs_new_eq:NN \AtBeginShipoutOriginalShipout \tex_shipout:D
+%    \end{macrocode}
+%  \end{macro}
 %
 %
 %  \begin{macro}{\ShipoutBoxHeight,\ShipoutBoxWidth,\ShipoutBoxDepth}
@@ -1728,7 +1872,6 @@
 %    \verb=\the\ht<box>= value. This may has some implications in some
 %    use cases and if that is a problem then it might need changing.
 %    \begin{macrocode}
-\ExplSyntaxOn  
 \cs_new:Npn \ShipoutBoxHeight { \dim_use:N \l_shipout_box_ht_dim }
 \cs_new:Npn \ShipoutBoxDepth  { \dim_use:N \l_shipout_box_dp_dim }
 \cs_new:Npn \ShipoutBoxWidth  { \dim_use:N \l_shipout_box_wd_dim }
diff --git a/base/testfiles-lthooks/lthooks-000.tlg b/base/testfiles-lthooks/lthooks-000.tlg
index 5f9a8f49..5e9d23f9 100644
--- a/base/testfiles-lthooks/lthooks-000.tlg
+++ b/base/testfiles-lthooks/lthooks-000.tlg
@@ -27,6 +27,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-001.tlg b/base/testfiles-lthooks/lthooks-001.tlg
index d47f66e3..824cb965 100644
--- a/base/testfiles-lthooks/lthooks-001.tlg
+++ b/base/testfiles-lthooks/lthooks-001.tlg
@@ -33,6 +33,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -112,6 +113,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -149,6 +151,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-002.tlg b/base/testfiles-lthooks/lthooks-002.tlg
index bd8bb032..68b52410 100644
--- a/base/testfiles-lthooks/lthooks-002.tlg
+++ b/base/testfiles-lthooks/lthooks-002.tlg
@@ -33,6 +33,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -114,6 +115,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -151,6 +153,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-003.tlg b/base/testfiles-lthooks/lthooks-003.tlg
index c7e73740..9a49b641 100644
--- a/base/testfiles-lthooks/lthooks-003.tlg
+++ b/base/testfiles-lthooks/lthooks-003.tlg
@@ -40,6 +40,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -88,6 +89,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-004.tlg b/base/testfiles-lthooks/lthooks-004.tlg
index e195cb8b..952f4bbf 100644
--- a/base/testfiles-lthooks/lthooks-004.tlg
+++ b/base/testfiles-lthooks/lthooks-004.tlg
@@ -30,6 +30,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -72,6 +73,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-005.tlg b/base/testfiles-lthooks/lthooks-005.tlg
index 37d61057..f213c66c 100644
--- a/base/testfiles-lthooks/lthooks-005.tlg
+++ b/base/testfiles-lthooks/lthooks-005.tlg
@@ -47,6 +47,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -95,6 +96,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-006.tlg b/base/testfiles-lthooks/lthooks-006.tlg
index 9dcdbb84..5ac0fc3f 100644
--- a/base/testfiles-lthooks/lthooks-006.tlg
+++ b/base/testfiles-lthooks/lthooks-006.tlg
@@ -28,6 +28,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -68,6 +69,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-007.tlg b/base/testfiles-lthooks/lthooks-007.tlg
index 8b2a25c8..16112b22 100644
--- a/base/testfiles-lthooks/lthooks-007.tlg
+++ b/base/testfiles-lthooks/lthooks-007.tlg
@@ -28,6 +28,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -69,6 +70,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -158,6 +160,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-008.tlg b/base/testfiles-lthooks/lthooks-008.tlg
index 2acb6315..e516f3d8 100644
--- a/base/testfiles-lthooks/lthooks-008.tlg
+++ b/base/testfiles-lthooks/lthooks-008.tlg
@@ -30,6 +30,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {enddocument/info}
 >  {enddocument/end}
 >  {shipout/before}
+>  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
 >  {shipout/firstpage}
@@ -76,6 +77,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-009.tlg b/base/testfiles-lthooks/lthooks-009.tlg
index f794df2e..4e746263 100644
--- a/base/testfiles-lthooks/lthooks-009.tlg
+++ b/base/testfiles-lthooks/lthooks-009.tlg
@@ -33,6 +33,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-011.tlg b/base/testfiles-lthooks/lthooks-011.tlg
index 64f65b87..1e697ed7 100644
--- a/base/testfiles-lthooks/lthooks-011.tlg
+++ b/base/testfiles-lthooks/lthooks-011.tlg
@@ -28,6 +28,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -115,6 +116,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -204,6 +206,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -295,6 +298,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-013.tlg b/base/testfiles-lthooks/lthooks-013.tlg
index b87ca0be..0b7bef7e 100644
--- a/base/testfiles-lthooks/lthooks-013.tlg
+++ b/base/testfiles-lthooks/lthooks-013.tlg
@@ -82,6 +82,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-021.tlg b/base/testfiles-lthooks/lthooks-021.tlg
index f298bfa9..0464f775 100644
--- a/base/testfiles-lthooks/lthooks-021.tlg
+++ b/base/testfiles-lthooks/lthooks-021.tlg
@@ -27,6 +27,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks/lthooks-legacy.tlg b/base/testfiles-lthooks/lthooks-legacy.tlg
index 8e99fc46..f22a7228 100644
--- a/base/testfiles-lthooks/lthooks-legacy.tlg
+++ b/base/testfiles-lthooks/lthooks-legacy.tlg
@@ -52,6 +52,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks2/lthooks2-002.tlg b/base/testfiles-lthooks2/lthooks2-002.tlg
index 11f1ab0c..d1292666 100644
--- a/base/testfiles-lthooks2/lthooks2-002.tlg
+++ b/base/testfiles-lthooks2/lthooks2-002.tlg
@@ -35,6 +35,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
diff --git a/base/testfiles-lthooks2/lthooks2-005.tlg b/base/testfiles-lthooks2/lthooks2-005.tlg
index c0722452..234e0f55 100644
--- a/base/testfiles-lthooks2/lthooks2-005.tlg
+++ b/base/testfiles-lthooks2/lthooks2-005.tlg
@@ -28,6 +28,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:
@@ -103,6 +104,7 @@ Handled code for kernel/filelist
 Handled code for kernel/warnings
 Update code for hook 'enddocument/end' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout/after' on input line ...:
 Update code for hook 'shipout/foreground' on input line ...:
 Update code for hook 'shipout/background' on input line ...:
 Update code for hook 'shipout/firstpage' on input line ...:





More information about the latex3-commits mailing list.