From 37692430a0ed6d4bc09b544c26cbc8ba41255965 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 19 May 2010 23:24:59 +0000 Subject: thmtools 24 (18may10) git-svn-id: svn://tug.org/texlive/trunk@18359 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/thmtools/thm-amsthm.dtx | 140 +++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Master/texmf-dist/source/latex/thmtools/thm-amsthm.dtx (limited to 'Master/texmf-dist/source/latex/thmtools/thm-amsthm.dtx') diff --git a/Master/texmf-dist/source/latex/thmtools/thm-amsthm.dtx b/Master/texmf-dist/source/latex/thmtools/thm-amsthm.dtx new file mode 100644 index 00000000000..cd61adfbe21 --- /dev/null +++ b/Master/texmf-dist/source/latex/thmtools/thm-amsthm.dtx @@ -0,0 +1,140 @@ +% \iffalse meta-comment +% +% Copyright (C) 2010 by Ulrich M. Schwarz +% See file COPYING for more details. +%\fi +% +%\iffalse (hide this from DocInput) +%<*amsthm> +%\fi +% \begin{macrocode} +\define@key{thmstyle}{spaceabove}{% + \def\thmt@style@spaceabove{#1}% +} +\define@key{thmstyle}{spacebelow}{% + \def\thmt@style@spacebelow{#1}% +} +\define@key{thmstyle}{headfont}{% + \def\thmt@style@headfont{#1}% +} +\define@key{thmstyle}{bodyfont}{% + \def\thmt@style@bodyfont{#1}% +} +\define@key{thmstyle}{notefont}{% + \def\thmt@style@notefont{#1}% +} +\define@key{thmstyle}{headpunct}{% + \def\thmt@style@headpunct{#1}% +} +\define@key{thmstyle}{notebraces}{% + \def\thmt@style@notebraces{\thmt@embrace#1}% +} +\define@key{thmstyle}{break}[]{% + \def\thmt@style@postheadspace{\newline}% +} +\define@key{thmstyle}{postheadspace}{% + \def\thmt@style@postheadspace{#1}% +} +\define@key{thmstyle}{headindent}{% + \def\thmt@style@headindent{#1}% +} + +\newtoks\thmt@style@headstyle +\define@key{thmstyle}{headformat}[]{% + \thmt@style@headstyle{% + \def\NAME{\the\thm@headfont ##1}% + \def\NUMBER{\bgroup\@upn{##2}\egroup}% + \def\NOTE{\if=##3=\else\bgroup\ \the\thm@notefont(##3)\egroup\fi}% + }% + \def\thmt@tmp{#1}% + \@onelevel@sanitize\thmt@tmp + %\tracingall + \ifcsname thmt@headstyle@\thmt@tmp\endcsname + \thmt@style@headstyle\@xa{% + \the\thmt@style@headstyle + \csname thmt@headstyle@#1\endcsname + }% + \else + \thmt@style@headstyle\@xa{% + \the\thmt@style@headstyle + #1 + }% + \fi + %\showthe\thmt@style@headstyle +} +% examples: +\def\thmt@headstyle@margin{% + \makebox[0pt][r]{\NUMBER\ }\NAME\NOTE +} +\def\thmt@headstyle@swapnumber{% + \NUMBER\ \NAME\NOTE +} + + + +\def\thmt@embrace#1#2(#3){#1#3#2} + +\def\thmt@declaretheoremstyle@setup{% + \let\thmt@style@notebraces\@empty% + \thmt@style@headstyle{}% + \kvsetkeys{thmstyle}{% + spaceabove=3pt, + spacebelow=3pt, + headfont=\bfseries, + bodyfont=\normalfont, + headpunct={.}, + postheadspace={ }, + headindent={}, + notefont={\fontseries\mddefault\upshape} + }% +} +\def\thmt@declaretheoremstyle#1{% + %\show\thmt@style@spaceabove + \thmt@toks{\newtheoremstyle{#1}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@spaceabove}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@spacebelow}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@bodyfont}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@headindent}}% indent1 FIXME + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@headfont}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@headpunct}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\thmt@style@postheadspace}}% + \thmt@toks\@xa\@xa\@xa{\@xa\the\@xa\thmt@toks\@xa{\the\thmt@style@headstyle}}% headspec FIXME + \the\thmt@toks + %1 Indent amount: empty = no indent, \parindent = normal paragraph indent + %2 Space after theorem head: { } = normal interword space; \newline = linebreak + %% BUGFIX: amsthm ignores notefont setting altogether: + \thmt@toks\@xa\@xa\@xa{\csname th@#1\endcsname}% + \thmt@toks + \@xa\@xa\@xa\@xa\@xa\@xa\@xa{% + \@xa\@xa\@xa\@xa\@xa\@xa\@xa\thm@notefont + \@xa\@xa\@xa\@xa\@xa\@xa\@xa{% + \@xa\@xa\@xa\thmt@style@notefont + \@xa\thmt@style@notebraces + \@xa}\the\thmt@toks}% + \@xa\def\csname th@#1\@xa\endcsname\@xa{\the\thmt@toks}% +% \@xa\def\csname th@#1\@xa\@xa\@xa\@xa\@xa\@xa\@xa\endcsname +% \@xa\@xa\@xa\@xa\@xa\@xa\@xa{% +% \@xa\@xa\@xa\@xa\@xa\@xa\@xa\thm@notefont +% \@xa\@xa\@xa\@xa\@xa\@xa\@xa{% +% \@xa\@xa\@xa\thmt@style@notefont +% \@xa\@xa\@xa\thmt@style@notebraces +% \@xa\@xa\@xa}\csname th@#1\endcsname +% } +} + +\define@key{thmdef}{qed}[\qedsymbol]{% + \thmt@trytwice{}{% + \addtotheorempostheadhook[\thmt@envname]{% + \pushQED{\qed}% + }% + \addtotheoremprefoothook[\thmt@envname]{% + \protected@edef\qedsymbol{#1}% + \popQED + }% + }% +} + +% \end{macrocode} +%\iffalse (hide this from DocInput) +% +%\fi -- cgit v1.2.3