summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-01-11 00:37:03 +0000
committerKarl Berry <karl@freefriends.org>2011-01-11 00:37:03 +0000
commita18f121416672b65166583b9b12157ae1711ae07 (patch)
tree017a8b3423da03813479b1667bbe0ec0dc501910
parent9bdd9f27ea5243115a8b2f0aa891bfdf6dfdddf1 (diff)
filehook 0.5 (10jan11)
git-svn-id: svn://tug.org/texlive/trunk@21011 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/filehook/filehook.pdfbin439361 -> 460210 bytes
-rw-r--r--Master/texmf-dist/source/latex/filehook/filehook.dtx185
-rw-r--r--Master/texmf-dist/source/latex/filehook/filehook.ins1
-rw-r--r--Master/texmf-dist/tex/latex/filehook/filehook-fink.sty2
-rw-r--r--Master/texmf-dist/tex/latex/filehook/filehook-listings.sty2
-rw-r--r--Master/texmf-dist/tex/latex/filehook/filehook-memoir.sty2
-rw-r--r--Master/texmf-dist/tex/latex/filehook/filehook-scrlfile.sty2
-rw-r--r--Master/texmf-dist/tex/latex/filehook/filehook.sty12
-rw-r--r--Master/texmf-dist/tex/latex/filehook/pgf-filehook.sty84
9 files changed, 264 insertions, 26 deletions
diff --git a/Master/texmf-dist/doc/latex/filehook/filehook.pdf b/Master/texmf-dist/doc/latex/filehook/filehook.pdf
index b911af05491..13b818d581b 100644
--- a/Master/texmf-dist/doc/latex/filehook/filehook.pdf
+++ b/Master/texmf-dist/doc/latex/filehook/filehook.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/filehook/filehook.dtx b/Master/texmf-dist/source/latex/filehook/filehook.dtx
index 35398cb4fe1..54edfe21bb2 100644
--- a/Master/texmf-dist/source/latex/filehook/filehook.dtx
+++ b/Master/texmf-dist/source/latex/filehook/filehook.dtx
@@ -19,7 +19,7 @@
%% This work consists of the files filehook.dtx, filehook.ins
%% and the derived file filehook.sty.
%%
-%% $Id: filehook.dtx 2005 2011-01-03 22:53:56Z martin $
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
% \fi
%
% \iffalse
@@ -29,12 +29,12 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{filehook}
%<*package>
- [2011/01/03 v0.4 Hooks for input files]
+ [2011/01/09 v0.5 Hooks for input files]
%</package>
%
%<*driver>
-\documentclass{ydoc}[2011/01/03]
-\usepackage{filehook}[2011/01/03]
+\documentclass{ydoc}[2011/01/09]
+\usepackage{filehook}[2011/01/09]
\usepackage{ifpdf}
\usepackage{hyperref}
\usepackage{array}
@@ -60,7 +60,7 @@
%</driver>
% \fi
%
-% \CheckSum{939}
+% \CheckSum{976}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -95,6 +95,7 @@
% Readded fink compatibility code.
% Updated documentation.
% }
+% \changes{v0.5}{2011/01/09}{Added PGF key interface for hooks. Added macro to clear hooks.}
%
% \GetFileInfo{filehook.dtx}
%
@@ -130,7 +131,7 @@
% These package changes some internal \LaTeX{} macros used to load input files so that they include `hooks'.
% A hook is an (internal) macro executed at specific points. Normally it is initially empty, but can be extended using
% an user level macro. The most common hook in \LaTeX{} is the `At-Begin-Document' hook. Code can be added to this hook
-% using \Macro\AtBeginDocument{<\TeX code>}.
+% using \Macro\AtBeginDocument{<\TeX\ code>}.
%
%
% This package provides hooks for files read by the \LaTeX{} macros \Macro\input, \Macro\include and
@@ -224,8 +225,8 @@
% For \Macro\input files the `Begin' hook is executed before the \Macro\AtBeginOfInputs hook and the `End' hook after
% the \Macro\AtEndOfInputs.
% Similarly, for \Macro\include files the `Begin' hook is executed before the \Macro\AtBeginOfIncludes hook and the `End' hook after
-% the \Macro\AfterIncludes (!).
-% For files read by \Macro\InputIfFileExists (e.g. also for \Macro\usepackage, etc.) they are executed before and after the
+% the \Macro\AfterIncludes\relax (!).
+% For files read by \Macro\InputIfFileExists\relax (e.g. also for \Macro\usepackage, etc.) they are executed before and after the
% \Macro\AtBeginOfFiles and \Macro\AtEndOfFiles hooks, respectively.
% Note that the \Macro\AtBeginOfEveryFile hook is executed before the \Macro\AtBeginOfPackageFile/\Macro\AtBeginOfClassFile hooks
% and that the \Macro\AtEndOfEveryFile hook is executed also before the hooks \Macro\AtEndOfPackageFile/\Macro\AtEndOfClassFile.
@@ -238,12 +239,12 @@
% \DescribeMacro{\AtEndOfFiles}{<\TeX\ code>}
% These macros add the given \marg{code} to two hooks executed for all files read using the \Macro\InputIfFileExists macro. This macro is used internally by the
% \Macro\input, \Macro\include and \Macro\usepackage/\Macro\RequirePackage macros. Packages and classes might use it to include additional or auxiliary files.
-% Authors can exclude those files from the hooks by using \Macro\IfFileExists{<file name>}|{\@input\@filef@und}{}| instead.
+% Authors can exclude those files from the hooks by using the following code instead:\\\hspace*{\bigskipamount}\Macro\IfFileExists{<file name>}|{\@input\@filef@und}{}|
%
-% \DescribeMacro{\AtBeginOfFile}{<file name with extension>}{<\TeX\ code>}
-% \DescribeMacro{\AtEndOfFile}{<file name with extension>}{<\TeX\ code>}
-% Like the {\Macro{...OfIncludeFile}{<file name>}{<\TeX\ code>}} macros above, just for `all' read files. Here the \meta{file name} should include the file
-% extension!
+% \DescribeMacro{\AtBeginOfFile}{<file name>}{<\TeX\ code>}
+% \DescribeMacro{\AtEndOfFile}{<file name>}{<\TeX\ code>}
+% Like the {\Macro{...OfIncludeFile}{<file name>}{<\TeX\ code>}} macros above, just for `all' read files.
+% If the \meta{file name} does not include a file extension it will be set to `|.tex|'.
%
% The `all files' hooks are closer to the file content than the \Macro\input and \Macro\include hook, i.e.\ the \Macro\AtBeginOfFiles comes \emph{after} the \Macro\AtBeginOfIncludes and
% the \Macro\AtEndOfFiles comes \emph{before} the \Macro\AtEndOfIncludes hook.
@@ -266,6 +267,7 @@
% These file-specific macros take the two arguments. The \meta{code} is only executed for the file with the given \meta{file name}
% and only if it is read using \Macro\include.
% The \meta{file name} should be identical to the name used for \Macro\include and not include the `|.tex|' extension.
+% Files with a different extension are neither supported by \Macro\include nor this hooks.
%
% The following figure shows the positions of the hooks inside the macro:\par\medskip
% \centerline{\hbox{\vbox{%
@@ -296,8 +298,8 @@
%
% \DescribeMacro{\AtBeginOfInputFile}{<file name>}{<\TeX\ code>}
% \DescribeMacro{\AtEndOfInputFile}{<file name>}{<\TeX\ code>}
-% Like the \Macro{...OfIncludeFile}{<file name>}{code} macros above, just for file read using \Macro\input. Here the \meta{file name} should include the file
-% extension!
+% Like the \Macro{...OfIncludeFile}{<file name>}{code} macros above, just for file read using \Macro\input.
+% If the \meta{file name} does not include a file extension it will be set to `|.tex|'.
%
% The following figure shows the positions of the hooks inside the macro:\par\medskip
% \centerline{\hbox{\vbox{%
@@ -324,7 +326,7 @@
% This macros install the given \MacroArgs<\TeX\ code> in the `AtBegin' and `AtEnd' hooks of the given package file.
% The \Macro\AtBeginOfPackageFile simply executes \Macro\AtBeginOfFile{<package name>.sty}{<\TeX code>}.
% Special care is taken to ensure that the `AtEnd' code is executed \emph{after} any code installed by the package itself
-% using the \LaTeX\ macro \Macro\AtEndOfPackage.
+% using the \LaTeX\ macro \Macro\AtEndOfPackage. Note that it is therefore executed after the `AtEndOfEveryFile' hook.
% If the starred version is used and the package is already loaded the code
% is executed right away.
%
@@ -350,6 +352,7 @@
% The macro \Macro\AtBeginOfClassFile simply executes \Macro\AtBeginOfFile{<class name>.cls}{\ldots}.
% Special care is taken to ensure that the `AtEnd' code is executed \emph{after} any code installed by the class itself
% using the \LaTeX\ macro \Macro\AtEndOfClass.
+% Note that it is therefore executed after the `AtEndOfEveryFile' hook.
% If the starred version is used and the class is already loaded the code
% is executed right away.
%
@@ -365,11 +368,61 @@
% }}}%
% }}}
%
+% \subsection{Clearing Hooks}
+% \DescribeMacro\ClearHook\AlsoMacro{At...Of...}<argument(s) of hook macro>
+% Using\marginpar{New in v0.5 2011/01/09} this macro existing hooks can be globally cleared, i.e.\ set to empty.
+% This should be used with care because it will also remove all (user level) hook code set
+% by packages into this hook.
+% Note that the special hook code installed by the packages \pkg{currfile} and \pkg{svn-multi}
+% as well as the compatibility code described in section~\ref{sec:comp} is not affected.
+% The syntax for this macro is the same as for the normal hook macros only with a leading \Macro\ClearHook,
+% where the \meta{code} argument is mandatory but its content is ignored.
+% Examples:\\
+% \hspace*{\bigskipamount}\Macro\ClearHook\AlsoMacro\AtBeginOfInputFile{<file name>}{<ignored>}\\
+% \hspace*{\bigskipamount}\Macro\ClearHook\AlsoMacro\AtBeginOfFiles{<ignored>}
+%
+%
+%
+% \clearpage
+% \section{PGF Key Interface}
+% An auxiliary package |pgf-filehook| is provided which adds support for the versatile \pkg{pgfkeys} interface.
+% This interface is heavily used by \pkg{pgf} (portable graphics format) and its higher level format Ti\textit{k}Z.
+% It allows the definition and execution of styles and commands (macros) using a \MacroArgs<key>'='<value> format.
+% Main benefits over similar formats is the support for a ``directory structure'' inside the key and the ability
+% to call functions on the value before it gets processed by the key. The main way to define and execute keys
+% is the macro \Macro\pgfkeys{<key>'='<value>',...'}. Ti\textit{k}Z provides the similar macro \Macro\tikzstyle
+% which defaults to the main path `|/tikz|'.
+% More detailed information can be found in the official |pgfmanual|.
+%
+% All |filehook| macros described in the previous section (\Macro{AtXXXOfYYY}) can also be accessed using the
+% pgf keys directory `|/filehook|', where all hook type have an own sub-directory (|/filehook/YYY|) in which
+% the hooks for this type are located (|/filehook/YYY/AtXXX|).
+% For example {\Macro\AtBeginOfInputs{<code>}} can also be
+% accessed using \\\hspace*{\parindent}\Macro\pgfkeys{'/filehook/Inputs/AtBegin='{<code>}}\\ or \Macro\AfterIncludeFile{<file name>}{<code>} as
+% \\\hspace*{\parindent}{\Macro\pgfkeys{'/filehook/IncludeFile/After='{<file name>}{<code>}}}\\ as well as
+% \Macro\AtEndOfClassFile*{<file name>}{<code>} as
+% \\\hspace*{\parindent}{\Macro\pgfkeys{'/filehook/ClassFile/AtEnd='*{<file name>}{<code>}}.}
+%
+% \DescribeMacro\pgffilehook{<key>'='<value>',...'}
+% This macro is like \Macro\pgfkeys but defaults to the `|/filehook|' directory, so that it can be dropped from the
+% \meta{key}. Note that |pgfkeys| also supports to ``change the directory'' using \MacroArgs<directory>'/.cd', so that
+% it does not need to be included in further keys. All directories are defined as `\textit{is family}' so that the |/.cd| is
+% assumed if the directory is used on its own.
+% For example\\\centerline{\Macro\pgfkeys{'/filehook/Inputs/AtBegin='{<code>}',/filehook/Inputs/AtEnd='{<code>}}}
+% can be shorten as\\\centerline{\Macro\pgffilehook{'Inputs,AtBegin='{<code>}',AtEnd='{<code>}}.}
+%
+% \medskip
+% Some of the pgf key functions can become useful, e.g.\ if the hook code should be expanded before it is added to the hook:\\
+% \hspace*{\parindent}\Macro\pgffilehook{'EveryFile/AtBegin/.expand once='{\AlsoMacro\headertext\space\AlsoMacro\currfilename}}\\
+% will expand the first macro \Macro\headertext\relax (actually the first token) in the hook code once (using \Macro\expandafter), but
+% not any other tokens. In this example future changes of \Macro\headertext would not have any effect on the hook code, but
+% \Macro\currfilename will be expanded for every file.
+% Other useful functions are `|.expand twice|' (expand the first token twice) and `|.expanded|' (expand the whole hook code using \Macro\edef).
%
% \clearpage
-% \section{Compatibility Issues with Classes and other Packages}
+% \section{Compatibility Issues with Classes and other Packages}\label{sec:comp}
% The |filehook| package might clash with other packages or classes which also redefine \Macro\InputIfFileExists
-% or internal macros used by \Macro\include and \Macro\input (which are \Macro\@input@ and \Macro\@iinput).
+% or internal macros used by \Macro\include and \Macro\input\relax (which are \Macro\@input@ and \Macro\@iinput).
% Special compatibility code is in place for the packages listed below (in their current implementation).
% If any other unknown definition of \Macro\InputIfFileExists is found an error will be raised.
% The package option `|force|' can be used to prevent this and to force the redefinition of this macro.
@@ -411,7 +464,7 @@
% \subsubsection*{listings}
% The \pkg{listings} package uses \Macro\input inside \Macro\lstinputlisting. Therefore the |InputFile|(|s|) and |File|(|s|) hooks are also triggered for these files.
% Please note that this hooks are executing inside a verbatim environment. While the code in the hook is not affected (because it was added outside the verbatim
-% environment), any further code read using any input macro (\Macro\input, \Macro\@input, \Macro\@@input (\TeX's \Macro\input), \ldots) will be processed verbatim and typeset
+% environment), any further code read using any input macro (\Macro\input, \Macro\@input, \Macro\@@input\relax (\TeX's \Macro\input), \ldots) will be processed verbatim and typeset
% as part of the listing.
% Since v0.4 this macro is automatically patched so \Macro\@input is used instead to avoid this issue.
%
@@ -450,7 +503,6 @@
% \end{tabular}
% \end{table}
%
-% \clearpage
% \section{Upgrade Guide}
% \label{sec:upgrade}
% This sections gives information for users of older versions of this package which unfortunately might not be 100\% backwards compatible.
@@ -924,6 +976,21 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ClearHook}
+% Clears the hook by temporary redefining the prefix and append macros
+% to do a simple definition to empty.
+% \begin{macrocode}
+\newcommand*\ClearHook{%
+ \begingroup
+ \def\filehook@prefix##1##2{%
+ \gdef##1{}%
+ \endgroup
+ }%
+ \let\filehook@append\filehook@prefix
+}
+% \end{macrocode}
+% \end{macro}
+%
%
%
%
@@ -1508,6 +1575,84 @@
%
% \iffalse
%</package>
+%<*pgf>
+% \fi
+%
+% \subsection{Support for PGF Keys}
+%
+% \begin{macrocode}
+\ProvidesPackage{pgf-filehook}[2010/01/07 v1.0 PGF keys for the filehook package]
+\RequirePackage{filehook}
+\RequirePackage{pgfkeys}
+
+\pgfkeys{%
+ /filehook/.is family,
+ /filehook,
+%
+ EveryFile/.is family,
+ EveryFile/AtBegin/.code={\AtBeginOfEveryFile{#1}},
+ EveryFile/AtBegin/.value required,
+ EveryFile/AtEnd/.code={\AtEndOfEveryFile{#1}},
+ EveryFile/AtEnd/.value required,
+%
+ Files/.is family,
+ Files/AtBegin/.code={\AtBeginOfFiles{#1}},
+ Files/AtBegin/.value required,
+ Files/AtEnd/.code={\AtEndOfFiles{#1}},
+ Files/AtEnd/.value required,
+%
+ File/.is family,
+ File/AtBegin/.code 2 args={\AtBeginOfFile{#1}{#2}},
+ File/AtBegin/.value required,
+ File/AtEnd/.code 2 args={\AtEndOfFile{#1}{#2}},
+ File/AtEnd/.value required,
+%
+ Inputs/.is family,
+ Inputs/AtBegin/.code={\AtBeginOfInputs{#1}},
+ Inputs/AtBegin/.value required,
+ Inputs/AtEnd/.code={\AtEndOfInputs{#1}},
+ Inputs/AtEnd/.value required,
+%
+ InputFile/.is family,
+ InputFile/AtBegin/.code 2 args={\AtBeginOfInputFile{#1}{#2}},
+ InputFile/AtBegin/.value required,
+ InputFile/AtEnd/.code 2 args={\AtEndOfInputFile{#1}{#2}},
+ InputFile/AtEnd/.value required,
+%
+ Includes/.is family,
+ Includes/AtBegin/.code={\AtBeginOfIncludes{#1}},
+ Includes/AtBegin/.value required,
+ Includes/AtEnd/.code={\AtEndOfIncludes{#1}},
+ Includes/AtEnd/.value required,
+ Includes/After/.code={\AfterIncludes{#1}},
+ Includes/After/.value required,
+%
+ IncludeFile/.is family,
+ IncludeFile/AtBegin/.code 2 args={\AtBeginOfIncludeFile{#1}{#2}},
+ IncludeFile/AtBegin/.value required,
+ IncludeFile/AtEnd/.code 2 args={\AtEndOfIncludeFile{#1}{#2}},
+ IncludeFile/AtEnd/.value required,
+ IncludeFile/After/.code 2 args={\AfterIncludeFile{#1}{#2}},
+ IncludeFile/After/.value required,
+%
+ ClassFile/.is family,
+ ClassFile/AtBegin/.code={\AtBeginOfClassFile#1},
+ ClassFile/AtBegin/.value required,
+ ClassFile/AtEnd/.code={\AtEndOfClassFile#1},
+ ClassFile/AtEnd/.value required,
+%
+ PackageFile/.is family,
+ PackageFile/AtBegin/.code={\AtBeginOfPackageFile#1},
+ PackageFile/AtBegin/.value required,
+ PackageFile/AtEnd/.code={\AtEndOfPackageFile#1},
+ PackageFile/AtEnd/.value required,
+}
+
+\newcommand{\pgffilehook}{\pgfqkeys{/filehook}}
+
+% \end{macrocode}
+% \iffalse
+%</pgf>
% \fi
% \Finale
\endinput
diff --git a/Master/texmf-dist/source/latex/filehook/filehook.ins b/Master/texmf-dist/source/latex/filehook/filehook.ins
index cbe6aa4c843..15a92d9856f 100644
--- a/Master/texmf-dist/source/latex/filehook/filehook.ins
+++ b/Master/texmf-dist/source/latex/filehook/filehook.ins
@@ -9,5 +9,6 @@
\file{filehook-memoir.sty}{\nopreamble\from{filehook.dtx}{memoir}}%
\file{filehook-listings.sty}{\nopreamble\from{filehook.dtx}{listings}}%
\file{filehook-fink.sty}{\nopreamble\from{filehook.dtx}{fink}}%
+ \file{pgf-filehook.sty}{\nopreamble\from{filehook.dtx}{pgf}}%
}
\endbatchfile
diff --git a/Master/texmf-dist/tex/latex/filehook/filehook-fink.sty b/Master/texmf-dist/tex/latex/filehook/filehook-fink.sty
index 77e2793d09b..84bfb2a2540 100644
--- a/Master/texmf-dist/tex/latex/filehook/filehook-fink.sty
+++ b/Master/texmf-dist/tex/latex/filehook/filehook-fink.sty
@@ -18,7 +18,7 @@
%% This work consists of the files filehook.dtx, filehook.ins
%% and the derived file filehook.sty.
%%
-%% $Id: filehook.dtx 2005 2011-01-03 22:53:56Z martin $
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
\ProvidesPackage{filehook-fink}[2011/01/03 v0.1 filehook compatibility code for fink package]
\RequirePackage{filehook}
\RequirePackage{currfile}%
diff --git a/Master/texmf-dist/tex/latex/filehook/filehook-listings.sty b/Master/texmf-dist/tex/latex/filehook/filehook-listings.sty
index e6c394e5489..ad51015e2f2 100644
--- a/Master/texmf-dist/tex/latex/filehook/filehook-listings.sty
+++ b/Master/texmf-dist/tex/latex/filehook/filehook-listings.sty
@@ -18,7 +18,7 @@
%% This work consists of the files filehook.dtx, filehook.ins
%% and the derived file filehook.sty.
%%
-%% $Id: filehook.dtx 2005 2011-01-03 22:53:56Z martin $
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
\ProvidesPackage{filehook-listings}[2011/01/02 v0.1 Patch for listings to avoid hooks for verbatim input files]
\begingroup
diff --git a/Master/texmf-dist/tex/latex/filehook/filehook-memoir.sty b/Master/texmf-dist/tex/latex/filehook/filehook-memoir.sty
index 3cfae9f348a..fc85460817c 100644
--- a/Master/texmf-dist/tex/latex/filehook/filehook-memoir.sty
+++ b/Master/texmf-dist/tex/latex/filehook/filehook-memoir.sty
@@ -18,7 +18,7 @@
%% This work consists of the files filehook.dtx, filehook.ins
%% and the derived file filehook.sty.
%%
-%% $Id: filehook.dtx 2005 2011-01-03 22:53:56Z martin $
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
\ProvidesPackage{filehook-memoir}[2011/01/03 v0.1 filehook patch for memoir class]
\RequirePackage{filehook}
\begingroup
diff --git a/Master/texmf-dist/tex/latex/filehook/filehook-scrlfile.sty b/Master/texmf-dist/tex/latex/filehook/filehook-scrlfile.sty
index 03b19800cc2..68a495454ea 100644
--- a/Master/texmf-dist/tex/latex/filehook/filehook-scrlfile.sty
+++ b/Master/texmf-dist/tex/latex/filehook/filehook-scrlfile.sty
@@ -18,7 +18,7 @@
%% This work consists of the files filehook.dtx, filehook.ins
%% and the derived file filehook.sty.
%%
-%% $Id: filehook.dtx 2005 2011-01-03 22:53:56Z martin $
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
\ProvidesPackage{filehook-scrlfile}[2011/01/03 v0.1 filehook patch for scrlfile package]
\RequirePackage{filehook}
\begingroup
diff --git a/Master/texmf-dist/tex/latex/filehook/filehook.sty b/Master/texmf-dist/tex/latex/filehook/filehook.sty
index 9ed1ecb4648..c208fa39479 100644
--- a/Master/texmf-dist/tex/latex/filehook/filehook.sty
+++ b/Master/texmf-dist/tex/latex/filehook/filehook.sty
@@ -18,10 +18,10 @@
%% This work consists of the files filehook.dtx, filehook.ins
%% and the derived file filehook.sty.
%%
-%% $Id: filehook.dtx 2005 2011-01-03 22:53:56Z martin $
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{filehook}
- [2011/01/03 v0.4 Hooks for input files]
+ [2011/01/09 v0.5 Hooks for input files]
\newif\iffilehook@force
\DeclareOption{force}{\filehook@forcetrue}
\ProcessOptions\relax
@@ -194,6 +194,14 @@
\def\AtEndOfXFile@normal#1#2#3{%
\AtEndOfFile{#2.#1}{\AtEndOfPackage{#3}}%
}
+\newcommand*\ClearHook{%
+ \begingroup
+ \def\filehook@prefix##1##2{%
+ \gdef##1{}%
+ \endgroup
+ }%
+ \let\filehook@append\filehook@prefix
+}
\let\filehook@orig@@input@\@input@
\let\filehook@orig@@iinput\@iinput
\def\@input@#1{%
diff --git a/Master/texmf-dist/tex/latex/filehook/pgf-filehook.sty b/Master/texmf-dist/tex/latex/filehook/pgf-filehook.sty
new file mode 100644
index 00000000000..30affd26c39
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/filehook/pgf-filehook.sty
@@ -0,0 +1,84 @@
+%% Copyright (c) 2010-2011 by Martin Scharrer <martin@scharrer-online.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.
+%% The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Martin Scharrer.
+%%
+%% This work consists of the files filehook.dtx, filehook.ins
+%% and the derived file filehook.sty.
+%%
+%% $Id: filehook.dtx 2033 2011-01-09 17:14:37Z martin $
+\ProvidesPackage{pgf-filehook}[2010/01/07 v1.0 PGF keys for the filehook package]
+\RequirePackage{filehook}
+\RequirePackage{pgfkeys}
+
+\pgfkeys{%
+ /filehook/.is family,
+ /filehook,
+ EveryFile/.is family,
+ EveryFile/AtBegin/.code={\AtBeginOfEveryFile{#1}},
+ EveryFile/AtBegin/.value required,
+ EveryFile/AtEnd/.code={\AtEndOfEveryFile{#1}},
+ EveryFile/AtEnd/.value required,
+ Files/.is family,
+ Files/AtBegin/.code={\AtBeginOfFiles{#1}},
+ Files/AtBegin/.value required,
+ Files/AtEnd/.code={\AtEndOfFiles{#1}},
+ Files/AtEnd/.value required,
+ File/.is family,
+ File/AtBegin/.code 2 args={\AtBeginOfFile{#1}{#2}},
+ File/AtBegin/.value required,
+ File/AtEnd/.code 2 args={\AtEndOfFile{#1}{#2}},
+ File/AtEnd/.value required,
+ Inputs/.is family,
+ Inputs/AtBegin/.code={\AtBeginOfInputs{#1}},
+ Inputs/AtBegin/.value required,
+ Inputs/AtEnd/.code={\AtEndOfInputs{#1}},
+ Inputs/AtEnd/.value required,
+ InputFile/.is family,
+ InputFile/AtBegin/.code 2 args={\AtBeginOfInputFile{#1}{#2}},
+ InputFile/AtBegin/.value required,
+ InputFile/AtEnd/.code 2 args={\AtEndOfInputFile{#1}{#2}},
+ InputFile/AtEnd/.value required,
+ Includes/.is family,
+ Includes/AtBegin/.code={\AtBeginOfIncludes{#1}},
+ Includes/AtBegin/.value required,
+ Includes/AtEnd/.code={\AtEndOfIncludes{#1}},
+ Includes/AtEnd/.value required,
+ Includes/After/.code={\AfterIncludes{#1}},
+ Includes/After/.value required,
+ IncludeFile/.is family,
+ IncludeFile/AtBegin/.code 2 args={\AtBeginOfIncludeFile{#1}{#2}},
+ IncludeFile/AtBegin/.value required,
+ IncludeFile/AtEnd/.code 2 args={\AtEndOfIncludeFile{#1}{#2}},
+ IncludeFile/AtEnd/.value required,
+ IncludeFile/After/.code 2 args={\AfterIncludeFile{#1}{#2}},
+ IncludeFile/After/.value required,
+ ClassFile/.is family,
+ ClassFile/AtBegin/.code={\AtBeginOfClassFile#1},
+ ClassFile/AtBegin/.value required,
+ ClassFile/AtEnd/.code={\AtEndOfClassFile#1},
+ ClassFile/AtEnd/.value required,
+ PackageFile/.is family,
+ PackageFile/AtBegin/.code={\AtBeginOfPackageFile#1},
+ PackageFile/AtBegin/.value required,
+ PackageFile/AtEnd/.code={\AtEndOfPackageFile#1},
+ PackageFile/AtEnd/.value required,
+}
+
+\newcommand{\pgffilehook}{\pgfqkeys{/filehook}}
+
+\endinput
+%%
+%% End of file `pgf-filehook.sty'.