diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/thmtools/thm-patch.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/thmtools/thm-patch.sty | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/thmtools/thm-patch.sty b/Master/texmf-dist/tex/latex/thmtools/thm-patch.sty new file mode 100644 index 00000000000..7b5315388e9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/thmtools/thm-patch.sty @@ -0,0 +1,119 @@ +%% +%% 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/02/17 BETA thm-patch (ulmi)] +\let\@xa=\expandafter +\let\@nx=\noexpand + +\@ifundefined{c@thmt@dummyctr}{% + \newcounter{thmt@dummyctr}% +}{}% +\gdef\theHthmt@dummyctr{dummy.\arabic{thmt@dummyctr}}% + +\newif\ifthmt@isstarred +\newif\ifthmt@hassibling +\newif\ifthmt@hasparent + +\let\thmt@original@newtheorem\newtheorem +\def\newtheorem{% + \thmt@isstarredfalse + \let\thmt@sibling=\relax \thmt@hassiblingfalse + \let\thmt@parent=\relax \thmt@hasparentfalse + \@ifstar + {\thmt@isstarredtrue\thmt@newtheoremii}% + {\thmt@newtheoremii}% +} +\newcommand\thmt@newtheoremii[1]{% + \def\thmt@envname{#1}% + \thmt@newtheoremiii +} +\newcommand\thmt@newtheoremiii[2][]{% + \def\thmt@thmname{#2}% + \ifx&\else + \thmt@hassiblingtrue + \def\thmt@sibling{#1}% + \fi + \@ifnextchar[{% + \thmt@hasparenttrue + \def\tmp@a[####1]{\def\thmt@parent{####1}\thmt@newtheoremiv}% + \tmp@a + }{% + \thmt@newtheoremiv + }% +} +\newcommand\thmt@newtheoremiv{% + \thmt@newtheorem@predefinition + % whee, now reassemble the whole shit. + \protected@edef\thmt@args{% + \@nx\thmt@original@newtheorem% + \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\addtotheoremprehook\@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 \thmt@envname\endcsname[1][]{% + \def\thmt@optarg{##1}% + \csname thmt@#1@preheadhook\endcsname + \thmt@generic@preheadhook + \csname thmt@original@#1\@xa\endcsname + \ifx\@empty\thmt@optarg\else [##1]\fi + \csname thmt@#1@postheadhook\endcsname + \thmt@generic@postheadhook + }% + \@namedef{thmt@#1@preheadhook}{}% + \@namedef{thmt@#1@postheadhook}{}% +} +\newcommand\thmt@generic@preheadhook{\refstepcounter{thmt@dummyctr}} +\newcommand\thmt@generic@postheadhook{} + +\newcommand\addtotheoremprehook[1][generic]{% + \expandafter\g@addto@macro\csname thmt@#1@preheadhook\endcsname% +} +\newcommand\addtotheoremposthook[1][generic]{% + \expandafter\g@addto@macro\csname thmt@#1@postheadhook\endcsname% +} + +\endinput +%% +%% End of file `thm-patch.sty'. |