%% %% This is file `thm-patch.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% thm-patch.dtx (with options: `patch') %% This is a generated file. %% %% This file is part of the `thmtools' package. %% The `thmtools' package has the LPPL maintenance status: maintained. %% Current Maintainer is Ulrich M. Schwarz, ulmi@absatzen.de %% %% Copyright (C) 2008 by Ulrich M. Schwarz. %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, version 1.3a. %% This version is obtainable at %% http://www.latex-project.org/lppl/lppl-1-3a.txt %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{thm-patch}[2008/06/22 v0.1beta6 thm-patch (ulmi)] \let\@xa=\expandafter \let\@nx=\noexpand \RequirePackage{parseargs} \@ifundefined{c@thmt@dummyctr}{% \newcounter{thmt@dummyctr}% }{}% \gdef\theHthmt@dummyctr{dummy.\arabic{thmt@dummyctr}}% \gdef\thethmt@dummyctr{}% \newif\ifthmt@isstarred \newif\ifthmt@hassibling \newif\ifthmt@hasparent \@ifundefined{beamer@version}{% \def\thmt@parsetheoremargs#1{% \parse{% {\parseOpt[]{\def\thmt@optarg{##1}}{\let\thmt@optarg\@empty}}% {% \csname thmt@#1@preheadhook\endcsname \thmt@generic@preheadhook \protected@edef\tmp@args{% \ifx\@empty\thmt@optarg\else [\thmt@optarg]\fi }% \csname thmt@original@#1\@xa\endcsname\tmp@args \csname thmt@#1@postheadhook\endcsname \thmt@generic@postheadhook \let\@parsecmd\@empty }% }% }% }{% \newif\ifthmt@hasoverlay \def\thmt@parsetheoremargs#1{% \parse{% {\parseOpt<>{\thmt@hasoverlaytrue\def\thmt@overlay{##1}}{}}% {\parseOpt[]{\def\thmt@optarg{##1}}{\let\thmt@optarg\@empty}}% {\ifthmt@hasoverlay\expandafter\@gobble\else\expandafter\@firstofone\fi {\parseOpt<>{\thmt@hasoverlaytrue\def\thmt@overlay{##1}}{}}% }% {% \csname thmt@#1@preheadhook\endcsname \thmt@generic@preheadhook \protected@edef\tmp@args{% \ifthmt@hasoverlay <\thmt@overlay>\fi \ifx\@empty\thmt@optarg\else [\thmt@optarg]\fi }% \csname thmt@original@#1\@xa\endcsname\tmp@args \csname thmt@#1@postheadhook\endcsname \thmt@generic@postheadhook \let\@parsecmd\@empty }% } }% } \let\thmt@original@newtheorem\newtheorem \def\newtheorem{% \thmt@isstarredfalse \thmt@hassiblingfalse \thmt@hasparentfalse \parse{% {\parseFlag*{\thmt@isstarredtrue}{}}% {\parseMand{\def\thmt@envname{##1}}}% {\parseOpt[]{\thmt@hassiblingtrue\def\thmt@sibling{##1}}{}}% {\parseMand{\def\thmt@thmname{##1}}}% {\parseOpt[]{\thmt@hasparenttrue\def\thmt@parent{##1}}{}}% {\let\@parsecmd\thmt@newtheoremiv}% }% } \newcommand\thmt@newtheoremiv{% \thmt@newtheorem@predefinition % whee, now reassemble the whole shit. \protected@edef\thmt@args{% \@nx\thmt@theoremdefiner% \ifthmt@isstarred *\fi {\thmt@envname}% \ifthmt@hassibling [\thmt@sibling]\fi {\thmt@thmname}% \ifthmt@hasparent [\thmt@parent]\fi } \thmt@args \thmt@newtheorem@postdefinition } \newcommand\thmt@newtheorem@predefinition{} \newcommand\thmt@newtheorem@postdefinition{} \g@addto@macro\thmt@newtheorem@postdefinition{% \@xa\thmt@addtheoremhook\@xa{\thmt@envname}% \ifthmt@isstarred\@namedef{the\thmt@envname}{}\fi \protected@edef\thmt@tmp{% \def\@nx\thmt@envname{\thmt@envname}% \def\@nx\thmt@thmname{\thmt@thmname}% } \@xa\addtotheorempreheadhook\@xa[\@xa\thmt@envname\@xa]\@xa{% \thmt@tmp }% } \newcommand\thmt@addtheoremhook[1]{% % this adds two command calls to the newly-defined theorem. \@xa\let\csname thmt@original@#1\@xa\endcsname \csname#1\endcsname \@xa\renewcommand\csname #1\endcsname{ \thmt@parsetheoremargs{#1}% }% \@xa\let\csname thmt@original@end#1\@xa\endcsname\csname end#1\endcsname \@xa\def\csname end#1\endcsname{% % these need to be in opposite order of headhooks. \csname thmtgeneric@prefoothook\endcsname \csname thmt@#1@prefoothook\endcsname \csname thmt@original@end#1\endcsname \csname thmt@generic@postfoothook\endcsname \csname thmt@#1@postfoothook\endcsname } \@namedef{thmt@#1@preheadhook}{}% \@namedef{thmt@#1@postheadhook}{}% \@namedef{thmt@#1@prefoothook}{}% \@namedef{thmt@#1@postfoothook}{}% } \newcommand\thmt@generic@preheadhook{\refstepcounter{thmt@dummyctr}} \newcommand\thmt@generic@postheadhook{} \providecommand\g@prependto@macro[2]{% \begingroup \toks@\@xa{\@xa{#1}{#2}}% \def\tmp@a##1##2{##2##1}% \@xa\@xa\@xa\gdef\@xa\@xa\@xa#1\@xa\@xa\@xa{\@xa\tmp@a\the\toks@}% \endgroup } \newcommand\addtotheorempreheadhook[1][generic]{% \expandafter\g@addto@macro\csname thmt@#1@preheadhook\endcsname% } \newcommand\addtotheorempostheadhook[1][generic]{% \expandafter\g@addto@macro\csname thmt@#1@postheadhook\endcsname% } \newcommand\addtotheoremprefoothook[1][generic]{% \expandafter\g@prependto@macro\csname thmt@#1@prefoothook\endcsname% } \newcommand\addtotheorempostfoothook[1][generic]{% \expandafter\g@prependto@macro\csname thmt@#1@postfoothook\endcsname% } \endinput %% %% End of file `thm-patch.sty'.