texlive[72507] Master: atveryend (9oct24)
commits+karl at tug.org
commits+karl at tug.org
Wed Oct 9 22:20:50 CEST 2024
Revision: 72507
https://tug.org/svn/texlive?view=revision&revision=72507
Author: karl
Date: 2024-10-09 22:20:50 +0200 (Wed, 09 Oct 2024)
Log Message:
-----------
atveryend (9oct24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/atveryend/README.md
trunk/Master/texmf-dist/doc/latex/atveryend/atveryend.pdf
trunk/Master/texmf-dist/source/latex/atveryend/atveryend.dtx
trunk/Master/texmf-dist/tex/latex/atveryend/atveryend.sty
trunk/Master/tlpkg/libexec/ctan2tds
Modified: trunk/Master/texmf-dist/doc/latex/atveryend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/atveryend/README.md 2024-10-09 20:15:37 UTC (rev 72506)
+++ trunk/Master/texmf-dist/doc/latex/atveryend/README.md 2024-10-09 20:20:50 UTC (rev 72507)
@@ -1,13 +1,14 @@
-# atveryend
+# atveryend package for LaTeX
-atveryend package for LaTeX
+Version: 2024-08-06 v1.12
+This LaTeX package provides some wrapper commands
+around LaTeX end document hooks.
-This LaTeX package provides two hooks for \end{document}
-that are executed after the hook of \AtEndDocument.
-\AfterLastShipout can be used for code that is to be executed
-right after the last \clearpage before the aux file
-is closed. \AtVeryEndDocument is used for code after closing
-and final reading of the aux file.
+## Copyright (C)
+* 2009-2011 Heiko Oberdiek
+* 2016-2024 Oberdiek Package Support Group
+## License
+LATEX Project Public License, version 1.3c or later.
Modified: trunk/Master/texmf-dist/doc/latex/atveryend/atveryend.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/atveryend/atveryend.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/atveryend/atveryend.dtx 2024-10-09 20:15:37 UTC (rev 72506)
+++ trunk/Master/texmf-dist/source/latex/atveryend/atveryend.dtx 2024-10-09 20:20:50 UTC (rev 72507)
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: atveryend.dtx
-% Version: 2019-12-11 v1.11
+% Version: 2024-08-06 v1.12
% Info: Hooks at the very end of document
%
% Copyright (C)
% 2009-2011 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
+% 2016-2024 Oberdiek Package Support Group
% https://github.com/ho-tex/atveryend/issues
%
% This work may be distributed and/or modified under the
@@ -80,7 +80,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: atveryend 2019-12-11 v1.11 Hooks at the very end of document (HO)}
+\Msg{* Package: atveryend 2024-08-06 v1.12 Hooks at the very end of document (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -92,11 +92,11 @@
This is a generated file.
Project: atveryend
-Version: 2019-12-11 v1.11
+Version: 2024-08-06 v1.12
Copyright (C)
2009-2011 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2024 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -154,7 +154,7 @@
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{atveryend.drv}%
- [2019-12-11 v1.11 Hooks at the very end of document (HO)]%
+ [2024-08-06 v1.12 Hooks at the very end of document (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -168,7 +168,7 @@
% \GetFileInfo{atveryend.drv}
%
% \title{The \xpackage{atveryend} package}
-% \date{2019-12-11 v1.11}
+% \date{2024-08-06 v1.12}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/atveryend/issues}}}
%
@@ -175,96 +175,49 @@
% \maketitle
%
% \begin{abstract}
-% This \LaTeX\ package provides two hooks for \verb|\end{document}|
-% that are executed after the hook of \cs{AtEndDocument}.
-% \cs{AfterLastShipout} can be used for code that is to be executed
-% right after the last \cs{clearpage} before the \xext{aux} file
-% is closed. \cs{AtVeryEndDocument} is used for code after closing
-% and final reading of the \xext{aux} file.
+% This \LaTeX\ package is a small wrapper around standard \LaTeX{} hooks at the end
+% of a document.
+%
% \end{abstract}
%
-% \tableofcontents
%
% \section{Documentation}
-%
-% There are packages (e.g. \xpackage{hyperref} \cite{hyperref},
-% \xpackage{lastpage} \cite{lastpage})
-% that want to call code after the typesetting is done, for example
-% to remember the last page number. \LaTeX\ provides the hook
-% \cs{AtEndDocument} (\xpackage{clsguide} \cite{clsguide}).
-% There are packages that use this hook to do their job for
-% typesetting pages (e.g. \xpackage{endfloat} emits the floats here
-% \cite{endfloat}).
-% Also a user might provide additional code in \cs{AtEndDocument}.
-% Therefore packages have to call \cs{clearpage} in \cs{AtEndDocument}
-% to get after the last shipout page. But this is not too reliable,
-% because the right timing is important between packages that want
-% or have to do things before the last page is output and packages
-% that only work properly if they can reach the point after the
-% last shipout.
-%
-% Therefore the task of this package is to provide additional
-% hooks for |\end{document}|. All hooks are called after
-% the hook of \cs{AtEndDocument}.
-% \begin{declcs}{BeforeClearDocument} \M{code}
-% \end{declcs}
-% The code is called before the final \cs{clearpage} in
-% \cs{enddocument}. However it is unknown, whether the last
-% page is already shipped out or if this will be triggered by the
-% final \cs{clearpage}.
-%
+%
+% In the past this package patched the command \cs{enddocument} to
+% provided two additional hooks for \verb|\end{document}|
+% that were executed after the hook of \cs{AtEndDocument}.
+%
+% Since 2020 this patching is no longer needed as the
+% hooks are provided by \LaTeX{} directly. Since this time the code of the package
+% was no longer used as \LaTeX{} suppressed the loading of the package
+% and replaced the commands by commands based on the new hooks. In version 1.12
+% this new code was moved into \texttt{atveryend} directly.
+%
+% The package defines the following user commands and maps them
+% to \cs{AddToHook} calls. A description of the used
+% hooks can be found in \texttt{lhooks-doc.pdf}.
+%
% \begin{declcs}{AfterLastShipout} \M{code}
% \end{declcs}
-% The code is called after the final \cs{clearpage} of \cs{enddocument}
-% before the main \xext{aux} file is closed. This is the right place
-% to remember the last page in the \xext{aux} file, for instance.
+% This adds the code to the \texttt{enddocument/afterlastpage} hook.
%
% \begin{declcs}{AtVeryEndDocument} \M{code}
% \end{declcs}
-% The code is called after the \xext{aux} file is closed and read in again.
-% It is the place for final checks, rerun hints, final messages.
+% This adds the code to the \texttt{enddocument/afteraux} hook.
%
% \begin{declcs}{AtEndAfterFileList} \M{code}
% \end{declcs}
-% After the \xext{aux} file closing and reading \hologo{LaTeX}
-% prints the file list if requested by \cs{listfiles}.
-% Then this hook is executed.
-%
+% This adds the code to the \texttt{enddocument/info} hook.%
+%
% \begin{declcs}{AtVeryVeryEnd} \M{code}
% \end{declcs}
-% This code is called right before the final \cs{@@end}.
+% This adds the code to the \texttt{enddocument/end} hook.
%
-% \subsection{Related work}
-%
-% \begin{description}
-% \item[Package \xpackage{scrfile}:]
-% Markus Kohm has written package \xpackage{scrlfile}
-% (part of KOMA-Script \cite{koma})
-% that provides
-% hooks \cs{BeforeClosingMainAux} and after \cs{AfterReadingMainAux}.
-% They have the same function as the hooks of this package. In fact
-% this package uses them, if they are available.
-% \item[Class \xclass{revtex4-1}:]
-% This class calls \cs{clear at document} in \cs{enddocument}
-% that wraps the final call of \cs{clearpage}.
-% Thus it can be used as hook to call stuff after that \cs{clearpage}.
-% This is also done by this package.
-% \item[Package \xpackage{etoolbox}:]
-% It provides \cs{AfterEndDocument}, a hook right before
-% \cs{deadcycles} or \cs{@@end} \cite{etoolbox}.
-% \end{description}
-% This package tries to combine as many approaches as possible:
-% \begin{itemize}
-% \item It looks for a known \cs{enddocument} and redefines it.
-% \item Hooks that are provided by others are used (package
-% \xpackage{scrlfile} or class \xclass{revtex4-1}.
-% \item It redefines \cs{@checkend} and \cs{@dofilelist} to insert
-% the hooks similar to package \xpackage{scrlfile}.
-% \item The hook execution is wrapped in a macro that
-% is redefined by its first call to prevent calling the hook
-% more than once.
-% \end{itemize}
-%
+% \begin{declcs}{BeforeClearDocument} \M{code}
+% \end{declcs}
+% This adds the code to the \texttt{enddocument} hook.
+% It is recommended to use \cs{AtEndDocument} instead.
+%
% \StopEventually{
% }
%
@@ -273,899 +226,45 @@
%<*package>
% \end{macrocode}
%
-% \begin{macrocode}
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode123=1 % {
- \catcode125=2 % }
- \catcode64=11 % @
- \def\x{\endgroup
- \expandafter\edef\csname AtVeryEnd at AtEnd\endcsname{%
- \endlinechar=\the\endlinechar\relax
- \catcode13=\the\catcode13\relax
- \catcode32=\the\catcode32\relax
- \catcode35=\the\catcode35\relax
- \catcode61=\the\catcode61\relax
- \catcode64=\the\catcode64\relax
- \catcode123=\the\catcode123\relax
- \catcode125=\the\catcode125\relax
- }%
- }%
-\x\catcode61\catcode48\catcode32=10\relax%
-\catcode13=5 % ^^M
-\endlinechar=13 %
-\catcode35=6 % #
-\catcode64=11 % @
-\catcode123=1 % {
-\catcode125=2 % }
-\def\TMP at EnsureCode#1#2{%
- \edef\AtVeryEnd at AtEnd{%
- \AtVeryEnd at AtEnd
- \catcode#1=\the\catcode#1\relax
- }%
- \catcode#1=#2\relax
-}
-\TMP at EnsureCode{9}{10}% (tab)
-\TMP at EnsureCode{39}{12}% '
-\TMP at EnsureCode{40}{12}% (
-\TMP at EnsureCode{41}{12}% )
-\TMP at EnsureCode{42}{12}% *
-\TMP at EnsureCode{45}{12}% -
-\TMP at EnsureCode{46}{12}% .
-\TMP at EnsureCode{47}{12}% /
-\TMP at EnsureCode{62}{12}% >
-\TMP at EnsureCode{91}{12}% [
-\TMP at EnsureCode{93}{12}% ]
-\TMP at EnsureCode{96}{12}% `
-\edef\AtVeryEnd at AtEnd{\AtVeryEnd at AtEnd\noexpand\endinput}
-% \end{macrocode}
-%
% Package identification.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{atveryend}%
- [2019-12-11 v1.11 Hooks at the very end of document (HO)]
+ [2024-08-06 v1.12 Hooks at the very end of document (HO)]
% \end{macrocode}
%
% \subsection{Tools}
%
-% \begin{macro}{\AtVeryEnd at ifundefined}
-% \begin{macrocode}
-\def\AtVeryEnd at ifundefined#1{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname #1\endcsname\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Hooks}
-%
-% \begin{macro}{\AtVeryEnd at BeforeClearDocumentHook}
-% \begin{macrocode}
-\let\AtVeryEnd at BeforeClearDocumentHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at AfterLastShipoutHook}
-% \begin{macrocode}
-\let\AtVeryEnd at AfterLastShipoutHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at AtVeryEndDocumentHook}
-% \begin{macrocode}
-\let\AtVeryEnd at AtVeryEndDocumentHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at AtEndAfterFileListHook}
-% \begin{macrocode}
-\let\AtVeryEnd at AtEndAfterFileListHook\@empty
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at AtVeryVeryEndHook}
-% \begin{macrocode}
-\let\AtVeryEnd at AtVeryVeryEndHook\@empty
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\BeforeClearDocument}
-% \begin{macrocode}
-\newcommand*{\BeforeClearDocument}{%
- \g at addto@macro\AtVeryEnd at BeforeClearDocumentHook
-}
-% \end{macrocode}
-% \end{macro}
% \begin{macro}{\AfterLastShipout}
% \begin{macrocode}
-\newcommand*{\AfterLastShipout}{%
- \g at addto@macro\AtVeryEnd at AfterLastShipoutHook
-}
+\newcommand\AfterLastShipout {\AddToHook{enddocument/afterlastpage}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\AtVeryEndDocument}
% \begin{macrocode}
-\newcommand*{\AtVeryEndDocument}{%
- \g at addto@macro\AtVeryEnd at AtVeryEndDocumentHook
-}
+\newcommand\AtVeryEndDocument {\AddToHook{enddocument/afteraux}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\AtEndAfterFileList}
% \begin{macrocode}
-\newcommand*{\AtEndAfterFileList}{%
- \g at addto@macro\AtVeryEnd at AtEndAfterFileListHook
-}
+\newcommand\AtEndAfterFileList{\AddToHook{enddocument/info}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\AtVeryVeryEnd}
% \begin{macrocode}
-\newcommand*{\AtVeryVeryEnd}{%
- \g at addto@macro\AtVeryEnd at AtVeryVeryEndHook
-}
+\newcommand\AtVeryVeryEnd {\AddToHook{enddocument/end}}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\Call at BeforeClearDocument}
+% \begin{macro}{\BeforeClearDocument}
% \begin{macrocode}
-\newcommand*{\Call at BeforeClearDocument}{%
- \let\BeforeClearDocument\@firstofone
- \ifx\AtVeryEnd at BeforeClearDocumentHook\@empty
- \PackageInfo{atveryend}{Empty hook `BeforeClearDocument'}%
- \else
- \PackageInfo{atveryend}{Executing hook `BeforeClearDocument'}%
- \AtVeryEnd at BeforeClearDocumentHook
- \fi
- \global\let\AtVeryEnd at BeforeClearDocumentHook\@undefined
- \global\let\Call at BeforeClearDocument\relax
-}
+\newcommand\BeforeClearDocument{\AddToHook{enddocument}}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\Call at AfterLastShipout}
-% \begin{macrocode}
-\newcommand*{\Call at AfterLastShipout}{%
- \let\AfterLastShipout\@firstofone
- \ifx\AtVeryEnd at AfterLastShipoutHook\@empty
- \PackageInfo{atveryend}{Empty hook `AfterLastShipout'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AfterLastShipout'}%
- \AtVeryEnd at AfterLastShipoutHook
- \fi
- \global\let\AtVeryEnd at AfterLastShipoutHook\@undefined
- \global\let\Call at AfterLastShipout\relax
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\Call at AtVeryEndDocument}
-% \begin{macrocode}
-\newcommand*{\Call at AtVeryEndDocument}{%
- \let\AtVeryEndDocument\@firstofone
- \ifx\AtVeryEnd at AtVeryEndDocumentHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtVeryEndDocument'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtVeryEndDocument'}%
- \AtVeryEnd at AtVeryEndDocumentHook
- \fi
- \global\let\AtVeryEnd at AtVeryEndDocumentHook\@undefined
- \global\let\Call at AtVeryEndDocument\relax
-}
-% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\Call at AtEndAfterFileList}
% \begin{macrocode}
-\newcommand*{\Call at AtEndAfterFileList}{%
- \Call at AtVeryEndDocument
- \let\AtEndAfterFileList\@firstofone
- \ifx\AtVeryEnd at AtEndAfterFileListHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtEndAfterFileList'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtEndAfterFileList'}%
- \AtVeryEnd at AtEndAfterFileListHook
- \fi
- \global\let\AtVeryEnd at AtEndAfterFileListHook\@undefined
- \global\let\Call at AtEndAfterFileList\relax
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Call at AtVeryVeryEnd}
-% \begin{macrocode}
-\newcommand*{\Call at AtVeryVeryEnd}{%
- \Call at AtEndAfterFileList
- \let\AtVeryVeryEnd\@firstofone
- \ifx\AtVeryEnd at AtVeryVeryEndHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtVeryVeryEnd'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtVeryVeryEnd'}%
- \AtVeryEnd at AtVeryVeryEndHook
- \fi
- \global\let\AtVeryEnd at AtVeryVeryEndHook\@undefined
- \global\let\Call at AtVeryVeryEnd\relax
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Redefining \cs{enddocument}}
-%
-% This approach looks for known versions of \cs{enddocument}
-% and redefines it. Class \xclass{seminar}
-% and package \xpackage{slidesec} are not checked, because
-% there would be too much combinations to check.
-%
-% \subsubsection{\LaTeX\ kernel}
-%
-% \begin{macro}{\AtVeryEnd at test@standard}
-% \begin{macrocode}
-\def\AtVeryEnd at test@standard{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \input\jobname.aux %
- \fi
- \@dofilelist
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at enddocument@standard}
-% \begin{macrocode}
-\def\AtVeryEnd at enddocument@standard{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \input\jobname.aux %
- \fi
- \Call at AtVeryEndDocument
- \@dofilelist
- \Call at AtEndAfterFileList
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{\LaTeX\ kernel 2011/06/27}
-%
-% The \hologo{LaTeX2e} release 2011/06/27 has changed \cs{enddocument}
-% (\cs{input} is replaced by \cs{@@input}).
-% \begin{macro}{\AtVeryEnd at test@standard20110627}
-% \begin{macrocode}
-\expandafter\def\csname AtVeryEnd at test@standard20110627\endcsname{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \@@input\jobname.aux %
- \fi
- \@dofilelist
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at enddocument@standard20110627}
-% \begin{macrocode}
-\expandafter\def\csname AtVeryEnd at enddocument@standard20110627\endcsname{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \@@input\jobname.aux %
- \fi
- \Call at AtVeryEndDocument
- \@dofilelist
- \Call at AtEndAfterFileList
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Package \xpackage{booklet}, file \xpackage{2up.tex}}
-%
-% \begin{macro}{\AtVeryEnd at test@booklet}
-% \begin{macrocode}
-\expandafter\def\expandafter\AtVeryEnd at test@booklet\expandafter{%
- \expandafter\twoupclearpage
- \AtVeryEnd at test@standard
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at enddocument@booklet}
-% \begin{macrocode}
-\expandafter\def\expandafter\AtVeryEnd at enddocument@booklet\expandafter{%
- \expandafter\twoclearpage
- \AtVeryEnd at enddocument@standard
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Class \xclass{dinbrief}}
-%
-% \begin{macro}{\AtVeryEnd at test@dinbrief}
-% \begin{macrocode}
-\def\AtVeryEnd at test@dinbrief{%
- \@checkend{document} %
- \newpage
- \begingroup
- \if at filesw
- \ifnum\c at labelgen>0 %
- \immediate\closeout\@mainlbl
- \makeatletter
- \input \jobname at lbl\relax
- \clearpage
- \fi
- \immediate\closeout\@mainaux
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at enddocument@dinbrief}
-% \begin{macrocode}
-\def\AtVeryEnd at enddocument@dinbrief{%
- \@checkend{document}%
- \Call at BeforeClearDocument
- \newpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \ifnum\c at labelgen>\z@
- \immediate\closeout\@mainlbl
- \makeatletter
- \input \jobname at lbl\relax
- \clearpage
- \fi
- \immediate\closeout\@mainaux
- \fi
- \Call at AtVeryEndDocument
- \csname @dofilelist\endcsname
- \Call at AtEndAfterFileList
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Class \xclass{combine}}
-%
-% \begin{macro}{\AtVeryEnd at test@combine}
-% \begin{macrocode}
-\def\AtVeryEnd at test@combine{%
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \immediate\closeout\@partaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter \input\c at lmainauxfile %% change here
- \fi
- \c at lenddoca %% a replacement
- \@refundefined
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at enddocument@combine}
-% \begin{macrocode}
-\def\AtVeryEnd at enddocument@combine{%
- \@enddocumenthook
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \immediate\closeout\@partaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter \input\c at lmainauxfile %% change here
- \fi
- \Call at AtVeryEndDocument
- \c at lenddoca %% a replacement
- \@refundefined
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\AtVeryEnd at test@c at lenddoca}
-% \begin{macrocode}
-\long\def\AtVeryEnd at test@c at lenddoca{%
- \@dofilelist
- \ifdim\font at submax>\fontsubfuzz\relax
- \@font at warning{%
- Size substitutions with differences\MessageBreak
- up to \font at submax\space have occured.\@gobbletwo
- }%
- \fi
- \@defaultsubs
- \if at filesw
- \ifx\@multiplelabels\relax
- \if at tempswa
- \@latex at warning@no at line{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\c at lenddoca}
-% \begin{macrocode}
-\ifx\AtVeryEnd at c@lenddoca\c at lenddoca
- \def\c at lenddoca{%
- \@dofilelist
- \Call at AtEndAfterFileList
- \ifdim\font at submax>\fontsubfuzz\relax
- \@font at warning{%
- Size substitutions with differences\MessageBreak
- up to \font at submax\space have occured.\@gobbletwo
- }%
- \fi
- \@defaultsubs
- \if at filesw
- \ifx\@multiplelabels\relax
- \if at tempswa
- \@latex at warning@no at line{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- }%
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Class \xpackage{jpsj2}}
-%
-% \begin{macro}{\AtVeryEnd at test@jpsj}
-% \begin{macrocode}
-\def\AtVeryEnd at test@jpsj{%
- \if at lastpagebalancing
- \global\let\@outputdblcol=\balancing at outputdblcol
- \fi
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \def\global\@namedef##1##2{}%
- \def\newlabel{\@testdef r}%
- \def\bibcite{\@testdef b}%
- \@tempswafalse
- \makeatletter
- \input \jobname.aux %
- \if at tempswa
- \@warning{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at enddocument@jpsj}
-% \begin{macrocode}
-\def\AtVeryEnd at enddocument@jpsj{%
- \if at lastpagebalancing
- \global\let\@outputdblcol=\balancing at outputdblcol
- \fi
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \def\global\@namedef##1##2{}%
- \def\newlabel{\@testdef r}%
- \def\bibcite{\@testdef b}%
- \@tempswafalse
- \makeatletter
- \input \jobname.aux %
- \if at tempswa
- \@warning{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \fi
- \Call at AtVeryEndDocument
- \csname @dofilelist\endcsname
- \Call at AtEndAfterFileList
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Testing and redefining}
-%
-% \begin{macro}{\AtVeryEnd at Test}
-% \begin{macrocode}
-\def\AtVeryEnd at Test#1#2{%
- \expandafter\ifx\csname AtVeryEnd at test@#2\endcsname#1%
- \expandafter\let\expandafter#1%
- \csname AtVeryEnd at enddocument@#2\endcsname
- \begingroup
- \let\on at line\@empty
- \PackageInfo{atveryend}{%
- \string#1 detected (#2)%
- }%
- \endgroup
- \expandafter\AtVeryEnd at SkipToNil
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at SkipToNil}
-% \begin{macrocode}
-\def\AtVeryEnd at SkipToNil#1\@nil{}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\AtVeryEnd at RedefEndDocument}
-% \begin{macrocode}
-\def\AtVeryEnd at RedefEndDocument#1{%
- \ifx#1\@undefined
- \else
- \AtVeryEnd at Test#1{standard20110627}%
- \AtVeryEnd at Test#1{standard}%
- \AtVeryEnd at Test#1{booklet}%
- \AtVeryEnd at Test#1{dinbrief}%
- \AtVeryEnd at Test#1{combine}%
- \AtVeryEnd at Test#1{jpsj}%
- \AtVeryEnd at SkipToNil
- \@nil
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macrocode}
-\AtVeryEnd at RedefEndDocument\enddocument
-\AtVeryEnd at RedefEndDocument\AP at enddocument % afterpage.sty
-\AtVeryEnd at RedefEndDocument\hyper at back@cite at enddocument % htx-bc.sty
-\AtVeryEnd at RedefEndDocument\hyper at enddocument % hyper.sty
-\AtVeryEnd at RedefEndDocument\hyper at fn@enddocument % hyper.sty
-\AtVeryEnd at RedefEndDocument\cweb at save@enddocument % cweb.cls
-\AtVeryEnd at RedefEndDocument\prev at enddocument % flushend.sty
-\AtVeryEnd at RedefEndDocument\endorigdocument % gaceta.cls
-\AtVeryEnd at RedefEndDocument\keependdoc % aguplus.sty
-\AtVeryEnd at RedefEndDocument\EMenddocument % t-angles.sty
-\AtVeryEnd at RedefEndDocument\docmute at enddocument % docmute.sty
-\AtVeryEnd at RedefEndDocument\a at enddocument % alatex.sty
-\AtVeryEnd at RedefEndDocument\enddocumentasusual % frenchle.sty
-\AtVeryEnd at RedefEndDocument\old at enddocument % uwthesis.cls
-% \end{macrocode}
-%
-% \subsection{Hack into \cs{enddocument}}
-%
-% \begin{macrocode}
-\def\AtVeryEnd at document{document}%
-\def\AtVeryEnd at RedefCheckEnd{%
- \expandafter\def\expandafter\@checkend
- \expandafter##\expandafter1\expandafter{%
- \@checkend{##1}%
- \def\AtVeryEnd at temp{##1}%
- \ifx\AtVeryEnd at temp\AtVeryEnd at document
- \let\AtVeryEnd at OrgClearpage\clearpage
- \def\clearpage{%
- \let\clearpage\AtVeryEnd at OrgClearpage
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- }%
- \fi
- }%
- \aftergroup\AtVeryEnd at RedefCheckEnd
-}%
-\AtBeginDocument{%
- \AtEndDocument{%
- \AtVeryEnd at RedefCheckEnd
- }%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\AtEndDocument{%
- \@ifundefined{@dofilelist}{%
- \gdef\@dofilelist{%
- \Call at AtVeryEndDocument
- \Call at AtEndAfterFileList
- }%
- }{%
- \begingroup
- \toks@\expandafter{\@dofilelist}%
- \xdef\@dofilelist{%
- \noexpand\Call at AtVeryEndDocument
- \the\toks@
- \noexpand\Call at AtEndAfterFileList
- }%
- \endgroup
- }%
-}
-% \end{macrocode}
-%
-% \subsection{Using hooks of other packages}
-%
-% \subsubsection{Package \xpackage{scrlfile}}
-%
-% \begin{macrocode}
-\AtBeginDocument{%
- \@ifpackageloaded{scrlfile}{%
- \AtVeryEnd at ifundefined{BeforeClosingMainAux}{}{%
- \BeforeClosingMainAux{\Call at AfterLastShipout}%
- }%
- \AtVeryEnd at ifundefined{AfterReadingMainAux}{}{%
- \AfterReadingMainAux{\Call at AtVeryEndDocument}%
- }%
- }{}%
-% \end{macrocode}
-%
-% \subsubsection{Package \xpackage{etoolbox}}
-%
-% \begin{macrocode}
- \@ifpackageloaded{etoolbox}{%
- \AtVeryEnd at ifundefined{AfterEndDocument}{}{%
- \AfterEndDocument{\Call at AtVeryEndDocument}%
- }%
- }{}%
-% \end{macrocode}
-% \begin{macrocode}
-}
-% \end{macrocode}
-%
-% \subsection{Class \xclass{letter}}
-%
-% The class \xclass{letter} and some similar classes
-% insert material (\cs{@startlabels}) at the end of the document.
-% However, this method violates
-% a precondition of this package that the \cs{clearpage} in
-% \cs{enddocument} is the final call with no material at
-% later times. Therefore we move the label making
-% from the \xext{aux} file to \cs{AtEndDocument}.
-% \begin{macrocode}
-\def\AtVeryEnd at temp{%
- \AtBeginDocument{%
- \let\@startlabels\startlabels
- \let\@mlabel\mlabel
- \if at filesw
- \immediate\write\@mainaux{\string\@startlabels}%
- \fi
- }%
- \AtEndDocument{%
- \if at filesw
- \immediate\write\@mainaux{\string\clearpage}%
- \fi
- }%
-}
-\ifx\makelabels\AtVeryEnd at temp
-\else
- \expandafter\AtVeryEnd at AtEnd
-\fi%
-\let\AtVeryEnd at PatchLetter=N%
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname endletter\endcsname\relax
-\else
- \long\def\AtVeryEnd at TestEndLetter#1\@auxout#2#3\AtVeryEnd at Nil{%
- \def\AtVeryEnd at temp{#2}%
- \ifx\AtVeryEnd at temp\@empty
- \else
- \@onelevel at sanitize\AtVeryEnd at temp
- \edef\AtVeryEnd at StringMlabel{%
- \string\string
- \string\@mlabel
- \expandafter\@gobble\string\{%
- }%
- \def\AtVeryEnd at CatchFirst##1##2##3##4##5##6##7##8{%
- ##1##2##3##4##5##6##7##8\AtVeryEnd at CatchSecond
- }%
- \def\AtVeryEnd at CatchSecond##1##2##3##4##5##6##7##8##9\@nil{%
- ##1##2##3##4##5##6##7##8%
- }%
- \edef\AtVeryEnd at temp{%
- \expandafter\AtVeryEnd at CatchFirst\AtVeryEnd at temp
- {}{}{}{}{}{}{}{}%
- {}{}{}{}{}{}{}{}%
- \@nil
- }%
- \ifx\AtVeryEnd at temp\AtVeryEnd at StringMlabel
- \expandafter\def\expandafter\endletter\expandafter{%
- \endletter
- \begingroup
- \let\\=\relax
- \let\protect\@unexpandable at protect
- \let\@mlabel=\relax
- \edef\x{\endgroup
- \noexpand\AtEndDocument{%
- \@gobble#2%
- }%
- }%
- \x
- }%
- \let\AtVeryEnd at PatchLetter=Y%
- \fi
- \fi
- }%
- \expandafter\AtVeryEnd at TestEndLetter\endletter
- \@auxout{}\AtVeryEnd at Nil
-\fi
-\ifx\AtVeryEnd at PatchLetter Y%
- \begingroup
- \let\on at line\@empty
- \PackageInfo{atveryend}{%
- \@backslashchar makelabels detected. %
- Moving labels\MessageBreak
- from `.aux' file to \@backslashchar AtEndDocument%
- }%
- \endgroup
- \def\makelabels{%
- \AtBeginDocument{%
- \let\@startlabels\startlabels
- \let\@mlabel\mlabel
- }%
- }%
- \AtEndDocument{%
- \AtVeryEnd at ifundefined{@startlabels}{%
- }{%
- \clearpage
- \@startlabels
- }%
- }%
- \AfterLastShipout{%
- \let\@startlabels\relax
- \let\@mlabel\@gobbletwo
- }%
-\else
- \PackageWarningNoLine{atveryend}{%
- \@backslashchar makelabels detected, but labels cannot\MessageBreak
- be moved to \@backslashchar AtEndDocument, because\MessageBreak
- \@backslashchar endletter is not in expected form%
- }%
-\fi
-% \end{macrocode}
-%
-% \begin{macrocode}
-\AtVeryEnd at AtEnd%
%</package>
% \end{macrocode}
-%% \section{Installation}
+% \section{Installation}
%
% \subsection{Download}
%
@@ -1175,28 +274,7 @@
% \item[\CTAN{macros/latex/contrib/atveryend/atveryend.dtx}] The source file.
% \item[\CTAN{macros/latex/contrib/atveryend/atveryend.pdf}] Documentation.
% \end{description}
-%
-%
-% \paragraph{Bundle.} All the packages of the bundle `atveryend'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/atveryend.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{atveryend.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip atveryend.tds.zip -d ~/texmf|
-% \end{quote}
-%
+%
% \subsection{Package installation}
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
@@ -1332,52 +410,7 @@
% suggestions and comments.
% \end{description}
%
-% \begin{thebibliography}{9}
%
-% \bibitem{clsguide}
-% The \LaTeX3 Project:
-% \textit{\LaTeX2e\ for class and package writers}
-% 2006/02/15;
-% \CTANpkg{clsguide}.
-%
-% \bibitem{endfloat}
-% James Darrell McCauley, Jeff Goldberg:
-% \textit{The \xpackage{endfloat} package};
-% 1995/10/11 v2.4i;
-% \CTANpkg{endfloat}.
-%
-% \bibitem{etoolbox}
-% Philipp Lehmann:
-% \textit{The \xpackage{etoolbox} package};
-% 2009/08/06 v1.8;
-% \CTANpkg{etoolbox}.
-%
-% \bibitem{hyperref}
-% Sebastian Rahtz, Heiko Oberdiek:
-% \textit{The \xpackage{hyperref} package};
-% 2009/12/05 v6.79l;
-% \CTANpkg{hyperref}.
-%
-% \bibitem{koma}
-% Markus Kohm:
-% \textit{KOMA-Script};
-% 2009/07/24 v3.04a;
-% \url{https://www.komascript.de/}.
-%
-% \bibitem{lastpage}
-% Jeff Goldberg:
-% \textit{The \xpackage{lastpage} package};
-% 1994/07/20 v0.1b;
-% \CTANpkg{lastpage}.
-%
-% \bibitem{revtex}
-% APS, AIP, Arthur Orgawa;
-% ReVTeX 4.1;
-% 2009/10/13 v4.1;
-% \url{http://authors.aps.org/revtex4/}.
-%
-% \end{thebibliography}
-%
% \begin{History}
% \begin{Version}{2009/12/06 v1.0}
% \item
@@ -1434,6 +467,10 @@
% \begin{Version}{2019-12-11 v1.11}
% \item Updated
% \end{Version}
+%
+% \begin{Version}{2024-08-06 v1.12}
+% \item Switch to kernel hooks
+% \end{Version}
% \end{History}
%
% \PrintIndex
Modified: trunk/Master/texmf-dist/tex/latex/atveryend/atveryend.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/atveryend/atveryend.sty 2024-10-09 20:15:37 UTC (rev 72506)
+++ trunk/Master/texmf-dist/tex/latex/atveryend/atveryend.sty 2024-10-09 20:20:50 UTC (rev 72507)
@@ -9,11 +9,11 @@
%% This is a generated file.
%%
%% Project: atveryend
-%% Version: 2019-12-11 v1.11
+%% Version: 2024-08-06 v1.12
%%
%% Copyright (C)
%% 2009-2011 Heiko Oberdiek
-%% 2016-2019 Oberdiek Package Support Group
+%% 2016-2024 Oberdiek Package Support Group
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -31,686 +31,19 @@
%% Heiko Oberdiek and the Oberdiek Package Support Group
%% https://github.com/ho-tex/atveryend/issues
%%
-%%
%% This work consists of the main source file atveryend.dtx
%% and the derived files
%% atveryend.sty, atveryend.pdf, atveryend.ins, atveryend.drv,
%% atveryend-test1.tex.
%%
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode123=1 % {
- \catcode125=2 % }
- \catcode64=11 % @
- \def\x{\endgroup
- \expandafter\edef\csname AtVeryEnd at AtEnd\endcsname{%
- \endlinechar=\the\endlinechar\relax
- \catcode13=\the\catcode13\relax
- \catcode32=\the\catcode32\relax
- \catcode35=\the\catcode35\relax
- \catcode61=\the\catcode61\relax
- \catcode64=\the\catcode64\relax
- \catcode123=\the\catcode123\relax
- \catcode125=\the\catcode125\relax
- }%
- }%
-\x\catcode61\catcode48\catcode32=10\relax%
-\catcode13=5 % ^^M
-\endlinechar=13 %
-\catcode35=6 % #
-\catcode64=11 % @
-\catcode123=1 % {
-\catcode125=2 % }
-\def\TMP at EnsureCode#1#2{%
- \edef\AtVeryEnd at AtEnd{%
- \AtVeryEnd at AtEnd
- \catcode#1=\the\catcode#1\relax
- }%
- \catcode#1=#2\relax
-}
-\TMP at EnsureCode{9}{10}% (tab)
-\TMP at EnsureCode{39}{12}% '
-\TMP at EnsureCode{40}{12}% (
-\TMP at EnsureCode{41}{12}% )
-\TMP at EnsureCode{42}{12}% *
-\TMP at EnsureCode{45}{12}% -
-\TMP at EnsureCode{46}{12}% .
-\TMP at EnsureCode{47}{12}% /
-\TMP at EnsureCode{62}{12}% >
-\TMP at EnsureCode{91}{12}% [
-\TMP at EnsureCode{93}{12}% ]
-\TMP at EnsureCode{96}{12}% `
-\edef\AtVeryEnd at AtEnd{\AtVeryEnd at AtEnd\noexpand\endinput}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{atveryend}%
- [2019-12-11 v1.11 Hooks at the very end of document (HO)]
-\def\AtVeryEnd at ifundefined#1{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname #1\endcsname\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-\let\AtVeryEnd at BeforeClearDocumentHook\@empty
-\let\AtVeryEnd at AfterLastShipoutHook\@empty
-\let\AtVeryEnd at AtVeryEndDocumentHook\@empty
-\let\AtVeryEnd at AtEndAfterFileListHook\@empty
-\let\AtVeryEnd at AtVeryVeryEndHook\@empty
-\newcommand*{\BeforeClearDocument}{%
- \g at addto@macro\AtVeryEnd at BeforeClearDocumentHook
-}
-\newcommand*{\AfterLastShipout}{%
- \g at addto@macro\AtVeryEnd at AfterLastShipoutHook
-}
-\newcommand*{\AtVeryEndDocument}{%
- \g at addto@macro\AtVeryEnd at AtVeryEndDocumentHook
-}
-\newcommand*{\AtEndAfterFileList}{%
- \g at addto@macro\AtVeryEnd at AtEndAfterFileListHook
-}
-\newcommand*{\AtVeryVeryEnd}{%
- \g at addto@macro\AtVeryEnd at AtVeryVeryEndHook
-}
-\newcommand*{\Call at BeforeClearDocument}{%
- \let\BeforeClearDocument\@firstofone
- \ifx\AtVeryEnd at BeforeClearDocumentHook\@empty
- \PackageInfo{atveryend}{Empty hook `BeforeClearDocument'}%
- \else
- \PackageInfo{atveryend}{Executing hook `BeforeClearDocument'}%
- \AtVeryEnd at BeforeClearDocumentHook
- \fi
- \global\let\AtVeryEnd at BeforeClearDocumentHook\@undefined
- \global\let\Call at BeforeClearDocument\relax
-}
-\newcommand*{\Call at AfterLastShipout}{%
- \let\AfterLastShipout\@firstofone
- \ifx\AtVeryEnd at AfterLastShipoutHook\@empty
- \PackageInfo{atveryend}{Empty hook `AfterLastShipout'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AfterLastShipout'}%
- \AtVeryEnd at AfterLastShipoutHook
- \fi
- \global\let\AtVeryEnd at AfterLastShipoutHook\@undefined
- \global\let\Call at AfterLastShipout\relax
-}
-\newcommand*{\Call at AtVeryEndDocument}{%
- \let\AtVeryEndDocument\@firstofone
- \ifx\AtVeryEnd at AtVeryEndDocumentHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtVeryEndDocument'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtVeryEndDocument'}%
- \AtVeryEnd at AtVeryEndDocumentHook
- \fi
- \global\let\AtVeryEnd at AtVeryEndDocumentHook\@undefined
- \global\let\Call at AtVeryEndDocument\relax
-}
-\newcommand*{\Call at AtEndAfterFileList}{%
- \Call at AtVeryEndDocument
- \let\AtEndAfterFileList\@firstofone
- \ifx\AtVeryEnd at AtEndAfterFileListHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtEndAfterFileList'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtEndAfterFileList'}%
- \AtVeryEnd at AtEndAfterFileListHook
- \fi
- \global\let\AtVeryEnd at AtEndAfterFileListHook\@undefined
- \global\let\Call at AtEndAfterFileList\relax
-}
-\newcommand*{\Call at AtVeryVeryEnd}{%
- \Call at AtEndAfterFileList
- \let\AtVeryVeryEnd\@firstofone
- \ifx\AtVeryEnd at AtVeryVeryEndHook\@empty
- \PackageInfo{atveryend}{Empty hook `AtVeryVeryEnd'}%
- \else
- \PackageInfo{atveryend}{Executing hook `AtVeryVeryEnd'}%
- \AtVeryEnd at AtVeryVeryEndHook
- \fi
- \global\let\AtVeryEnd at AtVeryVeryEndHook\@undefined
- \global\let\Call at AtVeryVeryEnd\relax
-}
-\def\AtVeryEnd at test@standard{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \input\jobname.aux %
- \fi
- \@dofilelist
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-\def\AtVeryEnd at enddocument@standard{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \input\jobname.aux %
- \fi
- \Call at AtVeryEndDocument
- \@dofilelist
- \Call at AtEndAfterFileList
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-\expandafter\def\csname AtVeryEnd at test@standard20110627\endcsname{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \@@input\jobname.aux %
- \fi
- \@dofilelist
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-\expandafter\def\csname AtVeryEnd at enddocument@standard20110627\endcsname{%
- \let\AtEndDocument\@firstofone
- \@enddocumenthook
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter
- \@@input\jobname.aux %
- \fi
- \Call at AtVeryEndDocument
- \@dofilelist
- \Call at AtEndAfterFileList
- \ifdim \font at submax >\fontsubfuzz\relax
- \@font at warning{Size substitutions with differences\MessageBreak
- up to \font at submax\space have occurred.\@gobbletwo}%
- \fi
- \@defaultsubs
- \@refundefined
- \if at filesw
- \ifx \@multiplelabels \relax
- \if at tempswa
- \@latex at warning@no at line{Label(s) may have changed. %
- Rerun to get cross-references right}%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-\expandafter\def\expandafter\AtVeryEnd at test@booklet\expandafter{%
- \expandafter\twoupclearpage
- \AtVeryEnd at test@standard
-}
-\expandafter\def\expandafter\AtVeryEnd at enddocument@booklet\expandafter{%
- \expandafter\twoclearpage
- \AtVeryEnd at enddocument@standard
-}
-\def\AtVeryEnd at test@dinbrief{%
- \@checkend{document} %
- \newpage
- \begingroup
- \if at filesw
- \ifnum\c at labelgen>0 %
- \immediate\closeout\@mainlbl
- \makeatletter
- \input \jobname at lbl\relax
- \clearpage
- \fi
- \immediate\closeout\@mainaux
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-\def\AtVeryEnd at enddocument@dinbrief{%
- \@checkend{document}%
- \Call at BeforeClearDocument
- \newpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \ifnum\c at labelgen>\z@
- \immediate\closeout\@mainlbl
- \makeatletter
- \input \jobname at lbl\relax
- \clearpage
- \fi
- \immediate\closeout\@mainaux
- \fi
- \Call at AtVeryEndDocument
- \csname @dofilelist\endcsname
- \Call at AtEndAfterFileList
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-\def\AtVeryEnd at test@combine{%
- \@enddocumenthook
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \immediate\closeout\@partaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter \input\c at lmainauxfile %% change here
- \fi
- \c at lenddoca %% a replacement
- \@refundefined
- \endgroup
- \deadcycles\z@
- \@@end
-}
-\def\AtVeryEnd at enddocument@combine{%
- \@enddocumenthook
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \immediate\closeout\@partaux
- \let\@setckpt\@gobbletwo
- \let\@newl at bel\@testdef
- \@tempswafalse
- \makeatletter \input\c at lmainauxfile %% change here
- \fi
- \Call at AtVeryEndDocument
- \c at lenddoca %% a replacement
- \@refundefined
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-\long\def\AtVeryEnd at test@c at lenddoca{%
- \@dofilelist
- \ifdim\font at submax>\fontsubfuzz\relax
- \@font at warning{%
- Size substitutions with differences\MessageBreak
- up to \font at submax\space have occured.\@gobbletwo
- }%
- \fi
- \@defaultsubs
- \if at filesw
- \ifx\@multiplelabels\relax
- \if at tempswa
- \@latex at warning@no at line{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
-}
-\ifx\AtVeryEnd at c@lenddoca\c at lenddoca
- \def\c at lenddoca{%
- \@dofilelist
- \Call at AtEndAfterFileList
- \ifdim\font at submax>\fontsubfuzz\relax
- \@font at warning{%
- Size substitutions with differences\MessageBreak
- up to \font at submax\space have occured.\@gobbletwo
- }%
- \fi
- \@defaultsubs
- \if at filesw
- \ifx\@multiplelabels\relax
- \if at tempswa
- \@latex at warning@no at line{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \else
- \@multiplelabels
- \fi
- \fi
- }%
-\fi
-\def\AtVeryEnd at test@jpsj{%
- \if at lastpagebalancing
- \global\let\@outputdblcol=\balancing at outputdblcol
- \fi
- \@checkend{document}%
- \clearpage
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \def\global\@namedef##1##2{}%
- \def\newlabel{\@testdef r}%
- \def\bibcite{\@testdef b}%
- \@tempswafalse
- \makeatletter
- \input \jobname.aux %
- \if at tempswa
- \@warning{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \fi
- \endgroup
- \deadcycles\z@
- \@@end
-}
-\def\AtVeryEnd at enddocument@jpsj{%
- \if at lastpagebalancing
- \global\let\@outputdblcol=\balancing at outputdblcol
- \fi
- \@checkend{document}%
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- \begingroup
- \if at filesw
- \immediate\closeout\@mainaux
- \def\global\@namedef##1##2{}%
- \def\newlabel{\@testdef r}%
- \def\bibcite{\@testdef b}%
- \@tempswafalse
- \makeatletter
- \input \jobname.aux %
- \if at tempswa
- \@warning{%
- Label(s) may have changed. %
- Rerun to get cross-references right%
- }%
- \fi
- \fi
- \Call at AtVeryEndDocument
- \csname @dofilelist\endcsname
- \Call at AtEndAfterFileList
- \endgroup
- \deadcycles\z@
- \Call at AtVeryVeryEnd
- \@@end
-}
-\def\AtVeryEnd at Test#1#2{%
- \expandafter\ifx\csname AtVeryEnd at test@#2\endcsname#1%
- \expandafter\let\expandafter#1%
- \csname AtVeryEnd at enddocument@#2\endcsname
- \begingroup
- \let\on at line\@empty
- \PackageInfo{atveryend}{%
- \string#1 detected (#2)%
- }%
- \endgroup
- \expandafter\AtVeryEnd at SkipToNil
- \fi
-}
-\def\AtVeryEnd at SkipToNil#1\@nil{}
-\def\AtVeryEnd at RedefEndDocument#1{%
- \ifx#1\@undefined
- \else
- \AtVeryEnd at Test#1{standard20110627}%
- \AtVeryEnd at Test#1{standard}%
- \AtVeryEnd at Test#1{booklet}%
- \AtVeryEnd at Test#1{dinbrief}%
- \AtVeryEnd at Test#1{combine}%
- \AtVeryEnd at Test#1{jpsj}%
- \AtVeryEnd at SkipToNil
- \@nil
- \fi
-}
-\AtVeryEnd at RedefEndDocument\enddocument
-\AtVeryEnd at RedefEndDocument\AP at enddocument % afterpage.sty
-\AtVeryEnd at RedefEndDocument\hyper at back@cite at enddocument % htx-bc.sty
-\AtVeryEnd at RedefEndDocument\hyper at enddocument % hyper.sty
-\AtVeryEnd at RedefEndDocument\hyper at fn@enddocument % hyper.sty
-\AtVeryEnd at RedefEndDocument\cweb at save@enddocument % cweb.cls
-\AtVeryEnd at RedefEndDocument\prev at enddocument % flushend.sty
-\AtVeryEnd at RedefEndDocument\endorigdocument % gaceta.cls
-\AtVeryEnd at RedefEndDocument\keependdoc % aguplus.sty
-\AtVeryEnd at RedefEndDocument\EMenddocument % t-angles.sty
-\AtVeryEnd at RedefEndDocument\docmute at enddocument % docmute.sty
-\AtVeryEnd at RedefEndDocument\a at enddocument % alatex.sty
-\AtVeryEnd at RedefEndDocument\enddocumentasusual % frenchle.sty
-\AtVeryEnd at RedefEndDocument\old at enddocument % uwthesis.cls
-\def\AtVeryEnd at document{document}%
-\def\AtVeryEnd at RedefCheckEnd{%
- \expandafter\def\expandafter\@checkend
- \expandafter##\expandafter1\expandafter{%
- \@checkend{##1}%
- \def\AtVeryEnd at temp{##1}%
- \ifx\AtVeryEnd at temp\AtVeryEnd at document
- \let\AtVeryEnd at OrgClearpage\clearpage
- \def\clearpage{%
- \let\clearpage\AtVeryEnd at OrgClearpage
- \Call at BeforeClearDocument
- \clearpage
- \Call at AfterLastShipout
- }%
- \fi
- }%
- \aftergroup\AtVeryEnd at RedefCheckEnd
-}%
-\AtBeginDocument{%
- \AtEndDocument{%
- \AtVeryEnd at RedefCheckEnd
- }%
-}
-\AtEndDocument{%
- \@ifundefined{@dofilelist}{%
- \gdef\@dofilelist{%
- \Call at AtVeryEndDocument
- \Call at AtEndAfterFileList
- }%
- }{%
- \begingroup
- \toks@\expandafter{\@dofilelist}%
- \xdef\@dofilelist{%
- \noexpand\Call at AtVeryEndDocument
- \the\toks@
- \noexpand\Call at AtEndAfterFileList
- }%
- \endgroup
- }%
-}
-\AtBeginDocument{%
- \@ifpackageloaded{scrlfile}{%
- \AtVeryEnd at ifundefined{BeforeClosingMainAux}{}{%
- \BeforeClosingMainAux{\Call at AfterLastShipout}%
- }%
- \AtVeryEnd at ifundefined{AfterReadingMainAux}{}{%
- \AfterReadingMainAux{\Call at AtVeryEndDocument}%
- }%
- }{}%
- \@ifpackageloaded{etoolbox}{%
- \AtVeryEnd at ifundefined{AfterEndDocument}{}{%
- \AfterEndDocument{\Call at AtVeryEndDocument}%
- }%
- }{}%
-}
-\def\AtVeryEnd at temp{%
- \AtBeginDocument{%
- \let\@startlabels\startlabels
- \let\@mlabel\mlabel
- \if at filesw
- \immediate\write\@mainaux{\string\@startlabels}%
- \fi
- }%
- \AtEndDocument{%
- \if at filesw
- \immediate\write\@mainaux{\string\clearpage}%
- \fi
- }%
-}
-\ifx\makelabels\AtVeryEnd at temp
-\else
- \expandafter\AtVeryEnd at AtEnd
-\fi%
-\let\AtVeryEnd at PatchLetter=N%
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname endletter\endcsname\relax
-\else
- \long\def\AtVeryEnd at TestEndLetter#1\@auxout#2#3\AtVeryEnd at Nil{%
- \def\AtVeryEnd at temp{#2}%
- \ifx\AtVeryEnd at temp\@empty
- \else
- \@onelevel at sanitize\AtVeryEnd at temp
- \edef\AtVeryEnd at StringMlabel{%
- \string\string
- \string\@mlabel
- \expandafter\@gobble\string\{%
- }%
- \def\AtVeryEnd at CatchFirst##1##2##3##4##5##6##7##8{%
- ##1##2##3##4##5##6##7##8\AtVeryEnd at CatchSecond
- }%
- \def\AtVeryEnd at CatchSecond##1##2##3##4##5##6##7##8##9\@nil{%
- ##1##2##3##4##5##6##7##8%
- }%
- \edef\AtVeryEnd at temp{%
- \expandafter\AtVeryEnd at CatchFirst\AtVeryEnd at temp
- {}{}{}{}{}{}{}{}%
- {}{}{}{}{}{}{}{}%
- \@nil
- }%
- \ifx\AtVeryEnd at temp\AtVeryEnd at StringMlabel
- \expandafter\def\expandafter\endletter\expandafter{%
- \endletter
- \begingroup
- \let\\=\relax
- \let\protect\@unexpandable at protect
- \let\@mlabel=\relax
- \edef\x{\endgroup
- \noexpand\AtEndDocument{%
- \@gobble#2%
- }%
- }%
- \x
- }%
- \let\AtVeryEnd at PatchLetter=Y%
- \fi
- \fi
- }%
- \expandafter\AtVeryEnd at TestEndLetter\endletter
- \@auxout{}\AtVeryEnd at Nil
-\fi
-\ifx\AtVeryEnd at PatchLetter Y%
- \begingroup
- \let\on at line\@empty
- \PackageInfo{atveryend}{%
- \@backslashchar makelabels detected. %
- Moving labels\MessageBreak
- from `.aux' file to \@backslashchar AtEndDocument%
- }%
- \endgroup
- \def\makelabels{%
- \AtBeginDocument{%
- \let\@startlabels\startlabels
- \let\@mlabel\mlabel
- }%
- }%
- \AtEndDocument{%
- \AtVeryEnd at ifundefined{@startlabels}{%
- }{%
- \clearpage
- \@startlabels
- }%
- }%
- \AfterLastShipout{%
- \let\@startlabels\relax
- \let\@mlabel\@gobbletwo
- }%
-\else
- \PackageWarningNoLine{atveryend}{%
- \@backslashchar makelabels detected, but labels cannot\MessageBreak
- be moved to \@backslashchar AtEndDocument, because\MessageBreak
- \@backslashchar endletter is not in expected form%
- }%
-\fi
-\AtVeryEnd at AtEnd%
-%% \section{Installation}
+ [2024-08-06 v1.12 Hooks at the very end of document (HO)]
+\newcommand\AfterLastShipout {\AddToHook{enddocument/afterlastpage}}
+\newcommand\AtVeryEndDocument {\AddToHook{enddocument/afteraux}}
+\newcommand\AtEndAfterFileList{\AddToHook{enddocument/info}}
+\newcommand\AtVeryVeryEnd {\AddToHook{enddocument/end}}
+\newcommand\BeforeClearDocument{\AddToHook{enddocument}}
\endinput
%%
%% End of file `atveryend.sty'.
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds 2024-10-09 20:15:37 UTC (rev 72506)
+++ trunk/Master/tlpkg/libexec/ctan2tds 2024-10-09 20:20:50 UTC (rev 72507)
@@ -3260,6 +3260,7 @@
'asciilist' => 'latex', # requires interaction
'askinclude' => 'tex', # else doc is generated
'atenddvi' => 'etex',
+ 'atveryend' => 'etex',
'babel' => 'etex',
'babel-belarusian' => 'tex -8bit', # do not make doc, no ^^
'babel-french' => 'luatex',
More information about the tex-live-commits
mailing list.