\long\def\comment#1{} \comment{ This is my implementation of theorems, lemmas, &c. The main goal is to let you reprint theorems in the appendix with their proofs, so the text isn't cluttered with long proofs, but the reader doesn't have to keep flipping back to the text to find out what you're talking about in the appendix. It also has the side benefits that the syntax here involves less typing and fewer redundancies than the default, so I use it even for things that won't ever be proven. Compare the standard: \begin{definition} \label{xdef} Let $x$ be a number. \end{definition} versus the alternative here: \stmt{defn}{xdef}{ Let $x$ be a number. } __________________________________________ Here is a quick summary of the macros defined in this file: \stmt{statement_type}{label}{This is what I want to say} The definition of a theorem, assumption, &c. \stmtproof{label}{This is the proof.} Where you should write your proof, for use with: \rptstmtwithproof{label} This states the theorem and proof together. \rptstmt{label} This restates just the theorem. \refstmt{label} Prints, e.g., `Theorem 7'---like \ref{label} but you don't have to remember if it's a theorem, corollary, or lemma. \comment{blather} Delineates comments without all those darn percent signs. __________________________________________ Here is a sample document using most all of the above. You can cut and paste it to another file and compile it to see what it does. \documentclass{article} \usepackage{thrmappendix} \begin{document} \section{A theorem} \stmt{thrm}{sample}{Socrates is mortal.} \refstmt{sample} can either be proven using data (the fact that Socrates is dead), or by the proof which is provided in the appendix. \section{Appendix} In this appendix, the reader will find proofs of theorems not given in the text. \stmtproof{sample}{Socrates is a man. All men are mortal.} \rptstmtwithproof{sample} \comment{Notice that you can put the \stmtproof{sample}{...} anywhere you want, including right after your statement, just before using \rptstmtwithproof, or a separate file (then use \input{proofs.tex}). That way, neither your finished paper nor your source will be cluttered with proofs.} \end{document} __________________________________________ Here are the definitions of the types of theorems you can use with these commands, and the proof markers: } \long\def\theproofmarkersforthrmappendix{ %Format: %\newtype{nickname}{numbered like}{title} %inputs \newtype{ass}{ass}{Assumption} \newtype{defnition}{ass}{Definition} \newtype{defn}{ass}{Definition} %outputs \newtype{statement}{statement}{Proposition} \newtype{prop}{statement}{Proposition} \newtype{thrm}{statement}{Theorem} \newtype{corr}{statement}{Corollary} \newtype{lma}{statement}{Lemma} \newtype{guess}{statement}{Conjecture} \def\pf{{\bf Proof: }} \def\endpf{\hfill $\diamondsuit$} } \comment{ These are my preferred environments (and numbering scheme); add your own or modify to suit. The format here is: \newtype{nickname}{numbered like}{title} E.g., the second line lets me put \stmt{thrm}{mortalityresult}{Socrates is mortal.} in the tex file, since it defined the nickname `thrm'. If the statement counter is up to #7, then the output will be: Theorem 7: Socrates is mortal. since thrms use the statement counter and print `Theorem'. To refer to this theorem in the text, you have two choices: \refstmt{mortalityresult} ===> Theorem 7 Theorem \ref{mortalityresult} ===> Theorem 7 The first form is nice because after you prove your result, you can change it from a theorem to a conjecture without hunting through the text to fix every reference. You can see that all of the results use the `statement' counter and all of the inputs use the `ass' counter. Proposition 1 may be followed by Theorem 2, followed by Corollary 3. This is my preferred numbering scheme, suggested by Paolo Ghirardato. After all, the intent of numbering these things is not to keep score as to how many theorems you've got, but to make it easy for the reader to find what you're referring to; a consistent numbering system facilitates this (especially in a long proof appendix). [On the other hand, a referee of one of my papers complained that 17 theorems and 18 corollaries was too many, and I could cut that in half. Of course, there were only 18 results total, and s/he was only glancing at the two results on the last page.] To use independent numbering for each type, simply change the second field in the definitions above to match the first field in each case. E.g.: \newthrm{thrm}{thrm}{Theorem} will allow you to count theorems separately from other results. The \rptstmtwithproof macro here will include a marker at the beginning and end of the proof, so you don't have to include them yourself. The macros \pf and \endpf are defined above and can be redefined to suit. Popular endproof markers include: \def\endpf{$blackbox$} \def\endpf{$blacklozenge$} \def\endpf{{\sc QED}} --Ben Klemens, 2 Jan 2003 b@avocado.caltech.edu PS: thrmappendix.sty (c)2003, Ben Klemens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. __________________________________________} \usepackage{ifthen} \def\newtype#1#2#3{ \ifthenelse{\equal{#1}{#2}}{ \long\expandafter\gdef\csname #1txt\endcsname{#3} \long\expandafter\gdef\csname #1ctr\endcsname{#2} \newtheorem{#1}{\csname #1txt\endcsname} }{ \long\expandafter\gdef\csname #1txt\endcsname{#3} \long\expandafter\gdef\csname #1ctr\endcsname{#2} \newtheorem{#1}[\csname #1ctr\endcsname]{\csname #1txt\endcsname} }} \theproofmarkersforthrmappendix %from the user-readable section above. \def\cs#1{\csname #1\endcsname} \newcounter{dummycounter} \long\def\defstmt#1#2#3{ } \long\def\stmt#1#2#3{ \long\expandafter\gdef\csname #2\endcsname{#3} \expandafter\gdef\csname #2type\endcsname{#1} \begin{#1} \label{#2} {#3} \end{#1} \immediate\write\@mainaux{\string \newlabel{#2type}{{\cs{#1txt}}} } } \long\def\stmtproof#1#2{ \long\expandafter\gdef\csname #1proof\endcsname{#2} } \long\def\rptstmt#1{ \def\ctr{\cs{\cs{#1type}ctr}} % \setcounter{paragraph}{\value{\ctr}} \setcounter{dummycounter}{\value{\ctr}} \batchmode \setcounter{\ctr}{\ref{#1}} \errorstopmode \addtocounter{\ctr}{-1} \begin{\cs{#1type}} \cs{#1} \end{\cs{#1type}} \setcounter{\ctr}{\value{dummycounter}} } \long\def\rptstmtwithproof#1{ \rptstmt{#1} \pf \cs{#1proof} \endpf } \def\refstmt#1{\ref{#1type} \ref{#1}}