[latex3-commits] [git/LaTeX3-latex3-latex2e] develop: Gh920 (#952) (e1b7641c)

GitHub noreply at github.com
Thu Nov 10 12:26:34 CET 2022


Repository : https://github.com/latex3/latex2e
On branch  : develop
Link       : https://github.com/latex3/latex2e/commit/e1b7641c3de895f94dcf0086a223b944c8a08f47

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

commit e1b7641c3de895f94dcf0086a223b944c8a08f47
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Thu Nov 10 12:26:34 2022 +0100

    Gh920 (#952)
    
    * start at adding hook for #920
    
    * drop stray lvt file
    
    * call hook "shipout"
    
    * ltnews entry
    
    * Minor fixes
    
    * Fix test files
    
    Co-authored-by: PhelypeOleinik <phelype.oleinik at latex-project.org>


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

e1b7641c3de895f94dcf0086a223b944c8a08f47
 base/changes.txt                             |  6 +++
 base/doc/ltnews37.tex                        | 24 ++++++++++
 base/ltshipout.dtx                           | 51 ++++++++++++++++-----
 base/testfiles-lthooks/ltcmdhooks-001.tlg    |  1 +
 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 +
 base/testfiles-search/github-0920.luatex.tlg | 66 ++++++++++++++++++++++++++++
 base/testfiles-search/github-0920.lvt        | 40 +++++++++++++++++
 base/testfiles-search/github-0920.tlg        | 61 +++++++++++++++++++++++++
 base/testfiles-search/github-0920.xetex.tlg  | 60 +++++++++++++++++++++++++
 24 files changed, 328 insertions(+), 12 deletions(-)

diff --git a/base/changes.txt b/base/changes.txt
index 1a49239f..282ab939 100644
--- a/base/changes.txt
+++ b/base/changes.txt
@@ -11,6 +11,12 @@ All changes above are only part of the development branch for the next release.
 ================================================================================
 
 
+2022-11-08  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltshipout.dtx:
+	Add a shipout hook to be executed just before we
+	actually do the shipout (gh/920)
+
 2022-11-07  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* ltvers.dtx (section{Version Identification}):
diff --git a/base/doc/ltnews37.tex b/base/doc/ltnews37.tex
index 3c686dc4..827a8f2e 100644
--- a/base/doc/ltnews37.tex
+++ b/base/doc/ltnews37.tex
@@ -159,6 +159,26 @@
 \githubissue{943}
 
 
+\subsection{A further hook for shipping out pages}
+
+Since October 2020 the shipout process offers a number of hooks to
+adjust what is happening before, during, and after the
+\cs{shipout}. For example, with the \hook{shipout/before} hook, packages
+can reset code they have altered (e.g., \cs{catcode}s during
+verbatim-like processing) and with \hook{shipout/background} and
+\hook{shipout/foreground} material can be added to the pages.
+Details are given in \cite{37:ltshipout-doc}. However, what was
+missing was a hook that allows a package writer to manipulate the
+completed page (with foreground and background attached) just before
+the actual shipout happens.
+
+For this we now provide the additional hook \hook{shipout}. One
+use case (sometimes needed in print production) is to mirror the
+whole page via \cs{reflectbox} including all the extra data that may
+have been added into the fore- or background.
+%
+\githubissue{920}
+
 
 
 \subsection{Displaying release information in the \texttt{.log}}
@@ -214,6 +234,10 @@ eventually be moved into \pkg{unicode-math}.
 
 \fontsize{9.3}{11.3}\selectfont
 
+\bibitem{37:ltshipout-doc} Frank Mittelbach, \LaTeX{}~Project~Team:
+  \emph{The \texttt{\upshape ltshipout} documentation}.\\
+  Run \texttt{texdoc} \texttt{ltshipout-doc} to view.
+
 %\bibitem{37:blueprint} Frank Mittelbach and Chris Rowley:
 %  \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\
 %  \url{https://latex-project.org/publications/indexbyyear/2020/}
diff --git a/base/ltshipout.dtx b/base/ltshipout.dtx
index ae29c1ac..7aa07f75 100644
--- a/base/ltshipout.dtx
+++ b/base/ltshipout.dtx
@@ -32,8 +32,8 @@
 %%% From File: ltshipout.dtx
 %
 %    \begin{macrocode}
-\providecommand\ltshipoutversion{v1.0m}
-\providecommand\ltshipoutdate{2022/08/26}
+\providecommand\ltshipoutversion{v1.0n}
+\providecommand\ltshipoutdate{2022/11/08}
 %    \end{macrocode}
 %
 %<*driver>
@@ -75,7 +75,7 @@
 % \providecommand\pkg[1]{\texttt{#1}}
 %
 %
-% \title{The \texttt{ltshipout} package\thanks{This package has version
+% \title{The \texttt{ltshipout} documentation\thanks{This file has version
 %    \ltshipoutversion\ dated \ltshipoutdate, \copyright\ \LaTeX\
 %    Project.}}
 %
@@ -241,6 +241,18 @@
 %       But being placed after the main box content it will be typeset
 %       later and thus overprints it (i.e., is in the foreground).
 %
+%    \item[\hook{shipout}]
+%       This hook is executed after foreground and/or background
+%       material has been added, i.e., just in front of the actual
+%       shipout operation. Its purpose is to allow manipulation of the
+%       finalized box (stored in \cs{ShipoutBox}) with the extra
+%       material also in place (which is not yet the case in
+%       \hook{shipout/before}).
+%
+%       It cannot be used to cancel the shipout operation via
+%       \cs{DiscardShipoutBox} (that has
+%       to happen in \hook{shipout/before}, if desired!
+%
 %
 %    \item[\hook{shipout/firstpage}]
 %
@@ -296,7 +308,7 @@
 %    actual shipout. It is even run if there was a
 %    \cs{DiscardShipoutBox} request in the document.
 %
-%    The other hooks (except \hook{shipout/after}) are added inside
+%    The other hooks (except \hook{shipout} and \hook{shipout/after}) are added inside
 %    hboxes to the box being shipped out in the following order:
 %    \begin{center}
 %    \begin{tabular}{ll}
@@ -307,9 +319,13 @@
 %       \hook{shipout/lastpage}    & only on the last page \\
 %    \end{tabular}
 %    \end{center}
-%    If any of the hooks has no code then that particular no box is
+%    If any of the hooks has no code then the corresponding box is
 %    added at that point.
 %
+%    Once the (page) box has got the above extra content it can
+%    again be manipulated using the \hook{shipout} hook and then
+%    is shipped out for real.
+%
 %    Once the (page) box has been shipped out the \hook{shipout/after}
 %    hook is called (while you are still inside the output routine). It
 %    is not called if the shipout box was discarded.
@@ -381,13 +397,16 @@
 %
 %    \fmi{Once we have a new mark mechanism available we can improve
 %    on that and make sure that the declaration applies to the page
-%    that contains it.}
+%    that contains it --- not done (yet)}
+%
+%    \cs{DiscardShipoutBox} cannot be used in any of the \hook{shipout/...}
+%    hooks other than \hook{shipout/before}.
 %  \end{function}
 %
 %    In the \pkg{atbegshi} package there are a number of additional
 %    commands for use inside the \hook{shipout/before} hook. They
 %    should normally not be needed any more as one can instead simply
-%    add code to the hooks \hook{shipout/before},
+%    add code to the hooks \hook{shipout/before}, \hook{shipout},
 %    \hook{shipout/background} or
 %    \hook{shipout/foreground}.\footnote{If that assumption turns out to
 %    be wrong it would be trivial to change them to public functions
@@ -401,7 +420,9 @@
 % 
 %  \begin{variable}{pre_shipout_filter}
 %    Under Lua\TeX{} the \texttt{pre\_shipout\_filter} Lua callback is
-%    provided which gets called immediately before the shipout primitive gets invoked.
+%    provided which gets called directly after the
+%    \hook{shipout} hook, immediately before the shipout
+%    primitive gets invoked.
 %    The signature is
 %    \begin{verbatim}
 %     function(<node> head)
@@ -1014,15 +1035,20 @@
                       \_@@_add_foreground_box:n
                           { \UseHook{shipout/lastpage}
                             \@kernel at after@shipout at lastpage }
-                      \bool_gset_true:N \g_@@_lastpage_handled_bool
 %    \end{macrocode}
 %    We record that we have handled the \hook{shipout/lastpage} hook
 %    but only if we really did.
 % \changes{v1.0m}{2022/05/08}{Handle case where shipout/lastpage is
 %    run too early (gh/813)}
 %    \begin{macrocode}
+                      \bool_gset_true:N \g_@@_lastpage_handled_bool
                     }
                 }
+%    \end{macrocode}
+%    
+%  \changes{v1.0n}{2022/11/08}{Add shipout hook (gh/920)}
+%    \begin{macrocode}
+              \hook_use:n {shipout}
               \@@_finalize_box:
 %    \end{macrocode}
 %    Finally we run the actual \TeX{} primitive for shipout. As that will
@@ -1116,13 +1142,14 @@
 %    \end{macrocode}
 %  \end{macro}
 %
-%  \begin{macro}{shipout/before,shipout/after,
+%  \begin{macro}{shipout/before,shipout,shipout/after,
 %                   shipout/foreground,shipout/background,
-%                   shipout/firstpage,
-%                   shipout/lastpage}
+%                   shipout/firstpage,shipout/lastpage}
 %    Declaring all hooks for the shipout code.
+%  \changes{v1.0n}{2022/11/08}{Add shipout hook (gh/920)}
 %    \begin{macrocode}
 \hook_new:n{shipout/before}
+\hook_new:n{shipout}
 \hook_new:n{shipout/after}
 \hook_new:n{shipout/foreground}
 \hook_new:n{shipout/background}
diff --git a/base/testfiles-lthooks/ltcmdhooks-001.tlg b/base/testfiles-lthooks/ltcmdhooks-001.tlg
index af30b303..f69eef81 100644
--- a/base/testfiles-lthooks/ltcmdhooks-001.tlg
+++ b/base/testfiles-lthooks/ltcmdhooks-001.tlg
@@ -109,6 +109,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-000.tlg b/base/testfiles-lthooks/lthooks-000.tlg
index cdb41a24..cd010532 100644
--- a/base/testfiles-lthooks/lthooks-000.tlg
+++ b/base/testfiles-lthooks/lthooks-000.tlg
@@ -49,6 +49,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-001.tlg b/base/testfiles-lthooks/lthooks-001.tlg
index b39a905e..13090a78 100644
--- a/base/testfiles-lthooks/lthooks-001.tlg
+++ b/base/testfiles-lthooks/lthooks-001.tlg
@@ -55,6 +55,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -198,6 +199,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -266,6 +268,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-002.tlg b/base/testfiles-lthooks/lthooks-002.tlg
index b3012ce1..8d87e1e1 100644
--- a/base/testfiles-lthooks/lthooks-002.tlg
+++ b/base/testfiles-lthooks/lthooks-002.tlg
@@ -55,6 +55,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -200,6 +201,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -268,6 +270,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-003.tlg b/base/testfiles-lthooks/lthooks-003.tlg
index ba98957b..ce888b43 100644
--- a/base/testfiles-lthooks/lthooks-003.tlg
+++ b/base/testfiles-lthooks/lthooks-003.tlg
@@ -55,6 +55,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -134,6 +135,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-004.tlg b/base/testfiles-lthooks/lthooks-004.tlg
index 93d6c664..0f01787d 100644
--- a/base/testfiles-lthooks/lthooks-004.tlg
+++ b/base/testfiles-lthooks/lthooks-004.tlg
@@ -45,6 +45,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -118,6 +119,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-005.tlg b/base/testfiles-lthooks/lthooks-005.tlg
index 0c2d890d..9a186d92 100644
--- a/base/testfiles-lthooks/lthooks-005.tlg
+++ b/base/testfiles-lthooks/lthooks-005.tlg
@@ -62,6 +62,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -141,6 +142,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-006.tlg b/base/testfiles-lthooks/lthooks-006.tlg
index b401dc65..8cc27db4 100644
--- a/base/testfiles-lthooks/lthooks-006.tlg
+++ b/base/testfiles-lthooks/lthooks-006.tlg
@@ -43,6 +43,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -114,6 +115,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-007.tlg b/base/testfiles-lthooks/lthooks-007.tlg
index 0958de0d..4c06114e 100644
--- a/base/testfiles-lthooks/lthooks-007.tlg
+++ b/base/testfiles-lthooks/lthooks-007.tlg
@@ -43,6 +43,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -115,6 +116,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -271,6 +273,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-008.tlg b/base/testfiles-lthooks/lthooks-008.tlg
index 82f0842f..bd1fe551 100644
--- a/base/testfiles-lthooks/lthooks-008.tlg
+++ b/base/testfiles-lthooks/lthooks-008.tlg
@@ -45,6 +45,7 @@ The sequence \g__hook_all_seq contains the items (without outer braces):
 >  {file/before}
 >  {file/after}
 >  {shipout/before}
+>  {shipout}
 >  {shipout/after}
 >  {shipout/foreground}
 >  {shipout/background}
@@ -122,6 +123,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-009.tlg b/base/testfiles-lthooks/lthooks-009.tlg
index 86d0691c..b0b0d668 100644
--- a/base/testfiles-lthooks/lthooks-009.tlg
+++ b/base/testfiles-lthooks/lthooks-009.tlg
@@ -55,6 +55,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-011.tlg b/base/testfiles-lthooks/lthooks-011.tlg
index 3bebed02..13186602 100644
--- a/base/testfiles-lthooks/lthooks-011.tlg
+++ b/base/testfiles-lthooks/lthooks-011.tlg
@@ -50,6 +50,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -204,6 +205,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -360,6 +362,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -518,6 +521,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-013.tlg b/base/testfiles-lthooks/lthooks-013.tlg
index 6167d20c..cf1b5cb4 100644
--- a/base/testfiles-lthooks/lthooks-013.tlg
+++ b/base/testfiles-lthooks/lthooks-013.tlg
@@ -105,6 +105,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-021.tlg b/base/testfiles-lthooks/lthooks-021.tlg
index 1ff2106b..dcb39abe 100644
--- a/base/testfiles-lthooks/lthooks-021.tlg
+++ b/base/testfiles-lthooks/lthooks-021.tlg
@@ -49,6 +49,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks/lthooks-legacy.tlg b/base/testfiles-lthooks/lthooks-legacy.tlg
index 1ade9750..332f5aca 100644
--- a/base/testfiles-lthooks/lthooks-legacy.tlg
+++ b/base/testfiles-lthooks/lthooks-legacy.tlg
@@ -74,6 +74,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks2/lthooks2-002.tlg b/base/testfiles-lthooks2/lthooks2-002.tlg
index 024b3813..1beec6b2 100644
--- a/base/testfiles-lthooks2/lthooks2-002.tlg
+++ b/base/testfiles-lthooks2/lthooks2-002.tlg
@@ -63,6 +63,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-lthooks2/lthooks2-005.tlg b/base/testfiles-lthooks2/lthooks2-005.tlg
index 2e8b4b84..3a7fd5d7 100644
--- a/base/testfiles-lthooks2/lthooks2-005.tlg
+++ b/base/testfiles-lthooks2/lthooks2-005.tlg
@@ -50,6 +50,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
@@ -192,6 +193,7 @@ Update code for hook 'class/after' on input line ...:
 Update code for hook 'file/before' on input line ...:
 Update code for hook 'file/after' on input line ...:
 Update code for hook 'shipout/before' on input line ...:
+Update code for hook 'shipout' 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 ...:
diff --git a/base/testfiles-search/github-0920.luatex.tlg b/base/testfiles-search/github-0920.luatex.tlg
new file mode 100644
index 00000000..68f4ce86
--- /dev/null
+++ b/base/testfiles-search/github-0920.luatex.tlg
@@ -0,0 +1,66 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+Completed box being shipped out [1]
+\vbox(682.0+0.0)x525.23788, direction TLT
+.\hbox(682.0+0.0)x597.50787, shifted -72.26999, direction TLT
+..\hbox(682.0+0.0)x597.50787, direction TLT
+...\kern597.50787
+...\hbox(682.0+0.0)x0.0, direction TLT
+....\special{ps: currentpoint currentpoint translate -1 1 scale neg exch neg exch translate}
+....\hbox(682.0+0.0)x0.0, glue set - 597.50787fil, direction TLT
+.....\hbox(682.0+0.0)x597.50787, direction TLT
+......\hbox(682.0+0.0)x597.50787, glue set 127.23788fil, direction TLT
+.......\vbox(682.0+0.0)x470.26999, direction TLT
+........\vbox(682.0+0.0)x398.0, shifted 72.26999, direction TLT
+.........\hbox(0.0+0.0)x0.0, direction TLT
+.........\hbox(0.0+0.0)x0.0, direction TLT
+..........\kern0.0
+..........\vbox(0.0+0.0)x0.0, direction TLT
+...........\kern0.0
+...........\hbox(0.0+0.0)x0.0, direction TLT
+............\hbox(16.99782+0.0)x0.0, glue set - 117.24966fil, shifted 100.0, direction TLT
+.............\kern100.0
+.............\OT1/cmr/m/n/24.88 X
+.............\glue 0.0 plus 1.0fil minus 1.0fil
+............\glue 0.0 plus 1.0fil minus 1.0fil
+...........\glue 0.0 plus 1.0fil minus 1.0fil
+.........\glue 17.0
+.........\vbox(665.0+0.0)x345.0, shifted 53.0, direction TLT
+..........\vbox(12.0+0.0)x345.0, glue set 12.0fil, direction TLT
+...........\glue 0.0 plus 1.0fil
+...........\hbox(0.0+0.0)x345.0, direction TLT
+............\hbox(0.0+0.0)x345.0, direction TLT
+..........\glue 25.0
+..........\glue(\lineskip) 0.0
+..........\vbox(598.0+0.0)x345.0, glue set 587.9372fil, direction TLT
+...........\write-{}
+...........\glue(\topskip) 3.16669
+...........\hbox(6.83331+0.0)x345.0, glue set 323.1944fil, direction TLT
+............\localpar
+.............\localinterlinepenalty=0
+.............\localbrokenpenalty=0
+.............\localleftbox=null
+.............\localrightbox=null
+............\hbox(0.0+0.0)x0.0, direction TLT
+............\OT1/cmr/m/n/10 A
+............\OT1/cmr/m/n/10 B
+............\OT1/cmr/m/n/10 C
+............\penalty 10000
+............\glue(\parfillskip) 0.0 plus 1.0fil
+............\glue(\rightskip) 0.0
+...........\glue 0.0 plus 1.0fil
+...........\glue 0.0
+...........\glue 0.0 plus 0.0001fil
+..........\glue(\baselineskip) 23.55556
+..........\hbox(6.44444+0.0)x345.0, direction TLT
+...........\hbox(6.44444+0.0)x345.0, glue set 170.0fil, direction TLT
+............\glue 0.0 plus 1.0fil
+............\OT1/cmr/m/n/10 1
+............\glue 0.0 plus 1.0fil
+.........\kern0.0
+.........\kern0.0
+.......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\glue 0.0 plus 1.0fil minus 1.0fil
+....\special{ps: currentpoint currentpoint translate 1 -1 div 1 1 div scale neg exch neg exch translate}
+...\glue 0.0 plus 1.0fil minus 1.0fil
+(github-0920.aux)
diff --git a/base/testfiles-search/github-0920.lvt b/base/testfiles-search/github-0920.lvt
new file mode 100644
index 00000000..9bae3836
--- /dev/null
+++ b/base/testfiles-search/github-0920.lvt
@@ -0,0 +1,40 @@
+\RequirePackage[enable-debug]{expl3}
+\ExplSyntaxOn
+\debug_on:n { check-declarations , deprecation }
+\ExplSyntaxOff
+
+\documentclass[a4paper,oneside]{article}
+\usepackage{pict2e,graphicx}
+
+
+
+\input{regression-test}
+
+\showoutput
+
+
+\setlength\parindent{0pt}
+
+\AddToHook{shipout/background}{%
+  \put(100,-100){\Huge X}%
+}
+
+
+\AddToHook{shipout}{%
+  \setbox\ShipoutBox=\vbox{\moveright1in\box\ShipoutBox}%
+  \setbox\ShipoutBox=\hbox to\paperwidth{\box\ShipoutBox\hss}%  
+  \setbox\ShipoutBox=\hbox{\reflectbox{\box\ShipoutBox}}%
+  \setbox\ShipoutBox=\vbox{\moveleft1in\box\ShipoutBox}%
+}
+
+\begin{document}
+
+\START
+
+ABC
+
+\end{document}
+
+
+
+
diff --git a/base/testfiles-search/github-0920.tlg b/base/testfiles-search/github-0920.tlg
new file mode 100644
index 00000000..1e01cd12
--- /dev/null
+++ b/base/testfiles-search/github-0920.tlg
@@ -0,0 +1,61 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+Completed box being shipped out [1]
+\vbox(682.0+0.0)x525.23788
+.\hbox(682.0+0.0)x597.50787, shifted -72.26999
+..\hbox(682.0+0.0)x597.50787
+...\kern 597.50787
+...\hbox(682.0+0.0)x0.0
+....\special{ps: currentpoint currentpoint translate -1 1 scale neg exch neg exch translate}
+....\hbox(682.0+0.0)x0.0, glue set - 597.50787fil
+.....\hbox(682.0+0.0)x597.50787
+......\hbox(682.0+0.0)x597.50787, glue set 127.23788fil
+.......\vbox(682.0+0.0)x470.26999
+........\vbox(682.0+0.0)x398.0, shifted 72.26999
+.........\hbox(0.0+0.0)x0.0
+.........\hbox(0.0+0.0)x0.0
+..........\kern -72.27
+..........\vbox(0.0+0.0)x0.0, glue set 72.27fil
+...........\kern -72.27
+...........\hbox(0.0+0.0)x0.0
+............\hbox(16.99782+0.0)x0.0, glue set - 117.24966fil, shifted 100.0
+.............\kern 100.0
+.............\OT1/cmr/m/n/24.88 X
+.............\glue 0.0 plus 1.0fil minus 1.0fil
+............\glue 0.0 plus 1.0fil minus 1.0fil
+...........\glue 0.0 plus 1.0fil minus 1.0fil
+.........\glue 17.0
+.........\vbox(665.0+0.0)x345.0, shifted 53.0
+..........\vbox(12.0+0.0)x345.0, glue set 12.0fil
+...........\glue 0.0 plus 1.0fil
+...........\hbox(0.0+0.0)x345.0
+............\hbox(0.0+0.0)x345.0
+..........\glue 25.0
+..........\glue(\lineskip) 0.0
+..........\vbox(598.0+0.0)x345.0, glue set 587.9372fil
+...........\write-{}
+...........\glue(\topskip) 3.16669
+...........\hbox(6.83331+0.0)x345.0, glue set 323.1944fil
+............\hbox(0.0+0.0)x0.0
+............\OT1/cmr/m/n/10 A
+............\OT1/cmr/m/n/10 B
+............\OT1/cmr/m/n/10 C
+............\penalty 10000
+............\glue(\parfillskip) 0.0 plus 1.0fil
+............\glue(\rightskip) 0.0
+...........\glue 0.0 plus 1.0fil
+...........\glue 0.0
+...........\glue 0.0 plus 0.0001fil
+..........\glue(\baselineskip) 23.55556
+..........\hbox(6.44444+0.0)x345.0
+...........\hbox(6.44444+0.0)x345.0, glue set 170.0fil
+............\glue 0.0 plus 1.0fil
+............\OT1/cmr/m/n/10 1
+............\glue 0.0 plus 1.0fil
+.........\kern 0.0
+.........\kern 0.0
+.......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\glue 0.0 plus 1.0fil minus 1.0fil
+....\special{ps: currentpoint currentpoint translate 1 -1 div 1 1 div scale neg exch neg exch translate}
+...\glue 0.0 plus 1.0fil minus 1.0fil
+(github-0920.aux)
diff --git a/base/testfiles-search/github-0920.xetex.tlg b/base/testfiles-search/github-0920.xetex.tlg
new file mode 100644
index 00000000..faa481e7
--- /dev/null
+++ b/base/testfiles-search/github-0920.xetex.tlg
@@ -0,0 +1,60 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+Completed box being shipped out [1]
+\vbox(682.0+0.0)x525.23788
+.\hbox(682.0+0.0)x597.50787, shifted -72.26999
+..\hbox(682.0+0.0)x597.50787
+...\kern 597.50787
+...\hbox(682.0+0.0)x0.0
+....\special{pdf:btrans}
+....\special{x:scale -1 1}
+....\hbox(682.0+0.0)x0.0, glue set - 597.50787fil
+.....\hbox(682.0+0.0)x597.50787
+......\hbox(682.0+0.0)x597.50787, glue set 127.23788fil
+.......\vbox(682.0+0.0)x470.26999
+........\vbox(682.0+0.0)x398.0, shifted 72.26999
+.........\hbox(0.0+0.0)x0.0
+..........\kern -72.26999
+..........\vbox(0.0+0.0)x0.0, glue set 72.26999fil
+...........\kern -72.26999
+...........\hbox(0.0+0.0)x0.0
+............\hbox(16.99782+0.0)x0.0, glue set - 117.24966fil, shifted 100.0
+.............\kern 100.0
+.............\OT1/cmr/m/n/24.88 X
+.............\glue 0.0 plus 1.0fil minus 1.0fil
+............\glue 0.0 plus 1.0fil minus 1.0fil
+...........\glue 0.0 plus 1.0fil minus 1.0fil
+.........\glue 17.0
+.........\vbox(665.0+0.0)x345.0, shifted 53.0
+..........\vbox(12.0+0.0)x345.0, glue set 12.0fil
+...........\glue 0.0 plus 1.0fil
+...........\hbox(0.0+0.0)x345.0
+............\hbox(0.0+0.0)x345.0
+..........\glue 25.0
+..........\glue(\lineskip) 0.0
+..........\vbox(598.0+0.0)x345.0, glue set 587.9372fil
+...........\write-{}
+...........\glue(\topskip) 3.16669
+...........\hbox(6.83331+0.0)x345.0, glue set 323.1944fil
+............\hbox(0.0+0.0)x0.0
+............\OT1/cmr/m/n/10 A
+............\OT1/cmr/m/n/10 B
+............\OT1/cmr/m/n/10 C
+............\penalty 10000
+............\glue(\parfillskip) 0.0 plus 1.0fil
+............\glue(\rightskip) 0.0
+...........\glue 0.0 plus 1.0fil
+...........\glue 0.0
+...........\glue 0.0 plus 0.0001fil
+..........\glue(\baselineskip) 23.55556
+..........\hbox(6.44444+0.0)x345.0
+...........\hbox(6.44444+0.0)x345.0, glue set 170.0fil
+............\glue 0.0 plus 1.0fil
+............\OT1/cmr/m/n/10 1
+............\glue 0.0 plus 1.0fil
+.........\kern 0.0
+.......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\glue 0.0 plus 1.0fil minus 1.0fil
+....\special{pdf:etrans}
+...\glue 0.0 plus 1.0fil minus 1.0fil
+(github-0920.aux)





More information about the latex3-commits mailing list.