summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/thmtools/thm-patch.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-02-18 00:22:07 +0000
committerKarl Berry <karl@freefriends.org>2008-02-18 00:22:07 +0000
commite2041bab726766a5193e515f8a7e1761613d1222 (patch)
treef757513bdd2ecb46dec6a6160b3bccfd1e75b0d4 /Master/texmf-dist/tex/latex/thmtools/thm-patch.sty
parent957aeb141e1e62fc19b0aedb3bc36ad058226250 (diff)
new latex package thmtools (17feb08)
git-svn-id: svn://tug.org/texlive/trunk@6667 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/thmtools/thm-patch.sty')
-rw-r--r--Master/texmf-dist/tex/latex/thmtools/thm-patch.sty119
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&#1&\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'.