From 3a0595042f7a56658ecc4a51fe68f2ab4312bc49 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 22 Apr 2007 17:14:12 +0000 Subject: atbegshi 1.2 (oberdiek 20apr07) git-svn-id: svn://tug.org/texlive/trunk@4170 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/generic/oberdiek/atbegshi.sty | 575 +++++++++++++++++++++ 1 file changed, 575 insertions(+) create mode 100644 Master/texmf-dist/tex/generic/oberdiek/atbegshi.sty (limited to 'Master/texmf-dist/tex/generic/oberdiek') diff --git a/Master/texmf-dist/tex/generic/oberdiek/atbegshi.sty b/Master/texmf-dist/tex/generic/oberdiek/atbegshi.sty new file mode 100644 index 00000000000..854e6e0cd59 --- /dev/null +++ b/Master/texmf-dist/tex/generic/oberdiek/atbegshi.sty @@ -0,0 +1,575 @@ +%% +%% This is file `atbegshi.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% atbegshi.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2007 by Heiko Oberdiek +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. 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 atbegshi.dtx +%% and the derived files +%% atbegshi.sty, atbegshi.pdf, atbegshi.ins, atbegshi.drv, +%% atbegshi-test1.tex, atbegshi-test2.tex. +%% +\expandafter\edef\csname AtBegShi@End\endcsname{% + \catcode40 \the\catcode40\relax % ( + \catcode41 \the\catcode41\relax % ) + \catcode44 \the\catcode44\relax % , + \catcode45 \the\catcode45\relax % - + \catcode46 \the\catcode46\relax % . + \catcode58 \the\catcode58\relax % : + \catcode61 \the\catcode61\relax % = + \catcode64 \the\catcode64\relax % @ + \catcode94 \the\catcode94\relax % ^ + \catcode96 \the\catcode96\relax % ` + \noexpand\endinput +} +\catcode40 12 % ( +\catcode41 12 % ) +\catcode44 12 % , +\catcode45 12 % - +\catcode46 12 % . +\catcode58 12 % : +\catcode61 12 % = +\catcode64 11 % @ +\catcode94 7 % ^ +\catcode96 12 % ` +\begingroup + \expandafter\let\expandafter\x\csname ver@atbegshi.sty\endcsname + \ifcase 0% + \ifx\x\relax % plain + \else + \ifx\x\empty % LaTeX + \else + 1% + \fi + \fi + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{atbegshi}{The package is already loaded}% + \endgroup + \expandafter\endinput + \fi +\endgroup +\begingroup + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[{#3}]% + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@atbegshi.sty\endcsname +\ProvidesPackage{atbegshi}% + [2007/04/19 v1.2 At begin shipout hook (HO)] +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname PackageWarning\endcsname\relax + \def\AtBegShi@Warning#1{% + \begingroup + \newlinechar=10 % + \def\@spaces{\space\space\space\space}% + \def\MessageBreak{% + ^^J(atbegshi)\@spaces\@spaces\@spaces\@spaces + }% + \immediate\write16{% + ^^JPackage atbegshi Warning: #1 % + on input line \the\inputlineno.^^J% + }% + \endgroup + }% +\else + \def\AtBegShi@Warning{% + \PackageWarning{atbegshi}% + }% +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname PackageInfo\endcsname\relax + \def\AtBegShi@Info#1{% + \begingroup + \newlinechar=10 % + \def\@spaces{\space\space\space\space}% + \def\MessageBreak{% + ^^J(atbegshi) \@spaces\@spaces\@spaces + }% + \immediate\write-1{% + ^^JPackage atbegshi Info: #1.^^J% + }% + \endgroup + }% +\else + \def\AtBegShi@Info#1{% + \begingroup + \def\on@line{}% + \PackageInfo{atbegshi}{#1}% + \endgroup + }% +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname @ifdefinable\endcsname\relax + \def\AtBegShi@CheckDefinable#1{% + \ifcase\ifx#1\relax + \@ne + \else + \ifx#1\@undefined + \@ne + \else + \z@ + \fi + \fi + \errmessage{% + Package atbegshi: \string#1\space + is already defined% + }% + \endgroup + \fi + }% +\else + \def\AtBegShi@CheckDefinable#1{% + \@ifdefinable{#1}{}% + }% +\fi +\newif\ifAtBegShi@Discarded +\AtBegShi@CheckDefinable\AtBeginShipoutDiscard +\def\AtBeginShipoutDiscard{% + \deadcycles=\z@ + \global\AtBegShi@Discardedtrue +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname currentgrouplevel\endcsname\relax + \catcode`X=9 % ignore + \catcode`E=14 % comment +\else + \catcode`X=14 % comment + \catcode`E=9 % ignore +\fi +\def\AtBegShi@Shipout{% +X \begingroup +X \setbox\AtBeginShipoutBox=\hbox\bgroup +X \kern\p@ +E \edef\AtBegShi@GroupLevel{\number\currentgrouplevel}% + \afterassignment\AtBegShi@Test +X \global + \setbox\AtBeginShipoutBox=% +} +\def\AtBegShi@Test{% +X \ifdim\lastkern=\z@ +X \aftergroup\egroup +X \aftergroup\endgroup +X \expandafter\aftergroup +X \else +X \egroup +X \endgroup +E \ifnum\AtBegShi@GroupLevel=\currentgrouplevel +E \else +E \expandafter\aftergroup + \fi + \AtBegShi@Output +} +\catcode`\X=11 % +\catcode`\E=11 % +\def\AtBegShi@Output{% + \ifvoid\AtBeginShipoutBox + \AtBegShi@Warning{Ignoring void shipout box}% + \else + \let\AtBegShi@OrgProtect\protect + \csname set@typeset@protect\endcsname + \global\AtBegShi@Discardedfalse + \AtBegShi@Hook + \AtBegShi@HookNext + \gdef\AtBegShi@HookNext{}% + \ifAtBegShi@Discarded + \AtBegShi@Info{Shipout page discarded}% + \global\AtBegShi@Discardedfalse + \begingroup + \setbox\AtBeginShipoutBox\box\AtBeginShipoutBox + \endgroup + \let\protect\AtBegShi@OrgProtect + \else + \AtBegShi@First + \let\protect\AtBegShi@OrgProtect + \AtBegShi@OrgShipout\box\AtBeginShipoutBox + \fi + \fi +} +\def\AtBegShi@First{% + \begingroup + \def\@empty{}% + \ifx\AtBegShi@HookFirst\@empty + \else + \setbox\z@=\vbox{% + \begingroup + \AtBegShi@HookFirst + \endgroup + }% + \wd\z@=\z@ + \ht\z@=\z@ + \dp\z@=\z@ + \global\setbox\AtBeginShipoutBox=\vbox{% + \baselineskip\z@skip + \lineskip\z@skip + \lineskiplimit\z@ + \copy\z@ + \copy\AtBeginShipoutBox + }% + \fi + \global\let\AtBegShi@First\@empty + \global\let\AtBeginShipoutFirst\AtBegShi@FirstDisabled + \endgroup +} +\gdef\AtBegShi@Hook{} +\gdef\AtBegShi@HookNext{} +\gdef\AtBegShi@HookFirst{} +\AtBegShi@CheckDefinable\AtBeginShipout +\def\AtBeginShipout{% + \AtBegShi@AddHook\AtBegShi@Hook +} +\AtBegShi@CheckDefinable\AtBeginShipoutNext +\def\AtBeginShipoutNext{% + \AtBegShi@AddHook\AtBegShi@HookNext +} +\AtBegShi@CheckDefinable\AtBeginShipoutFirst +\def\AtBeginShipoutFirst{% + \AtBegShi@AddTo\AtBegShi@HookFirst +} +\long\def\AtBegShi@FirstDisabled#1{% + \AtBegShi@Warning{% + First page is already shipped out, ignoring\MessageBreak + \string\AtBeginShipoutFirst + }% +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname g@addto@macro\endcsname\relax + \long\def\AtBegShi@AddTo#1#2{% + \begingroup + \toks\z@\expandafter{#1#2}% + \xdef#1{\the\toks\z@}% + \endgroup + }% +\else + \let\AtBegShi@AddTo\g@addto@macro +\fi +\long\def\AtBegShi@AddHook#1#2{% + \AtBegShi@AddTo#1{\AtBegShi@Item{#2}}% +} +\long\def\AtBegShi@Item#1{% + \ifAtBegShi@Discarded + \else + #1% + \ifvoid\AtBeginShipoutBox + \AtBegShi@Warning{% + Shipout box was voided by hook,\MessageBreak + ignoring shipout box% + }% + \AtBeginShipoutDiscard + \fi + \fi +} +\AtBegShi@CheckDefinable\AtBeginShipoutInit +\def\AtBeginShipoutInit{% + \csname newbox\endcsname\AtBeginShipoutBox + \AtBegShi@CheckDefinable\AtBegShi@OrgShipout + \global\let\AtBegShi@OrgShipout\shipout + \global\let\shipout\AtBegShi@Shipout + \gdef\AtBeginShipoutInit{}% +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname AtBeginDocument\endcsname\relax + \AtBeginShipoutInit +\else + \AtBeginDocument{\AtBeginShipoutInit}% +\fi +\def\AtBegShi@AbortIfUndefined#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\AtBegShi@End + \fi +} +\AtBegShi@AbortIfUndefined{currentgrouplevel} +\AtBegShi@AbortIfUndefined{AtBeginDocument} +\AtBegShi@AbortIfUndefined{@ifpackageloaded} +\AtBegShi@AbortIfUndefined{@ifclassloaded} +\def\AtBegShi@PatchCrop{% + \begingroup + \def\AtBegShi@Crop@shipout{% + \afterassignment\CROP@ship + \setbox\@cclv=% + }% + \def\AtBegShi@Crop@ship{% + \ifvoid\@cclv + \expandafter\aftergroup + \fi + \CROP@@ship + }% + \def\AtBegShi@Crop@shiplist{% + \lineskip\z@ + \lineskiplimit\z@ + \baselineskip\z@ + \CROP@kernel + \box\@cclv + }% + \def\AtBegShi@Crop@@ship{% + \CROP@shipout\vbox{% + \CROP@shiplist + }% + }% + \ifx\AtBegShi@Crop@ship\CROP@ship + \ifx\AtBegShi@Crop@shiplist\CROP@shiplist + \ifx\AtBegShi@Crop@@ship\CROP@@ship + \let\AtBegShi@found\relax + \ifx\shipout\AtBegShi@Crop@shipout + \def\AtBegShi@found{\shipout}% + \else\ifx\AtBegShi@OrgShipout\AtBegShi@Crop@shipout + \def\AtBegShi@found{\AtBegShi@OrgShipout}% + \else\ifx\@EveryShipout@Org@Shipout\AtBegShi@Crop@shipout + \def\AtBegShi@found{\@EveryShipout@Org@Shipout}% + \else\ifx\GPTorg@shipout\AtBegShi@Crop@shipout + \def\AtBegShi@found{\GPTorg@shipout}% + \else\ifx\THBorg@shipout\AtBegShi@Crop@shipout + \def\AtBegShi@found{\THBorg@shipout}% + \else\ifx\mem@oldshipout\AtBegShi@Crop@shipout + \def\AtBegShi@found{\mem@oldshipout}% + \fi\fi\fi\fi\fi\fi + \ifx\AtBegShi@found\relax + \else + \expandafter\endgroup + \expandafter\def\AtBegShi@found{% + \edef\AtBegShi@GroupLevel{\number\currentgrouplevel}% + \afterassignment\CROP@ship + \setbox\AtBeginShipoutBox=% + }% + \def\CROP@ship{% + \ifnum\AtBegShi@GroupLevel=\currentgrouplevel + \else + \expandafter\aftergroup + \fi + \CROP@@ship + }% + \def\CROP@shiplist{% + \lineskip\z@ + \lineskiplimit\z@ + \baselineskip\z@ + \CROP@kernel + \box\AtBeginShipoutBox + }% + \def\CROP@@ship{% + \ifvoid\AtBeginShipoutBox + \else + \setbox\AtBeginShipoutBox=\vbox{% + \CROP@shiplist + }% + \expandafter\CROP@shipout + \expandafter\box + \expandafter\AtBeginShipoutBox + \fi + }% + \AtBegShi@Info{Package `crop' patched}% + \begingroup + \fi + \fi + \fi + \fi + \endgroup + \let\AtBegShi@PatchCrop\relax +} +\@ifpackageloaded{crop}{% + \AtBegShi@PatchCrop +}{% + \AtBeginDocument{\AtBegShi@PatchCrop}% +} +\def\AtBegShi@PatchEveryshi{% + \begingroup + \long\def\AtBegShi@Everyshi@shipout{% + \afterassignment\@EveryShipout@Test + \global\setbox\@cclv= % + }% + \long\def\AtBegShi@Everyshi@Test{% + \ifvoid\@cclv\relax + \aftergroup\@EveryShipout@Output + \else + \@EveryShipout@Output + \fi + }% + \ifx\AtBegShi@Everyshi@Test\@EveryShipout@Test + \let\AtBegShi@found\relax + \ifx\shipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\shipout}% + \else\ifx\AtBegShi@OrgShipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\AtBegShi@OrgShipout}% + \else\ifx\CROP@shipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\CROP@shipout}% + \else\ifx\GPTorg@shipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\GPTorg@shipout}% + \else\ifx\THBorg@shipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\THBorg@shipout}% + \else\ifx\mem@oldshipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\mem@oldshipout}% + \else + \expandafter\ifx\csname @EveryShipout@Org@Shipout\endcsname + \relax + \ifx\@EveryShipout@Shipout\AtBegShi@Everyshi@shipout + \def\AtBegShi@found{\@EveryShipout@Shipout}% + \fi + \fi + \fi\fi\fi\fi\fi\fi + \ifx\AtBegShi@found\relax + \else + \expandafter\endgroup + \expandafter\def\AtBegShi@found{% + \edef\AtBegShi@GroupLevel{\number\currentgrouplevel}% + \afterassignment\@EveryShipout@Test + \setbox\AtBeginShipoutBox=% + }% + \def\@EveryShipout@Test{% + \ifnum\AtBegShi@GroupLevel=\currentgrouplevel + \else + \expandafter\aftergroup + \fi + \AtBegShi@Everyshi@Output + }% + \def\AtBegShi@Everyshi@Output{% + \ifvoid\AtBeginShipoutBox + \else + \global\setbox\@cclv\box\AtBeginShipoutBox + \expandafter\@EveryShipout@Output + \fi + }% + \AtBegShi@Info{Package `everyshi' patched}% + \begingroup + \fi + \fi + \endgroup + \let\AtBegShi@PatchEveryshi\relax +} +\@ifpackageloaded{everyshi}{% + \AtBegShi@PatchEveryshi +}{% + \AtBeginDocument{\AtBegShi@PatchEveryshi}% +} +\def\AtBegShi@PatchMemoir{% + \begingroup + \def\AtBegShi@Memoir@shipout{% + \afterassignment\mem@shipi + \setbox\@cclv=% + }% + \def\AtBegShi@Memoir@shipi{% + \ifvoid\@cclv + \expandafter\aftergroup + \fi + \mem@shipii + }% + \def\AtBegShi@Memoir@shipiiA{% + \mem@oldshipout\vbox{% + \trimmarks + \unvbox\@cclv + }% + }% + \def\AtBegShi@Memoir@shipiiB{% + \ifvoid\@cclv + \mem@oldshipout\box\@cclv + \else + \mem@oldshipout\vbox{% + \trimmarks + \unvbox\@cclv + }% + \fi + }% + \ifx\AtBegShi@Memoir@shipi\mem@shipi + \ifcase\ifx\AtBegShi@Memoir@shipiiA\mem@shipii + \z@ + \else + \ifx\AtBegShi@Memoir@shipiiB\mem@shipii + \z@ + \else + \@ne + \fi + \fi + \let\AtBegShi@found\relax + \ifx\shipout\AtBegShi@Memoir@shipout + \def\AtBegShi@found{\shipout}% + \else\ifx\AtBegShi@OrgShipout\AtBegShi@Memoir@shipout + \def\AtBegShi@found{\AtBegShi@OrgShipout}% + \else\ifx\CROP@shipout\AtBegShi@Memoir@shipout + \def\AtBegShi@found{\CROP@shipout}% + \else\ifx\GPTorg@shipout\AtBegShi@Memoir@shipout + \def\AtBegShi@found{\GPTorg@shipout}% + \else\ifx\THBorg@shipout\AtBegShi@Memoir@shipout + \def\AtBegShi@found{\THBorg@shipout}% + \else\ifx\@EveryShipout@Org@Shipout\AtBegShi@Memoir@shipout + \def\AtBegShi@found{\@EveryShipout@Org@Shipout}% + \fi\fi\fi\fi\fi\fi + \ifx\AtBegShi@found\relax + \else + \expandafter\endgroup + \expandafter\def\AtBegShi@found{% + \edef\AtBegShi@GroupLevel{\number\currentgrouplevel}% + \afterassignment\mem@shipi + \setbox\AtBeginShipoutBox=% + }% + \def\mem@shipi{% + \ifnum\AtBegShi@GroupLevel=\currentgrouplevel + \else + \expandafter\aftergroup + \fi + \mem@shipii + }% + \def\mem@shipii{% + \ifvoid\AtBeginShipoutBox + \else + \setbox\AtBeginShipoutBox=\vbox{% + \trimmarks + \ifvbox\AtBeginShipoutBox + \unvbox\AtBeginShipoutBox + \else + \box\AtBeginShipoutBox + \fi + }% + \expandafter\mem@oldshipout + \expandafter\box + \expandafter\AtBeginShipoutBox + \fi + }% + \AtBegShi@Info{Class `memoir' patched}% + \begingroup + \fi + \fi + \fi + \endgroup + \let\AtBegShi@PatchMemoir\relax +} +\@ifclassloaded{memoir}{% + \AtBegShi@PatchMemoir +}{% + \AtBeginDocument{\AtBegShi@PatchMemoir}% +} +\AtBegShi@End +\endinput +%% +%% End of file `atbegshi.sty'. -- cgit v1.2.3