\input CgTBasic
% CgNHdr.tex of September 6, 1983 9:45 pm --- Stolfi
% Header file for computational geometry notes - CS445 Win'83
% DESIRABLE CHANGES
% FONT DEFINITIONS
\font <=TimesRomanb at 12truebp % for running header and page numbers
\font O=Helveticab at 12truebp % for section titles
\font H=Helveticab at 10 truebp % for subsection titles
\def\headerfont{\: <} % font used for headers and page no.s
\def\chapfont{\: O} % font used for chapter title
\def\secfont{\: O} % font for section headers
\def\subsecfont{\: H} % font for subsection headers
% 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}}
% Dummy macros to facilitate searches and substitutes on item numbers
% (i.e., theorems, algorithms, sections and subsections, equations, figures)
% References to items in the same chapter should have the form
% \Th5 or \Th{17}. References to items in other chapters must
% have the form ``theorem \Th{\Ch5.17}'' (NOT \Ch5.\Th{17} or
% ``theorem \Th{17} of chapter \Ch5''!!!).
% Same rule applies to section numbers. For subsections, use
% \Sbsec{\Sec3.5} if it is in the current chapter, or
% \Sbsec{\Sec{\Ch8.3}.5} if it is in another chapter.
% In section or subsection headers, use \Ch8.\Sec3 and
% \Ch8.\Sbsec{\Sec3.5}, as in local references.
%
\def\Prob#1{{#1}} % problem number
\def\Th#1{{#1}} % theorem or lemma number
\def\Fig#1{{#1}} % figure number
\def\Def#1{{#1}} % definition number
\def\Sec#1{{#1}} % section number
\def\Sbsec#1{{#1}} % subsection number
\def\Eq#1{{#1}} % equation number
\def\Ch#1{{#1}} % chapter number
\def\Alg#1{{#1}} % algorithm number
\def\Step#1{{#1}} % step number
% Chapter and section titles.
% Usage: \chapter{\Ch1}{Introduction}
% Usage: \section{\Ch1.\Sec1. Histerical remarks} (note: 1 argument only!)
% Usage: \subsection{\Ch1.\Sbsec{\Sec1.3}. Before the Big Bang}
% If a file contains more than one chapter, terminate each by an \eject
% (for headers' sake).
% If a piece (other than the beginning) of a chapter is TEXed separately,
% continues a previous chapter, it should be preceded by
% \chapcont{\Ch1}{Introduction} instead of \chapter, and
% \setcount0 to the number of pages that came before.
\def\chapter#1#2{
\vskip30pt plus20pt minus15pt
\hbox{{\chapfont #1. #2}}
\chapcont{#1}{#2}
\penalty 1000\vskip 6pt plus 3pt}
\def\chapcont#1#2{
\gdef\newchap{T} % (internal) T on 1st page of chap. or paper
\gdef\chnum{#1}
\gdef\chtitle{#2}}
\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}
% Foot problems (See Dr. Schnoll's paper).
% Will appear boxed at bottom of current page.
% Usage: \footprob{\Prob{\Sbsec{\Sec1.7}.4}}{Show that $P=NP$
% {\it Hint\/}: Show that $N=1$. {\it Ans.}: Obviously,
% $N-1=0$, which implies $N=1$.}
\def\footprob#1#2{\botinsert{\vskip20pt
\ctrline{\boxit{\small \hbox par \footprobwidth pt{
{\bf Exercise #1}: #2}}}
}}
% Default page headers for CS445 Notes (Winter 83)
\def\fpfoot{{\bf $\copyright$ 1983 Leo Guibas and Jorge Stolfi}}
\def\header{\chtitle\hfil\chnum.\count0}
\def\printfpheader{T} % put \fpheader on first page of chapter
\def\fpheader{CS445 - Winter 83\hfil\chnum. \chtitle} % idem
% 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\textheight{590} % total page height available for text
\def\ftfigwidth{300} % width of text in footnotes with figures
\def\figcapwidth{320} % width of figure captions
\def\refbodywidth{330} % width of body of bibl. reference
\def\refremwidth{300} % width of bibl. reference remarks
\def\footprobwidth{392} % width of text in foot problems
% Text, titles and footnotes
\def\textindent{20} % indentation for paragraphs in text
\def\stdparindent{0} % standard indentation for paragraphs
\def\stdparskip{6} % extra skip between paragraphs
\def\stdbaselineskip{12} % normal distance betweeen baselines
\def\stdboxparskip{18} % \stdparskip+\stdbaselineskip (for use in \bp)
\def\smallparindent{0} % indentation for paragraphs in \small
\def\smallparskip{4} % extra skip between paragraphs in \small
\def\smallbaselineskip{9} % distance between baselines in \small
\def\smallboxparskip{13} % \stdparskip+\stdbaselineskip (for \bp in \small)
% References
\def\refindent{70} % 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{1} % 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{10} % indentation of proofs
\def\begproofmark{$\rpike$\hskip4pt{\it Proof:}\hskip4pt}
\def\endproofmark{\hskip4pt $\lpike$}
% MARGINAL FIGURES (by Aragones?)
% Usage: \mfig3 <a paragraph at most 3cm high> \endmfig
\def\mfig#1{
\keep{#1} \defmfigwidths \hsize\pagewidth pt \par}
\def\endmfig{
\par \defnormalwidths \hsize\pagewidth pt \par}
% Additional math operators
\def\hull{\mathop{\char h\char u\char l\char l}}
\def\sdist{\mathop{\char s\char d\char i\char s\char t}}
\def\bound#1{\partial {#1}} % boundary
\def\clos#1{\bar{#1}} % closure
% Quad-edge operators (in math formulas)
\def\thin{\hskip0.7pt}
\def\sym{\thin\hbox{\it Sym\/}}
\def\flip{\thin\hbox{\it Flip\/}}
\def\rot{\thin\hbox{\it Rot\/}}
\def\onext{\thin\hbox{\it Onext\/}}
\def\oprev{\thin\hbox{\it Oprev\/}}
\def\dnext{\thin\hbox{\it Dnext\/}}
\def\dprev{\thin\hbox{\it Dprev\/}}
\def\lnext{\thin\hbox{\it Lnext\/}}
\def\lprev{\thin\hbox{\it Lprev\/}}
\def\rnext{\thin\hbox{\it Rnext\/}}
\def\rprev{\thin\hbox{\it Rprev\/}}
\def\lef{\thin\hbox{\it Left\/}}
\def\rif{\thin\hbox{\it Right\/}}
\def\org{\thin\hbox{\it Org\/}}
\def\dest{\thin\hbox{\it Dest\/}}
\def\dual{\thin\hbox{\it Dual\/}}
% Quad-edge operators (in programs)
\def\psym{\hbox{\fx .Sym}}
\def\pflip{\hbox{\fx .Flip}}
\def\prot{\hbox{\fx .Rot}}
\def\ponext{\hbox{\fx .Onext}}
\def\poprev{\hbox{\fx .Oprev}}
\def\pdnext{\hbox{\fx .Dnext}}
\def\pdprev{\hbox{\fx .Dprev}}
\def\plnext{\hbox{\fx .Lnext}}
\def\plprev{\hbox{\fx .Lprev}}
\def\prnext{\hbox{\fx .Rnext}}
\def\prprev{\hbox{\fx .Rprev}}
\def\plef{\hbox{\fx .Left}}
\def\prif{\hbox{\fx .Right}}
\def\pnext{\hbox{\fx .Next}}
\def\pdata{\hbox{\fx .Data}}
\def\porg{\hbox{\fx .Org}}
\def\pdest{\hbox{\fx .Dest}}
% Obsolete macros (kept for backwards compatibility only)
\def\uo{{\cmr\"\rm o}} % umlaut o in roman
\def\uu{{\cmr\"\rm u}} % umlaut u
\def\ua{{\cmr\"\rm a}} % umlaut a
\def\arc{\mathop{\char a\char r\char c}}
\def\seg{\overline} % same as \bar
\def\ety{\emptyset} % same as \empty
\def\un{\mathbin{\char'533}} % infix union operator; same as \uni
\def\span{\,\,\,} % same as \sp
\def\blug{\hskip 3pt\blackslug}
\chcode'174←4 % "|" as alignment tab
\def\det#1{\left\char'550614\,\, #1\,\, \right\char'550614} % determinant
\def\prob{\problem{\count1} \advcount1}
\def\problem#1{$\rpike$\ {\bf #1}.\ }
\def\caveat{\vskip 4 pt plus 2 pt \it}
\def\bxpar{\bp}
\def\ftpar{\bp}
% 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
\setcount0 1
\hsize\textwidth pt
\vsize\textheight pt
\standardsize