\input tbasic % PapWHdr.tex of October 5, 1983 5:09 pm --- Stolfi % Header file for PLoc.tex % DESIRABLE CHANGES % Fix \lpike and \rpike in \small % Remove \fpheader, \printfpheader (simple is beautiful!) % BEGIN NEW FILE \def\printfilestamp{T} % put \filestamp on 1st page \def\newfile{F} % (internal) T on first page of a new file. \def\begfile#1{\gdef\filestamp{#1}\gdef\newfile{T}} % TITLES AND CO % Paper, author, institutions, and section titles. % Usage: % \paper{P is equal to NP\ctrpar (I think)} % \def\paptitle{I think} % optional --- title on page headers % \author{I. Newton} % \institution{Sacred Well Divination School, % Chichen Itza, Yucatan} % \section{1.1A. Annotation and Undefinitions.} % (note: 1 argument only!) % \support{The author was partially supported by a % semi-starving army of slaves, by the plundering of half a % dozen neighboring villages, and by lavish gifts from % Ramses III.} % \abstract{In this paper we make some general remarks % concerning an algorithm for solving a problem related to an % important application of a well-known theoretical concept.} \def\ctrpar{\hfil\null\penalty-2000\null\hfil} % in centered paragrs \def\paper#1{ \gdef\newchap{T} % (internal) T on 1st page of chap or paper {\lineskip3pt \hbox par \pagewidth pt{\hfil\titlefont #1}} \vskip8pt \hbox to \pagewidth pt{\hfil\vbox{\hrule width 3truein}\hfil} \vskip13pt \gdef\paptitle{#1}} % \paptitle is title on page headers. \def\author#1{ \vskip -5pt \hbox par \pagewidth pt{\hfil\it #1} \vskip8pt} \def\institution#1{ \vskip-5pt \hbox par \pagewidth pt{\hfil\rm #1} \vskip8pt} \def\support#1{ \botinsert{ \vskip5pt\hrule width\textwidth pt \vskip5pt{\small \hbox par \textwidth pt{#1}}}} \def\abstract#1{ \vskip 20pt \hbox to \pagewidth pt{\hfil\hbox par \abstrwidth pt{#1}\hfil} \vskip 10pt} \def\keywords#1{ \vskip -5pt \hbox to \pagewidth pt{\hfil\hbox par \abstrwidth pt{{\:p KEYWORDS:} #1}\hfil} \vskip 10pt} \def\section#1{ \vskip 20pt plus 10 pt minus 3pt\penalty-600 \hbox{{\secfont #1}} \penalty 1000\vskip 6pt plus 3pt} \def\subsection#1{ \vskip 20pt plus 10 pt minus 3pt\penalty-600 \hbox{{\subsecfont #1}} \penalty 1000\vskip 6pt plus 3pt} % MATH SYMBOLS \def\leq{\mathrel{\char'424}} \def\geq{\mathrel{\char'425}} \def\neq{\not=} \def\dist{\mathop{\char d\char i\char s\char t}} \def\deg{^\circ} \def\gets{\mathrel{\char'440}} % assign. arrow \def\to{\mathrel{\char'441}} % limit arrow \def\lbrace{\{} \def\rbrace{\}} \def\la{\langle} \def\ra{\rangle} \def\implies{\mathrel{\char'451}} % right implication arrow \def\impliedby{\mathrel{\char'450}} % left implication arrow \def\doubleimpl{\mathrel{\char'454}} % two-way implication arrow \def\rmiff{\,\mathrel{\hbox{iff}}\,} % "iff" in roman font \def\rmif{\,\mathrel{\hbox{if}}\,} % "if" in roman font \def\rmand{\,\mathrel{\hbox{and}}\,} % "and" in roman font \def\rmor{\,\mathrel{\hbox{or}}\,} % "or" in roman font \def\inte{\mathbin{\char'534}} % infix intersection operator \def\uni{\mathbin{\char'533}} % infix union operator \def\and{\mathbin{\char'536}} % logical and operator \def\or{\mathbin{\char'537}} % logical or operator \def\equiv{\mathrel{\char'421}} % logical equivalence \def\land{\mathbin{\char'536}} % boolean and operator \def\lor{\mathbin{\char'537}} % boolean or operator \def\lnot{\mathop{\char'472}} % boolean not operator \def\xor{\oplus } \def\hull{\mathop{\char h\char u\char l\char l}} \def\bound#1{\partial {#1}} % boundary \def\clos#1{\bar{#1}} % closure \def\star{^\ast} % asterisk in superscript position. \def\iso{\mathrel{\char'430}} % single squiggle \def\simil{\mathrel{\char'431}} % double squiggle \def\empty{\emptyset} \def\forall{\mathop{\hbox{\mal A}}} \def\exists{\mathop{\hbox{\mal E}}} \def\reals{\hbox{\bi R\/}} % set of real numbers \def\integers{\hbox{\bi Z\/}} % set of all integers \def\sphere{\hbox{\bi S\/}} % needs dimensionality subscript \def\bar#1{{\overline{#1}}} \def\pr{^\prime} \def\prr{^{\prime\prime}} \def\rpike{\hbox{\arfont n}} % black triangle pointing right \def\lpike{\hbox{\arfont x}} % black triangle pointing left \def\hat#1{{\A #1}} % fix this! \def\det#1{\left\char'550614 #1 \right\char'550614} % determinant \def\set#1{{\{#1\}}} % set defined by enumeration \def\rset#1{{\leftset #1 \rightset}} % set defined by \relv \def\seq#1{\langle #1 \rangle} \def\sp{\,\,\,} % to denote unordered spans (segs, arcs, etc) \def\dollar{\char'44} \def\flower{{\curfont U B}} % upright lotus flower \def\bu{$\bullet$\ } % for items in text \def\item{\indent\bu} \def\note#1{{\small \bf << #1 >>}} % for annotations to manuscript \def\empty{\char'100} % use Scandinavian crossed-O for empty set % MISCELLANEOUS FORMAT MACROS % Embox and superpose with preceding char \def\rspose#1{\hbox to 0pt{\hss#1\hfilneg}} % sup. #1 with previous box % macro for flagging TEX errors \def\bug{\hbox{\hskip1pt\vrule width10pt height10pt \hskip1pt}} % Conditional expressions. \chcode'174_4 % alignment tab \def\alter#1{\left\lbrace\vcenter{ \halign{\lft{##}\quad\quad|\lft{##}\cr #1} }\right.} \def\va{\noalign{\vskip 3pt plus1pt}} % extra space after \cr \def\vb{\noalign{\vskip 6pt plus2pt}} \def\vc{\noalign{\vskip 9pt plus3pt}} \def\vd{\noalign{\vskip 12pt plus4pt}} % Indented paragraphs. Usage: % \indent Bla bla bla... or % \begitems\item Foo;\item Bar;...\item Baz.\enditems OR % \begitems\itemno{1.}Foo;\itemno{2.}Bar;...\itemno{9.}Baz.\enditems \def\begitems{\vskip6ptplus2pt\penalty} \def\enditems{\vskip4ptplus3pt} \def\indent{\par\vskip 2pt\hangindent\textindent pt after0 } \def\item{\itemno{ $\bullet$ }} % for unnumbered items \def\itemno#1{\par\vskip-3pt\hangindent\itemindent pt after0 $\rspose{#1\ }$\gnaw } % numbered items % Paragraph break in \hbox par \def\bxparskipper{\vbox to \bxparskip pt{}} % for par spacing in boxed text \def\bxpar{\hfil\null\penalty-2000 \bxparskipper} % begin new left-justified paragraph \def\ctrpar{\hfil\null\penalty-2000 \bxparskipper\hfil } % begin new centered paragraph % Footnotes. % Use \foot7{Blah Blah} for footnote number 7. % Using \footfig7(3){Blah Blah} leaves space at the right margin of % the footnote for a figure 3cm high. % Use \ftpar to break paragraphs in a footnote. \def\footbox#1#2#3{{\small\hbox par #3 pt{$\null^{#1}$ #2}}} \def\footfigbox#1{\vbox to #1cm{\hbox to 0pt{\null}}} \def\footline{\vskip6pt plus10pt\hrule width 4cm\vskip4pt} \def\footfirstp#1{\if 1#1{\footline}\else{} \if \dag#1{\footline}\else{}} \def\foot#1#2{$\null^{#1}$\botinsert{\footfirstp{#1} \vskip 5pt plus2pt\footbox{#1}{#2}{\textwidth}}} \def\footfig#1(#2)#3{$\null^{#1}$\botinsert{\footfirstp{#1} \vskip 5pt plus2pt\hbox{ $\vcenter{\footbox{#1}{#3}{\ftfigwidth}} \vcenter{\footfigbox{#2}}$\hfil}}} \def\ftpar{\bxpar} % \par (of sorts) in footnotes % Theorem, lemma, conjecture and definition. \def\lemma{\theolemma{\it}{Lemma}} \def\theorem{\theolemma{\it}{Theorem}} \def\conjecture{\theolemma{\it}{Conjecture}} \def\definition{\theolemma{\rm}{Definition}} \def\theolemma#1#2#3#4{\par\vskip 5pt plus 3pt minus 3pt\hangindent \theostatindent pt {\bf #2 #3. }{#1 #4}\par\vskip 3pt plus 3pt} \def\tp{\hangindent\theostatindent pt after0 } % new par in thm.'s/def. statement \def\proof#1{ \hangindent\proofindent pt after0\begproofmark #1\penalty1000 \endproofmark\par\vskip 3pt plus 6pt} \def\pp{\hangindent \proofindent pt after0} % new par in proof % Algorithm format. % uses counters 3 (to compute useful width), 4 (to count bars), and % 5 (current nesting level). \def\algorithm#1#2#3{{\penalty-300\vskip10pt plus3pt minus3pt \hangindent \theostatindent pt {\bf Algorithm #1. }{\it #2}\par \vskip 3pt plus 2pt minus0pt\penalty 1000 \algbody{#3} \par\vskip 10pt plus 3pt minus 3pt}} \def\algbody#1{{ \parindent 0pt \hangindent 0pt after0 \baselineskip 0pt \lineskip0pt \setcount5 0 #1 \parindent\stdparindent pt}} \def\vbars{\setcount3 \algwidth\setcount4 \count5 \hskip \algindent pt\advcount3 by -\algindent \advcount3 by -\algindent % to indent right margin too \vbarsloop \hskip-\stepindent pt\advcount3 by \stepindent } \def\vbarsloop{\ifpos4 {\vrule width0.4pt \hskip-0.4pt \hskip\stepindent pt\advcount3 by -\stepindent \advcount4 by -1 \vbarsloop} \else {}} \def\afig#1{ \ftpar\vbox to #1cm{\null}\ftpar } % figure in algorithm steps \def\step#1{\par\hbox to \pagewidth pt {\vbars \hskip \snoindent pt\advcount3 by -\snoindent \hskip \contindent pt\advcount3 by -\contindent \vbox{ \vskip 2pt plus0pt minus0pt {\baselineskip12pt \lineskip1pt \hbox par \count3pt{\hskip-\contindent pt #1}} \vskip 2pt plus0pt minus0pt} \hfil}} \def\comm#1{\par\hbox to \pagewidth pt {\vbars \hskip \snoindent pt\advcount3 by -\snoindent \hskip \contindent pt\advcount3 by -\contindent \vbox{ \vskip 2pt plus0pt minus0pt {\small \hbox par \count3pt{#1}} \vskip 3pt plus0pt minus0pt} \hfil}} \def\begblock#1\endblock{\advcount5 by 1\ear #1\ear \advcount5 by-1} \def\ear{\par\penalty1000\hbox to \pagewidth pt {\vbars \vrule height 0.4pt width 3pt \hfil}\penalty1000} \def\sno#1 {{\baselineskip0pt \lineskip0pt \vbox{\hbox to \contindent pt{} \hbox{\hfil\bf #1.\hskip2pt}}}\gnaw} % step number. \def\nono{\hskip \contindent pt } % for unnumbered steps. \def\sna#1{{\rm [{\it #1\/}]}} % step name and comments. \def\blug{\hskip 3pt\blackslug} % Space for figure. % Use \fig5 for a figure 5cm high % Use \figno(7)5 for a figure with number (7) and 5 cm high \def\gnaw{} % to eat spaces after \fig etc \def\fig#1{\dispaskip0pt plus100pt $$\hbox to 2in{\vbox to #1cm{\null}}$$\dispaskip0pt plus3pt\gnaw} \def\figno(#1)#2{\dispaskip0pt plus100pt $$\vcenter{\hbox to 2in{\vbox to #2cm{\null}}}\eqno(\hbox{#1})$$\dispaskip0pt plus3pt\gnaw} \def\figcap#1#2{\ctrline{ \hbox par 5in{Figure #1. #2}}} % figure captions % Reference format. % Usage: \ref [\Boo] {\refauth{Boojum, C. D.} % \reftit{Salting jubjubs in glue.} % \refpub{J. of Beavers and Butchers V. 1 N. 357 (1999).}} % fix the numbers after selecting the reference codes \def\ref [#1] #2{\vskip \refvskip pt\hbox to \textwidth pt{\hskip\refindent pt\hbox par \refbodywidth pt{\hbox to 0.0in {$\hskip -\refindent pt \hbox{[#1]} \hskip 0pt plus 1000pt minus 1000pt$}#2}}\par} \def\refauth#1{\unskip {\rm #1}} \def\reftit#1{\unskip\unskip, {\it #1}} \def\refpub#1{\ {\rm #1}} % Page headers \def\fpfoot{} \def\header{\paptitle\hfil\count0} \def\printfpheader{T} % put \fpheader on first page of chapter.. \def\fpheader{\null} % ...but with no contents % FONT DEFINITIONS \font m_timesroman at 12truebp \font b_timesromani at 12truebp \font <_timesromanb at 12truebp \font M_math at 10 truebp \font S_arrows at 10 truebp \font v_cmtt \font p_timesroman at 8truebp \font o_timesromani at 8truebp \font t_timesromanb at 8truebp \font Z_timesromanbi at 8truebp \font e_cmr8 \font k_cmi8 \font y_cmsy8 \font h_cmtt8 \font N_math at 8 truebp \font R_Arrows at 8truebp % should be ArrowsTwo at 18truebp \font D_cmr6 \font J_cmi6 \font X_cmsy6 \font U_fleur at 28truebp \font=_timesromanb at 14truebp \font O_helveticab at 12truebp \font H_helveticab at 10 truebp \def\headerfont{\curfont <} % font used for headers and page no.s \def\titlefont{\curfont =} % font used for paper title \def\secfont{\curfont O} % font for section headers \def\subsecfont{\curfont H} % font for subsection headers % Relativized fonts (get the right size depending on context). % Default (12 point) \def\fx{\:v} % typewriter font \def\mrm{\:c} % math roman font \def\cmr{\:a} % computer modern roman \def\mal{\:M} % Alto math font \def\bi{\:w} % Bold italic font \def\em{\bf } % for emphasis \def\arfont{\:S} % arrows font % see also \rm, \bf, \it in TBasic.tex % Smaller (9 point) % Usage: {\small ...}, {\small\hbox par{...}}, etc % (\hbox par{\small ...} will get wrong \baselineskip & c.) \def\small{\baselineskip \smallbaselineskip pt \parskip \smallparskip pt \dispskip9pt plus3pt minus7pt \dispaskip0pt plus3pt \dispbskip 5pt plus3pt minus2pt \def\bxparskip{\smallbxparskip} \def\rm{\:p} \def\it{\:o} \def\bf{\:t} \def\bi{\:Z} \def\cmr{\:e} \def\mrm{\:e} \def\mal{\:N} \def\fx{\:h} \def\arfont{\:R} \mathrm eDf \mathit kJl \mathsy yXz \rm } % DIMENSIONAL PARAMETERS % (in points unless otherwise indicated) % Dimensions related to page width \def\defnormalwidths{ \def\pagewidth{400} % page width \def\textwidth{400} % text width \def\progwidth{380} % program width \def\algwidth{380} % width of algorithms - max: page width } % Reduced dimensions in effect during \mfigs \def\defmfigwidths{ \def\pagewidth{260} % page width \def\textwidth{260} % text width \def\progwidth{260} % program width \def\algwidth{260} % width of algorithms - max: page width } \def\theowidth{\textwidth} % width of theorems \def\ftfigwidth{300} % width of text in footnotes with figures \def\refbodywidth{365} % width of body of bibl. reference \def\refremwidth{365} % width of bibl. reference remarks \def\abstrwidth{360} % width of abstract % Text format \def\textindent{20} % indentation for \indent ed paragraphs \def\itemindent{35} % indentation for \item and \itemno body \def\stdparindent{0} % standard indentation for paragraphs \def\stdparskip{6} % extra skip between paragraphs \def\stdbaselineskip{12} % normal distance betweeen baselines \def\bxparskip{18} % \stdparskip+\stdbaselineskip (for use in \bxpar) \def\smallparskip{4} % extra skip between paragraphs in \small \def\smallbaselineskip{9} % distance between baselines in \small \def\smallbxparskip{13} % \stdparskip+\stdbaselineskip (for \bxpar in \small) % References format \def\refindent{35} % indentation of reference body in points \def\refvskip{10} % vskip between references % Algorithms format \def\stepindent{20} % in points - extra indent. per level \def\contindent{11} % in points - extra indent. of cont. lines \def\algindent{21} % in points - indentation of outermost bracket \def\snoindent{4} % in points - ind. of \sno rel. innermost bracket \def\commindent{15} % in points - ind. of comments rel. inn. bra. % Theorem, lemma and definitions format \def\theostatindent{20} % indentation of them. statements \def\proofindent{20} % indentation of proofs \def\begproofmark{{\bf Proof: }} \def\endproofmark{\hbox{\hskip6pt{\mal \char'061}}} % square % MARGINAL FIGURES (by Aragones?) % Usage: \mfig3 \endmfig \def\mfig#1{ \keep{#1} \defmfigwidths \hsize\pagewidth pt \par} \def\endmfig{ \par \defnormalwidths \hsize\pagewidth pt \par} % OUTPUT ROUTINE. \def\fpage{T} % (internal) T on very first page \def\headbox#1{\vbox to 0pt{ \vskip-0.54truein \hbox to \pagewidth pt{\headerfont #1} \vskip 4 pt \hrule \vskip 3 pt \hrule \vskip 0.33truein plus 6 in minus 6 in}} \output{ \gdef\puthd{T}\gdef\putft{F} % internal flags \if T\newchap{ \gdef\puthd{\printfpheader} \gdef\putft{T}}\else{} \if T\newfile{\gdef\putft{T}}\else{} \baselineskip 0pt \lineskip 0pt \if T\puthd{\hbox {\hskip 20pt\if T\newchap{\headbox{\fpheader}}\else{\headbox{\header}}}} \else{} \hbox{\hskip 20pt\vbox{\page}} \advcount0 \if T\putft{ \vskip 15pt \hbox{\hskip20pt\hbox to \pagewidth pt {\if T\newchap{\fpfoot}\else{} \hfil \if T\newfile {\if T\printfilestamp{\small \filestamp}\else{}}\else{} }} }\else {} \gdef\newfile{F} \gdef\newchap{F} \gdef\fpage{F} } \defnormalwidths \parindent \stdparindent pt \parskip \stdparskip pt plus 1 pt \baselineskip \stdbaselineskip pt \topspace .1 in \hsize\textwidth pt \jpar 1000