% \iffalse meta-comment % % 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. % The license can be obtained from % http://www.latex-project.org/lppl/lppl-1-3a.txt % % \fi % %\iffalse (hide this from DocInput) %<*driver> \documentclass{ltxdoc} \usepackage[T1]{fontenc} \usepackage{fourier} \usepackage[scaled=0.8]{helvet} \usepackage{luximono} \usepackage{amsmath, amsthm} \usepackage{thm-patch} \newtheorem{lemma}{Lemma} \GetFileInfo{thm-patch.sty} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{thm-patch.dtx} \end{document} % %<*patch> %\fi % % \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 % Lower-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 % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % \CheckSum{160} % % \DoNotIndex{\@for,\addtocounter,\arabic,\csname,\endcsname,\cup,\CurrentOption} % \DoNotIndex{\{,\},\do,\define@key,\def,\DeclareOption,\else,\ensuremath,\expandafter} % \DoNotIndex{\hspace,\fi,\rule,\ifcase,\ifx,\in,\InputIfFileExists,\leq,\let,\mathpalette} % \DoNotIndex{\NeedsTeXFormat,\ldots,\ldotp,\newcommand,\newcounter,\or} % \DoNotIndex{\PackageInfo,\PackageWarning,\parm,\ProcessOptions,\protected@edef} % \DoNotIndex{\providecommand,\ProvidesPackage,\relax,\renewcommand,\RequirePackage} % \DoNotIndex{\setcounter,\setkeys,\rlap,\setminus,\widthof,\mathrm} % % \newcommand\thmrestate{\textsf{thm-patch}} % \title{The \thmrestate\ package\thanks{% % This file documents version~\fileversion\ of~\filedate, % RCS ${}$Id: thm-patch.dtx,v 1.6 2008/02/17 21:08:04 ulmi Exp ulmi ${}$. % }} % \author{Ulrich M. Schwarz\thanks{ulmi@absatzen.de}} % % \maketitle % %\begin{abstract} %\end{abstract} %\section{Usage} % %\section{Implementation} % \begin{macrocode} \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% } % \end{macrocode} %\iffalse % %\fi