diff options
author | Karl Berry <karl@freefriends.org> | 2024-10-09 20:20:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-10-09 20:20:50 +0000 |
commit | f17668106eebfa2e9a7868a22235ad8b9ac30f8c (patch) | |
tree | 527e74da7c096276b76efb7012a9b994c32ea463 /Master/texmf-dist/tex/latex/atveryend | |
parent | cafb7b455aed44db433b2a093ea8864dc0ccaef1 (diff) |
atveryend (9oct24)
git-svn-id: svn://tug.org/texlive/trunk@72507 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/atveryend')
-rw-r--r-- | Master/texmf-dist/tex/latex/atveryend/atveryend.sty | 683 |
1 files changed, 8 insertions, 675 deletions
diff --git a/Master/texmf-dist/tex/latex/atveryend/atveryend.sty b/Master/texmf-dist/tex/latex/atveryend/atveryend.sty index f9468aed8e9..5d291d2700f 100644 --- a/Master/texmf-dist/tex/latex/atveryend/atveryend.sty +++ b/Master/texmf-dist/tex/latex/atveryend/atveryend.sty @@ -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@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@EnsureCode#1#2{% - \edef\AtVeryEnd@AtEnd{% - \AtVeryEnd@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{9}{10}% (tab) -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{96}{12}% ` -\edef\AtVeryEnd@AtEnd{\AtVeryEnd@AtEnd\noexpand\endinput} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{atveryend}% - [2019-12-11 v1.11 Hooks at the very end of document (HO)] -\def\AtVeryEnd@ifundefined#1{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi -} -\let\AtVeryEnd@BeforeClearDocumentHook\@empty -\let\AtVeryEnd@AfterLastShipoutHook\@empty -\let\AtVeryEnd@AtVeryEndDocumentHook\@empty -\let\AtVeryEnd@AtEndAfterFileListHook\@empty -\let\AtVeryEnd@AtVeryVeryEndHook\@empty -\newcommand*{\BeforeClearDocument}{% - \g@addto@macro\AtVeryEnd@BeforeClearDocumentHook -} -\newcommand*{\AfterLastShipout}{% - \g@addto@macro\AtVeryEnd@AfterLastShipoutHook -} -\newcommand*{\AtVeryEndDocument}{% - \g@addto@macro\AtVeryEnd@AtVeryEndDocumentHook -} -\newcommand*{\AtEndAfterFileList}{% - \g@addto@macro\AtVeryEnd@AtEndAfterFileListHook -} -\newcommand*{\AtVeryVeryEnd}{% - \g@addto@macro\AtVeryEnd@AtVeryVeryEndHook -} -\newcommand*{\Call@BeforeClearDocument}{% - \let\BeforeClearDocument\@firstofone - \ifx\AtVeryEnd@BeforeClearDocumentHook\@empty - \PackageInfo{atveryend}{Empty hook `BeforeClearDocument'}% - \else - \PackageInfo{atveryend}{Executing hook `BeforeClearDocument'}% - \AtVeryEnd@BeforeClearDocumentHook - \fi - \global\let\AtVeryEnd@BeforeClearDocumentHook\@undefined - \global\let\Call@BeforeClearDocument\relax -} -\newcommand*{\Call@AfterLastShipout}{% - \let\AfterLastShipout\@firstofone - \ifx\AtVeryEnd@AfterLastShipoutHook\@empty - \PackageInfo{atveryend}{Empty hook `AfterLastShipout'}% - \else - \PackageInfo{atveryend}{Executing hook `AfterLastShipout'}% - \AtVeryEnd@AfterLastShipoutHook - \fi - \global\let\AtVeryEnd@AfterLastShipoutHook\@undefined - \global\let\Call@AfterLastShipout\relax -} -\newcommand*{\Call@AtVeryEndDocument}{% - \let\AtVeryEndDocument\@firstofone - \ifx\AtVeryEnd@AtVeryEndDocumentHook\@empty - \PackageInfo{atveryend}{Empty hook `AtVeryEndDocument'}% - \else - \PackageInfo{atveryend}{Executing hook `AtVeryEndDocument'}% - \AtVeryEnd@AtVeryEndDocumentHook - \fi - \global\let\AtVeryEnd@AtVeryEndDocumentHook\@undefined - \global\let\Call@AtVeryEndDocument\relax -} -\newcommand*{\Call@AtEndAfterFileList}{% - \Call@AtVeryEndDocument - \let\AtEndAfterFileList\@firstofone - \ifx\AtVeryEnd@AtEndAfterFileListHook\@empty - \PackageInfo{atveryend}{Empty hook `AtEndAfterFileList'}% - \else - \PackageInfo{atveryend}{Executing hook `AtEndAfterFileList'}% - \AtVeryEnd@AtEndAfterFileListHook - \fi - \global\let\AtVeryEnd@AtEndAfterFileListHook\@undefined - \global\let\Call@AtEndAfterFileList\relax -} -\newcommand*{\Call@AtVeryVeryEnd}{% - \Call@AtEndAfterFileList - \let\AtVeryVeryEnd\@firstofone - \ifx\AtVeryEnd@AtVeryVeryEndHook\@empty - \PackageInfo{atveryend}{Empty hook `AtVeryVeryEnd'}% - \else - \PackageInfo{atveryend}{Executing hook `AtVeryVeryEnd'}% - \AtVeryEnd@AtVeryVeryEndHook - \fi - \global\let\AtVeryEnd@AtVeryVeryEndHook\@undefined - \global\let\Call@AtVeryVeryEnd\relax -} -\def\AtVeryEnd@test@standard{% - \let\AtEndDocument\@firstofone - \@enddocumenthook - \@checkend{document}% - \clearpage - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \let\@setckpt\@gobbletwo - \let\@newl@bel\@testdef - \@tempswafalse - \makeatletter - \input\jobname.aux % - \fi - \@dofilelist - \ifdim \font@submax >\fontsubfuzz\relax - \@font@warning{Size substitutions with differences\MessageBreak - up to \font@submax\space have occurred.\@gobbletwo}% - \fi - \@defaultsubs - \@refundefined - \if@filesw - \ifx \@multiplelabels \relax - \if@tempswa - \@latex@warning@no@line{Label(s) may have changed. % - Rerun to get cross-references right}% - \fi - \else - \@multiplelabels - \fi - \fi - \endgroup - \deadcycles\z@ - \@@end -} -\def\AtVeryEnd@enddocument@standard{% - \let\AtEndDocument\@firstofone - \@enddocumenthook - \@checkend{document}% - \Call@BeforeClearDocument - \clearpage - \Call@AfterLastShipout - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \let\@setckpt\@gobbletwo - \let\@newl@bel\@testdef - \@tempswafalse - \makeatletter - \input\jobname.aux % - \fi - \Call@AtVeryEndDocument - \@dofilelist - \Call@AtEndAfterFileList - \ifdim \font@submax >\fontsubfuzz\relax - \@font@warning{Size substitutions with differences\MessageBreak - up to \font@submax\space have occurred.\@gobbletwo}% - \fi - \@defaultsubs - \@refundefined - \if@filesw - \ifx \@multiplelabels \relax - \if@tempswa - \@latex@warning@no@line{Label(s) may have changed. % - Rerun to get cross-references right}% - \fi - \else - \@multiplelabels - \fi - \fi - \endgroup - \deadcycles\z@ - \Call@AtVeryVeryEnd - \@@end -} -\expandafter\def\csname AtVeryEnd@test@standard20110627\endcsname{% - \let\AtEndDocument\@firstofone - \@enddocumenthook - \@checkend{document}% - \clearpage - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \let\@setckpt\@gobbletwo - \let\@newl@bel\@testdef - \@tempswafalse - \makeatletter - \@@input\jobname.aux % - \fi - \@dofilelist - \ifdim \font@submax >\fontsubfuzz\relax - \@font@warning{Size substitutions with differences\MessageBreak - up to \font@submax\space have occurred.\@gobbletwo}% - \fi - \@defaultsubs - \@refundefined - \if@filesw - \ifx \@multiplelabels \relax - \if@tempswa - \@latex@warning@no@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@enddocument@standard20110627\endcsname{% - \let\AtEndDocument\@firstofone - \@enddocumenthook - \@checkend{document}% - \Call@BeforeClearDocument - \clearpage - \Call@AfterLastShipout - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \let\@setckpt\@gobbletwo - \let\@newl@bel\@testdef - \@tempswafalse - \makeatletter - \@@input\jobname.aux % - \fi - \Call@AtVeryEndDocument - \@dofilelist - \Call@AtEndAfterFileList - \ifdim \font@submax >\fontsubfuzz\relax - \@font@warning{Size substitutions with differences\MessageBreak - up to \font@submax\space have occurred.\@gobbletwo}% - \fi - \@defaultsubs - \@refundefined - \if@filesw - \ifx \@multiplelabels \relax - \if@tempswa - \@latex@warning@no@line{Label(s) may have changed. % - Rerun to get cross-references right}% - \fi - \else - \@multiplelabels - \fi - \fi - \endgroup - \deadcycles\z@ - \Call@AtVeryVeryEnd - \@@end -} -\expandafter\def\expandafter\AtVeryEnd@test@booklet\expandafter{% - \expandafter\twoupclearpage - \AtVeryEnd@test@standard -} -\expandafter\def\expandafter\AtVeryEnd@enddocument@booklet\expandafter{% - \expandafter\twoclearpage - \AtVeryEnd@enddocument@standard -} -\def\AtVeryEnd@test@dinbrief{% - \@checkend{document} % - \newpage - \begingroup - \if@filesw - \ifnum\c@labelgen>0 % - \immediate\closeout\@mainlbl - \makeatletter - \input \jobname@lbl\relax - \clearpage - \fi - \immediate\closeout\@mainaux - \fi - \endgroup - \deadcycles\z@ - \@@end -} -\def\AtVeryEnd@enddocument@dinbrief{% - \@checkend{document}% - \Call@BeforeClearDocument - \newpage - \Call@AfterLastShipout - \begingroup - \if@filesw - \ifnum\c@labelgen>\z@ - \immediate\closeout\@mainlbl - \makeatletter - \input \jobname@lbl\relax - \clearpage - \fi - \immediate\closeout\@mainaux - \fi - \Call@AtVeryEndDocument - \csname @dofilelist\endcsname - \Call@AtEndAfterFileList - \endgroup - \deadcycles\z@ - \Call@AtVeryVeryEnd - \@@end -} -\def\AtVeryEnd@test@combine{% - \@enddocumenthook - \@checkend{document}% - \clearpage - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \immediate\closeout\@partaux - \let\@setckpt\@gobbletwo - \let\@newl@bel\@testdef - \@tempswafalse - \makeatletter \input\c@lmainauxfile %% change here - \fi - \c@lenddoca %% a replacement - \@refundefined - \endgroup - \deadcycles\z@ - \@@end -} -\def\AtVeryEnd@enddocument@combine{% - \@enddocumenthook - \@checkend{document}% - \Call@BeforeClearDocument - \clearpage - \Call@AfterLastShipout - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \immediate\closeout\@partaux - \let\@setckpt\@gobbletwo - \let\@newl@bel\@testdef - \@tempswafalse - \makeatletter \input\c@lmainauxfile %% change here - \fi - \Call@AtVeryEndDocument - \c@lenddoca %% a replacement - \@refundefined - \endgroup - \deadcycles\z@ - \Call@AtVeryVeryEnd - \@@end -} -\long\def\AtVeryEnd@test@c@lenddoca{% - \@dofilelist - \ifdim\font@submax>\fontsubfuzz\relax - \@font@warning{% - Size substitutions with differences\MessageBreak - up to \font@submax\space have occured.\@gobbletwo - }% - \fi - \@defaultsubs - \if@filesw - \ifx\@multiplelabels\relax - \if@tempswa - \@latex@warning@no@line{% - Label(s) may have changed. % - Rerun to get cross-references right% - }% - \fi - \else - \@multiplelabels - \fi - \fi -} -\ifx\AtVeryEnd@c@lenddoca\c@lenddoca - \def\c@lenddoca{% - \@dofilelist - \Call@AtEndAfterFileList - \ifdim\font@submax>\fontsubfuzz\relax - \@font@warning{% - Size substitutions with differences\MessageBreak - up to \font@submax\space have occured.\@gobbletwo - }% - \fi - \@defaultsubs - \if@filesw - \ifx\@multiplelabels\relax - \if@tempswa - \@latex@warning@no@line{% - Label(s) may have changed. % - Rerun to get cross-references right% - }% - \fi - \else - \@multiplelabels - \fi - \fi - }% -\fi -\def\AtVeryEnd@test@jpsj{% - \if@lastpagebalancing - \global\let\@outputdblcol=\balancing@outputdblcol - \fi - \@checkend{document}% - \clearpage - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \def\global\@namedef##1##2{}% - \def\newlabel{\@testdef r}% - \def\bibcite{\@testdef b}% - \@tempswafalse - \makeatletter - \input \jobname.aux % - \if@tempswa - \@warning{% - Label(s) may have changed. % - Rerun to get cross-references right% - }% - \fi - \fi - \endgroup - \deadcycles\z@ - \@@end -} -\def\AtVeryEnd@enddocument@jpsj{% - \if@lastpagebalancing - \global\let\@outputdblcol=\balancing@outputdblcol - \fi - \@checkend{document}% - \Call@BeforeClearDocument - \clearpage - \Call@AfterLastShipout - \begingroup - \if@filesw - \immediate\closeout\@mainaux - \def\global\@namedef##1##2{}% - \def\newlabel{\@testdef r}% - \def\bibcite{\@testdef b}% - \@tempswafalse - \makeatletter - \input \jobname.aux % - \if@tempswa - \@warning{% - Label(s) may have changed. % - Rerun to get cross-references right% - }% - \fi - \fi - \Call@AtVeryEndDocument - \csname @dofilelist\endcsname - \Call@AtEndAfterFileList - \endgroup - \deadcycles\z@ - \Call@AtVeryVeryEnd - \@@end -} -\def\AtVeryEnd@Test#1#2{% - \expandafter\ifx\csname AtVeryEnd@test@#2\endcsname#1% - \expandafter\let\expandafter#1% - \csname AtVeryEnd@enddocument@#2\endcsname - \begingroup - \let\on@line\@empty - \PackageInfo{atveryend}{% - \string#1 detected (#2)% - }% - \endgroup - \expandafter\AtVeryEnd@SkipToNil - \fi -} -\def\AtVeryEnd@SkipToNil#1\@nil{} -\def\AtVeryEnd@RedefEndDocument#1{% - \ifx#1\@undefined - \else - \AtVeryEnd@Test#1{standard20110627}% - \AtVeryEnd@Test#1{standard}% - \AtVeryEnd@Test#1{booklet}% - \AtVeryEnd@Test#1{dinbrief}% - \AtVeryEnd@Test#1{combine}% - \AtVeryEnd@Test#1{jpsj}% - \AtVeryEnd@SkipToNil - \@nil - \fi -} -\AtVeryEnd@RedefEndDocument\enddocument -\AtVeryEnd@RedefEndDocument\AP@enddocument % afterpage.sty -\AtVeryEnd@RedefEndDocument\hyper@back@cite@enddocument % htx-bc.sty -\AtVeryEnd@RedefEndDocument\hyper@enddocument % hyper.sty -\AtVeryEnd@RedefEndDocument\hyper@fn@enddocument % hyper.sty -\AtVeryEnd@RedefEndDocument\cweb@save@enddocument % cweb.cls -\AtVeryEnd@RedefEndDocument\prev@enddocument % flushend.sty -\AtVeryEnd@RedefEndDocument\endorigdocument % gaceta.cls -\AtVeryEnd@RedefEndDocument\keependdoc % aguplus.sty -\AtVeryEnd@RedefEndDocument\EMenddocument % t-angles.sty -\AtVeryEnd@RedefEndDocument\docmute@enddocument % docmute.sty -\AtVeryEnd@RedefEndDocument\a@enddocument % alatex.sty -\AtVeryEnd@RedefEndDocument\enddocumentasusual % frenchle.sty -\AtVeryEnd@RedefEndDocument\old@enddocument % uwthesis.cls -\def\AtVeryEnd@document{document}% -\def\AtVeryEnd@RedefCheckEnd{% - \expandafter\def\expandafter\@checkend - \expandafter##\expandafter1\expandafter{% - \@checkend{##1}% - \def\AtVeryEnd@temp{##1}% - \ifx\AtVeryEnd@temp\AtVeryEnd@document - \let\AtVeryEnd@OrgClearpage\clearpage - \def\clearpage{% - \let\clearpage\AtVeryEnd@OrgClearpage - \Call@BeforeClearDocument - \clearpage - \Call@AfterLastShipout - }% - \fi - }% - \aftergroup\AtVeryEnd@RedefCheckEnd -}% -\AtBeginDocument{% - \AtEndDocument{% - \AtVeryEnd@RedefCheckEnd - }% -} -\AtEndDocument{% - \@ifundefined{@dofilelist}{% - \gdef\@dofilelist{% - \Call@AtVeryEndDocument - \Call@AtEndAfterFileList - }% - }{% - \begingroup - \toks@\expandafter{\@dofilelist}% - \xdef\@dofilelist{% - \noexpand\Call@AtVeryEndDocument - \the\toks@ - \noexpand\Call@AtEndAfterFileList - }% - \endgroup - }% -} -\AtBeginDocument{% - \@ifpackageloaded{scrlfile}{% - \AtVeryEnd@ifundefined{BeforeClosingMainAux}{}{% - \BeforeClosingMainAux{\Call@AfterLastShipout}% - }% - \AtVeryEnd@ifundefined{AfterReadingMainAux}{}{% - \AfterReadingMainAux{\Call@AtVeryEndDocument}% - }% - }{}% - \@ifpackageloaded{etoolbox}{% - \AtVeryEnd@ifundefined{AfterEndDocument}{}{% - \AfterEndDocument{\Call@AtVeryEndDocument}% - }% - }{}% -} -\def\AtVeryEnd@temp{% - \AtBeginDocument{% - \let\@startlabels\startlabels - \let\@mlabel\mlabel - \if@filesw - \immediate\write\@mainaux{\string\@startlabels}% - \fi - }% - \AtEndDocument{% - \if@filesw - \immediate\write\@mainaux{\string\clearpage}% - \fi - }% -} -\ifx\makelabels\AtVeryEnd@temp -\else - \expandafter\AtVeryEnd@AtEnd -\fi% -\let\AtVeryEnd@PatchLetter=N% -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname endletter\endcsname\relax -\else - \long\def\AtVeryEnd@TestEndLetter#1\@auxout#2#3\AtVeryEnd@Nil{% - \def\AtVeryEnd@temp{#2}% - \ifx\AtVeryEnd@temp\@empty - \else - \@onelevel@sanitize\AtVeryEnd@temp - \edef\AtVeryEnd@StringMlabel{% - \string\string - \string\@mlabel - \expandafter\@gobble\string\{% - }% - \def\AtVeryEnd@CatchFirst##1##2##3##4##5##6##7##8{% - ##1##2##3##4##5##6##7##8\AtVeryEnd@CatchSecond - }% - \def\AtVeryEnd@CatchSecond##1##2##3##4##5##6##7##8##9\@nil{% - ##1##2##3##4##5##6##7##8% - }% - \edef\AtVeryEnd@temp{% - \expandafter\AtVeryEnd@CatchFirst\AtVeryEnd@temp - {}{}{}{}{}{}{}{}% - {}{}{}{}{}{}{}{}% - \@nil - }% - \ifx\AtVeryEnd@temp\AtVeryEnd@StringMlabel - \expandafter\def\expandafter\endletter\expandafter{% - \endletter - \begingroup - \let\\=\relax - \let\protect\@unexpandable@protect - \let\@mlabel=\relax - \edef\x{\endgroup - \noexpand\AtEndDocument{% - \@gobble#2% - }% - }% - \x - }% - \let\AtVeryEnd@PatchLetter=Y% - \fi - \fi - }% - \expandafter\AtVeryEnd@TestEndLetter\endletter - \@auxout{}\AtVeryEnd@Nil -\fi -\ifx\AtVeryEnd@PatchLetter Y% - \begingroup - \let\on@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@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@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'. |