Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
%%
%% This is file `cupbook.cls' (Beta test version)
%%
%% A LaTeX class file for the CUP standard designs 5a to 9b
%%
%% Copyright (1995-1997) Cambridge University Press
%%
%% by Alison Woollatt and Mark Reed
%% based on cupbook.sty v1.2 <1993/03/18>
%%
%% Modified by Gary T. Leavens for the book
%% Foundations of Component-Based Systems (C.U.P., 2000),
%% on November 29, 1999
%%
%% Bugs (in the case of unchanged files) should be reported to
%% texline@cup.cam.ac.uk
%%
%% This software may only be used in the preparation of journal articles
%% or books or parts of books to be published by Cambridge University Press.
%% Any other use constitutes an infringement of copyright.
%%
%% \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}
\ProvidesClass{cupbook}[1997/07/09 v2.01 (Beta) CUP LaTeX2e document class]
% font sizes for cupbook
% \tiny 5/6
% \footnotesize 8/9
% \large 11/14
% \Large 12/17
% \LARGE 16/19 (chaptertitle size)
% \let\Huge\huge 18/24 (chapternumber size)
% for large sizes (247x174mm - cup5 and cup6 designs)
% \scriptsize 8/9
% \enotesize 9/10
% \let\tablesize\small 10/11
% \let\smallish\normalsmall 10/12
% \listsize 10/13
% \normalsize 11/14
%
% for small sizes (228x152mm - cup7, cup8 and cup9 designs)
% \scriptsize 7/8
% \let\tablesize\small 9/10
% \let\enotesize\small 9/10
% \smallish 9/11
% \normalsmall 10/12
% \let\listsize\normalsize 10/13
\newif\ifSFB@multisty
\newif\ifSFB@largesty
\newif\ifSFB@indentsty
\newif\ifSFB@landscape
\newif\if@openright
\newif\ifSFB@truesize
\newdimen\SFB@indent
\newdimen\SFB@floatindent
\SFB@indent \z@
\DeclareOption{cup5a}{\SFB@largestytrue\SFB@indentstytrue\SFB@indent 3pc}
\DeclareOption{CUP5A}{\@nameuse{ds@cup5a}}
\DeclareOption{cup5b}{\SFB@multistytrue\SFB@largestytrue
\SFB@indentstytrue\SFB@indent 3pc}
\DeclareOption{CUP5B}{\@nameuse{ds@cup5b}}
\DeclareOption{cup6a}{\SFB@largestytrue}
\DeclareOption{CUP6A}{\@nameuse{ds@cup6a}}
\DeclareOption{cup6b}{\SFB@multistytrue\SFB@largestytrue}
\DeclareOption{CUP6B}{\@nameuse{ds@cup6b}}
\DeclareOption{cup7a}{\relax}
\DeclareOption{CUP7A}{\relax}
\DeclareOption{cup7b}{\SFB@multistytrue}
\DeclareOption{CUP7B}{\@nameuse{ds@cup7b}}
\DeclareOption{cup8a}{\SFB@indentstytrue\SFB@indent 3pc}
\DeclareOption{CUP8A}{\@nameuse{ds@cup8a}}
\DeclareOption{cup8b}{\SFB@multistytrue\SFB@indentstytrue\SFB@indent 3pc}
\DeclareOption{CUP8B}{\@nameuse{ds@cup8b}}
\DeclareOption{cup9a}{\SFB@indentstytrue\SFB@indent=\z@}
\DeclareOption{CUP9A}{\@nameuse{ds@cup9a}}
\DeclareOption{cup9b}{\SFB@multistytrue\SFB@indentstytrue}
\DeclareOption{CUP9B}{\@nameuse{ds@cup9b}}
\DeclareOption{oneside}{\relax}
\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
\DeclareOption{onecolumn}{\@twocolumnfalse}
\DeclareOption{twocolumn}{\@twocolumntrue}
\DeclareOption{draft}{\setlength\overfullrule{5\p@}}
\DeclareOption{final}{\setlength\overfullrule{\z@}}
\DeclareOption{openright}{\@openrighttrue}
\DeclareOption{openany}{\@openrightfalse}
\DeclareOption{a4paper}
{\setlength\paperheight {297mm}%
\setlength\paperwidth {210mm}}
\DeclareOption{landscape}
{\setlength\@tempdima {\paperheight}%
\setlength\paperheight {\paperwidth}%
\setlength\paperwidth {\@tempdima}%
\SFB@landscapetrue}
\DeclareOption{truesize}{\SFB@truesizetrue}
\ExecuteOptions{a4paper,twoside,onecolumn,final,openright}
\ProcessOptions\relax
\newcommand\cls@pttxt[1]{\typeout{Document Class: cupbook, option\space CUP#1.}}
\newcommand\CUP@five{\ifSFB@multisty \cls@pttxt{5b}\else \cls@pttxt{5a}\fi}
\newcommand\CUP@six{\ifSFB@multisty \cls@pttxt{6b}\else \cls@pttxt{6a}\fi}
\newcommand\CUP@seven{\ifSFB@multisty \cls@pttxt{7b}\else \cls@pttxt{7a}\fi}
\newcommand\CUP@eight{\ifSFB@multisty \cls@pttxt{8b}\else \cls@pttxt{8a}\fi}
\newcommand\CUP@nine{\ifSFB@multisty \cls@pttxt{9b}\else \cls@pttxt{9a}\fi}
\ifSFB@largesty
\ifSFB@indentsty \CUP@five\else \CUP@six\fi
\else
\ifSFB@indentsty {\ifdim\SFB@indent=\z@ \CUP@nine\else \CUP@eight\fi}%
\else
\CUP@seven
\fi
\fi
\newif\if@mainmatter \@mainmattertrue
\newcommand\frontmatter{\cleardoublepage
\@mainmatterfalse\pagenumbering{roman}}
\newcommand\mainmatter{\cleardoublepage
\@mainmattertrue\pagenumbering{arabic}}
\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
\@mainmatterfalse}
% ****************************************
% * FONTS *
% ****************************************
%
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
\newskip\SFB@baseskip
\newskip\SFB@theskip
\def\SFB@setskips#1{\SFB@theskip #1\relax%
\abovedisplayskip 0.50\SFB@theskip \@plus 0.25\SFB@theskip \@minus 1\p@%
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip 0.25\SFB@theskip \@plus 0.25\SFB@theskip
\belowdisplayshortskip 0.50\SFB@theskip \@plus 0.25\SFB@theskip \@minus 1\p@%
}
\def\SFB@setlists#1{\SFB@theskip #1\relax%
\def\@listi{\leftmargin\leftmargini
\topsep 0.5\SFB@theskip \@plus 2\p@ \@minus 1\p@%
\parsep \z@
\itemsep \z@}}
%
%
% common sizes
\newcommand{\@xvipt}{16}% 16pt size
\DeclareMathSizes{\@xvipt}{\@xvipt}{\@xiipt}{\@xpt}
\newcommand{\@xviiipt}{18}% 18pt size
\DeclareMathSizes{\@xviiipt}{\@xviiipt}{\@xiipt}{\@xpt}
\newcommand\tiny{\@setfontsize\tiny\@vpt{6}\SFB@setskips\SFB@setlists}
\newcommand\footnotesize{\SFB@baseskip 9pt%
\@setfontsize\footnotesize\@viiipt{9}\SFB@setskips\SFB@setlists}
\newcommand\large{\@setfontsize\large\@xipt{14}\SFB@setskips\SFB@setlists}
\newcommand\Large{\@setfontsize\Large\@xiipt{17}\SFB@setskips\SFB@setlists}
\newcommand\LARGE{\@setfontsize\LARGE\@xvipt{19}\SFB@setskips\SFB@setlists}
\newcommand\huge{\@setfontsize\huge\@xviiipt{24}\SFB@setskips\SFB@setlists}
\let\Huge\huge
\ifSFB@largesty
\newcommand\scriptsize{%
\@setfontsize\scriptsize\@viiipt{9}\SFB@setskips\SFB@setlists}
\newcommand\enotesize{\SFB@baseskip 10pt%
\@setfontsize\enotesize\@ixpt{10}\SFB@setskips\SFB@setlists}
\newcommand\small{\SFB@baseskip 11pt%
\@setfontsize\small\@xpt{11}\SFB@setskips\SFB@setlists}
\let\tablesize\small
\newcommand\normalsmall{\SFB@baseskip 12pt%
\@setfontsize\normalsmall\@xpt{12}\SFB@setskips\SFB@setlists}
\let\smallish\normalsmall
\newcommand\listsize{\SFB@baseskip 13pt%
\@setfontsize\listsize\@xpt{13}\SFB@setskips\SFB@setlists}
\renewcommand\normalsize{\SFB@baseskip 14pt%
\@setfontsize\normalsize\@xipt{14}\SFB@setskips{\SFB@baseskip}%
\let\@listi\@listI}
\else
\newcommand\scriptsize{%
\@setfontsize\scriptsize\@viipt{8}\SFB@setskips\SFB@setlists}
\newcommand\small{\SFB@baseskip 10pt%
\@setfontsize\small\@ixpt{10}\SFB@setskips\SFB@setlists}
\let\tablesize\small
\let\enotesize\small
\newcommand\smallish{\SFB@baseskip 11pt%
\@setfontsize\smallish\@ixpt{11}\SFB@setskips\SFB@setlists}
\newcommand\normalsmall{\SFB@baseskip 12pt%
\@setfontsize\normalsmall\@xpt{12}\SFB@setskips\SFB@setlists}
\renewcommand\normalsize{\SFB@baseskip 13pt%
\@setfontsize\normalsize\@xpt{13}\SFB@setskips{\SFB@baseskip}%
\let\@listi\@listI}
\let\listsize\normalsize
\fi
\normalsize
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*\cal{\@fontswitch{\relax}{\mathcal}}
\DeclareRobustCommand*\mit{\@fontswitch{\relax}{\mathnormal}}
% ****************************************
% * PAGE LAYOUT *
% ****************************************
%
% All margin dimensions measured from a point one inch from top and side
% of page.
%
% SIDE MARGINS:
%
\setlength\oddsidemargin{3pc} %% changed -- gtl
\setlength\evensidemargin{3pc} %% changed -- gtl
\setlength\marginparwidth{4pc}
\setlength\marginparsep{0.5pc}
\ifSFB@largesty
\setlength\topmargin{18\p@} %% changed -- gtl
\setlength\headheight{12\p@} %% changed -- gtl
%% \setlength\footheight{14\p@}
\setlength\footskip{41\p@} %% changed -- gtl, was 15
\setlength\topskip{8\p@} %% changed -- gtl
\else
\setlength\topmargin{18\p@} %% changed -- gtl
\setlength\headheight{10\p@} %% changed -- gtl
%% \setlength\footheight{13\p@}
\setlength\footskip{39\p@} %% changed -- gtl, was 13
\setlength\topskip{7\p@} %% changed -- gtl
\fi
\setlength\headsep{18\p@} %% changed -- gtl
%
% DIMENSION OF TEXT:
%
\newdimen\SFB@measure
\setlength\textheight{41\baselineskip} %% changed -- gtl
\addtolength\textheight{\topskip}
\ifSFB@largesty
\SFB@measure 33pc %% changed -- gtl
\else
\SFB@measure 29pc %% changed -- gtl
\fi
\textwidth\SFB@measure
\ifSFB@landscape
\textwidth\textheight
\textheight\SFB@measure
\fi
\setlength\columnsep{1pc}
\setlength\columnseprule{0\p@}
%
% FOOTNOTES
%
\setlength\footnotesep{6.5\p@}
\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}% top of first footnote.
%
% FLOATS
%
\setlength\floatsep{13\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\intextsep{13\p@ \@plus 2\p@ \@minus 2\p@}
%%\setlength\@maxsep{20\p@}
\setlength\dblfloatsep{13\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
%%\setlength\@dblmaxsep{20\p@}
%
% for floats on a separate float page
\setlength\@fptop{0\p@ \@plus 0fil}
\setlength\@fpsep{13\p@ \@plus 0fil}
\setlength\@fpbot{0\p@ \@plus 3fil}
%
% wide floats
\setlength\@dblfptop{0\p@ \@plus 0fil}
\setlength\@dblfpsep{13\p@ \@plus 0fil}
\setlength\@dblfpbot{0\p@ \@plus 3fil}
%
%
% MARGINAL NOTES:
%
\setlength\marginparpush{5\p@}
% ****************************************
% * PARAGRAPHING *
% ****************************************
%
\setlength\parskip{0\p@ \@plus .25\p@}
\setlength\parindent{1em}
\listparindent\parindent
\setlength\partopsep{0\p@ \@plus 1\p@}
%
% The following page-breaking penalties are defined
%
\@lowpenalty 51
\@medpenalty 151
\@highpenalty 301
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
%
\clubpenalty=0 % 'Club line' at bottom of page.
\widowpenalty=10000 % 'Widow line' at top of page.
% \displaywidowpenalty % Math display widow line.
% \predisplaypenalty % Breaking before a math display.
% \postdisplaypenalty % Breaking after a math display.
% \interlinepenalty % Breaking at a line within a paragraph.
% \brokenpenalty % Breaking after a hyphenated line.
% ****************************************
% * CHAPTERS AND SECTIONS *
% ****************************************
%
% Heading for the \chapter command -- fixed depth chapter headings...
%
\newdimen\SFB@headwidth
\SFB@headwidth \textwidth
\addtolength{\SFB@headwidth}{-\SFB@indent}
\def\@makechapterhead#1{{\normalsize
\parindent 0\p@
\vspace*{-0.5\baselineskip}
\ifnum \c@secnumdepth >\m@ne
\raisebox{0.5\baselineskip}[0\p@][0\p@]{\mbox{\hspace*{\SFB@indent}}%
\begin{minipage}[t]{\SFB@headwidth}
\ifSFB@indentsty \raggedright \else \centering \fi
\ifSFB@appendix {\huge Appendix \thechapter}%
\else {\huge\bfseries \thechapter}%
\fi
\par
\ifSFB@largesty \vskip 9\p@ \else \vskip 7\p@ \fi
\LARGE\rm #1
\nobreak
\par
\ifSFB@multisty
\vskip 7\p@
\normalsize
\ifSFB@indentsty \begin{author@tabular}[t]{@{}l@{}}
\else \begin{author@tabular}[t]{c}
\fi
\@author
\end{author@tabular}
\par
\fi
\end{minipage}}
\else
\raisebox{0.5\baselineskip}[0\p@][0\p@]{\mbox{\hspace*{\SFB@indent}}%
\begin{minipage}[t]{\SFB@headwidth}
\ifSFB@indentsty \raggedright \else \centering \fi
{\huge\bfseries \mbox{}}
\par
\ifSFB@largesty \vskip 9\p@ \else \vskip 7\p@ \fi
\LARGE\rm #1
\nobreak
\par
\end{minipage}}
\fi
\par \nobreak
\vskip 10.5\baselineskip% 2.5 less than the first line of text
}
}
\def\@makeschapterhead#1{{\normalsize
\parindent 0\p@
\vspace*{-0.5\baselineskip}
\raisebox{0.5\baselineskip}[0\p@][0\p@]{\mbox{\hspace*{\SFB@indent}}%
\begin{minipage}[t]{\SFB@headwidth}
\ifSFB@indentsty \raggedright \else \centering \fi
{\huge\bfseries \mbox{}}
\par
\ifSFB@largesty \vskip 9\p@ \else \vskip 7\p@ \fi
\LARGE\rm #1
\nobreak
\par
\end{minipage}}
\par \nobreak
\vskip 10.5\baselineskip % 2.5 less than the first line of text
}
}
%
% \secdef{UNSTARCMDS}{STARCMDS} :
%
\def\chapter{\clearpage
\thispagestyle{plain}
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\def\@chapter[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}
\typeout{\@chapapp\space\thechapter.}
\ifSFB@multisty
\ifx\@shortauthor\@empty
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}
\else
\addcontentsline{toc}{chapter}{\protect
\numberline{\thechapter}#1\hspace{1em}{\itshape \@shortauthor\/}}
\fi
\else
\ifSFB@appendix
\addcontentsline{toc}{chapter}{\protect\SFB@numberline{\thechapter}#1}
\else
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}
\fi
\fi
\else
\addcontentsline{toc}{chapter}{#1}
\fi
\ifSFB@multisty
\markboth{\@shortauthor}{#1}
\gdef\SFB@endnotehead{\relax}
\else
\chaptermark{#1}
\gdef\SFB@endnotehead{\@chapapp\ \thechapter}
\fi
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]
\else
\@makechapterhead{#2}
\@afterheading
\fi
\ifSFB@multisty
\gdef\@author{}
\gdef\@shortauthor{}
\fi
}
\def\@schapter#1{%
\ifSFB@addtoc
\ifSFB@indentsty
\ifdim\SFB@indent>\z@
\addcontentsline{toc}{schapter}{\protect\numberline{\mbox{}}#1}
\else
\addcontentsline{toc}{schapter}{#1}
\fi
\else
\addcontentsline{toc}{schapter}{#1}
\fi
\fi
\ifSFB@multisty
\markboth{#1}{#1}
\gdef\SFB@endnotehead{\relax}
\else
\chaptermark{#1}
\gdef\SFB@endnotehead{#1}
\fi
\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}]
\else
\@makeschapterhead{#1}
\@afterheading
\fi
\normalsize
}
%
% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
% optional * [ALTHEADING]{HEADING}
%
\ifSFB@indentsty
\def\section{\@startsection {section}{1}{\SFB@indent}
{-23\p@ \@plus-6.5\p@ \@minus-2\p@}{3\p@ \@plus 1\p@}
{\normalsize\bfseries\SFB@hangraggedright}}
\def\subsection{\@startsection{subsection}{2}{\SFB@indent}
{-23\p@ \@plus-6.5\p@ \@minus-2\p@}{3\p@ \@plus 1\p@}
{\normalsize\itshape\bfseries\SFB@hangraggedright}}
\def\subsubsection{\@startsection{subsubsection}{3}{\SFB@indent}
{-10\p@ \@plus-6.5\p@ \@minus-2\p@}{3\p@ \@plus 1\p@}
{\normalsize\itshape\SFB@hangraggedright}}
\def\paragraph{\@startsection{paragraph}{4}{\SFB@indent}
{13\p@ \@plus6.5\p@ \@minus2\p@}{-0.5em}{\normalsize\bfseries\SFB@raggedright}}
\def\subparagraph{\@startsection{subparagraph}{5}{\SFB@indent}
{13\p@ \@plus6.5\p@ \@minus2\p@}{-0.5em}{\normalsize\itshape\SFB@raggedright}}
\else
\def\section{\@startsection {section}{1}{\z@}
{-23\p@ \@plus-6.5\p@ \@minus-2\p@}{3\p@ \@plus 1\p@}{\normalsize\bfseries\centering}}
\def\subsection{\@startsection{subsection}{2}{\z@}
{-23\p@ \@plus-6.5\p@ \@minus-2\p@}{3\p@ \@plus 1\p@}{\normalsize\itshape\bfseries\centering}}
\def\subsubsection{\@startsection{subsubsection}{3}{\z@}
{-10\p@ \@plus-6.5\p@ \@minus-2\p@}{3\p@ \@plus 1\p@}{\normalsize\itshape\centering}}
\def\paragraph{\@startsection{paragraph}{4}{\z@}
{13\p@ \@plus6.5\p@ \@minus2\p@}{-0.5em}{\normalsize\bfseries}}
\def\subparagraph{\@startsection{subparagraph}{5}{\z@}
{13\p@ \@plus6.5\p@ \@minus2\p@}{-0.5em}{\normalsize\itshape}}
\fi
\def\SFB@hangraggedright{\rightskip\@flushglue \let\\=\newline}
\def\SFB@raggedright{\rightskip\@flushglue \let\\=\@centercr
\parindent=\SFB@indent}
%
% Default initializations of \...mark commands
%
%\def\chaptermark#1{}
\newcommand*\chaptermark[1]{}
\setcounter{secnumdepth}{3}
%
% APPENDIX
%
\newif\ifSFB@appendix
\def\appendix{\par\clearpage
% \small
\SFB@appendixtrue
\setcounter{chapter}{0}
\setcounter{section}{0}
% set tocdepth to chapter heads only whether multi-author or single-author
\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
\def\@chapapp{Appendix}
\def\thesection{A\thechapter.\arabic{section}}
\def\thetable {A\thechapter.\@arabic\c@table}
\def\thefigure {A\thechapter.\@arabic\c@figure}
}
% ****************************************
% * LISTS *
% ****************************************
%
\ifSFB@indentsty
\ifdim \SFB@indent=\z@ \setlength\leftmargini{1em}
\else \setlength\leftmargini{\SFB@indent}
\fi \else \setlength\leftmargini{1em}
\fi
\setlength\leftmarginii{1em}
\setlength\leftmarginiii{1em}
\setlength\leftmarginiv{1em}
\setlength\leftmarginv{1em}
\setlength\leftmarginvi{1em}
\leftmargin\leftmargini
\setlength\labelsep{0.5em}
\labelwidth\leftmargini \advance\labelwidth-\labelsep
\def\@listI{\leftmargin\leftmargini
\parsep \z@ \@plus 2\p@
\partopsep \z@ \@plus 1\p@
\topsep 6.5\p@ \@plus 3.25\p@ \@minus 1\p@%
\itemsep \z@ \@plus.1\p@
\listparindent \parindent
}
\let\@listi\@listI
\@listi
\def\@listii{\leftmargin\leftmarginii
\labelwidth\leftmarginii \advance\labelwidth-\labelsep
\parsep \z@ \@plus 2\p@
\partopsep \z@ \@plus 1\p@
\topsep 3.25\p@ \@plus .5\p@ \@minus 1\p@%
\itemsep \z@ \@plus.1\p@
}
\def\@listiii{\leftmargin\leftmarginiii
\labelwidth\leftmarginiii \advance\labelwidth-\labelsep
\parsep \z@ \@plus 2\p@
\partopsep \z@ \@plus 1\p@
\topsep 3.25\p@ \@plus .5\p@ \@minus 1\p@%
\itemsep \z@ \@plus.1\p@
}
\def\@listiv{\leftmargin\leftmarginiv
\labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
\def\@listv{\leftmargin\leftmarginv
\labelwidth\leftmarginv \advance\labelwidth-\labelsep}
\def\@listvi{\leftmargin\leftmarginvi
\labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
% ****************************************
% * LIST ENVIRONMENTS *
% ****************************************
%
%
% ENUMERATE -- with optional argument to set left margin
%
\def\makeRRlabel#1{\hss\llap{#1}}
\def\enumerate{\ifnum \@enumdepth >3 \@toodeep \else
\advance\@enumdepth \@ne
\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
\fi
\@ifnextchar [{\@enumeratetwo}{\@enumerateone}%
}
\def\@enumeratetwo[#1]{%
\list{\csname label\@enumctr\endcsname}%
{\settowidth\labelwidth{#1}%
\leftmargin\labelwidth \advance\leftmargin\labelsep
\usecounter{\@enumctr}%
\let\makelabel\makeRRlabel}%
}
\def\@enumerateone{%\listsize
\list{\csname label\@enumctr\endcsname}%
{\usecounter{\@enumctr}%
\ifSFB@indentsty
\ifdim \SFB@indent=\z@ \leftmargin 3em % overrides \leftmargini,ii,iii...
\fi \else \leftmargin 3em
\fi
\let\makelabel\makeRRlabel}}
\renewcommand\theenumi{{\rm (\roman{enumi})}}
\renewcommand\theenumii{{\rm (\alph{enumii})}}
\renewcommand\theenumiii{{\rm \arabic{enumiii}.}}
\renewcommand\theenumiv{{\rm \Alph{enumiv}.}}
\newcommand\labelenumi{\theenumi}
\newcommand\labelenumii{\theenumii}
\newcommand\labelenumiii{\theenumiii}
\newcommand\labelenumiv{\theenumiv}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}
%
% ITEMIZE
%
\def\itemize{\ifnum \@itemdepth >3 \@toodeep \else
\advance\@itemdepth \@ne
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
% \listsize
\list{\csname\@itemitem\endcsname}%
{\def\makelabel##1{\hss\llap{##1}}}
\fi
}
\newcommand\labelitemi{$\bullet$}
\newcommand\labelitemii{\bfseries --}
\newcommand\labelitemiii{$\circ$}
\newcommand\labelitemiv{$\diamond$}
%
% DESCRIPTION
%
\newcommand*\descriptionlabel[1]{\hspace\labelsep\bfseries #1}
\def\description{%\listsize
\list{}{\labelwidth\z@
% \leftmargin 2em \advance\leftmargin\labelsep
\leftmargin 3pc
\itemindent-\leftmargin
\let\makelabel\descriptionlabel
}}
\let\enddescription\endlist
%
% EXERCISES
%
\newcounter{ex@bean}
\def\exerciselist{\@ifnextchar [{\@exerciselisttwo}{\@exerciselistone}}
\def\@exerciselistone{\ifnum \@enumdepth >3 \@toodeep \else
\advance\@enumdepth \@ne
\def\exerciselabel##1{\rm \thechapter.##1\hss}
\list{\arabic{ex@bean}}%
{\usecounter{ex@bean}%
\leftmargin 3pc
\labelwidth \leftmargin
\addtolength{\labelwidth}{-\labelsep}
\let\makelabel\exerciselabel}%
\fi}
\def\@exerciselisttwo[#1]{\ifnum \@enumdepth >3 \@toodeep \else
\advance\@enumdepth \@ne
\def\exerciselabel##1{\rm #1.##1\hss}
\list{\arabic{ex@bean}}%
{\usecounter{ex@bean}%
\leftmargin 3pc
\labelwidth \leftmargin
\addtolength{\labelwidth}{-\labelsep}
\let\makelabel\exerciselabel}%
\fi}
\let\endexerciselist=\endlist
\def\exercises{\section*{Exercises}
\markright{Exercises}
\exerciselist
\setcounter{equation}{0}
\def\theequation{E\thechapter.\arabic{equation}}
}
\let\endexercises=\endexerciselist
\let\exercise=\item
% ****************************************
% * OTHER ENVIRONMENTS *
% ****************************************
%
% VERSE
%
\def\verse{\let\\=\@centercr
\list{}{\itemsep\z@ \itemindent -1em\listparindent \itemindent
\rightmargin\z@
\leftmargin\SFB@indent\advance\leftmargin 1em}\item[]\smallish}
\let\endverse=\endlist
%
% QUOTATION
%
\def\quotation{\list{}{\leftmargin\SFB@indent\rightmargin\z@}\item[]\smallish}
\let\endquotation=\endlist
%
% QUOTE
%
\def\quote{\list{}{\leftmargin\SFB@indent \rightmargin\z@}\item[]\smallish}
\let\endquote=\endlist
%
% INDENTED (for use in title pages)
%
\def\indented{\list{}{\leftmargin\SFB@indent
\listparindent\z@\rightmargin\z@}\raggedright\item[]}
\let\endindented=\endlist
%
% ARRAY AND TABULAR
%
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.5\p@}
\setlength\doublerulesep{2\p@}
%
% TABBING
%
\tabbingsep\labelsep
%
% FRAMEBOX
%
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.5\p@}
%
% THEOREM
%
\def\@begintheorem#1#2{\par\addvspace{12\p@}
\list{}{\leftmargin\z@\rightmargin\leftmargin}%
\ifSFB@indentsty
\item[]\hspace*{\SFB@indent}{\bfseries #1\ #2 }\itshape
\ifdim \SFB@indent=\z@ \leftmarginii 3em \else \leftmarginii \SFB@indent \fi
\else
\item[]{\bfseries #1\ #2 }\itshape
\leftmarginii 3em
\fi}
\def\@opargbegintheorem#1#2#3{\par\addvspace{12\p@}
\list{}{\leftmargin\z@\rightmargin\leftmargin}%
\ifSFB@indentsty
\item[]\hspace*{\SFB@indent}{\bfseries #1\ #2 (#3) }\itshape
\ifdim \SFB@indent=\z@ \leftmarginii 3em \else \leftmarginii \SFB@indent \fi
\else
\item[]{\bfseries #1\ #2 (#3) }\itshape
\leftmarginii 3em
\fi}
\def\@endtheorem{\endlist}
%
% PROOFs
%
\def\proof{\par\addvspace{13\p@}
\list{}{\leftmargin\z@\rightmargin\leftmargin}%
\ifSFB@indentsty
\item[]\hspace*{\SFB@indent}{\itshape Proof\ }%
\ifdim \SFB@indent=\z@ \leftmarginii 3em \else \leftmarginii \SFB@indent \fi
\else
\item[]{\itshape Proof\ }%
\leftmarginii 3em
\fi}
\def\endproof{\hspace*{1em \@plus 1000fil}\nolinebreak\proofbox\endlist}
\@namedef{proof*}{\par\addvspace{13\p@}
\list{}{\leftmargin\z@\rightmargin\leftmargin}%
\ifSFB@indentsty
\item[]\hspace*{\SFB@indent}{\itshape Proof\ }%
\ifdim \SFB@indent=\z@ \leftmarginii 3em \else \leftmarginii \SFB@indent \fi
\else
\item[]{\itshape Proof\ }%
\leftmarginii 3em
\fi}
\@namedef{endproof*}{\endlist}
\def\proofbox{\begin{picture}(6.5,6.5)%
\put(0,0){\framebox(6.5,6.5){}}\end{picture}}
% ****************************************
% * CHAPTERS AND SECTIONS *
% ****************************************
%
% DEFINE COUNTERS:
%
\newcounter{part}
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\def\thepart {\arabic{part}}
\def\thechapter {\arabic{chapter}}
\def\thesection {\thechapter.\arabic{section}}
\def\thesubsection {\thesection.\arabic{subsection}}
\def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
\def\theparagraph {\thesubsubsection.\arabic{paragraph}}
\def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
\def\@chapapp{Chapter}
% ****************************************
% * PARTS *
% ****************************************
%
\def\part{\cleardoublepage
\thispagestyle{plain} % changed -- gtl
\if@twocolumn
\onecolumn
\@tempswatrue
\else \@tempswafalse
\fi
\secdef\@part\@spart
}
\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}
\ifSFB@indentsty
\ifdim\SFB@indent>\z@
\ifSFB@multisty
\addcontentsline{toc}{part}{\protect\numberline{\mbox{}}Part
\ifcase\thepart\or One\or Two\or Three\or Four\or Five\or Six%
\or Seven\or Eight\or Nine\or Ten\else ??\fi: #1}
\else
\addcontentsline{toc}{part}{Part
\ifcase\thepart\or One\or Two\or Three\or Four\or Five\or Six%
\or Seven\or Eight\or Nine\or Ten\else ??\fi: #1}
\fi
\else
\addcontentsline{toc}{part}{Part
\ifcase\thepart\or One\or Two\or Three\or Four\or Five\or Six%
\or Seven\or Eight\or Nine\or Ten\else ??\fi: #1}
\fi
\else
\addcontentsline{toc}{part}{Part
\ifcase\thepart\or One\or Two\or Three\or Four\or Five\or Six%
\or Seven\or Eight\or Nine\or Ten\else ??\fi: #1}
\fi
\else
\addcontentsline{toc}{part}{#1}
\fi
\@mkboth{}{}
{\ifSFB@indentsty \raggedright \else \centering \fi
\vspace*{-\baselineskip}
\ifnum \c@secnumdepth >-2\relax
{\huge\bfseries \hspace*{\SFB@indent}Part
\ifcase\thepart \or One\or Two\or Three\or Four\or Five\or Six%
\or Seven\or Eight\or Nine\or Ten\else ??%
\@warning{[CUPBOOK] Part counter too large} % \@ctrerr
\fi}
\par
\ifSFB@largesty \vskip 9\p@ \else \vskip 7\p@ \fi
\else
\par
\vskip 2.5\baselineskip
\fi
\LARGE \rm \hspace*{\SFB@indent}#2\par}
\@endpart
}
\def\@spart#1{{\ifSFB@indentsty \raggedright \else \centering \fi
\vspace*{-\baselineskip}
\par
\vskip 19.5\p@ % 1.5\baselineskip
\LARGE \rm #1\par}
\@endpart}
%
% \@endpart finishes the part page
%
\def\@endpart{\newpage ~ \thispagestyle{empty} \newpage} % changed -- gtl
% ****************************************
% * TABLE OF CONTENTS, ETC. *
% ****************************************
%
\newdimen\SFB@tocindent
\ifSFB@largesty \SFB@tocindent=65\p@ \else \SFB@tocindent=60\p@ \fi
% \def\numberline#1{\hbox to\@tempdima{#1\hfil}}
\def\SFB@numberline#1{\hbox to \SFB@tocindent {{\itshape Appendix #1\hfil}}}
\ifSFB@indentsty \ifdim\SFB@indent>\z@
\def\numberline#1{\hbox to\@tempdima{\hfil#1\hspace*{0.5em}}}
\def\SFB@numberline#1{\hspace*{\@tempdima}%
\hbox to \SFB@tocindent {{\itshape Appendix #1\hfil}}}
\fi \fi
%
\newif\ifSFB@addtoc \SFB@addtocfalse
\newif\ifSFB@firstTOCentry \SFB@firstTOCentrytrue
\newdimen\SFB@toclmarg
\ifSFB@multisty
\setcounter{tocdepth}{0}
\SFB@toclmarg 16\p@
\else
\setcounter{tocdepth}{2}
\SFB@toclmarg 28\p@
\fi
\ifSFB@indentsty %and
\ifdim\SFB@indent>\z@
\SFB@toclmarg \SFB@indent
\fi
\fi
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
%
% TABLEOFCONTENTS
%
\newcommand\tableofcontents{\@restonecolfalse
\if@twocolumn\@restonecoltrue\onecolumn\fi
\SFB@addtocfalse
\chapter*{Contents}
\@starttoc{toc}
\SFB@addtoctrue
\if@restonecol\twocolumn\fi
}
\newcommand*\l@part[2]{\addpenalty{-\@highpenalty}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode
\ifSFB@multisty \else \hspace*{\SFB@toclmarg}\fi
\ifSFB@firstTOCentry
{\bfseries #1} \hfil \hbox to\@pnumwidth{\hss {\itshape page\/} #2}\par
\global\SFB@firstTOCentryfalse
\else
{\bfseries #1} \hfil \hbox to\@pnumwidth{\hss #2}\par
\fi
\nobreak
\endgroup
}
\newcommand*\l@chapter[2]{\pagebreak[3]
\@tempdima \SFB@toclmarg
\begingroup
\parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth
\leavevmode
\advance \leftskip \@tempdima \hskip -\leftskip
\ifSFB@firstTOCentry
{\rm #1}\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss {\itshape page\/} #2}\par
\global\SFB@firstTOCentryfalse
\else
{\rm #1}\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
\fi
\endgroup
}
\newcommand*\l@schapter[2]{\pagebreak[3]
\@tempdima \SFB@toclmarg
\begingroup
\parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth
\leavevmode
\advance \leftskip \@tempdima \hskip -\leftskip
\ifSFB@firstTOCentry
{\itshape #1}\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss {\itshape page\/} #2}\par
\global\SFB@firstTOCentryfalse
\else
{\itshape #1}\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
\fi
\endgroup
}
\newcommand*\l@section {\@dottedtocline{1}{\z@}{\SFB@toclmarg}}
\newcommand*\l@subsection {\@dottedtocline{2}{\z@}{\SFB@toclmarg}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{\z@}{\SFB@toclmarg}}
\newcommand*\l@paragraph {\@dottedtocline{4}{\z@}{\SFB@toclmarg}}
\newcommand*\l@subparagraph {\@dottedtocline{5}{\z@}{\SFB@toclmarg}}
%
% LIST OF FIGURES
%
\newcommand\listoffigures{\@restonecolfalse
\if@twocolumn\@restonecoltrue\onecolumn\fi
\bgroup
\chapter*{List of Illustrations}
\normalsmall
\setcounter{tocdepth}{1}
\@starttoc{lof}
\egroup
\if@restonecol\twocolumn\fi
}
\newcommand*\l@figure{\@dottedtocline{1}{\z@}{\SFB@toclmarg}}
%
% LIST OF TABLES
%
\newcommand\listoftables{\@restonecolfalse
\if@twocolumn\@restonecoltrue\onecolumn\fi
\bgroup
\chapter*{List of Tables}
\normalsmall
\setcounter{tocdepth}{1}
\@starttoc{lot}
\egroup
\if@restonecol\twocolumn\fi
}
\let\l@table\l@figure
%
% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} without the dots
%
\def\@dottedtocline#1#2#3#4#5{%
\ifnum #1>\c@tocdepth
\else
\vskip \z@ \@plus .2\p@
{\leftskip #2\relax \rightskip \@tocrmarg \@plus2em % for ragged right entries
\parfillskip -\rightskip
\parindent #2\relax
\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
#4\nobreak
\hfill \nobreak
\ifSFB@firstTOCentry
\hbox to\@pnumwidth{\hfil\rm {\itshape page\/} #5}\par
\global\SFB@firstTOCentryfalse
\else
\hbox to\@pnumwidth{\hfil\rm #5}\par
\fi}%
\fi
}
% ****************************************
% * BIBLIOGRAPHY *
% ****************************************
%
\newlength{\LargestBibItemSize}
\ifSFB@multisty
\newenvironment{thebibliography}[1]%
{\section*{Bibliography}%
\settowidth{\LargestBibItemSize}{[#1]}% added -- gtl
\bibliographylist}%
{\endlist}
\else
\newenvironment{thebibliography}[1]%
{\chapter*{Bibliography}\typeout{Bibliography.}%
\settowidth{\LargestBibItemSize}{[#1]}% added -- gtl
\bibliographylist}%
{\endlist}
\fi
\ifSFB@multisty
\newenvironment{thereferences}[1]%
{\section*{References}\bibliographylist}{\endlist}
\else
\newenvironment{thereferences}[1]%
{\chapter*{References}\typeout{References.}\bibliographylist}{\endlist}
\fi
\newcounter{dummy}
\def\bibliographylist{%
\small\raggedright
\list{}{\usecounter{dummy}% % all changed here to align entries -- gtl
\labelwidth\LargestBibItemSize%
\leftmargin\labelwidth%
\advance\leftmargin\labelsep%
\itemsep \z@ \@plus .1\p@
}
\parindent\z@
\parskip\z@ \@plus .1\p@\relax
\def\newblock{\hskip .11em \@plus .33em \@minus .07em}
\sloppy\clubpenalty4000\widowpenalty4000
\sfcode`\.=1000\relax
}
\let\endbibliographylist=\endlist
% ****************************************
% * THE INDEX *
% ****************************************
%
% THE THEINDEX ENVIRONMENT
%
\newif\if@restonecol
\newenvironment{theindex}{\the@index{Index}}{\par\endthe@index}
\newenvironment{theauthorindex}{\the@index{Author index}}{\par\endthe@index}
\newenvironment{thesubjectindex}{\the@index{Subject index}}{\par\endthe@index}
\newcommand\the@index[1]{\@restonecoltrue
\if@twocolumn\@restonecolfalse\fi
\columnseprule \z@
\columnsep 1pc
\twocolumn[\vspace*{11\p@}\mbox{}\par\@makeschapterhead{#1}]
\@mkboth{#1}{#1}
\typeout{#1.}
\ifSFB@indentsty
\ifdim\SFB@indent>\z@
\addcontentsline{toc}{schapter}{\protect\numberline{\mbox{}}#1}
\else
\addcontentsline{toc}{schapter}{#1}
\fi
\else
\addcontentsline{toc}{schapter}{#1}
\fi
\thispagestyle{plain}
\footnotesize\raggedright
\parindent\z@
\parskip\z@ \@plus.3\p@\relax
\let\item=\@idxitem
}
\def\endthe@index{\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem{\par\hangindent 2em}
\newcommand\subitem{\par\hangindent 3em \hspace*{1em}}
\newcommand\subsubitem{\par\hangindent 4em \hspace*{2em}}
\newcommand\indexspace{\par \vskip 9\p@ \@plus 5\p@ \@minus 3\p@\relax}
% ****************************************
% * FOOTNOTES with SYMBOLS *
% ****************************************
%
\newskip\@footindent
\@footindent=1em
\renewcommand\footnoterule{\kern-3\p@ \hrule width 0\columnwidth \kern 2.6\p@}
\@addtoreset{footnote}{page}
\long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
\advance\@tempdima-\@footindent
\parshape \@ne \@footindent \@tempdima}\par
\noindent \hbox to \z@{\hss\@thefnmark\hspace{0.5em}}#1}
\renewcommand\thefootnote{\mbox{$\fnsymbol{footnote}$}}
\def\@makefnmark{\hbox{\@thefnmark}}
\def\@fnsymbol#1{\ifcase#1\or \dagger\or \ddagger\or
\S \or \P \or \|\or \dagger\dagger
\or \ddagger\ddagger\or \S\S\or \P\P\or \|\|\else *\fi\relax}
%
% MINIPAGE
%
\skip\@mpfootins = 4\p@ \@plus 1\p@ \@minus .1\p@ % top of first minipage footnote.
\def\thempfootnote{\alph{mpfootnote}}
\def\@makempfnmark{\hbox{$^{\@thefnmark}$}}
%
\long\def\@makempfntext#1{\@setpar{\@@par\@tempdima \hsize
\advance\@tempdima-\@footindent
\parshape \@ne \@footindent \@tempdima}\par
\noindent \hbox to \z@{\hss$^{\@thefnmark}$\hspace{0.5em}}#1} % v.01.10 SFB
%
% redefine minipage to reset footnotemark as well as text and counters...
%
%\def\@iminipage[#1]#2{\leavevmode \@pboxswfalse
% \if #1b\vbox
% \else \if #1t\vtop
% \else \ifmmode \vcenter
% \else \@pboxswtrue $\vcenter
% \fi
% \fi
% \fi\bgroup
% \hsize #2\textwidth\hsize \columnwidth\hsize
% \@parboxrestore
% \def\@mpfn{mpfootnote}
% \def\thempfn{\thempfootnote}\c@mpfootnote\z@
% \let\@makefnmark\@makempfnmark % v.01.03 SFB
% \let\@footnotetext\@mpfootnotetext
% \let\@listdepth\@mplistdepth \@mplistdepth\z@
% \@minipagerestore\global\@minipagetrue
% \everypar{\global\@minipagefalse\everypar{}}}
\def\@iiiminipage#1#2[#3]#4{% from latex.ltx
\leavevmode
\@pboxswfalse
\setlength\@tempdima{#4}%
\def\@mpargs{{#1}{#2}[#3]{#4}}%
\setbox\@tempboxa\vbox\bgroup
\color@begingroup
\hsize\@tempdima
\textwidth\hsize \columnwidth\hsize
\@parboxrestore
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
\let\@makefnmark\@makempfnmark % from v1.2 ajw
\let\@footnotetext\@mpfootnotetext
\let\@listdepth\@mplistdepth \@mplistdepth\z@
\@minipagerestore\global\@minipagetrue %% \global added 24 May 89
\everypar{\global\@minipagefalse\everypar{}}}
\long\def\@mpfootnotetext#1{\global\setbox\@mpfootins
\vbox{\unvbox\@mpfootins
\footnotesize
\hsize\columnwidth \@parboxrestore
\edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}
\@makempfntext{\rule{\z@}{\footnotesep}\ignorespaces #1\strut}}}
% ****************************************
% * ENDNOTES *
% ****************************************
%
\newcounter{endnote}[chapter] \def\theendnote{\arabic{endnote}}
\newdimen\endnotesep
\newwrite\@enotes
\newif\if@enotesopen \global\@enotesopenfalse
\newif\ifSFB@firstendnote \global\SFB@firstendnotefalse
\def\@makeenmark{\hbox{$^{\@theenmark}$}}
\def\endnote{%
\ifSFB@multisty \SFB@firstendnotefalse
\else \ifnum \c@endnote = \z@ \SFB@firstendnotetrue
\else \SFB@firstendnotefalse \fi
\fi
\@ifnextchar[{\@xendnote
}{\stepcounter{endnote}%
\xdef\@theenmark{\theendnote}%
}%
\@endnotemark
\@endnotetext
}
\def\@xendnote[#1]{\begingroup \c@endnote=#1\relax
\xdef\@theenmark{\theendnote}\endgroup
}
\let\@doanenote=0
\let\@endanenote=0
\def\@openenotes{\immediate\openout\@enotes=\jobname.ent\relax
\global\@enotesopentrue
}
\gdef\SFB@endnotehead{\relax}
\long\def\@endnotetext#1{%
\if@enotesopen \else \@openenotes \fi
\ifSFB@firstendnote
\addtoendnotes{\protect\endnoteheading*{\SFB@endnotehead}}%
\addtoendnotes{\protect\noindent}%
\fi
\ifSFB@multisty\else
\addtoendnotes{\protect\mark{\thepage}}%
\fi
\immediate\write\@enotes{\@doanenote{\@theenmark}}%
\begingroup
\def\next{#1}%
\newlinechar='40
\immediate\write\@enotes{\meaning\next}%
\endgroup
\immediate\write\@enotes{\@endanenote}%
\edef\@currentlabel{\csname p@endnote\endcsname\@theenmark}%
}
\long\def\addtoendnotes#1{%
\if@enotesopen \else \@openenotes \fi
\begingroup
\newlinechar='40
\let\protect\string
\immediate\write\@enotes{#1}%
\endgroup
}
\def\endnotemark{\@ifnextchar [{\@xendnotemark
}{\stepcounter{endnote}%
\xdef\@theenmark{\theendnote}}%
\@endnotemark
}
\def\@xendnotemark[#1]{\begingroup
\c@endnote #1\relax
\xdef\@theenmark{\theendnote}\endgroup
}
\def\@endnotemark{\leavevmode
\ifhmode \edef\@x@sf{\the\spacefactor}\fi
\@makeenmark
\ifhmode\spacefactor\@x@sf\fi\relax
}
\def\endnotetext{\@ifnextchar [{\@xendnotenext
}{\xdef\@theenmark{\theendnote}}%
\@endnotetext
}
\def\@xendnotenext[#1]{\begingroup
\c@endnote=#1\relax \xdef\@theenmark{\theendnote}\endgroup
}
\ifSFB@multisty
\def\enoteheading{\section*{Notes}}
\else
\def\enoteheading{\chapter*{Notes}\leavevmode\par\vskip-\baselineskip}
\fi
\def\enoteformat{\raggedright
\ifSFB@indentsty
\@tempdima = 3pc
\else
\@tempdima = 1.5em
\fi
\leftskip \@tempdima \parindent=1em%
\leavevmode
\hskip-\@tempdima
\hskip-\parindent
\hbox to \@tempdima {\hfil\@theenmark\hspace*{0.5em}}%
}
\ifSFB@multisty\else
\def\SFB@enoteheadline{Notes to pp. \firstmark--\botmark}
\fi
\def\theendnotes{\immediate\closeout\@enotes
\global\@enotesopenfalse
\begingroup
\makeatletter
\def\@doanenote##1##2>{\def\@theenmark{##1}\par\begingroup\enoteformat}%
\def\@endanenote{\par\endgroup}%
\def\ETC.{\@warning{[CUPBOOK] Some long endnotes will be truncated}
\def\ETC.{\relax}}
\enoteheading
\ifSFB@multisty\else % redefine marking for running heads
\def\chaptermark##1{}
\def\leftmark{\SFB@enoteheadline}
\def\rightmark{\SFB@enoteheadline}
\fi
\enotesize
\noindent
\@input{\jobname.ent}%
\ifSFB@multisty\else\clearpage\fi
\endgroup
}
\ifSFB@indentsty
\def\endnoteheading{\@startsection {endnoteheading}{1}{\z@}
{-11\p@ \@plus-3.25\p@ \@minus-1\p@}{3\p@ \@plus 1\p@}{\normalsize\bfseries\raggedright}}
\else
\def\endnoteheading{\@startsection {endnoteheading}{1}{\z@}
{-11\p@ \@plus-3.25\p@ \@minus-1\p@}{3\p@ \@plus 1\p@}{\normalsize\bfseries\centering}}
\fi
% ****************************************
% * FIGURES AND TABLES *
% ****************************************
%
% Float placement parameters.
%
\setcounter{topnumber}{2}
\renewcommand\topfraction{0.9}
\setcounter{bottomnumber}{2}
\renewcommand\bottomfraction{0.5}
\setcounter{totalnumber}{3}
\renewcommand\textfraction{0.05}
\renewcommand\floatpagefraction{0.95}
\setcounter{dbltopnumber}{2}
\renewcommand\dbltopfraction{0.9}
\renewcommand\dblfloatpagefraction{0.8}
%
% \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.
%
\long\def\make@table@caption#1#2{\vskip 10\p@%
\setbox\@tempboxa\hbox{{\rm #1.\hspace{0.5em}\itshape #2}}%
\ifdim \wd\@tempboxa >\hsize
{\ifSFB@indentsty \raggedright\else \centering\fi
\rm #1.\hspace{0.5em}{\itshape #2}\par}%
\else
\ifSFB@indentsty
\hbox to\hsize{\box\@tempboxa\hfill}\par
\else
\hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
\fi
\fi
\vspace*{2.5\p@}\par
}
%
\long\def\make@figure@caption#1#2{\vskip 10\p@
\setbox\@tempboxa\hbox{{\small\rm #1.\hspace{0.5em}#2}}
\ifdim \wd\@tempboxa >\hsize
{\small\rm #1.\hspace{0.5em}#2\par}
\else
\ifSFB@indentsty
\hbox to\hsize{\box\@tempboxa\hfill}\par
\else
\hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
\fi
\fi
}
%
% Float control
%
\newdimen\SFB@floatwidth
\def\SFB@float{\SFB@floatwidth \textwidth
\addtolength{\SFB@floatwidth}{-\SFB@floatindent}
\hspace*{\SFB@floatindent}\minipage{\SFB@floatwidth}%
\ifSFB@indentsty\raggedright\else\centering\fi\small}
\def\endSFB@float{\endminipage}
\def\SFB@widefloat{\minipage{\textwidth}\raggedright\small}
\let\endSFB@widefloat=\endSFB@float
%
% FIGURE
%
\newcounter{figure}[chapter]
\def\thefigure{\thechapter.\@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{Fig.\ \thefigure}
\def\figure{\let\@makecaption=\make@figure@caption
\SFB@floatindent=\SFB@indent
\@ifnextchar[{\SFB@figone}{\SFB@figzero}}
\def\SFB@figone[#1]{\@xfloat{figure}[#1]\SFB@float}
\edef\SFB@figzero{\noexpand\@xfloat{figure}[\fps@figure]\noexpand\SFB@float}
\def\endfigure{\endSFB@float\end@float}
\@namedef{figure*}{\let\@makecaption=\make@figure@caption
\@ifnextchar[{\SFB@widefigone}{\SFB@widefigzero}}
\def\SFB@widefigone[#1]{\@xfloat{figure}[#1]\SFB@widefloat}
%\edef\SFB@widefigzero{\noexpand\@xfloat{figure}[p]\noexpand\SFB@widefloat}
\edef\SFB@widefigzero{\noexpand\@xfloat{figure}[\fps@figure]\noexpand
\SFB@widefloat}
\@namedef{endfigure*}{\endSFB@widefloat\end@float}
%
% TABLE
%
\newcounter{table}[chapter]
\def\thetable{\thechapter.\@arabic\c@table}
\def\fps@table{tp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{Table \thetable}
\newenvironment{table}{%
\let\@makecaption=\make@table@caption
\ifSFB@indentsty
\ifdim\SFB@indent>\z@
\ifSFB@largesty
\SFB@floatindent=\SFB@indent
\else
\SFB@floatindent=\z@ %\typeout{CUP8a tables}%
\fi
\fi
\fi
\@ifnextchar[{\SFB@tabone}{\SFB@tabzero}%
}%
{\endSFB@float\end@float}
\def\SFB@tabone[#1]{\@xfloat{table}[#1]\SFB@float}
\edef\SFB@tabzero{%
\noexpand\@xfloat{table}[\fps@table]\noexpand\SFB@float}
\newenvironment{table*}{%
\let\@makecaption=\make@table@caption
\let\SFB@currenthline=\SFB@fullhline
\@ifnextchar[{\SFB@widetabone}{\SFB@widetabzero}%
}%
{\endSFB@widefloat\end@float}
\def\SFB@widetabone[#1]{\@xfloat{table}[#1]\SFB@widefloat}
%\edef\SFB@widetabzero{\noexpand\@xfloat{table}[p]\noexpand\SFB@widefloat}
\edef\SFB@widetabzero{\noexpand\@xfloat{table}[\fps@table]\noexpand\SFB@widefloat}
% ****************************************
% * TITLE *
% ****************************************
%
% TITLEPAGE
%
\newif\ifSFB@titlepage
\def\titlepage{\@restonecolfalse
\if@twocolumn\@restonecoltrue\onecolumn
\else \newpage
\fi
\SFB@titlepagetrue
\thispagestyle{empty}%
}
\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi
\SFB@titlepagefalse}
%
\def\maketitle{\openin1 \jobname.ttl
\ifeof1
\typeout{No file \jobname.ttl.}
\begin{titlepage}
\ifSFB@indentsty \begin{indented}
\else \begin{center}
\fi
\ifSFB@largesty \vspace*{4\p@} \else \vspace*{2\p@} \fi
\huge \@title \par
\if\@subtitle\empty\else \vskip 9\p@ \Large\@subtitle \par \fi
\vspace{28\p@}
{\large
\ifSFB@multisty {\itshape Edited by} \\ \fi
\ifSFB@indentsty \begin{author@tabular}[t]{@{}l@{}}
\else \begin{author@tabular}[t]{c}
\fi \@author
\end{author@tabular}\par}
\vfill
% \large CAMBRIDGE UNIVERSITY PRESS \\[2\p@]
% {\itshape Cambridge \\
% New York \hspace*{1em}
% Port Chester\hspace*{1em}
% Melbourne\hspace*{1em}
% Sydney}
\ifSFB@indentsty \end{indented}
\else \end{center}
\fi
\end{titlepage}
\cleardoublepage
\else
\closein1 \relax\@@input \jobname.ttl
\fi
\setcounter{footnote}{0} % Reset definitions
\let\thanks\relax
\gdef\@thanks{}
\gdef\@author{}
\gdef\@shortauthor{}
\gdef\@title{}
\let\maketitle\relax
}
\gdef\@title{\mbox{}}
\def\title{\@ifnextchar[ {\@titletwo}{\@titleone}}
\def\@titletwo[#1]#2{\gdef\@title{#2}\gdef\@subtitle{#1}}
\def\@titleone#1{\gdef\@title{#1}\gdef\@subtitle{}}
\def\subtitle#1{\gdef\@subtitle{#1}}
\gdef\@subtitle{}
\def\halftitle#1{\gdef\@halftitle{#1}}
\gdef\@halftitle{\@title}
%
\gdef\@author{\mbox{}}
\gdef\@shortauthor{}
\def\author{\@ifnextchar [{\@authortwo}{\@authorone}}
\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}}
\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{}}
\def\author@tabular{\def\@halignto{}\@authortable}
\let\endauthor@tabular=\endtabular
\def\@authortable{\leavevmode \hbox \bgroup $\let\@acol=\@tabacol
\let\@classz=\@tabclassz \let\@classiv=\@tabclassiv
\ifSFB@titlepage \let\\=\SFBauthor@tabcrone
\else \let\\=\author@tabcrone
\fi
\ignorespaces \@tabarray}
\def\author@tabcrone{{\ifnum0=`}\fi\@xtabularcr\enotesize\itshape
\ifSFB@titlepage \let\\=\SFBauthor@tabcrtwo
\else \let\\=\author@tabcrtwo
\fi
\ignorespaces}
\def\author@tabcrtwo{{\ifnum0=`}\fi\@xtabularcr[-3\p@]\enotesize\itshape
\ifSFB@titlepage \let\\=\SFBauthor@tabcrtwo
\else \let\\=\author@tabcrtwo
\fi
\ignorespaces}
\def\SFBauthor@tabcrone{{\ifnum0=`}\fi\@xtabularcr[-2\p@]\footnotesize\itshape
\let\\=\SFBauthor@tabcrtwo\ignorespaces}
\def\SFBauthor@tabcrtwo{{\ifnum0=`}\fi\@xtabularcr[-5\p@]\footnotesize\itshape
\let\\=\SFBauthor@tabcrtwo\ignorespaces}
\def\and{\end{author@tabular}\vskip 6\p@\par
\ifSFB@indentsty \begin{author@tabular}[t]{@{}l@{}}
\else \begin{author@tabular}[t]{c}
\fi}
% ****************************************
% * PAGE STYLES *
% ****************************************
%
% Initializes TeX's marks
%
\mark{{}{}}
%
% centred \ps@plain and \ps@empty defined in LATEX.TEX
%
\ifSFB@indentsty
\def\ps@plain{\let\@mkboth=\@gobbletwo
\def\@oddfoot {\listsize\rm\hfill\thepage}
\def\@evenfoot{\listsize\rm\thepage\hfill}
\def\@oddhead {}
\def\@evenhead{}}
\fi
%
% Definition of 'headings' page style
%
\def\ps@headings{\let\@mkboth=\markboth
\def\@oddfoot {}
\def\@evenfoot{}
\ifSFB@indentsty
\ifdim\SFB@indent=\z@
\def\@oddhead {\listsize\itshape \rightmark \hfill \rm \thepage}
\def\@evenhead{\listsize\rm \thepage \hfill \itshape \leftmark}
\else
\def\@oddhead {\listsize
\hspace*{\SFB@indent}\itshape \rightmark \hfil \rm\thepage}
\def\@evenhead{\listsize
\makebox[\z@][l]{\rm \thepage}\hspace*{\SFB@indent}\itshape
\leftmark \hfill}
\fi
\else
\def\@oddhead {\listsize
\hfil \itshape \rightmark \hfil \makebox[\z@][r]{\rm \thepage}}
\def\@evenhead{\listsize
\makebox[\z@][l]{\rm \thepage}\hfil \itshape \leftmark \hfil}
\fi
\ifSFB@multisty
\def\chaptermark##1{}
\def\sectionmark##1{}
\else
\def\chaptermark##1{\markboth{##1}{##1}}
\def\sectionmark##1{\markright{\ifnum \c@secnumdepth >\z@
\thesection\hspace{0.5em}\fi ##1}}%
\fi
}
%
% Definition of 'myheadings' page style.
%
\def\ps@myheadings{\let\@mkboth=\@gobbletwo
\def\@oddfoot {}
\def\@evenfoot{}
\def\@oddhead {\listsize\hfil \itshape\rightmark \hfil \rm\thepage}
\def\@evenhead{\listsize\rm \thepage\hfil\itshape\leftmark\hfil}
\def\chaptermark##1{}
\def\sectionmark##1{}
\def\subsectionmark##1{}}
% ****************************************
% * MISCELLANEOUS *
% ****************************************
%
% DATE
%
\def\today{\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\day, \number\year}
%
% EQUATION and EQNARRAY -- put here because it must follow \chapter definition
%
\@addtoreset{equation}{chapter}
\def\theequation{\thechapter.\arabic{equation}}
% \jot = 3\p@ % Extra space added between lines of an eqnarray environment
%
% Flush left / indented equations
%
% FLEQN DOCUMENT-STYLE OPTION - released 9 March 1987
% for LaTeX version 2.09
% Copyright (C) 1987 by Leslie Lamport
%
\ifSFB@indentsty
\def\[{\relax\ifmmode\@badmath\else\begin{trivlist}\item[]\leavevmode
\hbox to\linewidth\bgroup$ \displaystyle \hskip\SFB@indent\bgroup\fi}
\def\]{\relax\ifmmode \egroup $\hfil \egroup \end{trivlist}%
\else \@badmath \fi}
\def\equation{\refstepcounter{equation}\trivlist \item[]\leavevmode
\hbox to\linewidth\bgroup $ \displaystyle \hskip\SFB@indent}
\def\endequation{$\hfil \displaywidth\linewidth\@eqnnum\egroup \endtrivlist}
\def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation
\global\@eqnswtrue
\global\@eqcnt\z@\tabskip\SFB@indent\let\\=\@eqncr
\abovedisplayskip\topsep\ifvmode\advance\abovedisplayskip\partopsep\fi
\belowdisplayskip\abovedisplayskip
\belowdisplayshortskip\abovedisplayskip
\abovedisplayshortskip\abovedisplayskip
$$\halign
to \linewidth\bgroup\@eqnsel\hskip\@centering$\displaystyle\tabskip\z@
{##}$&\global\@eqcnt\@ne \hskip 2\arraycolsep \hfil${##}$\hfil
&\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle{##}$\hfil
\tabskip\@centering&\llap{##}\tabskip\z@\cr}
\def\endeqnarray{\@@eqncr\egroup
\global\advance\c@equation\m@ne$$\global\@ignoretrue}%
\fi
% ****************************************
% * CUP SPECIALS *
% ****************************************
%
% redefinition of \cleardoublepage to get blank empty pages
%
\def\clearemptypage{\clearpage
\if@twoside
\ifodd\c@page
\else
\thispagestyle{empty}
\mbox{}\newpage
\if@twocolumn
\hbox{}\newpage
\fi
\fi
\fi
}
\let\cleardoublepage=\clearemptypage
%
% redefinition of sections to get en space after chapter number
%
\def\@sect#1#2#3#4#5#6[#7]#8{%
\ifnum #2>\c@secnumdepth % LEVEL -- is heading to be numbered?
\def\@svsec{}%
\else
\refstepcounter{#1}
\edef\@svsec{\csname the#1\endcsname\hskip 0.5em}
\fi
\@tempskipa #5\relax % AFTERSKIP (-ve indicates a run-in heading)
\ifdim \@tempskipa>\z@
\begingroup #6\relax
\@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}
\endgroup
\csname #1mark\endcsname{#7}%
\addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else
\protect\numberline{\csname the#1\endcsname}\fi #7}
\else
\def\@svsechd{#6\hskip #3\@svsec #8%
\csname #1mark\endcsname{#7}%
\addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else
\protect\numberline{\csname the#1\endcsname}\fi#7}}%
\fi
\@xsect{#5}}
%
% redefinition of \hline to get extra space
%
%\def\hline{\noalign{\ifnum0=`}\fi \vskip 6\p@
% \hrule \@height \arrayrulewidth \vskip 6\p@
% \futurelet \@tempa\@xhline}
%\def\@xhline{\ifx\@tempa\hline \vskip -12\p@
% \vskip \doublerulesep \fi \ifnum0=`{\fi}}
\def\SFB@fullhline{\noalign{\ifnum0=`}\fi \vskip 3\p@
\hrule \@height\arrayrulewidth width\textwidth
\vskip 3\p@
\futurelet \@tempa\@xhline}
\def\SFB@hline{\noalign{\ifnum0=`}\fi
\vskip 3\p@
\hrule \@height \arrayrulewidth
\vskip 3\p@
\futurelet \@tempa\@xhline}
\let\SFB@currenthline=\SFB@hline
%
% redefinition of tabular to get rid of vertical lines in tables
%
\def\tabular{\def\@halignto{}%
\let\hline=\SFB@currenthline
\def\@xhline{\ifx\@tempa\hline
\vskip -6\p@
\vskip \doublerulesep
\fi
\ifnum0=`{\fi}}%
\def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
% \vrule \@width \arrayrulewidth
\hskip .5\arrayrulewidth}}%
\@tabular}
% ****************************************
% * MULTI-AUTHOR OPTION *
% ****************************************
%
\ifSFB@multisty % variations for multi-author editions
%
% ABSTRACT and LIST OF CONTRIBUTORS
%
\newenvironment{abstract}{\section*{Abstract}\trivlist\item[]%
}{\endtrivlist\addvspace{13\p@}}
%
\def\listofcontributors{%
\@makeschapterhead{Contributors}
\@mkboth{Contributors}{Contributors}
\typeout{List of contributors.}
\ifSFB@indentsty
\ifdim\SFB@indent>\z@
\addcontentsline{toc}{schapter}{\protect
\numberline{\mbox{}}List of contributors}
\else
\addcontentsline{toc}{schapter}{List of contributors}
\fi
\else
\addcontentsline{toc}{schapter}{List of contributors}
\fi
\thispagestyle{plain}
\list{}{\labelwidth\z@
\labelsep \z@
\topsep 1\p@
\leftmargin \z@
\itemsep 3\p@ \@plus .1\p@
\itemindent \z@
\let\makelabel=\contributor
}\normalsmall\itshape\sloppy
\def\item{\@ifnextchar [{\SFB@item
}{\@noitemargtrue \@item[\hspace*{-\labelsep}]}}
}
\def\SFB@item[#1]{\@noitemargtrue
\@item[\hspace*{-\labelsep}]{\rm #1}\newline\nopagebreak}
\def\contributor#1{\hspace\labelsep \rm #1 \newline\mbox{}\par}
\let\endlistofcontributors=\endlist
\fi % end of multi-author options
% ****************************************
% * INITIALIZATION *
% ****************************************
%
% Default initializations
%
\ifSFB@landscape \pagestyle{empty}\else \pagestyle{headings}\fi
\pagenumbering{arabic}
\onecolumn
\flushbottom
\nonfrenchspacing
%
%\ifx\CUP@mtlplain@loaded\undefined
% \ifSFB@largesty
% \newfont{\itshape\bfseries}{cmbxti10 scaled\magstephalf}%
% \else
% \newfont{\itshape\bfseries}{cmbxti10}%
% \fi
%\else
% \ifSFB@largesty
% \newfont{\itshape\bfseries}{mtbxti10 scaled\magstephalf}%
% \else
% \newfont{\itshape\bfseries}{mtbxti10}%
% \fi
%\fi
%
%\let\bfit=\itbf
%
% end of CUPBOOK.CLS