\message{: version 5mar13}%08jul12%24may11%04jan10
% These are TeX-macros Carl de Boor has found useful for mathematical typing.
% Macros that are paper-specific should be put directly into that paper's file.
% The macros are organized as follows:
% 1. draft macros
% 2. precise placement macros
% 3. outlined boxes, big and small
% 4. font and pointsize changes
% (for definition, emphasis, abstracts, exercises and answers, etc.)
% 5. quoting from email messages and such, in \tt font
% 6. automatic sequencing and labelling of sections and subsections
% 7. automatic sequencing and labelling of equations and other items
% 8. citing references (also an alternative way to generate and use labels)
% 9. forward referencing
% 10. maintaining labelling and \cite without help of this file
% 11. making a table of contents
% 12. math macros
% 5mar13 added \NNe, etc, and used them in the smaller environment, as that
% environment is eightpoint, as well as \NNtw, etc. and used them in
% the larger environment as that is twelvepoint.
% 08jul12 add \blank
% 24may11 introduce \abstractkey to have keywords as its second argument
% 04jan10 in ToC, switched from simple leaderfill to diaomondleaders
% 21nov09 made \divdif into a \mathord
% 19sep09 incorporate scriptstyle \CC,\FF,\NN,\RR,\ZZ into
% \beginsmaller\endsmaller
% 23jun09 made \dvd, \sdvd magstep-independent
% 29aug08 add \Ebb, \EE
% 09jun08 improved \strikeout
% 24mar08 stored, in drafts, my standard description of the corrections format
% 23nov07 add \codim
% 04mar07 add \pinf
% 20dec06 switched from homemade open font to blackboard font, for \RR, etc
% switched some def to let; omitted old \comment in mainbody as well
% 09nov06 because of 10dec05, removed the definition of \comment from \draft
% 02jun06 add \pagebreak (and remove duplicate def of \newline)
% 27mar06 improved \strikeout
% 25jan06 add \sdivdif and \sdvd
% 02jan06 add simplified \Figinbox (from lapslide.tex)
% 10dec05 add colorful \comment and \ct, for commenting and suggesting changes
% 08nov04 correct \rahel (to avoid use of explicit \if ... \fi in optional
% text)
% 31may04 add \title, \author, \abstract
% 02mar04 (add \next[page,par,line] as syns for \new[page,par,line])
% 17mar03 (add \dvd#1; update the def of excite in 10; edit formciteaddl;
% add \lessthan, \morethan for use in html pages;
% put italic endcorrection into \dword)
% 05jan03 (enlarge \Boxit to \Boxbody, providing also \Boxtop and \Boxbot})
% 21jul02 (add \crowned; use it to define \glcrown)
% 07may02 (update cite material under 10.)
% 09apr02 (add \strikeout)
% 28sep01 (add \slall)
% 22aug01 ( add \tocone and \toctwo for variable indents in TOC,
% improve \openS, add \sopenS)
% 05jun00 ( add \st as the macro in \{ A \st B\})
% 16feb00 ( add \lessim, i.e., < atop of ~; make \divdif a mathord )
% 29dec99 (add \more, for =Section, Heading, section, heading, etc)
% 25oct99 (add \newline, \newpage, make \glcrown a mathord)
% 04oct99 (update comments re 10., add a subcrown, correct \cocenter)
% 30apr99 (\dword, \eword as alternatives to \defw and \empw; correct \rhl)
% 17apr99 (add \ptgridbox as \gridbox, but using truept rather than truecm)
% 25feb99 (comments about using \label with separate counts for thms, lemmas, etc
% (grace George Kyriazis); comments about making do without this file)
% 16feb99 (add \defw, \empw, to identify words being defined resp. emphasized;
% 10feb99 (add \ppoint for more choice in precise placement)
% 24jan99 (make \RR, \NN, \ZZ etc the default macro for open caps)
% 06aug98 (add missing \fi in percented part of \elabel)
% 06jul98 (improve \setnoteq, add \abel, \beginlarger etc, update toc handling)
% 07jun98 (fix up all writes, using tokens, to avoid expansion of any macros)
% 25may98 (better \atoprightarrow, \belowrightarrow, grace Scott Kersey)
% 17feb98 (add \nnorm (= a triple-bar norm), \lot (= lower order term) )
% 23oct97 (add \nextline)
% 15oct97 (add comment re \label about switching from \leqno to \eqno)
% 27sep97 (add \cocenter#1in#2, as well as \scocenter and \sscocenter)
% 11sep97 (add \rememberalso, \choices, \samelabel, correct elabel explanation )
% 19 jun 97 (correct oversight in \nexttoc; correct (grace Kirk Haller)
% possible toc problem in \[Hh ]eading )
% 25 may 97 (correct error in \gridbox noticeable because of heavy grid lines,
% correct \boxit, add \shadowboxit)
% 25 feb 97 (repair \mbf, also provide \msbf and \mssbf, for sub(sub)scripts)
% 18 dec 96 (put an initial \, into def of \dd)
% 11 oct 96 (change \def to \let where appropriate, and metric units to em's)
% 20 jul 96 (add \global and \relax to \[Ss][ub]ection definition)
% 11 jun 96 (switch \boxit to \Boxit and make \boxit a simple bounding box)
% 04 jun 96 (adjust \set; improve \endproof, thanks to Gerhard Opfer)
% 29 may 96 (add \Norm, \Inpro, \Ceil, \Floor, \Paren, thanks to Paul Nevai)
% 22 may 96 (\boxsize is also a variable in \epsf; changed to \Boxitwidth)
% 16 may 96 (add Larry's macro \mbf for darkening a letter)
% 02 apr 96 (modify definition of \elabel to make it easier to use)
% (NOTE: this forces a change in all explicit uses of \elabel)
% 18 mar 96 (improve comments re stand-alone use of \label and \cite)
% 22 jan 96 (make every 5th gridline in \gridbox yet wider)
% 31 oct 95 (change blackmark to border undefined item and make a note in log)
% 11 oct 95 (add \margincall for marginal notes in draft mode)
% 9 sep 95 (prevent \nextref from using \rh when \rl is undefined)
% 30 jul 95 (add conditional \marginal printout to \rhl; correct and improve
% toc material)
% 12 jul 95 (add \goodbreak in front of headings, \updated to draft headline)
% 09 jul 95 (add a default definition for \nextref, file name to draft head)
% 06 jul 95 (activate comment macro when draft is active)
% 18 apr 95 (change mem to aux, etc)
% 10 mar 95 (add comments re stand-alone use of \label and \cite , add \rhl )
% 27 feb 95 (add \beginquott, \endquott)
% 1 feb 95 (clarify \draft setup, thanks to Tom Hogan)
% 1 jan 95 (add \beginsmaller, \endsmaller)
% 31 dec 94 (simplify \inputifthere, introduce \formciteaddl )
% 17 dec 94 (add \prelabel (with thanks to Tom Hogan), expand \blackmark)
% 20 sep 94 (add \trace and \su[bp]setnoteq)
% 30 Aug 94 (modify \cite use, thanks to Shayne Waldron)
% 24 Aug 94 (modify draft headline, thanks to Zhao Kang)
% 1 Aug 94 (add \cutoff, \restrict, \mapinto)
% 23 Jun 94 (add \cite, a mechanism for citing references)
% 28 May 94 (adjust old \(p)remember to new \marginal)
% 11 May 94 (define \dd, \ee, \ii for use as integration, 2.7218.., \sqrt{-1})
% this redefines an earlier use of \dd, now taken up by \fromto )
% 28 Apr 94 (add \set and \Set )
% 24 Apr 94 (switch to use of \label[\]/)
% 1. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*---> draft macros
% These macros set up certain standard conditions for drafts. These are
% activated by saying \draft and include the printing of a date stamp (along
% with file name \filenamed (else \jobname) and date of last update (in
% \updated) if available), as well as printing of all label names into a
% slightly enlarged left margin. In addition, \ifdraft is set to true, making
% it possible to make other actions in one's file dependent on whether or not
% a draft is being prepared; e.g., this activates \comment and \margincall.
\newif\ifdraft\newcount\hour\newcount\minutes
\def\draft{\drafttrue\hoffset=.8truecm\showlabeltrue
\headline={\sevenrm \hfill \ifx\filenamed\undefined\jobname\else\filenamed\fi%
(.tex) (as of \ifx\updated\undefined???\else\updated\fi)
\TeX'ed at {\hour\time\divide\hour by 60{}%
\minutes\hour\multiply\minutes by 60{}%
\advance\time by -\minutes
\the\hour:\ifnum\time<10{}0\fi\the\time\ on \today\hfill}}
}
\def\today{\number\day\space%
\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%
\space\number\year}
% for showing edits made, here is
\def\strikeout#1{\setbox0=\hbox{#1 }%
\hbox to \wd0{\leaders\hbox to .4em{\hss/\hss}\hfil}\hskip-\wd0\relax\box0}
% here are two colorful macros, for inserting a comment, and for suggesting
% a change from old to new; use requires
\input colordvi
\def\comment#1{\Blue{{\bf \ #1}}}
\def\ct#1#2{\Green{{\bf[}\Red{#1}{\bf]}\hbox{$\;\Rightarrow\;$}{\bf[}\Red{#2}{\bf]}}}
% to disable these macros in a file, use
%\def\comment#1{}
%\def\ct#1#2{#1}
%The list uses the following format
%
%page/paragraph or item/line: A --> B [C]
%
%to indicate that, at the specified place, A should be changed to B, with C an
%optional comment. Either A or B may be empty, and paragraph numbers or line
%numbers may be negative to indicate a count from the bottom.
% to cut out temporarily a piece of text without percenting it out, use
\def\blank#1{}
% 2. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*---> precise placement macros
% To force a new paragraph within a formal statement whose TeX-end is indicated
% by an empty line, remember that TeX does not expand macros while looking for
% the end of a macro argument and use
\def\newpar{\par}\let\nextpar\newpar
% In the same spirit:
\def\newline{\hfill\break\noindent}\let\nextline\newline
\def\newpage{\vfill\eject}\let\nextpage\newpage
% to retain a page break in the middle of a paragraph even though some
% material has been added/deleted, use, at that place,
\def\pagebreak{break\eject\noindent}
% to leave a blank space of specified depth in true cm, use
\def\skipp#1{\hrule height0pt width0pt depth#1truecm}
% the next macro just draws a horizontal line with some space above and below.
\def\drawline{\bigskip\hrule\bigskip}
% the next macros are useful for placing material precisely on the page
% using a grid that can be turned off eventually.
% The macro
% \gridbox#1/#2/#3
% builds a box vertically to #1 truecm and horizontally to #2 truecm, overlays
% that box with gridlines exactly 1truecm apart (with every fifth line heavier).
% Grid is turned off by saying \showgridfalse. #3 should consist of one or more
% statements of the form
% \point(d,r){...} or \cpoint(d,r){...} or \ppoint ij(d,r){...}
% which have the effect of putting the material {...} onto the page in such
% a way that its upper left corner, respectively its center, respectively its
% i,j-point (with, e.g., 1,0 the left midedge and 2,2 the lower right corner)
% ends up d truecm down and r truecm to the right of the upper left
% corner of the gridbox.
% Note that {...} might be the local way to include a picture file. E.g.,
% \point(#1,0){\special{ps: plotfile .ps}}
% would include the file .ps (presumably a postscript file), giving it
% the lower left corner of the gridbox as the currentpoint (and thus
% controlling the placement of the figure in .ps on the page).
%
% TeX should be in vertical mode when calling on \gridbox. E.g.,
% \centerline{\vbox{\gridbox3/4.4/{\cpoint(1,1){$0$}\ppoint21(2,1){$0$}}}}
% would generate a centered gridbox and print a zero centered at the (1,1)
% point of that box and also one centered atop the (2,1) point.
% See \gridbox uses in \Figpls, \Figinbox, etc. in ./ps/figure.tex
% or the simplified \Figinbox below.
%
% The macro
% \ptgridbox#1/#2/#3
% differs from gridbox only in that the units are pt rather than truecm and,
% correspondingly, the spacing of gridlines is by 20 units rather than 1.
% This macro is particularly useful in conjunction with recent versions of
% ghostview which supply the current pointer position in pt (albeit as
% (pt from left, pt from below) rather than the (pt from above, pt from left)
% used here). Be sure to use \magnification1000 while checking placements.
\def\gridunits{truecm}\newcount\tickskip\tickskip1\newcount\majortick\majortick5
\def\ptgridbox#1/#2/#3{
{\def\gridunits{pt}\tickskip20\multiply\majortick by\tickskip%
\gridbox#1/#2/{#3}}}
\def\gridbox#1/#2/#3{
\vbox to #1\gridunits{#3
\ifshowgrid\tickcount=0
\loop\cgridw%
\vbox to 0pt{\kern\tickcount \gridunits\hrule width#2\gridunits height\gridwidth\vss}
\nointerlineskip \advance\tickcount by \tickskip
\ifdim\tickcount pt outlined boxes, big and small
% \boxit puts its argument into a box.
% \shadowboxit adds a shadow to the box from \boxit.
% \Boxit puts the argument into a box of specified width, and puts that box
% into a math display.
% \Boxtop \Boxbot do the same, except that they leave off the bottom, resp the
% top, thus can be used for Boxes split across two pages.
\def\boxitmargin{1.5pt}\def\boxitkern{\kern\boxitmargin}
\def\boxit#1{\setbox0=\hbox{#1}\vbox{\hrule\hbox{\strut\vrule\boxitkern
\vbox{\noindent\hsize\wd0\relax\box0}\boxitkern\vrule}\hrule}}
\def\shadowboxit#1{\setbox0=\hbox{\boxit{#1}}
\vtop{\copy0\nointerlineskip
\hbox{\kern\boxitmargin\vbox{\hrule height\boxitmargin width\wd0}}}%
\kern-\boxitmargin%
\lower\boxitmargin\hbox{\vrule height\ht0 depth\dp0 width\boxitmargin}}
\def\Boxitwidth{\hsize15.6truecm}\def\Boxitmargin{\kern10pt}
\def\Boxbody#1/#2/#3/{$$\vbox{\if#2\empty\else\hrule\fi
\hbox{\vrule\Boxitmargin
\vbox{\Boxitmargin\vbox{\Boxitwidth\noindent\strut #1}
\Boxitmargin}\Boxitmargin\vrule}\if#3\empty\else\hrule\fi}$$}
\def\Boxit#1{\Boxbody{#1}/1/1/}
\def\Boxtop#1{\Boxbody{#1}/1//}
\def\Boxbot#1{\Boxbody{#1}//1/}
% another boxit, found somewhere; try it out some time.
%\def\boxit#1{\lower8pt\vbox{\hrule height2pt \hbox{\vrule width2pt \kern8pt
% \vbox{\kern8pt\hbox{#1}\kern8pt}\kern8pt\vrule width2pt}\hrule height2pt }}
% Make a square box outline, of sidelength #1 and with line thickness #2.
\def\makeblanksquare#1#2{
\dimen0=#1pt\advance\dimen0 by -#2pt
\vrule height#1pt width#2pt depth0pt\kern-#2pt
\vrule height#1pt width#1pt depth-\dimen0 \kern-#1pt
\vrule height#2pt width#1pt depth0pt \kern-#2pt
\vrule height#1pt width#2pt depth0pt
}
% Here is a particularly nice box, for end_of_proof or for the boxspline box
\def\boxx{\makeblanksquare6{.4}}
\def\subboxx{\makeblanksquare4{.3}}
% 4. -*-*-*-*-*-*-*-*-*-*-*---> change to different pointsizes (for abstracts,
%-*-*-*-*-*-*-*-*-*-*-*---> exercises and answers, highlights, etc.)
% Put the material between \beginsmaller and \endsmaller, making sure to
% leave an empty line prior to the \endsmaller to make certain that the switch
% back to ordinary baselineskip doesn't happen too soon.
\def\beginsmaller{\begingroup\eightpoint
\let\CC\CCe\let\FF\FFe\let\NN\NNe\let\QQ\QQe\let\RR\RRe\let\ZZ\ZZe
}
\def\endsmaller{\endgroup}
% The details for this are taken from pp413-415 of THE TEXBOOK:
\font\eightrm=cmr8 \font\sixrm=cmr6
\font\eighti=cmmi8 \font\sixi=cmmi6
\font\eightsy=cmsy8 \font\sixsy=cmsy6
\font\eightbf=cmbx8 \font\sixbf=cmbx6
\font\eighttt=cmtt8
\font\eightit=cmti8
\font\eightsl=cmsl8
\newskip\ttglue
\def\eightpoint{\def\rm{\fam0\eightrm}% switch to 8-point type
\textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
\textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
\textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\textfont\itfam=\eightit \def\it{\fam\itfam\eightit}%
\textfont\slfam=\eightsl \def\sl{\fam\slfam\eightsl}%
\textfont\ttfam=\eighttt \def\tt{\fam\ttfam\eighttt}%
\textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
\scriptscriptfont\bffam=\fivebf \def\bf{\fam\bffam\eightbf}%
\tt \ttglue=.5em plus.25em minus.15em
\normalbaselineskip=9pt
\setbox\strutbox=\hbox{\vrule height7pt depth2pt width0pt}%
\let\sc=\sixrm \let\big=\eightbig \normalbaselines\rm}
% Put the material between \beginlarger and \endlarger, making sure to
% leave an empty line prior to the \endlarger to make certain that the switch
% back to ordinary baselineskip doesn't happen too soon.
\def\beginlarger{\begingroup\twelvepoint
\let\CC\CCtw\let\FF\FFtw\let\NN\NNtw\let\QQ\QQtw\let\RR\RRtw\let\ZZ\ZZtw}
\def\endlarger{\endgroup}
% The details for this are taken from pp413-415 of THE TEXBOOK:
\font\twelverm=cmr12
\font\twelvei=cmmi12
\font\twelvesy=cmsy10 at 12pt
\font\twelvebf=cmbx12
\font\twelvett=cmtt12
\font\twelveit=cmti12
\font\twelvesl=cmsl12
\newskip\ttglue
\def\twelvepoint{\def\rm{\fam0\twelverm}% switch to 12-point type
\textfont0=\twelverm \scriptfont0=\tenrm \scriptscriptfont0=\eightrm
\textfont1=\twelvei \scriptfont1=\teni \scriptscriptfont1=\eighti
\textfont2=\twelvesy \scriptfont2=\tensy \scriptscriptfont2=\eightsy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\textfont\itfam=\twelveit \def\it{\fam\itfam\twelveit}%
\textfont\slfam=\twelvesl \def\sl{\fam\slfam\twelvesl}%
\textfont\ttfam=\twelvett \def\tt{\fam\ttfam\twelvett}%
\textfont\bffam=\twelvebf \scriptfont\bffam=\tenbf
\scriptscriptfont\bffam=\eightbf \def\bf{\fam\bffam\twelvebf}%
\tt \ttglue=.5em plus.25em minus.15em
\normalbaselineskip=14pt
\setbox\strutbox=\hbox{\vrule height10pt depth4pt width0pt}%
\let\sc=\tenrm \let\big=\twelvebig \normalbaselines\rm}
%%%%%% identify words being defined and words being emphasized, making it
%%%%%% easy to switch to different ways for doing this on an editor's demand:
\def\defw#1{{\bf#1}}\let\dword\defw
\def\empw#1{{\it#1\/}}\let\eword\empw
% 5. -*-*-*-*-*-*-*-*-*-*-*---> quote from email messages and such, in \tt font
\def\beginquott{\vskip0pt\noindent%
\begingroup\parskip0pt\parindent10pt\tt\obeylines}
\def\endquott{\endgroup\medskip}
% 6. -*-*-*-*-*-*-*-*-*-*-*---> automatic sequencing and labelling of sections
%-*-*-*-*-*-*-*-*-*-*-*---> and subsections
\newcount\sectionno
\newcount\subsectionno
\newcount\subsubsectionno
\sectionno=0
\def\Section#1{\global\advance\sectionno by 1\relax\subsectionno=0%
\equationno=0\Heading{\the\sectionno. #1}}
\def\subsection#1{\global\advance\subsectionno by 1\relax\subsubsectionno=0%
\heading{\the\sectionno.\the\subsectionno. #1}}
\def\ubsection#1{\vskip-\bigskipamount\subsection{#1}}
\def\subsubsection#1{\global\advance\subsubsectionno by 1\relax%\equationno=0%
\heading{\the\sectionno.\the\subsectionno.\the\subsubsectionno #1}}
\def\ubsubsection#1{\vskip-\bigskipamount\subsubsection{#1}}
% (use \ub[sub]section instead of \sub[sub]section if it is the next thing
% after a \[sub]section)
% 7. -*-*-*-*-*-*-*-*-*-*-*---> automatic sequencing and labelling of equations
%-*-*-*-*-*-*-*-*-*-*-*---> and other items, and the saving thereof
\newcount\equationno\equationno=0
% The intent is to label equations and other formal statements consecutively
% and automatically, and to provide means to refer to each labeled item, in
% text preceding or following it, by the name given it. (See also 9. forward
% referencing, below: briefly, prefix a label with \prelabel if it is only
% defined later in the file.) (See 10. maintaining labelling, below, for what
% to do if the labelling is to be maintained without help of this file.)
% (See also `Using more than one enumeration' later in this section, for how
% to enumerate Theorems, Lemmas, etc, separately.)
% First, a (silly) example:
%% Consider the following great equations
%%$$ a = a \label\greatstuff/$$
%%and
%%$$ a = a. \label/$$
%%
%%Now, some might claim that (\greatstuff) is merely a tautology, and,
%%as this is the same as (\lastlabel), they are right; however, one should
%%keep in mind the following Theorem \nextlabel:
%%
%%\proclaim Theorem \label/. All is in vain.
%%
%%Theorem \lastlabel\ implies (\prelabel\morestuff a) below, via the following
%%
%%\proclaim (\label\corinvain/) Corollary. Vain is nonempty.
%%
%% Corollary \corinvain\ explains much, because
%%\item{(i)} it implies that
%%$$\hbox{\rm Vain} \not= \emptyset,\elabel\morestuff/\kern-\parindent/a/$$
%%\item{(ii)} but does not imply that
%%$$\hbox{\rm Vane} \not= \emptyset,
%%\samelabel\elabel/\kern-\parindent/b/$$
\def\label#1/{\elabel{#1}///}
\def\elabel#1/#2/#3/{\global\advance\equationno by 1 %
\ifx#1\empty\else\emember#1%
\ifshowlabel\marginal{\string#1}\fi\fi%
\ifprintlabel\ifmmode\leqno{#2(\formeq#3)}\else#2\formeq#3\fi\fi}
% If the equation number is to appear on the right, then replace the preceding
% two lines by the following two lines (without the initial percent :-):
% \ifmmode \eqno{#2(\formeq#3)}\ifshowlabel\rlap{\fiverm \string#1}\fi%
% \else\ifshowlabel\marginal{\string#1}\fi#2\formeq#3\fi\fi}
%% at times, don't want to print the new label right then but only later, using
%% \lastlabel. In that case, use \abel[\]/ instead of \label:
\newif\ifprintlabel\printlabeltrue
\def\abel#1/{{\printlabelfalse\label#1/}}
\def\samelabel{\global\advance\equationno by-1\relax}
% \label[\]/ increments \equationno by 1, then puts that number right
% there, in a form specified by \formeq , with the present default being
\def\formeq{\the\equationno}
% but which one could override, e.g., by
% \def\formeq{\the\sectionno.\the\equationno}
% or by
% \def\formeq{\the\sectionno.\the\subsectionno.\the\equationno}
%
% The argument \ is usually empty (hence the need for the terminating
% slash whenever \label.../ is used). If \ is not empty, then the
% whole argument must be of the specified form, \ , (including the
% leading backslash), and must be terminated by that final slash. The
% effect is that the macro \ is defined to contain the current value
% of \equationno , in the form specified by \formeq , making it easy to
% refer to the labelled item in the rest of the document, as illustrated in the
% silly example above.
% As the silly example shows, it is possible to refer to the nearest labeled
% item even if it was not given a name, using the macros
\def\lastlabel{\formeq}
\def\nextlabel{{\advance\equationno by 1 \formeq}}
% To be sure (see the silly example) \label\/ is also used to label
% equations, in exactly the spot into which \leqno{...} ordinarily goes.
% In that case, the incremented \equationno will appear, in the form
% specified by \formeq , enclosed in parentheses.
% Note that the present default is to put the equation number on the left
% side of the page, but that is easily changed, as indicated at the end of the
% above definition of \elabel.
% If the equation label is to show some additional things, use instead
% \elabel[\]/// . For example,
% $$ .... \elabel\goodstuff//a/$$
% would append the letter a to the displayed equation number. Note the use of
% \samelabel in the subsequent
% $$ .... \samelabel\elabel//b/$$
% to be certain that this gets the same numerical label. As another example,
% \item{...} ... $$ ... \elabel\goodstuff/\kern-\parindent//$$
% would put the equation label next to the left margin in spite of the fact
% that the equation occurs inside an \item . For convenience, here is a macro
% for the latter use, and even one for use inside an \itemitem :
\def\itemlabel#1/{\elabel#1/\kern-\parindent//}
\def\itemitemlabel#1/{\elabel#1/\kern-\parindent\kern-\parindent//}
\newif\ifshowlabel
% Use of \label\/ will also put in small letters into the
% left margin, provided \showlabeltrue has been mentioned earlier (as is
% done by the macro \draft above).
% The macro
\def\marginal#1{\strut\vadjust{\kern-\strutdepth%
\vtop to \strutdepth{\baselineskip\strutdepth\vss\llap{\fiverm#1\ }\null}}}
\def\strutdepth{\dp\strutbox}
% ... used for this purpose is good for other marginal notes, as in
\newdimen\marginwidth\marginwidth.9truein
\def\margincall#1{\ifdraft\marginal{\vbox{\overfullrule0pt\hsize\marginwidth%
\noindent #1}}\fi}
%%%%%%%%% Using more than one enumeration:
% Although this makes it much harder to find a labeled item, some people
% unaccountably prefer to sequence different items separately. It is easy
% to adapt use of \label to this. If, e.g., theorems are to be sequenced
% separately, introduce the corresponding count early on, e.g., by the command
% \newcount\thmno\thmno0
% \def\tlabel#1/{{\let\equationno\thmno\label#1/}}
% thereby defining the command \tlabel, to be used just as \label: E.g.,
% \proclaim Theorem \tlabel\greatthm/. Omnis est Vanitas.
%%%%%%%%% Cross reference between chapters of a book:
\newif\ifrememberchapter\rememberchapterfalse
% When writing a book, one also wants a second file, in which each item
% also reflects the particular chapter in which it appears, e.g., in the form
% \def\\chapterno{\chapterno.\formeq}
% For this, the following statements should appear near the beginning of the
% \TeX-file for that chapter:
%
% \def\chapterno{...} (with ... being, e.g., IV , if it's Ch. 4 .)
% \rememberchaptertrue
% \newwrite\chpaux
% \immediate\openout\chpaux=\jobname.\chapterno
%
% One would \inputifthere{.} in other chapter files
% and refer there to the saved number via \
\def\emember#1{\ifrememberchapter % subsequent percents prevent unwanted blanks
\immediate\write\chpaux{\def\string#1\chapterno{\chapterno.\formeq}}\fi%
\immediate\write\aux{\def\string#1{\formeq}}%
\global\edef#1{\formeq}}
% The \emember mechanism can also be used to record other numbers, for
% use elsewhere, via the macro
\def\rememberalso#1as#2{{\def\formeq{#1}\remember#2}}
% It is essential here that the whole action is enclosed in braces, to keep
% the change in \formeq local. For example, to save the current section
% number (found in \sectionno) as \greatsection for reference in other
% places, use, right after \Section{...},
% rememberalso\the\sectionno as\greatsection
\def\remember#1{\ifshowlabel\marginal{\string#1}\vskip-\baselineskip\fi%
\emember#1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% old stuff, retained for backward compatibility:
\def\equation{\leqno{\listitem}}
\def\itemequation{\leqno{\nextequationno{\kern-\parindent(\formeq)}}}
\def\iitemequation{\leqno{\nextequationno{\kern-\parindent\kern-\parindent%
(\formeq)}}}
% This uses \listitem to increment the current value of \equationno by 1
% and puts that value into the equationnumber display. Note the present default
% is to put the equation number on the left side of the page.
%
% To save the current \equationno for later reference, use: \remember\
% To save the next one to be set, use instead: \premember\
% Either way, this will define the control sequence \ to be the sequence
% of character tokens which spells the current, resp. the next, value of
% \equationno , as in the following example:
% Consider the following great equation
% $$ a = a. \equation$$
% \remember\greatstuff
% Now, some might claim that (\greatstuff) is merely a tautology, and,
% as this is the same as (\lastequation), they are right; however, ...
% To use this saved `equation number' elsewhere in the file, use \
%
% Use of \remember or \premember will also put in small letters into the
% left margin, provided \showlabeltrue has been mentioned earlier. See
% earlier explanatory material.
\def\premember#1{{\advance\equationno by 1 \remember#1}\vskip-\baselineskip}
\def\lremember#1{{\advance\equationno by 1 \remember#1}\vskip0pt}
\def\lastequation{\formeq}
\def\nextequation{{\advance\equationno by 1 \formeq}}
\def\nextequationno#1{\global\advance\equationno by 1 #1}
\def\listitem{\nextequationno{(\formeq)}}
\def\istitem{\nextequationno{\formeq}}
\def\enditems{\item{}\vskip -\baselineskip} % used to be needed since TeX
% used to treat last item in a proclaim list wrongly.
% It can also be used to terminate a list of items within a
% proclaim, but for that already \vskip-0pt will work, as will
% \newpar defined below.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end of old material
% 8. -*-*-*-*-*-*-*-*-*-*-*---> citing references (also an alternative way to
%-*-*-*-*-*-*-*-*-*-*-*---> generate and use labels):
% The intent is to provide informal referencing as well as forward
% referencing (q.v.) for classes of items. The particular instant is tailored
% to the citing of items from the bibliography at the end of the paper, hence
% the use of the word \cite .
% First, an example which (yeeechhhh!) simply serializes the references:
%% We quote from \cite{thunk: p.-3}:
%% ``Knuth's book, \cite{knuth1}, is remarkable in that it contains all
%% information about \TeX\ needed, --- all one has to do is find it.''
%% However, how would \formcite{\citthunk} know?
%%
%% \centerline{References}
%% \newcount\refnumber
%% \def\nextref{\global\advance\refnumber by 1 \def\rl{\the\refnumber}%
%% \item{\defcite{\rh}}}
%%
%% \rhl{knuth1}\nextref
%% D. Knuth, {\it The \TeX book\/}, Addison-Wesley, 1984.
%%
%% \rhl{thunk}\nextref
%% E. Thunk, Who would have thunk it?, Yelsew J. {\bf 4}, (1994), 3--7.
% This could be simplified by absorbing \rhl into \nextref
% using
%% \def\nextref#1{\global\advance\refnumber by 1 \rhl{\the\refnumber}%
%% \item{\defcite{#1}}}
% and, e.g.
%% \nextref{knuth1}
%% D. Knuth, {\it The \TeX book\/}, Addison-Wesley, 1984.
%%
% If one wanted to use instead some more interesting labels, e.g., K for
% the first and T for the second, one would have to change the Reference part
% of the example to something like this:
%% \centerline{References}
%% \def\nextref{\item{\defcite{\rh}}}
%%
%% \rhl{knuth1:K}\nextref
%% D. Knuth, {\it The \TeX book\/}, Addison-Wesley, 1984.
%%
%% \rhl{thunk:T}\nextref
%% E. Thunk, Who would have thunk it?, Yelsew J. {\bf 4}, (1994), 3--7.
% If, in the second way, one wants to use the reference label also as its
% handle, one would have only the intended label as the argument for \rhl .
% The \rhl macro makes available (to the \defcite macro below) the reference
% *HANDLE*, \rh , and the reference *LABEL*, \rl . The former gives the name by
% which to refer to the reference when citing it in the text, the latter
% specifies how the citation should be printed. E.g., in the last example
% above, \cite{thunk} will expand to [T] (if \formcite has standard form).
\def\rhl#1{\rahel#1::/}
\def\rahel#1:#2:#3/{\edef\rh{#1}\def\next{#2}\ifx\next\empty\edef\rl{#1}%
\else\rhllabel\edef\rl{#2}\fi}
\def\rhllabel{\ifshowlabel\vskip-\baselineskip\marginal{\rh}\fi}
% Here is a default definition of \nextref which defines a reference handle
% if \rl is defined; else it simply serializes the references.
\newcount\refnum\refnum0
\def\nextref{\ifx\rl\undefined%
\global\advance\refnum by 1{}{\def\rl{\the\refnum}\item{\defcite{\rl}}}\else
\item{\defcite{\rh}}\fi}
% The \cite macro used in the examples is:
\def\cite#1{\excite#1::/}
\def\excite#1:#2:#3/{\edef\griff{cit#1}%
\formcite{\plazieres\def\next{#2}\ifx\next\empty\else\formciteaddl{#2}\fi}}
% Note that \cite expects its argument to be of the form referencehandle
% optionally followed by :other_stuff , with other_stuff a page or other item
% reference. This makes it impossible to have a colon as part of a reference
% handle or having a / as part of the other_stuff (except within braces).
\def\defcite#1{\edef\griff{cit#1}\edef\inhalt{\rl}\definieres\cite{#1}}
% The \defcite#1 macro defines the control sequence \cit#1 and gives it
% the value of \rl (assumed to be defined beforehand, see the example), while
% \cite{#1} expands to the value of the control sequence \cit#1 but placed
% in whatever form (brackets, boldface, etc.) has been set by \formcite .
% The #1 part of the control sequence can be any alphanumeric string;
% in particular, in contrast to the \label macro above, it can contain
% digits. However, if #1 only contains letters, then it is also possible to
% use \cit#1 directly, without going through \cite (see the above example).
% The particular form in which the reference and additional material within
% the reference is to appear is defined next;
\def\formcite#1{{\bf[}#1{\bf]}}
\def\formciteaddl#1{: #1}
% The supporting macros, \plazieres and \definieres , are set up to make
% it easy to use variants of \cite and \defcite , using prefixes
% other than cit in the resulting class of labels. A major point of the setup
% is the use of \jobname.aux to record all these control sequences, for
% forward referencing (as is essential since the bibliography only appears at
% the end of a paper). Since this may also be of use for forward referencing
% of (other) labels, here is the macro \prelabel that will simply place its
% argument if it is defined; otherwise, it will place its argument between
% two black marks and print a warning, but will otherwise not disturb the
% flow of TeX:
\def\prelabel#1{\ifx#1\undefined\xdef\esfehlt{\string#1}\blackmark\else{#1}\fi}
\newcount\blackmarks\blackmarks0
\def\blackmark{\ifnum\blackmarks=0\global\blackmarks1%
\write16{===================================================================}%
\write16{|| Some forward reference is as yet undefined. Re-TeX this file! ||}%
\write16{===================================================================}%
\fi\immediate\write16{undefined forward reference: \esfehlt}%
{\vrule height10pt width3pt depth2pt}\esfehlt% , the following macro
% will define a control sequence \ and give it the value of \inhalt .
\def\definieres{\expandafter\xdef\csname\griff\endcsname{\inhalt}
\def\leerplatz{ }\expandafter\immediate\write\aux{%
\string\expandafter\def\string\csname%
\leerplatz\griff\string\endcsname{\inhalt}}}
% Assuming that \griff has the value , the following macro expands
% to the contents of \ , if previously defined by use of \definieres .
% Otherwise, it expands to bordered by two black marks.
\def\plazieres{\expandafter\ifx\csname\griff\endcsname\relax%
\xdef\esfehlt{\griff}\blackmark\else{\csname\griff\endcsname}\fi}
% 9. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-> forward referencing
% Use of \label\/ or \defcite{} will also save the resulting
% definition, in the form
% \def\{\formeq}
% respectively
% \expandafter\def \csname cit\endcsname{}
% in the file \jobname.aux for the purpose of correct forward referencing.
% For this, it may be necessary to run the job twice. In any case, the
% following sets up the necessary file work:
% (1) a conditional \input, to cover the first time when the file \jobname.aux
% does not yet exist (this may be of use elsewhere):
\newread\testfl
\def\inputifthere#1{\immediate\openin\testfl=#1
\ifeof\testfl\message{(#1 does not yet exist)}\else\input#1\fi\closein\testfl}
% (2) bring in \jobname.aux if it exists, then set it up for writing:
% (Recall that \jobname expands to the name of the file TeX thinks it is
% working on.)
\inputifthere{\jobname.aux}
\newwrite\aux
\immediate\openout\aux=\jobname.aux
% 10. -*-*-*-*-*-*-*-*-> maintaining labelling and \cite without help of the
% present format file (e.g., if the \jobname.tex file is to be submitted to a
% journal) and getting a list of the macros from this file used.
%
% For \label, do the following:
% (i) make sure that any \label/ has either been deleted or else replaced by
% some \label\/ and that any use of \nextlabel or \lastlabel has been
% replaced by references to explicitly named labels.
% Also redefine any duplicate label names (find them in vi by :g/\\label/co $)
% Also, change all occurrences of \elabel appropriately (usually, just change
% it to \label, combining the material from the other two arguments of
% \elabel appropriately into the one argument for \label).
% (ii) put the current contents of \jobname.aux (obtained AFTER any changes
% under (i) were made) somewhere at the beginning of the file \jobname.tex.
% (iii) use the following definitions of \label and \prelabel and \rememberalso:
% \def\prelabel{}\def\rememberalso#1as#2{}
% \def\label#1/{\ifmmode\leqno(#1)\else#1\fi}
% If AMSTeX is to be used, use instead
% \def\label#1/{\ifmmode\tag #1\else#1\fi}
%
% For \cite, do the following:
% Make sure that the references don't rely on \refmac.
% (i) same as (ii) for \label;
% (ii) possibly edit the definitions brought in in step (i), particularly if
% reference by number is desired. Also, note that the definitions picked
% up in step (iii) below include the \formcite stuff, a further
% opportunity to make changes to please some editor.
% (iii) pick up the relevant definitions, as follows:
%
% \def\cite#1{\excite#1::/}
% \def\excite#1:#2:#3/{\edef\griff{cit#1}%
% \formcite{\plazieres\def\next{#2}\ifx\next\empty\else\formciteaddl{#2}\fi}}
% \def\formcite#1{{\bf[}#1{\bf]}}
% \def\formciteaddl#1{: #1}
% \def\plazieres{\expandafter\ifx\csname\griff\endcsname\relax%
% \xdef\esfehlt{\griff}\blackmark\else{\csname\griff\endcsname}\fi}
% \def\nextref{\item{[\rh]}}
% \def\blackmark{\immediate\write16{undefined forward reference: \esfehlt}}
%
% If AMSTeX (or, horrors!, LaTeX) is to be used, one needs to proceed
% differently since \cite is an AMSTeX command. So, replace all \cite in the
% text by \mycite, then pick up the relevant definitions as above, but with
% the first line being
% \def\mycite#1{\excite#1::/}
%
% For the rest of the macros from this file, get a list of all of them, as
% follows: TeX the file .tex, with the format file disabled (and with any
% equation labels and citation labels already taken care of), and hit q
% at the first error message. Then, get into the file .log, position
% yourself at the beginning of the file and mark that first line by typing
% ma
% then carry out the command
% :.,$g/Undefined control sequence/+co 0
% then delete all the stuff below this new stuff by
% :'a,$d
% then
% :%s/^.*\(\\[A-Za-z]*\)[$ ]*$/\1/
% :%!sort | uniq
% and this leaves you with a list of all the macros from this file used in
% .tex.
% 11. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-> Table of Contents
% The next macros are good for generating a Table of Contents
\newif\ifwritetoc\newwrite\toc
\def\tocone{1}\def\toctwo{2}
% Assuming that the Table of Content is the first item of business, one would
% start a new page there with something like
% \centerline{TABLE OF CONTENTS}
% \bigskip\printtochere\vfill\eject
% This uses
\def\printtochere{\immediate\closeout\toc\inputifthere{\jobname.toc}\starttoc}
\def\starttoc{\immediate\openout\toc=\jobname.toc\writetoctrue}
% It may be necessary to tex the file at least three times, the first time to
% generate the file jobname.toc, the second time to establish the number of
% pages it occupies.
% If there are items to be mentioned in the toc that precede the toc, then
% one would (i) place
% \starttoc
% somewhere prior to the first item to be mentioned in the toc;
% (ii) assuming one wanted to have the correct page number on the table of
% content page(s), use at the place in the document for the toc
% \newcount\tocpage\tocpage=\pageno\advance\pageno by xxx
% with xxx the (expected) number of pages for the toc; and
% (iii) at the end of the document, start a NEW page with
% \pageno=\tocpage
% \centerline{TABLE OF CONTENTS}
% \bigskip \printtochere
% The writing of the individual items can be done by the following macros:
% The first adds a line to the table of contents, the second adds an entry,
% with text on the left and the current pageno on the right and a leader fill
% in between. Change the second one locally for a different style.
% The file satmacros.tex at www.cs.wisc.edu/~deboor/sat has a version more
% suited for a toc at the beginning of a paper.
\newtoks\writestuff% to avoid expansion of macros during writing,
\def\nexttoc#1{\immediate\write\toc{#1}}
\def\tocline#1#2{\writestuff={#1}\nexttoc{\line{\hskip#2truecm
\the\writestuff\noexpand\diamondleaders\hfill \ \ \folio}}}
\newcount\toccount\toccount1
\def\diamondleaders{\global\advance\toccount by 1
\ifodd\toccount \kern-10pt \fi
\leaders\hbox to 15pt{\ifodd\toccount \kern13pt \else\kern3pt \fi
.\hss}}
%\def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill}
% These are used, e.g., conditionally in Heading, heading, eading below.
\font\bigfont=cmbx10
\def\Heading#1{\bigskip\bigskip\goodbreak\centerline{\bigfont #1}
\ifwritetoc\tocline{#1}0\fi\nobreak\bigskip\nobreak}
\def\moreHeading#1{\vskip-\bigskipamount\centerline{\bigfont #1}
\ifwritetoc\tocline{#1}\tocone\fi\nobreak\bigskip\nobreak}
\let\moreSection\moreHeading
\def\heading#1{\bigskip\goodbreak\centerline{\bf #1}
\ifwritetoc\tocline{#1}{\tocone}\fi\nobreak\medskip\nobreak}
\def\moreheading#1{\vskip-\medskipamount\centerline{\bf #1}
\ifwritetoc\tocline{#1}{\toctwo}\fi\nobreak\medskip\nobreak}
\let\moresubsection\moreheading
\let\moresubsubsection\moreheading
\def\eading#1#2{\bigskip\goodbreak\centerline{\bf #1}
\ifwritetoc\tocline{#1}{#2}\fi\nobreak\medskip\nobreak}
\def\moreeading#1#2{\vskip-\medskipamount\centerline{\bf #1}
\ifwritetoc\tocline{#1}{#2}\fi\nobreak\medskip\nobreak}
% 12. -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-> math macros
\def\title#1{\toneormore#1||||:}
%% If overlong, use || to indicate linebreaks
\def\toneormore#1||#2||#3:{\centerline{\titlefont #1}%
\def\next{#2}\ifx\next\empty\else\medskip\toneormore#2||#3:\fi}
\def\titlefont{\twelverm}
\def\author#1{\bigskip\aoneormore#1||||:}
%% If overlong, use || to indicate linebreaks
\def\aoneormore#1||#2||#3:{\centerline{\authorfont #1}%
\def\next{#2}\ifx\next\empty\else\smallskip\aoneormore#2||#3:\fi}
\def\authorfont{\twelverm}
\def\abstractkey#1#2{\bigskip\bigskip\medskip%
{\narrower\beginsmaller\noindent{\bf
Abstract.~}#1\def\next{#2}\ifx\next\empty\else\smallskip\noindent{\it
Keywords:} #2\fi\endsmaller\bigskip}\medskip}
\def\abstract#1{\abstractkey{#1}{}}
\def\formal#1{\bigskip{\bf #1}\hskip1em}
\def\Proof#1{\indent{\bf Proof#1:}\qquad}
\def\proof{\Proof{}}
\let\endproofsymbol\boxx
\def\endproof{\hbox{}~\hfill\endproofsymbol\medskip\goodbreak}
\let\bs\backslash
\def\Ccircle{\buildrel \circ \over C}
\def\picircle{\buildrel \circ \over \pi}
\def\ref#1{{\bf[}#1{\bf]}}
\def\rf#1 {[{\bf#1}]}
\def\suchthat{\hbox{\rm\ s.t.\ }}
% \wlog is a TeX macro, and \def\wlog{without loss of generality} causes
% unexpected things to happen.
%\def\setnoteq#1{\mathrel{\lower4pt\vbox{\hbox{$\scriptstyle#1$}
%\vskip-6pt\hbox{$\scriptstyle\not=$}}}}
%\def\setnoteq#1{\mathrel{\raise3pt\hbox{$#1$}\lower4pt\llap{$\not=$}}}
\def\setnoteq#1{\mathrel{\setbox0=\hbox{$#1$}\dimen0=\wd0\box0%
\divide\dimen0 by2{}\kern-\dimen0\setbox0=\hbox{$'$}\dimen1=\wd0%
\divide\dimen1 by2{}\kern-\dimen1\lower1.7ex\box0\kern\dimen0\kern-\dimen1}}
\def\supsetnoteq{\setnoteq{\supseteq}}
\def\subsetnoteq{\setnoteq{\subseteq}}
\def\atoprightarrow#1{\mathrel{\setbox0%
\hbox{$\kern.5em\scriptstyle{#1}\kern.5em\atop{}$}%
\copy0\kern-\wd0\hbox to\wd0{\rightarrowfill}}}
\def\belowrightarrow#1{\mathrel{\setbox0%
\hbox{${}\over\kern.5em\scriptstyle{#1}\kern.5em$}%
\copy0\kern-\wd0\hbox to\wd0{\rightarrowfill}}}
\def\uniformly{\atoprightarrow{u}}
\def\pointwise{\atoprightarrow{pw}}
\def\strongly{\atoprightarrow{s}}
\def\weakly{\atoprightarrow{w}}
\def\inv#1{#1^{-1}}
\def\bigtimes{\mathop{\times}}
\def\Im{\mathop{\rm Im}\nolimits}
\def\Re{\mathop{\rm Re}\nolimits}
\def\all{\mathord{\rm all}\;}
\def\slall{\mathord{\sl all}\;}
\def\area{\mathop{\rm area}\nolimits}
\def\argmin{\mathop{\rm argmin}\nolimits}
\def\argmax{\mathop{\rm argmax}\nolimits}
\def\codim{\mathop{\rm codim}\nolimits}
\def\conv{\mathop{\rm conv}\nolimits}
\def\cond{\mathop{\rm cond}\nolimits}
\def\const{{\rm const}{}}
\def\diag{\mathop{\rm diag}\nolimits}
\def\diam{\mathop{\rm diam}\nolimits}
\def\dist{\mathop{\rm dist}{}}
\def\dom{\mathop{\rm dom}\nolimits}
\def\and{\mathord{\rm and}}
\def\for{\mathord{\rm for}}
\def\jump{\mathop{\rm jump}}
\def\meas{\mathop{\rm meas}\nolimits}
\def\pinf{\mathop{\llap{\phantom{\hbox{\rm p}}}\inf}} % use next to \sup in $$
\def\ran{\mathop{\rm ran}\nolimits}
\def\rank{\mathop{\rm rank}\nolimits}
\def\signum{\mathop{\rm signum}\nolimits}
\def\sinc{\mathop{\rm sinc}\nolimits}
% note: since \span is a plain TeX operator, use something else here
\def\spam{\mathop{\rm span}\nolimits}
\let\Span\spam
\def\supp{\mathop{\rm supp}\nolimits}
\def\tar{\mathop{\rm tar}\nolimits}
\def\trace{\mathop{\rm trace}\nolimits}
\def\vol{\mathop{\rm vol}\nolimits}
\def\charf#1{\chi_{\lower3pt\hbox{$\scriptstyle #1$}}} %better characteristic f
\def\divdif#1#2{\mathord{\setbox0=\hbox{$#2\gD$}\dimen0=\wd0\divide\dimen0 by 2
\kern\dimen0\vrule height\ht0 depth\dp0 width.5pt\kern-.25pt\kern-\dimen0\box0(#1)}}
\def\dvd#1{\divdif{#1}{}}
\def\sdvd#1{\divdif{#1}{\scriptstyle}}
\def\lot{\mathord{\rm l.o.t.}}
\def\Null{\mathop{\rm null}\nolimits}
\def\lincomb#1#2#3{#1_1#2_1+#1_2#2_2+\cdots+#1_{#3}#2_{#3}}
\def\Sequ#1#2{#1^1,#1^2,\ldots,#1^{#2}}
\def\sequ#1#2{#1_1,#1_2,\ldots,#1_{#2}}
\def\Matrix#1{\left[\matrix{#1}\right]}
\def\id#1{{\rm id}{}_{#1}}
\def\unitv#1{{\bf i}_{#1}}
% sfract puts its arguments into continued fraction notation (S-fraction)
\def\sfract#1,#2,{{\vrule height2.6pt width.4pt depth10pt\hskip-.85pt
{{#1\over#2}} \hskip-.85pt\vrule height14pt width.4pt depth-2.3pt}}
% A darker or boldface version of a letter, to be used in math mode, can be
% obtained, also in scriptstyle and scriptscriptstyle, by one of the macros
\def\mbf#1{\dimen0=.011em\dimen1=.009em\makebold{}{#1}}
\def\msbf#1{\dimen0=.009em\dimen1=.0073em\makebold{\scriptstyle}{#1}}
\def\mssbf#1{\dimen0=.0075em\dimen1=.007em\makebold{\scriptscriptstyle}{#1}}
% All three use the following, with the pattern x x
% x x x
\def\makebold#1#2{\mathord{\setbox0=\hbox{$#1#2$}%
\copy0\kern-\wd0%
\kern\dimen0\raise\dimen1\copy0\kern-\wd0%
\kern\dimen0\copy0\kern-\wd0%
\kern\dimen0\raise\dimen1\copy0\kern-\wd0%
\kern\dimen0\box0}}
\def\boldA{{{\bf A}}}
\def\boldB{{{\bf B}}}
\def\boldC{{{\bf C}}}
\def\boldK{{{\bf K}}}
\def\boldL{{{\bf L}}}
\def\boldO{{{\bf O}}}
\def\cA{{\cal A}}
\def\cB{{\cal B}}
\def\cD{{\cal D}}
\def\cZ{{\cal Z}}
\def\openA{{{\rm A}\kern-.63em{\rm A}}}
\def\openB{{{\rm I}\kern-.16em {\rm B}}}
\def\openC{{\rm C\kern-.48em\vrule width.06em height.57em depth-.02em \kern.48em}}
\def\sopenC{{\rm C\kern-.15cm\vrule width.6pt height 4.1pt depth-.3pt \kern.15cm}}
% \def\sCC{{\rm C\kern-.22em\vrule width.04em height.55em depth-.02em \kern.22em}}
\def\openD{{{\rm I}\kern-.16em {\rm D}}}
\def\openE{{{\rm I}\kern-.16em {\rm E}}}
\def\openF{{{\rm I}\kern-.16em {\rm F}}}
\def\openI{{{\rm I}\kern-.2em {\rm I}}}
\def\openH{{{\rm I}\kern-.16em {\rm H}}}
\def\openK{{{\rm I}\kern-.16em {\rm K}}}
\def\openL{{{\rm I}\kern-.16em {\rm L}}}
\def\openM{{{\rm I}\kern-.16em {\rm M}}}
\def\openN{{{\rm I}\kern-.16em {\rm N}}}
\def\openP{{{\rm I}\kern-.16em {\rm P}}}
\def\openQ{{\rm Q\kern-.21cm\vrule width.6pt height 6.2ptdepth-.2pt \kern.21cm}}
\def\openQ{{{\rm Q}\kern-.63em {\rm Q}}}
\def\openR{{{\rm I}\kern-.16em {\rm R}}}
\def\sopenS{{\scriptstyle\rm S}\kern-.36em{\scriptstyle\rm S}}
\def\openS{{{\rm S}\kern-.46em{\rm S}}}
\def\openT{{{\rm T}\kern-.42em {\rm T}}}
\def\sopenT{{{\scriptstyle\rm T}\kern-.35em {\scriptstyle\rm T}}}
\def\openZ{{{\rm Z}\kern-.28em{\rm Z}}}
\def\sopenZ{{{\scriptstyle\rm Z}\kern-.24em{\scriptstyle\rm Z}}}
\font\Bbbtw=msbm10 at 12pt
\font\Bbb=msbm10
\font\Bbbe=msbm8
\font\Bbbs=msbm7
\def\Cbb{\hbox{{\Bbb{C}}}} % the hbox is used here to prevent conversion
\def\Dbb{\hbox{{\Bbb{D}}}} % to italics in math mode. There ought to be a
\def\Ebb{\hbox{{\Bbb{E}}}} % better way.
\def\Fbb{\hbox{{\Bbb{F}}}}
\def\Kbb{\hbox{{\Bbb{K}}}}
\def\Nbb{\hbox{{\Bbb{N}}}}
\def\Pbb{\hbox{{\Bbb{P}}}}
\def\Qbb{\hbox{{\Bbb{Q}}}}
\def\Rbb{\hbox{{\Bbb{R}}}}
\def\Tbb{\hbox{{\Bbb{T}}}}
\def\Zbb{\hbox{{\Bbb{Z}}}}
\let\CC\Cbb
\def\CCtw{\hbox{{\Bbbtw{C}}}}
\def\CCs{\hbox{{\Bbbs{C}}}}
\def\CCe{\hbox{{\Bbbe{C}}}}
\let\DD\Dbb
\def\DDtw{\hbox{{\Bbbtw{D}}}}
\def\DDs{\hbox{{\Bbbs{D}}}}
\def\DDe{\hbox{{\Bbbe{D}}}}
\let\EE\Ebb
\def\EEtw{\hbox{{\Bbbtw{E}}}}
\def\EEs{\hbox{{\Bbbs{E}}}}
\def\EEe{\hbox{{\Bbbe{E}}}}
\let\FF\Fbb
\def\FFtw{\hbox{{\Bbbtw{F}}}}
\def\FFs{\hbox{{\Bbbs{F}}}}
\def\FFe{\hbox{{\Bbbe{F}}}}
\let\KK\Kbb
\def\KKtw{\hbox{{\Bbbtw{K}}}}
\def\KKs{\hbox{{\Bbbs{K}}}}
\def\KKe{\hbox{{\Bbbe{K}}}}
\let\NN\Nbb
\def\NNtw{\hbox{{\Bbbtw{N}}}}
\def\NNs{\hbox{{\Bbbs{N}}}}
\def\NNe{\hbox{{\Bbbe{N}}}}
\let\RR\Rbb
\def\RRtw{\hbox{{\Bbbtw{R}}}}
\def\RRs{\hbox{{\Bbbs{R}}}}
\def\RRe{\hbox{{\Bbbe{R}}}}
\let\PP\Pbb
\def\PPtw{\hbox{{\Bbbtw{P}}}}
\def\PPs{\hbox{{\Bbbs{P}}}}
\def\PPe{\hbox{{\Bbbe{P}}}}
\let\QQ\Qbb
\def\QQtw{\hbox{{\Bbbtw{Q}}}}
\def\QQs{\hbox{{\Bbbs{Q}}}}
\def\QQe{\hbox{{\Bbbe{Q}}}}
\let\TT\Tbb
\def\TTtw{\hbox{{\Bbbtw{T}}}}
\def\TTs{\hbox{{\Bbbs{T}}}}
\def\TTe{\hbox{{\Bbbe{T}}}}
\let\ZZ\Zbb
\def\ZZtw{\hbox{{\Bbbtw{Z}}}}
\def\ZZs{\hbox{{\Bbbs{Z}}}}
\def\ZZe{\hbox{{\Bbbe{Z}}}}
\let\naturals\NN
\let\reals\RR
\let\integers\ZZ
\def\Cmn{\CC^{m\times n}}
\def\Cn{\CC^n}
\def\Cs{\CC^s}
\def\Fm{\FF^m}
\def\Fmn{\FF^{m\times n}}
\def\Fn{\FF^n}
\def\Fnm{\FF^{n\times m}}
\def\Rd{\RR^d}
\def\Rm{\RR^m}
\def\Rmn{\RR^{m\times n}}
\def\Rn{\RR^n}
\def\Rnm{\RR^{n\times m}}
\def\Rs{\RR^s}
\def\Td{\TT^d}
\def\Tn{\TT^n}
\def\Ts{\TT^s}
\def\Zd{\ZZ^d}
\def\Zm{\ZZ^m}
\def\Zn{\ZZ^n}
\def\Zs{\ZZ^s}
\def\sumZd{\sum_{j\in\Zd}}
\def\sub{_{\bf|}}
\def\comb#1{{{|#1|}\choose{#1}}}
\def\Iff{\hskip1em\Longleftrightarrow\hskip1em}
\let\iff\Longleftrightarrow
\def\Implies{\hskip1em\Longrightarrow\hskip1em}
\let\implies\Longrightarrow
\def\Implied{\hskip1em\Longleftarrow\hskip1em}
\let\implied\Longleftarrow
\def\braket#1{\hbox{$[\![$}#1\hbox{$]\!]$}}
\def\Paren#1{\left(#1\right)}
\def\Set#1{\left\{\,#1\,\right\}}
\def\set#1{\{#1\}}
\def\st{:}
\def\Ceil#1{\left\lceil#1\right\rceil}
\def\ceil#1{\lceil#1\rceil}
\def\Floor#1{\left\lfloor#1\right\rfloor}
\def\floor#1{\lfloor#1\rfloor}
\def\Norm#1{\left\Vert#1\right\Vert}
\def\norm#1{\Vert#1\Vert}%\def\norm#1{\|#1\|} does not work with verbatim.tex
\def\nnorm#1{{\def\ss{\vert\kern-.05em}\ss\ss\vert#1\ss\ss\vert}}
\def\Inpro#1{\left\langle#1\right\rangle}
\def\inpro#1{\langle#1\rangle}
\def\sstar{\!*\!}
\def\scpro#1,#2{#1\sstar#2}
\def\fromto{\mathbin{\ldotp\ldotp}} % for interval spec. as in [a\fromto b]
\def\cutoff{\,{\vrule height 7pt width .3pt depth 3.5pt}\,}
\def\restrict#1{\cutoff\lower1pt\hbox{$_{#1}$}}
\def\mapinto#1{\cutoff\hbox{$^{#1}$}}
\def\dd{\,{\rm d}} % for integration (making them mathop places them less well)
\def\ee{{\rm e}} % for the base of the natural log
\def\ii{{\rm i}} % for the imaginary unit
% center one symbol on top of another, also in script and scriptscript
\def\cocenter#1in#2{\makecocenter{#1}{#2}{}}
\def\scocenter#1in#2{\makecocenter{#1}{#2}{\scriptstyle}}
\def\sscocenter#1in#2{\makecocenter{#1}{#2}{\scriptscriptstyle}}
\def\makecocenter#1#2#3{\setbox1\hbox{$#3#1$}\setbox2\hbox{$#3#2$}%
\dimen2\wd2\advance\dimen2 by\wd1\divide\dimen2 by2{}%
\box2\kern-\dimen2\dimen1\wd1\box1\kern-\dimen1\kern\dimen2}
% this crown is good for \magnification = 1200
% an alternate crown might be \cocenter\bot in\gO
\def\crown{{\Omega\kern-.14truecm\vrule width.6pt depth-.1pt \kern.15truecm}}
% this crown is good for \magstep3
% \def\crown{{\Omega\kern-.20truecm\vrule width.6pt depth-.1pt \kern.20truecm}}
% and this one good for magstep0, using, e.g.,{\buildrel \sbcrown\over{\cal S}}
%\def\sbcrown{{\Omega\kern-.112truecm\vrule width.6pt depth-.1pt \kern.112truecm}}
\def\lessim{\mathrel{\cocenter\raise1.6pt\hbox{$}
\let\ga\alpha
\def\gA{{\rm A}}
\let\gb\beta
\def\gB{{\rm B}}
\let\gga\gamma
\let\gG\Gamma
\let\gd\delta
\let\gD\Delta
\let\gep\varepsilon
\def\gE{{\rm H}}
\let\gz\zeta
\def\gZ{{\rm Z}}
\let\gth\theta
\let\gTh\Theta
\let\gf\varphi
\let\gF\Phi
\let\gy\upsilon
\def\gI{{\rm I}}
\let\gk\kappa
\def\gK{{\rm K}}
\let\gl\lambda
\def\crowned#1{\mathord{\buildrel \crown \over{#1}}}
\def\glcrown{\crowned{\gl}}
\let\gL\Lambda
\def\gM{{\rm M}}
\let\gs\sigma
\let\gS\Sigma
\let\gt\tau
\def\gT{{\rm T}}
\let\gr\varrho
\def\gR{{\rm P}}
\def\Chi{{\rm X}}
\let\go\omega
\let\gO\Omega