% BOOK.STF  VERSION 2.0
% COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
% ALL RIGHTS RESERVED

% IF THIS FILE IS MODIFIED IN ANY WAY, IT SHOULD BE GIVEN A DIFFERENT NAME !

\catcode`\@=11
\let\alloc@\alloc@@

\hsize=29pc
\vsize=40pc
\normallineskiplimit=1pt
\parindent=10pt
\advance\hoffset 42pt
\advance\voffset 90pt

\def\makeheadline{\hbox{\botsmash{\line{\vbox to8.5pt{}\the\headline}}}%
 \nointerlineskip\vskip26pt}
\def\makefootline{\baselineskip=2.5pc\relax\line{\the\footline}}

\newnumstyle\page\roman

\font@\ninerm=cmr9
\font@\eightrm=cmr8
\font@\sixrm=cmr6
\font@\eighti=cmmi8   \skewchar\eighti='177
\font@\sixi=cmmi6     \skewchar\sixi='177
\font@\ninesy=cmsy9   \skewchar\ninesy='60
\font@\eightsy=cmsy8  \skewchar\eightsy='60
\font@\sixsy=cmsy6    \skewchar\sixsy='60
\font@\eightbf=cmbx8
\font@\sixbf=cmbx6
\font@\eightit=cmti8
\font@\eightsl=cmsl8
\font@\eighttt=cmtt8

\ifmsamloaded@
 \font@\eightmsa=msam8
 \font@\sixmsa=msam6
\fi

\ifmsbmloaded@
 \font@\eightmsb=msbm8
 \font@\sixmsb=msbm6
\fi

\ifeufmloaded@
 \font@\eighteufm=eufm8
 \font@\sixeufm=eufm6
\fi

\ifcmmibloaded@
 \font@\eightcmmib=cmmib8 \skewchar\eightcmmib='177
 \font@\sixcmmib=cmmib6 \skewchar\sixcmmib='177
\fi

\ifcmbsyloaded@
 \font@\eightcmbsy=cmbsy8 \skewchar\eightcmbsy='60
 \font@\sixcmbsy=cmbsy6 \skewchar\sixcmbsy='60
\fi

\newskip\ttglue@

\def\tenpoint{\def\pointsize@{10}%
 \normalbaselineskip12\p@
 \abovedisplayskip12\p@ plus3\p@ minus9\p@
 \belowdisplayskip12\p@ plus3\p@ minus9\p@
 \abovedisplayshortskip\z@ plus3\p@
 \belowdisplayshortskip7\p@ plus3\p@ minus4\p@
 \textonlyfont@\rm\tenrm
 \textonlyfont@\it\tenit
 \textonlyfont@\sl\tensl
 \textonlyfont@\bf\tenbf
 \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  \let\big\tenbig@
  \textfont\z@\tenrm  \scriptfont\z@\sevenrm  \scriptscriptfont\z@\fiverm
  \textfont\@ne\teni  \scriptfont\@ne\seveni  \scriptscriptfont\@ne\fivei
  \textfont\tw@\tensy \scriptfont\tw@\sevensy \scriptscriptfont\tw@\fivesy
  \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  \textfont\itfam\tenit
  \textfont\slfam\tensl
  \textfont\bffam\tenbf \scriptfont\bffam\sevenbf
   \scriptscriptfont\bffam\fivebf
  \ifmsamloaded@
   \textfont\msafam\tenmsa \scriptfont\msafam\sevenmsa
    \scriptscriptfont\msafam\fivemsa
  \fi
  \ifmsbmloaded@
   \textfont\msbfam\tenmsb \scriptfont\msbfam\sevenmsb
    \scriptscriptfont\msbfam\fivemsb
  \fi
  \ifeufmloaded@
   \textfont\eufmfam\teneufm \scriptfont\eufmfam\seveneufm
    \scriptscriptfont\eufmfam\fiveeufm
  \fi
  \ifcmmibloaded@
   \textfont\cmmibfam\tencmmib \scriptfont\cmmibfam\sevencmmib
    \scriptscriptfont\cmmibfam\fivecmmib
  \fi
  \ifcmbsyloaded@
   \textfont\cmbsyfam\tencmbsy \scriptfont\cmbsyfam\sevencmbsy
    \scriptscriptfont\cmbsyfam\fivecmbsy
  \fi
 \fi
 \let\tt\tentt
 \tt\ttglue@.5emminus.15em
 \setbox\strutbox\hbox{\vrule\height8.5\p@\depth3.5\p@\width\z@}%
 \setbox\strutbox@\hbox{\vrule\height8\p@\depth3\p@\width\z@}%
 \ex@.2326ex\normalbaselines\ifmmode\else\rm\fi}

\def\tenbig@#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}

\tenpoint

\def\eightpoint{\def\pointsize@{8}%
 \normalbaselineskip10\p@
 \abovedisplayskip10\p@ plus2.4\p@ minus7.2\p@
 \belowdisplayskip10\p@ plus2.4\p@ minus7.2\p@
 \abovedisplayshortskip\z@ plus2.4\p@
 \belowdisplayshortskip5.6\p@ plus2.4\p@ minus3.2\p@
 \textonlyfont@\rm\eightrm
 \textonlyfont@\it\eightit
 \textonlyfont@\sl\eightsl
 \textonlyfont@\bf\eightbf
 \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  \let\big\eightbig@
  \textfont\z@\eightrm \scriptfont\z@\sixrm  \scriptscriptfont\z@\fiverm
  \textfont\@ne\eighti \scriptfont\@ne\sixi  \scriptscriptfont\@ne\fivei
  \textfont\tw@\eightsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivesy
  \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  \textfont\itfam\eightit
  \textfont\slfam\eightsl
  \textfont\bffam\eightbf \scriptfont\bffam\sixbf
   \scriptscriptfont\bffam\fivebf
  \ifmsamloaded@
   \textfont\msafam\eightmsa \scriptfont\msafam\sixmsa
    \scriptscriptfont\msafam\fivemsa
  \fi
  \ifmsbmloaded@
   \textfont\msbfam\eightmsb \scriptfont\msbfam\sixmsb
    \scriptscriptfont\msbfam\fivemsb
  \fi
  \ifeufmloaded@
   \textfont\eufmfam\eighteufm \scriptfont\eufmfam\sixeufm
    \scriptscriptfont\eufmfam\fiveeufm
  \fi
  \ifcmmibloaded@
   \textfont\cmmibfam\eightcmmib \scriptfont\cmmibfam\sixcmmib
    \scriptscriptfont\cmmibfam\fivecmmib
  \fi
  \ifcmbsyloaded@
   \textfont\cmbsyfam\eightcmbsy \scriptfont\cmbsyfam\sixcmbsy
    \scriptscriptfont\cmbsyfam\fivecmbsy
  \fi
 \fi
 \let\tt\eighttt
 \tt\ttglue@.4emminus.12em
 \setbox\strutbox\hbox{\vrule\height7\p@\depth3\p@\width\z@}%
 \setbox\strutbox@\hbox{\vrule\height6.5\p@\depth2.5\p@\width\z@}%
 \ex@.2326ex\normalbaselines\ifmmode\else\rm\fi}

\def\eightbig@#1{{\hbox{$\textfont\z@\ninerm\textfont\tw@\ninesy
 \left#1\vbox to6.5\p@{}\right.\n@space$}}}

{\catcode` =\active
\gdef\litcodes@@{\def {\penalty\z@\hskip\ttglue@}}}

