From fe474f79ee06f9b78a1875cbf7e633c0b1313643 Mon Sep 17 00:00:00 2001 From: mdw Date: Fri, 5 Sep 2003 16:16:20 +0000 Subject: [PATCH] Various nips and tucks. Redefine theorem styles from scratch now. --- mdwthm.dtx | 112 +++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 90 insertions(+), 22 deletions(-) diff --git a/mdwthm.dtx b/mdwthm.dtx index ccbcb73..f7ddba5 100644 --- a/mdwthm.dtx +++ b/mdwthm.dtx @@ -1,6 +1,6 @@ % \begin{meta-comment} % -% $Id: mdwthm.dtx,v 1.2 2002/02/24 12:35:55 mdw Exp $ +% $Id: mdwthm.dtx,v 1.3 2003/09/05 16:16:20 mdw Exp $ % % Standard theorem typesetting % @@ -9,6 +9,9 @@ %----- Revision history ----------------------------------------------------- % % $Log: mdwthm.dtx,v $ +% Revision 1.3 2003/09/05 16:16:20 mdw +% Various nips and tucks. Redefine theorem styles from scratch now. +% % Revision 1.2 2002/02/24 12:35:55 mdw % Fix handling of \chapter, in case some idiot has said `\csname % chapter\endcsname'. @@ -47,7 +50,7 @@ %<+thmstyle> [2001/09/16 1.0 numbers-in-the-margin theorem style] % \end{meta-comment} % -% \CheckSum{145} +% \CheckSum{187} %% \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 @@ -108,7 +111,9 @@ % \DescribeEnv{claim} % \DescribeEnv{proof} % The \env{claim} environment has its own counter, which is reset at the -% beginning of the \env{proof} environment. +% beginning of the \env{proof} environment. If you say |\qed| in a +% \env{proof} environment then it uses your symbol; otherwise it adds its own +% at the end. % % \subsection{The \package{mdwmargin} style} % @@ -208,6 +213,21 @@ % % \end{environment} % +% \begin{macro}{\@qedhack} +% +% Make |\qed| idempotent. +% +% \begin{macrocode} +\newif\if@qedsw +\def\@qedhack{% + \let\@qed@\qed% + \global\@qedswtrue% + \def\qed{\if@qedsw\global\@qedswfalse\expandafter\@qed@\fi}% +} +% \end{macrocode} +% +% \end{macro} +% % \begin{environment}{proof} % % Now to hack the proof environment. @@ -216,17 +236,30 @@ \renewenvironment{proof}[1][\proofname]{% \setcounter{claim}{0}% \par\normalfont% - \trivlist\advance\itemindent\labelsep\let\makelabel\textit% + \ifdim\topsep<\parskip\topsep\parskip\fi% + \ifdim\@topsepadd<\z@\@topsepadd\z@\fi% + \trivlist\advance\itemindent\labelsep\let\makelabel\proofstyle% \advance\@topsep-\parskip% \advance\@topsepadd-\parskip% - \item[#1\@proofdot]% + \@qedhack% + \item[#1]% }{% \qed\endtrivlist% } -\def\@proofdot{.} % \end{macrocode} % \end{environment} % +% \begin{macro}{\proofstyle} +% +% The |\proofstyle| macro is just a style hook for typesetting the `Proof' +% label. +% +% \begin{macrocode} +\providecommand\proofstyle[1]{\textit{#1.}} +% \end{macrocode} +% +% \end{macro} +% % Done. % % \begin{macrocode} @@ -262,7 +295,7 @@ % % \begin{macrocode} \def\thm@headfont@margin{% - \fontseries{b}% + \fontseries{\bfdefault}% \ifx\headdefault\@@undfined\else\fontfamily\headdefault\fi% \selectfont% } @@ -278,29 +311,64 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\hack@thm} +% \begin{macro}{\proofstyle} % -% Now we hack the standard theorem styles to do what we want. This is a -% tedious enough game with |\expandafter|. +% Typeset `Proof' in bold face. % % \begin{macrocode} -\def\hack@thm#1#2{% - \expandafter\def\expandafter#1\expandafter{#1% - \let\thmhead\thmhead@margin% - \thm@headfont{\thm@headfont@margin}% - \thm@headpunct{}% - \advance\thm@postskip-\parskip% - \def\after@thm{#2}% - } +\def\proofstyle#1{{\thm@headfont@margin#1}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\th@base} +% \begin{macro}{\@endtheorem} +% +% The |\th@base| macro provides the basis for our theorem style. The +% argument is something to do at the end of the environment. +% +% \begin{macrocode} +\def\th@base#1{% + \let\thmhead\thmhead@margin% + \thm@headfont{\thm@headfont@margin}% + \thm@headpunct{}% + \advance\thm@postskip-\parskip% + \@qedhack% + \def\after@thm{#1}% + \normalfont% } +% \end{macrocode} +% +% Ah, but nobody actually does anything with |\after@thm|. Let's fix that. +% +% \begin{macrocode} \def\@endtheorem{\after@thm\endtrivlist\@endpefalse} -\let\@proofdot\relax -\hack@thm\th@plain{} -\hack@thm\th@definition{\qed} -\hack@thm\th@remark{\qed} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\th@plain} +% \begin{macro}{\th@definition} +% \begin{macro}{\th@remark} +% +% Now this is easy. The space hacking in |\th@remark| is straight from +% \package{amsthm}. +% +% \begin{macrocode} +\AtBeginDocument{ + \def\th@plain{\th@base\relax\itshape} + \def\th@definition{\th@base\qed} + \def\th@remark{% + \th@base\qed% + \thm@preskip\topsep\divide\thm@preskip\tw@% + \thm@postskip\thm@preskip% + } +} % % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} % % \hfill Mark Wooding, \today % \Finale -- 2.11.0