diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/atveryend.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/oberdiek/atveryend.sty | 519 |
1 files changed, 519 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/atveryend.sty b/Master/texmf-dist/tex/latex/oberdiek/atveryend.sty new file mode 100644 index 00000000000..0c98f6026fe --- /dev/null +++ b/Master/texmf-dist/tex/latex/oberdiek/atveryend.sty @@ -0,0 +1,519 @@ +%% +%% This is file `atveryend.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% atveryend.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2009, 2010 by Heiko Oberdiek <oberdiek@uni-freiburg.de> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% This Current Maintainer of this work is Heiko Oberdiek. +%% +%% 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 + \catcode123 1 % { + \catcode125 2 % } + \def\x{\endgroup + \expandafter\edef\csname AtVeryEnd@AtEnd\endcsname{% + \catcode35 \the\catcode35\relax + \catcode64 \the\catcode64\relax + \catcode123 \the\catcode123\relax + \catcode125 \the\catcode125\relax + }% + }% +\x +\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{61}{12}% = +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{96}{12}% ` +\g@addto@macro{\AtVeryEnd@AtEnd}{\endinput}% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{atveryend}% + [2010/01/25 v1.4 Hooks at very end of document (HO)] +\let\AtVeryEnd@BeforeClearDocumentHook\@empty +\let\AtVeryEnd@AfterLastShipoutHook\@empty +\let\AtVeryEnd@AtVeryEndDocumentHook\@empty +\newcommand*{\BeforeClearDocument}{% + \g@addto@macro\AtVeryEnd@BeforeClearDocumentHook +} +\newcommand*{\AfterLastShipout}{% + \g@addto@macro\AtVeryEnd@AfterLastShipoutHook +} +\newcommand*{\AtVeryEndDocument}{% + \g@addto@macro\AtVeryEnd@AtVeryEndDocumentHook +} +\newcommand*{\Call@BeforeClearDocument}{% + \let\BeforeClearDocument\@firstofone + \ifx\AtVeryEnd@BeforeClearDocumentHook\@empty + \PackageInfo{atveryend}{Empty hook `BeforeClearDocument'}% + \else + \PackageInfo{atveryend}{Executing hook `BeforeClearDocument'}% + \AtVeryEnd@AfterLastShipoutHook + \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 +} +\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 + \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\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 + \endgroup + \deadcycles\z@ + \@@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@ + \@@end +} +\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 + \endgroup + \deadcycles\z@ + \@@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{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 +\AtBeginDocument{% + \@ifpackageloaded{scrlfile}{% + \@ifundefined{BeforeClosingMainAux}{}{% + \BeforeClosingMainAux{\Call@AfterLastShipout}% + }% + \@ifundefined{AfterReadingMainAux}{}{% + \AfterReadingMainAux{\Call@AtVeryEndDocument}% + }% + }{}% + \@ifpackageloaded{etoolbox}{% + \@ifundefined{AfterEndDocument}{}{% + \AfterEndDocument{\Call@AtVeryEndDocument}% + }% + }{}% + \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 + }% + \AtEndDocument{% + \AtVeryEnd@RedefCheckEnd + }% +} +\AtEndDocument{% + \@ifundefined{@dofilelist}{% + \gdef\@dofilelist{\Call@AtVeryEndDocument}% + }{% + \begingroup + \toks@\expandafter{\@dofilelist}% + \xdef\@dofilelist{% + \noexpand\Call@AtVeryEndDocument + \the\toks@ + }% + \endgroup + }% +} +\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{% + \@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 +\endinput +%% +%% End of file `atveryend.sty'. |