%% %% This is file `cjwmacro.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cjw-latex.dtx (with options: `general') %% %% Copyright (C) 1997 by: Colin J. Wynne %% %% This file is part of cjw-latex, a collection of package files for %% LaTeX2e, written by Colin J. Wynne. It may be freely distributed in %% any form---electronic, physical, or otherwise---so long as the %% distributor provides this file in its entirety (including this %% copyright announcement) and charges no fee (except for reasonable %% recompense for the duplication process). Fair 'nough? %% %% I would also prefer that the entire source file `cjw-latex.dtx', %% together with `cjw-latex.ins', be propagated instead of any one %% subfile. %% %% Please feel free to improve on or alter any code herein as suits your %% needs, and by all means notify me of any suggestions, improvements, or %% requests. %% %% This file is beer-ware. If you use it and like it, then you should %% buy me a beer if you ever meet me. :-) %% %% RCS: $Id: cjw-latex.ins,v 1.3 1998/04/10 14:30:18 cwynne Exp $ %% \def\RCSinfo{$Id: cjw-latex.dtx,v 0.13 1998/09/01 15:54:20 cwynne Exp $} \def\RCSsplit $#1: #2,v #3 #4 #5 #6 #7${ \gdef\filename {#2} \gdef\fileversion{#3} \gdef\filedate {#4} \gdef\filetime {#5} \gdef\fileauthor {#6} \gdef\filelocker {#7}} \expandafter\RCSsplit\RCSinfo %% %% \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 \~} %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{cjwmacro} [\filedate\space v\fileversion\space Personal macros for LaTeX2e---CJW] \newif\if@verbext \@verbextfalse \DeclareOption{verbext}{\@verbexttrue} \DeclareOption{psfig}{% \PackageWarning{cjwmacro}% {Obsolete option \CurrentOption. Use package `epsfig' instead.}} \DeclareOption{pstricks}{% \InputIfFileExists{pstricks.sty}{% \InputIfFileExists{pst-node.tex}{}{% \PackageError{cjwmacro}{File `pst-node.sty' not found.}{}}}% {\PackageError{cjwmacro}{File `pstricks.sty' not found.}{}}} \DeclareOption{psplot}{\InputIfFileExists{pst-plot.tex}{}{% \PackageError{cjwmacro}{File `pst-plot.tex' not found.}{}}} \DeclareOption{draft}{% \def\ssbreakbar{\hbox to 2in{\hrulefill}}} \DeclareOption{final}{% \ExecuteOptions{pstricks} \def\ssbreakbar{% \psset{linewidth=0.4pt,unit=1in}% \pspicture(-2.5,-0.15)(2.5,0.15)% \qdisk(0,0){0.04}% \qdisk(0.33,0){0.02}% \qdisk(-0.33,0){0.02}% \pspolygon*(0.33,-0.02)(0.33,0.02)(1.75,0)% \pspolygon*(-0.33,-0.02)(-0.33,0.02)(-1.75,0)% \endpspicture}} \DeclareOption*{% \PackageWarning{cjwmacro}{Unknown option `\CurrentOption'}} \ExecuteOptions{draft} \ProcessOptions \newcommand{\alias} [2]{\@ifdefinable #1{\let #1 #2}} \alias\realias\let \newcommand{\providealias}[2]{\@ifundefined #1{\let #1 #2}} \RequirePackage{amstext} \RequirePackage{xspace} \providecommand{\intertext}[1]{\noalign{% \penalty\postdisplaypenalty\addvspace{ 0.5\belowdisplayskip} \vbox{\normalbaselines\noindent#1}% \penalty\predisplaypenalty\addvspace{0.5\abovedisplayskip}}} \alias\rem\intertext \providecommand{\pagenofont} {\normalfont} \providecommand{\declarefont} {\normalfont\bfseries\mathversion{bold}} \providecommand{\altdeclarefont}{\normalfont\itshape} \providecommand{\captionfont} {\normalfont\itshape} \providecommand{\examplefont} {\normalfont} \providecommand{\altexamplefont}{\normalfont\itshape} \providecommand{\labelfont} {\normalfont\bfseries\mathversion{bold}} \providecommand{\timelinefont} {\normalfont} \providecommand{\titlefont} {\normalfont\bfseries\Large\mathversion{bold}} \providecommand{\verbatimfont} {\normalfont\ttfamily} \newcommand{\swapdef}[2]{{% \let \@tempa #1\relax \global\let #1 #2\relax \global\let #2 \@tempa}} \newcommand{\swapdim}[2]{{% \@tempdima #1\relax \global #1 #2\relax \global #2 \@tempdima}} \newcommand{\expandthree}[2]{% \expandafter\expandafter\expandafter #1\expandafter #2} \newcommand{\nth}[1]{{% \@tempcnta = #1\relax \ifnum \@tempcnta < 0\relax % Make sure our number is \@tempcnta = -\@tempcnta % non-negative. \fi \ifnum \@tempcnta < 14\relax % Deal first with the \ifnum \@tempcnta > 10\relax % exceptions for \def\@tempa{th} % 11, 12, and 13. \fi \else \loop \ifnum\@tempcnta > 9\relax % Loop until the recursive \@tempcntb = \@tempcnta % remainder (mod 10) is \divide \@tempcntb by 10\relax % a single digit in order \multiply\@tempcntb by 10\relax % to successfully satisfy \advance \@tempcnta by -\@tempcntb% the ordinality test. \repeat \def\@tempa{\ifcase\@tempcnta % Figure the proper label: th% % 0th \or st% % 1st \or nd% % 2nd \or rd% % 3rd \else th% % nth \fi} \fi #1\ensuremath{^{\text{\@tempa}}}}} % Superscript the label in % math mode. \alias\sst\scriptscriptstyle \newcommand{\ssp}[1]{^{\sst#1}} \newcommand{\ssb}[1]{_{\sst#1}} \newcommand{\smiley}[1][\@smiley]{% \edef\@sf{\spacefactor=\the\spacefactor}% \unskip\spacefactor=1000\relax\space #1\@sf\xspace} \newcommand{\@smiley}{% {\ttfamily\raise 0.078em\hbox{:}\kern-0.1em{-}\kern-0.1em{)}}} \newcommand{\emote}[1]{% \smiley[\ensuremath{\langle}\emph{#1}\ensuremath{\rangle}]} \newenvironment{pledge}% {\ifx\@empty\@date \PackageWarning{cjwmacro}{Date is not set.} \fi \parskip=2pt \parindent=0pt\relax \null\vfill\begin{flushright} \itshape\small} {\\[5ex]\normalfont\footnotesize \makebox[2in]{\hrulefill}\quad\@date\\ \makebox[2in]{Colin J.~Wynne}\quad{\hphantom{\@date}}\\ \end{flushright}} \newcommand{\wnlpledge}[1][paper]{% \ifx\@empty\@date \PackageWarning{cjwmacro}{Date is not set.} \fi \parskip=2pt \parindent=0pt\relax \null\vfill\begin{flushright} \itshape\small On my honour, I have neither given nor received\\ any unacknowledged aid on this #1.\\[5ex] \normalfont\footnotesize \makebox[2in]{\hrulefill}\quad\@date\\ \makebox[2in]{Colin J.~Wynne,~'94}\quad{\hphantom{\@date}}\\ \end{flushright}} \newcommand{\ssbreak}{\bigskip \centerline{\ssbreakbar}\bigbreak} \providecommand{\ssbreakbar}{} \def\mathbox #1{\hbox{$\mathpalette\@mathbox{#1}$}} \def\Mathbox #1#2{\hbox{#1$\mathpalette\@mathbox{#2}$}} \def\@mathbox#1#2{#1#2} \newcommand{\smush}{\relax \ifmmode \def\next{\mathpalette\math@smush} \else \let\next\make@smush \fi \next} \newcommand{\make@smush}[1]{\setbox0=\hbox{#1}\fin@smush} \newcommand{\math@smush}[2]{\setbox0=\hbox{$\m@th#1{#2}$}\fin@smush} \newcommand{\fin@smush}{\wd0=0pt \box0 } \newcommand{\bigmathstrut} {\vphantom{\big()}} \newcommand{\biggmathstrut}{\vphantom{\bigg()}} \newcommand{\Bigmathstrut} {\vphantom{\Big()}} \newcommand{\Biggmathstrut}{\vphantom{\Bigg()}} \newcommand{\ie} {\emph{i.e.}\xspace} \newcommand{\eg} {\emph{e.g.}\xspace} \newcommand{\heisst}{d.h\null.\xspace} % \dh is taken. \newcommand{\initials}[2]{% \break@init #2 \@ifdefinable #1{% \global\edef#1{% \noexpand\hbox{\@tempa.\noexpand\,\@tempb}% \noexpand\@ifnextchar.{\noexpand\@}{.\noexpand\xspace}}}} \def\break@init #1.#2.{% \def\@tempa{#1}\def\@tempb{#2}} \initials{\UN}{U.N.} \initials{\US}{U.S.} \initials{\AI}{A.I.} \providecommand{\theday}{\number\day\relax} \providecommand{\themonth}{% \ifcase\month\or January\or February\or% March\or April\or May\or June\or July\or August\or% September\or October\or November\or December\fi} \providecommand{\themonat}{% \ifcase\month\or Januar\or Februar\or% M\"arz\or April\or Mai\or Juni\or Juli\or August\or% September\or Oktober\or November\or Dezember\fi} \providecommand{\theyear}{\number\year\relax} \providecommand{\today}{} \renewcommand{\today}{\theday~\themonth, \theyear\xspace} \providecommand{\heute}{} \renewcommand{\heute}{den~\theday.\ \themonat\ \theyear\xspace} \alias\gdate\heute \renewcommand{\ps@plain}{% \let\@mkboth \@gobbletwo \let\@oddhead \@empty \let\@evenhead\@empty \def\@oddfoot{\pagenofont\hfil\thepage\hfil} \let\@evenfoot\@oddfoot} \newcommand{\ps@topright}{% \let\@mkboth \@gobbletwo \def\@oddhead{\pagenofont\hfil\thepage} \let\@evenhead\@oddhead \let\@oddfoot \@empty \let\@evenfoot\@empty} \newlength{\timelineskip} \setlength{\timelineskip}{1.75in} \newcommand{\timeline}[2][l]{% \noindent\hangindent=\timelineskip \makebox[\timelineskip][#1]{\timelinefont{#2}}\ignorespaces} \let\endtimeline\relax \@ifundefined{c@section} {\newcounter{declare}} {\newcounter{declare}[section] \renewcommand{\thedeclare}{\thesection.\arabic{declare}}} \newlength{\declareindent} \setlength{\declareindent}{0pt} \newcommand{\@declare} [1]{{\declarefont#1:}\quad} \newcommand{\@altdeclare}[1]{{\altdeclarefont#1:}\quad} \newenvironment{declaration*}[1]% {\medbreak\noindent\ignorespaces \@declare{#1}\ignorespaces}% {\kern0pt\nobreak\smallskip} \newenvironment{altdeclaration*}[1]% {\medbreak\noindent\ignorespaces \@altdeclare{#1}\ignorespaces}% {\kern0pt\nobreak\smallskip} \newenvironment{declaration}[1]% {\medbreak\refstepcounter{declare} \noindent\ignorespaces \ifnum\declareindent = 0\relax% \@declare{\thedeclare\quad #1} \else \makebox[\declareindent]{\@declare{\thedeclare\hss #1}} \fi\ignorespaces} {\kern0pt\nobreak\smallskip} \newenvironment{altdeclaration}[1]% {\medbreak\noindent\ignorespaces \refstepcounter{declare} \ifnum\declareindent = 0\relax \@altdeclare{\thedeclare\quad #1} \else \makebox[\declareindent]{\@altdeclare{\thedeclare\hss #1}} \fi\ignorespaces} {\kern0pt\nobreak\smallskip} \def\declare #1#2\par{% \begin{declaration*}{#1}#2\end{declaration*}\par} \def\altdeclare #1#2\par{% \begin{altdeclaration*}{#1}#2\end{altdeclaration*}\par} \def\ndeclare #1#2\par{% \begin{declaration}{#1}#2\end{declaration}\par} \def\altndeclare#1#2\par{% \begin{altdeclaration}{#1}#2\end{altdeclaration}\par} \providecommand{\corollary} {\declare{Corollary}} \providecommand{\definition} {\declare{Definition}} \providecommand{\lemma} {\declare{Lemma}} \providecommand{\proposition} {\declare{Proposition}} \providecommand{\theorem} {\declare{Theorem}} \providecommand{\note} {\altdeclare{Note}} \providecommand{\ncorollary} {\ndeclare{Corollary}} \providecommand{\ndefinition} {\ndeclare{Definition}} \providecommand{\nlemma} {\ndeclare{Lemma}} \providecommand{\nproposition}{\ndeclare{Proposition}} \providecommand{\ntheorem} {\ndeclare{Theorem}} \providecommand{\nnote} {\altndeclare{Note}} \providecommand{\behaupt} {\declare{Behauptung}} \providecommand{\nbehaupt} {\ndeclare{Behauptung}} \newcommand{\allndeclares}{% \let\declare \ndeclare \let\altdeclare \altndeclare} \newenvironment{proof}[1][Proof]% {\smallbreak\noindent{\altdeclarefont#1:}% \quad\ignorespaces}% {\qed} \newenvironment{beweis}[1][Beweis]% {\smallbreak\noindent{\altdeclarefont#1:}% \quad\ignorespaces}% {\qed} \providecommand{\qed}{} \renewcommand{\qed}{% {\unskip\nobreak\hfil\penalty 50% \hskip 2em\hbox{}\nobreak\hfil\qedsymbol% \parfillskip=0pt \finalhyphendemerits=0 \par}} \providecommand{\qedsymbol}{} \renewcommand{\qedsymbol}{\lower 0.35ex\hbox{$\diamondsuit$}} \newcommand{\qedbox}{\vrule height4pt width3pt depth2pt} \newcommand{\Case}{\@ifstar{\@starCase}{\@Case}} \newcommand{\@starCase}[1]{\@@Case{#1}} \newcommand{\@Case}[1]{\@@Case{(#1)}} \newcommand{\@@Case}[1]{% \noindent{\declarefont#1}\quad\ignorespaces} \alias\Fall\Case \newcommand{\contra}{\ensuremath{\Rightarrow\Leftarrow}} \newenvironment{example*}% {\@nameuse{declaration*}{Example}\examplefont} {\medbreak} \newenvironment{altexample*}% {\@nameuse{declaration*}{Example}\examplefont} {\medbreak} \newenvironment{example}% {\declaration{Example}\examplefont} {\medbreak} \newenvironment{altexample}% {\declaration{Example}\examplefont} {\medbreak} \newcounter{problem} \setcounter{problem}{0} \renewcommand{\theproblem}{\arabic{problem}} \renewcommand{\p@problem}{} \DeclareRobustCommand{\Page}{% \@ifstar{\@Page{}}{\@Page{\#}}} \def\@Page#1{% \@ifnextchar [{\@@Page{#1}}{\@@Page{#1}[]}} \def\@@Page#1[#2]#3#4{% \def\@tempa{#2}% \ifx\@empty\@tempa% \let\@tempb\@tempa% \else% \edef\@tempb{\@tempa,~}% \fi% (\@tempb p.\,#3, #1{#4})} \newenvironment{statement}[1][\null]% {\def\@tempa{#1}\def\@tempb{\null}% \ifx\@tempa\@tempb% \def\@tempc{\null}% \else% \def\@tempc{\altdeclarefont\@tempa\quad}% \fi% \declarefont{\@tempc}\ignorespaces} {\removelastskip\nopagebreak\smallskip} \newenvironment{problem}% {\setcounter{equation}{0}% \gdef\theequation{\theproblem.\arabic{equation}}% \removelastskip\medbreak% \refstepcounter{problem}% \noindent\theoutlabel{\theproblem.}% \statement} {\endstatement} \newenvironment{problem*}% {\removelastskip\medbreak% \noindent\statement} {\endstatement} \alias \aufgabe \problem \realias\endaufgabe\endproblem \newcounter{teil} [problem] \newcounter{steil}[teil] \renewcommand{\theteil} {(\alph{teil})} \renewcommand{\p@teil} {\theproblem} \renewcommand{\thesteil} {(\roman{steil})} \renewcommand{\p@steil}{\p@teil\theteil} \newenvironment{teil}[1][2]% {\@tempcnta=#1\advance\@tempcnta by -1\relax \ifnum\@tempcnta < 1\relax \leftskip=0pt\relax \else \leftskip=\@tempcnta\outlindent \fi \refstepcounter{teil} \addvspace{\medskipamount}% \noindent\theoutlabel{\theteil}% \ignorespaces} {\par\smallbreak} \newenvironment{steil}[1][3]% {\@tempcnta=#1\advance\@tempcnta by -1\relax \ifnum\@tempcnta < 1\relax \leftskip=0pt\relax \else \leftskip=\@tempcnta\outlindent \fi \refstepcounter{steil} \addvspace{\medskipamount}% \noindent\theoutlabel{\thesteil}% \ignorespaces} {\par\smallbreak} \realias\part \teil \realias\endpart \endteil \alias \ppart \steil \realias\endppart\endsteil \long\def\@makefntext#1{% \parindent 1em\noindent\hangindent=\parindent% \hb@xt@ 1em{\hss \llap{\@makefnmark} }#1} \newlength{\textdisplayindent} \newenvironment{display}[2][] {\vadjust{\penalty\predisplaypenalty} \@newline[\abovedisplayskip]% \begingroup% #1% \begin{tabular}{@{\null\hspace{\textdisplayindent}\null}#2}} {\end{tabular}\endgroup \vadjust{\penalty\postdisplaypenalty} \@newline[\belowdisplayskip]\ignorespaces} \if@verbext \newcounter{vfline} \renewcommand{\thevfline}{\arabic{vfline}} \providecommand{\uncatcodespecials}{% \def\do##1{\catcode`##1=12 }\dospecials} \providecommand{\verbfile}[2][1]{% \par\begingroup\@vf@lines{#1}\input{#2}\relax\endgroup} \providecommand{\verbfilenolines}[1]{% \par\begingroup\@vf@nolines\input{#1}\relax\endgroup} \newcommand{\@vf@lines}[1]{% \verbatimfont \setcounter{vfline}{#1} \addtocounter{vfline}{-1} \setlength{\parindent}{0pt} \setlength{\parskip}{0pt} \def\par{\leavevmode\endgraf} \obeylines \uncatcodespecials \obeyspaces \everypar{\null\stepcounter{vfline}% \llap{\scriptsize\thevfline\quad}\null}} \newcommand{\@vf@nolines}{% \verbatimfont \setlength{\parindent}{0pt} \setlength{\parskip}{0pt} \def\par{\leavevmode\endgraf} \obeylines \uncatcodespecials \obeyspaces \everypar{\null}} \fi \AtBeginDocument{% \setlength{\parindent} {20pt} \setlength{\parskip} { 2pt plus 1pt} \setlength{\textdisplayindent}{\parindent}} \endinput %% %% End of file `cjwmacro.sty'.