summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/oberdiek/auxhook.sty
blob: 74836d90fa3eefccc02673a859bf7c524dd46b71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
%%
%% This is file `auxhook.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% auxhook.dtx  (with options: `package')
%% 
%% This is a generated file.
%% 
%% Copyright (C) 2006 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.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 auxhook.dtx
%% and the derived files
%%    auxhook.sty, auxhook.pdf, auxhook.ins, auxhook.drv.
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{auxhook}%
  [2006/05/31 v1.0 Hooks for auxiliary files (HO)]
\providecommand*{\@beginmainauxhook}{}
\providecommand*{\@beginpartauxhook}{}
\newcommand{\AddLineBeginMainAux}[1]{%
  \g@addto@macro\@beginmainauxhook{%
    \immediate\write\@mainaux{#1}%
  }%
}
\newcommand{\AddLineBeginPartAux}[1]{%
  \g@addto@macro\@beginpartauxhook{%
    \immediate\write\@partaux{#1}%
  }%
}
\newcommand{\AddLineBeginAux}[1]{%
  \AddLineBeginMainAux{#1}%
  \AddLineBeginPartAux{#1}%
}
\begingroup
  \def\y#1\immediate\write\@mainaux#2#3\auxhook@nil{%
    \toks@{%
      #1\immediate\write\@mainaux{#2}%
      \@beginmainauxhook
      #3%
    }%
    \xdef\document{\the\toks@}%
    \endgroup
  }%
  \def\x#1\immediate\write\@mainaux#2#3\auxhook@nil{%
    \toks@{#3}%
    \edef\x{\the\toks@}%
    \ifx\x\@empty
      \PackageWarningNoLine{auxhook}{%
        Cannot patch \string\document,\MessageBreak
        use \string\AtBeginDocument\space instead%
      }%
      \endgroup
      \AtBeginDocument{%
        \if@filesw
          \@beginmainauxhook
        \fi
      }%
    \else
      \expandafter\y\document\auxhook@nil
    \fi
  }%
\expandafter\x\document\immediate\write\@mainaux{}\auxhook@nil
\begingroup
  \def\y#1\immediate\write\@partaux#2#3\auxhook@nil{%
    \endgroup
    \def\@include##1 {%
      #1\immediate\write\@partaux{#2}%
      \@beginpartauxhook
      #3%
    }%
  }%
  \def\x#1\immediate\write\@partaux#2#3\auxhook@nil{%
    \toks@{#3}%
    \edef\x{\the\toks@}%
    \ifx\x\@empty
      \PackageWarningNoLine{auxhook}{%
        Cannot patch \string\@include,\MessageBreak
        patch dropped%
      }%
      \endgroup
    \else
      \expandafter\y\@include{##1} \auxhook@nil
    \fi
  }%
\expandafter\x\@include{#1} \immediate\write\@partaux{}\auxhook@nil
\endinput
%%
%% End of file `auxhook.sty'.