\def\LamSTeX{L\kern-.4em\raise.3ex\hbox{$\ssize\Cal A$}%
 \DN@{10}\ifx\next@\pointsize@\kern-.25em\else\kern-.3em\fi
 \lower.4ex\hbox{\DN@{10}\ifx\next@\pointsize@\eightsy\else\sixsy\fi M}%
 \kern-.1em{$\Cal S$}-\TeX}

\font\Bf=cmbx10 scaled \magstep1
\font\BF=cmbx10 scaled \magstep3

\newif\ifspecialpage@

\let\headline@\relax

\def\makepiece#1{\par\vfill\break
 \global\specialpage@true
 \gdef\headline@{\ignorespaces#1\unskip}%
 \centerline{\BF\uppercase{\ignorespaces#1\unskip}}%
 \vskip30\p@ plus10\p@ minus 10\p@}

\def\dotleaders{\leaders\hbox to10pt{\rm\hfil.\hfil}\hfil}%
\def\Page@#1#2#3#4{\hbox{\rm#3#2{#1}#4\unskip}}%
\long\def\widerthanhsize@#1#2#3#4{\test@true
 \setbox\z@\vbox{\hsize\maxdimen
  \rm\noindent@#1#2#3#4\par\setboxzl@}%
 \ifdim\wdz@=\z@\setboxz@h{\rm#1#2#3#4}\ifdim\wdz@>\hsize\else
 \test@false\fi\fi}%
\long\def\setentry@#1#2#3#4{%
 \widerthanhsize@{#1}{#2}{#3}{#4}%
 \iftest@
  \longentry@{#1}{#2}{#3}{#4}%  
 \else
  \hbox to\hsize{\rm\strut#1#2#3#4\strut}%
 \fi}%
\def\endstrut{\lower\dp\strutbox\vbox to\dp\strutbox{}}
\newdimen\thehang@
\long\def\longentry@#1#2#3#4{\setboxz@h{#1}%
 \thehang@\wdz@\advance\thehang@10\p@
 \setboxz@h{#4}%
 \setbox\z@\vbox{\advance\hsize-\wdz@\advance\hsize-20\p@
  \normalbaselines
  \hangafter\@ne\hangindent\thehang@
  \vskip-\parskip
  \noindent@\rm\vbox to\ht\strutbox{}\hbox{#1}#2\vphantom{#3#4}\endstrut}%
 \setbox\z@\vbox{\unvbox\z@
  \setboxzl@ 
  \hbox to\hsize{\kern\thehang@\unhbox\z@\unskip\unskip#3#4\endstrut}%  
  }%
 \unvbox\z@}%
\newif\ifemptynumber@
\def\Style@{\emptynumber@false\FN@\Style@@}%
\def\Style@@{\ifx\next"\expandafter\Style@@@\else\expandafter\Style@@@@\fi}%
\def\Style@@@@#1\Style@{\style{#1}}%
\def\Style@@@"#1"\Style@{\DN@{#1}\ifx\next@\empty\emptynumber@true
 \else#1\fi}%

\expandafter\def\csname HL@S0\endcsname#1{#1\/}
\expandafter\def\csname HL@S1\endcsname#1{#1\null.}
\expandafter\def\csname hl@S1\endcsname#1{#1\null.}
\expandafter\def\csname hl@S2\endcsname#1{#1\null.}
\expandafter\def\csname hl@S3\endcsname#1{#1\/}
\expandafter\def\csname hl@S4\endcsname#1{#1\/}

\def\maketoc@W{Contents}

\newif\ifbib@

\def\maketoc{\checkmainfile@\par\vfill\break
 \begingroup
 \unlabel@\noset@\let\nopunct\relax\let\nospace\relax\let\overlong\relax
 \everypar{}\parindent\z@\lineskiplimit\z@
 \def\HL##1##2##3##4\Page##5##6##7##8{\def\HLlevel@{##1}%
  \ifnum\HLlevel@=\z@
   \bigbreak\bigskip
   \begingroup
    \def\\{\unskip\space\ignorespaces}%
    \setentry@{\Bf\def\next@{##2}\ifx\next@\empty\else\uppercase{##2} \fi 
    \let\style\HL@@S\hbox to35pt{\Style@##3\Style@\hss}\ifemptynumber@
     \nobreak\hskip-35pt\fi\uppercase{\ignorespaces##4\unskip}}{}\hfil{}%
   \endgroup
   \nobreak\smallskip
  \else
  \ifnum\HLlevel@=\@ne
   \bigbreak
   \begingroup
   \def\\{\unskip\space\ignorespaces}%
   \setentry@{\bf\def\next@{##2}\ifx\next@\empty\else##2 \fi
    \let\style\HL@@S\Style@##3\Style@
    \ifemptynumber@\else\space\fi}%
    {\bf\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
   \endgroup
   \penalty500 \smallskip
  \else
   \Err@{\string\HL##1 not defined in this style}%
  \fi\fi}%
 \def\hl##1##2##3##4\Page##5##6##7##8{\def\hllevel@{##1}%
  \ifnum\hllevel@<\thr@@
    \setentry@{\rm\kern10\p@\let\style\hl@@S\Style@##3\Style@
    \ifemptynumber@\else\space\fi}%
    {\rm\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
   \vskip\parskip
  \else
  \ifnum\hllevel@<5
    \setentry@{}{\kern\hllevel@ em\quad 
     \rm\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
   \vskip\parskip
  \else
   \Err@{\string\hl##1 not defined in this style}%
  \fi\fi}%
 \def\NameHL##1##2{\def##2####1####2####3\Page{%
  \HL{##1}{####1}{####2}####3\Page}}%
 \def\Namehl##1##2{\def##2####1####2####3\Page{%
  \hl{##1}{####1}{####2}####3\Page}}%
 \NameHL0\part
 \NameHL1\chapter \Namehl1\section \Namehl2\subsection \Namehl3\topic
 \Namehl4\subtopic
 \def\makebib##1\Page##2##3##4##5{\bigbreak\bigskip\bigskip
  \setentry@{\Bf##1}{}{\dotleaders}{\Page@{##2}{##3}{##4}{##5}}%
  \bib@true}%
 \let\bibliography\makebib
 \def\makeindex##1\Page##2##3##4##5{\ifbib@\bigskip\else
  \bigbreak\bigskip\bigskip\fi
  \setentry@{\Bf##1}{}{\dotleaders}{\Page@{##2}{##3}{##4}{##5}}}%
 \global\specialpage@true
 \gdef\headline@{\maketoc@W}%
 \centerline{\BF\uppercase\expandafter{\maketoc@W}}%
 \vskip30\p@ plus 10\p@ minus 10\p@
 \input\mainfile@.toc
 \endgroup}




\def\makelistFigures{\makelist\c{F}List of Figures\endmakelist}
\def\makelistTables{\makelist\c{T}List of Tables\endmakelist}

\def\makelist\c#1#2\endmakelist{\checkmainfile@
 \par\vfill\break
 \begingroup
 \unlabel@\noset@\let\nopunct\relax\let\nospace\relax\let\overlong\relax
 \lineskiplimit\z@
 \def\listclass@{#1}%
 \def\island{\FN@\island@}%
 \def\island@{\ifx\next\at@\expandafter\island@@\else
  \expandafter\island@@@\fi}%
 \def\island@@\at@##1\c##2##3##4##5\Page##6##7##8##9{%
  \def\islandtype@{##1}%
  \def\next@{##2}%
  \ifx\next@\listclass@
   \setentry@{\rm##3 \let\style\island@@@S\Style@##4\Style@
    \ifemptynumber@\else\space\fi}%
    {\rm\ignorespaces##5\unskip}\dotleaders{\Page@{##6}{##7}{##8}{##9}}%
   \vskip\parskip
  \fi}%
 \def\island@@@\c##1##2##3##4\Page##5##6##7##8{%
  \island@@\at@\island\c{##1}{##2}{##3}##4\Page{##5}{##6}{##7}{##8}}%
 \def\newisland##1\c##2##3{\def##1####1####2\Page####3####4####5####6{%
  \island\at@##1\c{##2}{##3}{####1}####2\Page{####3}{####4}{####5}{####6}}}%
 \newisland\Figure\c{F}{Figure}%
 \newisland\Table\c{T}{Table}%
 \global\specialpage@true
 \gdef\headline@{\ignorespaces#2\unskip}%
 \vbox{\Let@\tabskip\centering@\halign to\hsize
  {\BF\baselineskip22pt\hfil\ignorespaces##\unskip\hfil\cr
   \uppercase{\ignorespaces#2\unskip}\crcr}}%
 \vskip30\p@ plus10\p@ minus10\p@
 \input\mainfile@.tic
 \endgroup}

\footline={\ifspecialpage@\hfil\ninerm\page@S{\page@P\page@N{\number\page@C}%
 \page@Q}\hfil\fi
 \global\specialpage@false}

\headline={\unlabel@\noset@\def\\{\unskip\space\ignorespaces}%
 \ifspecialpage@\hfil
 \else
  \ifodd\pageno
   \hfil
   \smc\headline@
   \hfil
   \llap{\tenpoint\folio}%
  \else
   \rlap{\tenpoint\folio}%
   \hfil
   \smc\headline@
   \hfil
  \fi
 \fi}

\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
 \ch@ck#1#4#2\allocationnumber=\count1#1
 \global#3#5=\allocationnumber
 \wlog{\string#5=\string#2\the\allocationnumber}}

\catcode`\@=\active
