| 1 | % $Id$
|
|---|
| 2 | % phstyle.cls -- Macros for formatting Prentice-Hall Books
|
|---|
| 3 | % -- Compiled by J.K. Shultis, Dec. 1993
|
|---|
| 4 | % -- Modified and enhanced for LaTeX2e mdh/rlm 1997/02
|
|---|
| 5 | % -- Style Modifications Lori Hughes June 2002
|
|---|
| 6 | % -- Modifications for Samba by Jelmer Vernooij 2003-2005
|
|---|
| 7 |
|
|---|
| 8 | \NeedsTeXFormat{LaTeX2e}%
|
|---|
| 9 | \ProvidesClass{sambadoc}[2005/06/13 Samba Documentation class]
|
|---|
| 10 | \newif\if@ph
|
|---|
| 11 | \@phfalse
|
|---|
| 12 | \DeclareOption{ph}{ \@phtrue }
|
|---|
| 13 | \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
|
|---|
| 14 | \ProcessOptions%
|
|---|
| 15 |
|
|---|
| 16 | % Base everything on the default class 'report'.
|
|---|
| 17 | \LoadClass{report}%
|
|---|
| 18 | %================================================================================
|
|---|
| 19 | % 1. Page layout dimensions
|
|---|
| 20 | % 3. Define new fonts for headings
|
|---|
| 21 | % 4. Redefines the way "figure" amd "table" are formated in a \caption
|
|---|
| 22 | % 5. Defines a \capt macro which defines (1) \captwidth, (2) \captsize
|
|---|
| 23 | % and \beforetableskip.
|
|---|
| 24 | % 6. Defines and modifies FANCYHDS.STY for headers and foots
|
|---|
| 25 | % 7. Change sectioning headings to bold sans serif fonts
|
|---|
| 26 | % 8. Turn off leader dots in Table of Contents
|
|---|
| 27 | %======================================================================
|
|---|
| 28 |
|
|---|
| 29 | %====================== Page Layout
|
|---|
| 30 | % \oddsidemargin 0.750in \evensidemargin 0.750in \textwidth 5.00in
|
|---|
| 31 | % \topmargin 0.625in \headheight 0.3in \headsep 0.2in
|
|---|
| 32 | % \textheight 7.3in %\footheight .2in
|
|---|
| 33 | % \footskip 0.3in
|
|---|
| 34 | % \parskip 0ex \marginparwidth 1.00in \marginparsep 0.5in
|
|---|
| 35 | %\setlength\arraycolsep{1pt}
|
|---|
| 36 |
|
|---|
| 37 | \if@ph
|
|---|
| 38 | \RequirePackage{geometry}
|
|---|
| 39 | \geometry{
|
|---|
| 40 | twoside,
|
|---|
| 41 | openleft,
|
|---|
| 42 | papersize={7in,9.25in},
|
|---|
| 43 | lmargin=.75in,
|
|---|
| 44 | rmargin=.75in,
|
|---|
| 45 | bmargin=.625in,
|
|---|
| 46 | tmargin=.825in,
|
|---|
| 47 | width=5.5in,
|
|---|
| 48 | height=7.325in,
|
|---|
| 49 | marginparwidth=0.35in,
|
|---|
| 50 | headheight=0.2in,
|
|---|
| 51 | textwidth=5in,
|
|---|
| 52 | headsep=.25in,
|
|---|
| 53 | footskip=.025in}
|
|---|
| 54 | %\usepackage[letter,cam,cross,center]{crop}
|
|---|
| 55 | \fi
|
|---|
| 56 |
|
|---|
| 57 | %====================== Define special fonts
|
|---|
| 58 | \newfont{\BIG}{cminch} %--- One-inch font
|
|---|
| 59 | \newfont{\sfbHuge}{cmssbx10 scaled\magstep5} %-- 25pt sans serif bold
|
|---|
| 60 | \newfont{\sfblarge}{cmssbx10 scaled\magstep1} %-- 12pt sans serif bold
|
|---|
| 61 | \newfont{\sfbeleven}{cmssbx10 scaled\magstephalf} %-- 11pt sans serif bold
|
|---|
| 62 | \newfont{\sfb}{cmssbx10} %-- 10pt sans serif bold
|
|---|
| 63 | \newfont{\sfeight}{cmss8} %-- 8pt sans serif
|
|---|
| 64 | \newfont{\sfnine}{cmss8 at 9pt} %-- 9pt sans serif
|
|---|
| 65 |
|
|---|
| 66 | \newfont{\defnem}{cmbxti10} %-- 10pt sans serif bold
|
|---|
| 67 | \def\spacingset#1{\def\baselinestretch{#1}\small\normalsize}
|
|---|
| 68 |
|
|---|
| 69 | %-----------Change section heading font sizes here----
|
|---|
| 70 | \newfont{\sfbsection}{cmssbx10 at 13pt}
|
|---|
| 71 | \newfont{\sfbsubsec}{cmssbx10 at 12pt}
|
|---|
| 72 | \newfont{\sfbsubsub}{cmssbx10 at 11pt}
|
|---|
| 73 | \newfont{\sfbpara}{cmssbx10}
|
|---|
| 74 | %---------------------------------------------------
|
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 | %
|
|---|
| 78 | % Theorem hack
|
|---|
| 79 | %
|
|---|
| 80 |
|
|---|
| 81 | \def\@begintheorem#1#2{\trivlist
|
|---|
| 82 | \item[\hskip \labelsep{\bfseries #1\ #2:}]\itshape}
|
|---|
| 83 |
|
|---|
| 84 | %===================== Redefine the \@makecaption command
|
|---|
| 85 | \long\def\@makecaption#1#2{\vskip 10\p@
|
|---|
| 86 | %% \setbox\@tempboxa\hbox{#1: #2}% %% original label definition
|
|---|
| 87 | \setbox\@tempboxa\hbox{\textbf{ \small #1.} \small #2}% %% bold and . instead of :
|
|---|
| 88 | \ifdim \wd\@tempboxa >\hsize
|
|---|
| 89 | %% #1: #2\par %% original definition
|
|---|
| 90 | \textbf{ \small #1.} \small #2\par %% bold and . instead of :
|
|---|
| 91 | \else
|
|---|
| 92 | \hbox to\hsize{\hfil\box\@tempboxa\hfil}% %% original
|
|---|
| 93 | %% \hbox to\hsize{\box\@tempboxa\hfil}% %% no centering
|
|---|
| 94 | \fi}
|
|---|
| 95 |
|
|---|
| 96 | %===================== New caption macro
|
|---|
| 97 | \newlength{\captsize} \let\captsize=\footnotesize
|
|---|
| 98 | \newlength{\captwidth} \setlength{\captwidth}{\textwidth}
|
|---|
| 99 | \newlength{\beforetableskip} \setlength{\beforetableskip}{.5\baselineskip}
|
|---|
| 100 | \newcommand{\capt}[1]{\begin{minipage}{\captwidth}
|
|---|
| 101 | \let\normalsize=\captsize
|
|---|
| 102 | \caption[#1]{#1}
|
|---|
| 103 | \end{minipage}\\ \vspace{\beforetableskip}}
|
|---|
| 104 |
|
|---|
| 105 |
|
|---|
| 106 | %---------- Change Figure Label
|
|---|
| 107 | \newcommand{\thefigurename}{Figure} %-- set default: Figure
|
|---|
| 108 | \def\fnum@figure{\thefigurename\ \thefigure}
|
|---|
| 109 |
|
|---|
| 110 | % This is to get the equation numbers in the form (section.equation),
|
|---|
| 111 | % and to have the equation counter reset every time the section
|
|---|
| 112 | % counter is incremented.
|
|---|
| 113 |
|
|---|
| 114 | \def\theequation{\thechapter.\arabic{equation}}
|
|---|
| 115 | \@addtoreset{equation}{chapter}
|
|---|
| 116 |
|
|---|
| 117 | \RequirePackage{fancyhdr}
|
|---|
| 118 |
|
|---|
| 119 | %------------------- Modify Headers for Prentice-Hall Book Style
|
|---|
| 120 | %---------- Setup headers and footers
|
|---|
| 121 | \pagestyle{fancyplain}
|
|---|
| 122 |
|
|---|
| 123 | %--- Redefine Headers
|
|---|
| 124 | \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
|
|---|
| 125 | %
|
|---|
| 126 | \lhead[\fancyplain{}{\bf\thepage}]{\fancyplain{}{\sfnine\rightmark}}
|
|---|
| 127 | %
|
|---|
| 128 | %\rhead[\fancyplain{}{\footnotesize\sf\CHHEAD}]{\fancyplain{}{\bf\thepage}}
|
|---|
| 129 | \rhead[\fancyplain{}{\sfnine \leftmark}]{\fancyplain{}{\bf\thepage}}
|
|---|
| 130 | %--- Empty footers on every page (except initial chapter page which has
|
|---|
| 131 | %--- page number) and optionally a small date stamp
|
|---|
| 132 | \cfoot[\fancyplain{}{}]{\fancyplain{}{}}
|
|---|
| 133 | \rfoot[\fancyplain{}{}]{\fancyplain{\hspace{\fill}\\ \bf\thepage}{}}
|
|---|
| 134 | \lfoot[\fancyplain{\hspace{\fill}\\ \bf\thepage}{}]{\fancyplain{}{}}
|
|---|
| 135 | %-- replace the two lines above with the two below for a date stamp footer
|
|---|
| 136 | %\rfoot[\fancyplain{\scriptsize \today}{\scriptsize \today}]{\fancyplain{\bf\thepage}{}}
|
|---|
| 137 | %\lfoot[\fancyplain{\bf\thepage}{}]{\fancyplain{\scriptsize \today}{\scriptsize \today}}
|
|---|
| 138 | %--- Change format of section header
|
|---|
| 139 | %
|
|---|
| 140 | % rlm added chaptermark 10/11/96
|
|---|
| 141 | \def\sectionmark#1{\markright{\ifnum \c@secnumdepth >\z@
|
|---|
| 142 | {\sfeight Section}~\thesection.\quad \fi #1}}
|
|---|
| 143 | \def\sectionsmark#1{\markright{#1}{#1}}
|
|---|
| 144 | %
|
|---|
| 145 | \def\chaptermark#1{\markboth{#1 \quad \@chapapp{}~\thechapter}{}}
|
|---|
| 146 | \def\chaptersmark#1{\markboth{#1}{#1}}
|
|---|
| 147 |
|
|---|
| 148 |
|
|---|
| 149 | %===================== Change Section Heads to Bold Sans Serif
|
|---|
| 150 | % Create bolds sans serif sectioning headings. Also the headings have
|
|---|
| 151 | % been reduced in size with less space before and after the heading.
|
|---|
| 152 | % Modified from macros given in BK10.STY
|
|---|
| 153 | %
|
|---|
| 154 | %----------------------------- part ---------------------------------
|
|---|
| 155 | \def\@part[#1]#2{%
|
|---|
| 156 | \thispagestyle{empty}
|
|---|
| 157 | \ifodd\c@page\hbox{}\else\clearpage\fi
|
|---|
| 158 | \addtocounter{page}{-2}
|
|---|
| 159 | \thispagestyle{empty}
|
|---|
| 160 | \ifnum \c@secnumdepth >-2\relax
|
|---|
| 161 | \refstepcounter{part}%
|
|---|
| 162 | \addcontentsline{toc}{part}{Part \thepart\hspace{1em}#1}%
|
|---|
| 163 | \else
|
|---|
| 164 | \addcontentsline{toc}{part}{Part #1}%
|
|---|
| 165 | \fi
|
|---|
| 166 | {\centering
|
|---|
| 167 | \interlinepenalty \@M
|
|---|
| 168 | \normalfont
|
|---|
| 169 | \ifnum \c@secnumdepth >-2\relax
|
|---|
| 170 | \huge\bfseries \partname\nobreakspace\thepart
|
|---|
| 171 | \par
|
|---|
| 172 | \vskip 20\p@
|
|---|
| 173 | \fi
|
|---|
| 174 | \Huge \bfseries #2\par}%
|
|---|
| 175 | \@endpart}
|
|---|
| 176 |
|
|---|
| 177 | %------------------------- appendix -----------------------------------
|
|---|
| 178 |
|
|---|
| 179 | \let\oldappendix\appendix
|
|---|
| 180 | \def\appendix{\oldappendix\def\addchaptertoloe{}}
|
|---|
| 181 |
|
|---|
| 182 | %------------------------- chapter -----------------------------------
|
|---|
| 183 | \def\addchaptertoloe{%
|
|---|
| 184 | \addtocontents{loe}{\protect\addvspace{14pt}}%
|
|---|
| 185 | \addtocontents{loe}{\noindent {\bfseries Chapter~\thechapter}\protect\par}%
|
|---|
| 186 | \addtocontents{loe}{\protect\addvspace{10pt}}%
|
|---|
| 187 | }
|
|---|
| 188 |
|
|---|
| 189 | \def\chapter{\clearpage \thispagestyle{plain} \global\@topnum\z@
|
|---|
| 190 | \@afterindentfalse \secdef\@chapter\@schapter}
|
|---|
| 191 | \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
|
|---|
| 192 | \refstepcounter{chapter}
|
|---|
| 193 | \typeout{\@chapapp\space\thechapter.}
|
|---|
| 194 | \addcontentsline{toc}{chapter}{Chapter~\protect
|
|---|
| 195 | \numberline{\thechapter}\uppercase{#1}}\else
|
|---|
| 196 | \addcontentsline{toc}{chapter}{Chapter~\uppercase{#1}}\fi
|
|---|
| 197 | \chaptermark{#1}
|
|---|
| 198 | \addchaptertoloe
|
|---|
| 199 | \addtocontents{lof}{\protect\addvspace{10pt}}
|
|---|
| 200 | \addtocontents{lot}{\protect\addvspace{10pt}} \if@twocolumn
|
|---|
| 201 | \@topnewpage[\@makechapterhead{#2}]
|
|---|
| 202 | \else \@makechapterhead{#2}
|
|---|
| 203 | \@afterheading \fi}
|
|---|
| 204 | %
|
|---|
| 205 | \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]
|
|---|
| 206 | \else \@makeschapterhead{#1}\chaptersmark{#1}
|
|---|
| 207 | \@afterheading\fi\addcontentsline{toc}{chapter}{\uppercase{#1}}}
|
|---|
| 208 |
|
|---|
| 209 |
|
|---|
| 210 |
|
|---|
| 211 | \def\@makechapterhead#1{\vspace*{-20pt}{\parindent0pt\raggedright
|
|---|
| 212 | \ifnum\c@secnumdepth>\m@ne\LARGE\sf\@chapapp{}~\thechapter\par
|
|---|
| 213 | \vskip3pt\hrule\vskip3pt\hrule
|
|---|
| 214 | \vskip30pt\fi\raggedright\Huge\sfbHuge\uppercase{#1}\par
|
|---|
| 215 | \nobreak\vskip70pt}}%\chaptermark{#1}}
|
|---|
| 216 |
|
|---|
| 217 | \def\@makeschapterhead#1{\vspace*{4pt}{\parindent0pt
|
|---|
| 218 | \vskip3pt\hrule\vskip3pt\hrule
|
|---|
| 219 | \vskip36pt\raggedright\Huge\sfbHuge\uppercase{#1}\par
|
|---|
| 220 | \nobreak\vskip70pt}}%\chaptersmark{#1}}
|
|---|
| 221 | \widowpenalty=1000
|
|---|
| 222 | \clubpenalty=1000
|
|---|
| 223 |
|
|---|
| 224 | %------------------------ section -----------------------------------
|
|---|
| 225 | \def\section{\@startsection{section}{1}{\z@}{-3.5ex plus-1ex
|
|---|
| 226 | minus -.2ex}{1.8ex}{\sfbsection}}
|
|---|
| 227 |
|
|---|
| 228 | %--------------------- subsection -----------------------------------
|
|---|
| 229 | \def\subsection{\@startsection{subsection}{2}{\z@}{-2.75ex plus -1ex
|
|---|
| 230 | minus -.2ex}{1.2ex}{\sfbsubsec}}
|
|---|
| 231 |
|
|---|
| 232 | %-------------------- subsubsection --------------------------------
|
|---|
| 233 | \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-2.75ex
|
|---|
| 234 | plus -1ex minus -.2ex}{1.2ex}{\sfbsubsub}}
|
|---|
| 235 |
|
|---|
| 236 | %----------------------- paragraph ----------------------------------
|
|---|
| 237 | \def\paragraph{\@startsection{paragraph}{4}{\z@}{1.25ex plus
|
|---|
| 238 | 1ex minus .2ex}{-1em}{\sfbpara}}
|
|---|
| 239 |
|
|---|
| 240 | %---------------------- subparagraph --------------------------------
|
|---|
| 241 | \def\subparagraph{\@startsection{subparagraph}{4}{\parindent}{1.25ex
|
|---|
| 242 | plus 1ex minus .2ex}{-1em}{\normalsize\sfb}}
|
|---|
| 243 |
|
|---|
| 244 |
|
|---|
| 245 |
|
|---|
| 246 | %====================== Turn off leader dots in Table of Contents
|
|---|
| 247 | \renewcommand{\@dotsep}{500}
|
|---|
| 248 |
|
|---|
| 249 | \def\tableofcontents{\markboth{}{}\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
|
|---|
| 250 | \fi\thispagestyle{plain} \@makeschapterhead{Contents}
|
|---|
| 251 | \@afterheading
|
|---|
| 252 | \chaptersmark{Contents}
|
|---|
| 253 | \sectionsmark{Contents}
|
|---|
| 254 | \@starttoc{toc}\if@restonecol\twocolumn\fi}
|
|---|
| 255 |
|
|---|
| 256 |
|
|---|
| 257 | \def\thebibliography#1{\chapter*{Bibliography}\list
|
|---|
| 258 | % \addcontentsline{toc}{chapter}{Bibliography}
|
|---|
| 259 | {[\arabic{enumi}]}{\settowidth\labelwidth{2em}\leftmargin\labelwidth
|
|---|
| 260 | % \advance\leftmargin\labelsep
|
|---|
| 261 | \usecounter{enumi}}
|
|---|
| 262 | \def\newblock{\hskip .11em plus .33em minus .07em}
|
|---|
| 263 | \sloppy\clubpenalty4000\widowpenalty4000
|
|---|
| 264 | \sfcode`\.=1000\relax}
|
|---|
| 265 | \let\endthebibliography=\endlist
|
|---|
| 266 |
|
|---|
| 267 |
|
|---|
| 268 | %% BIBLIOGRAPHY
|
|---|
| 269 | %
|
|---|
| 270 | %% separate citations with "], ["
|
|---|
| 271 | \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
|
|---|
| 272 | \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{],
|
|---|
| 273 | [}\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on
|
|---|
| 274 | page \thepage \space undefined}}%
|
|---|
| 275 | {\csname b@\@citeb\endcsname}}}{#1}}
|
|---|
| 276 |
|
|---|
| 277 | \def\@cite#1#2{[{#1\if@tempswa, #2\fi}]}
|
|---|
| 278 |
|
|---|
| 279 |
|
|---|
| 280 | %% index
|
|---|
| 281 |
|
|---|
| 282 | \def\theindex{\cleardoublepage\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
|
|---|
| 283 | \columnseprule \z@
|
|---|
| 284 | \columnsep 35pt\twocolumn[\@makeschapterhead{Subject Index}]
|
|---|
| 285 | \chaptersmark{Subject Index}%
|
|---|
| 286 | \addcontentsline{toc}{chapter}{SUBJECT INDEX}
|
|---|
| 287 | \thispagestyle{plain}\parindent\z@
|
|---|
| 288 | \parskip\z@ plus .3pt\relax\let\item\@idxitem}
|
|---|
| 289 |
|
|---|
| 290 |
|
|---|
| 291 | \renewcommand{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
|
|---|
| 292 | \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
|
|---|
| 293 |
|
|---|
| 294 | \renewcommand{\numberline}[1]{\sbox\@tempboxa{#1\hspace{2pt}}%
|
|---|
| 295 | \ifdim\wd\@tempboxa>\@tempdima \else \wd\@tempboxa\@tempdima\fi
|
|---|
| 296 | \box\@tempboxa}
|
|---|
| 297 |
|
|---|
| 298 | % Custom list of examples
|
|---|
| 299 | \def\listofexamples{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
|
|---|
| 300 | \fi\chapter*{List of Examples}
|
|---|
| 301 | \renewcommand\@pnumwidth{0em}
|
|---|
| 302 | \@starttoc{loe}\if@restonecol
|
|---|
| 303 | \twocolumn\fi}
|
|---|
| 304 |
|
|---|
| 305 | \def\l@example{\noindent\@dottedtocline{1}{0em}{3.5em}}
|
|---|
| 306 |
|
|---|
| 307 | \renewcommand\listfigurename{\uppercase{List Of Figures}}
|
|---|
| 308 | \renewcommand\listtablename{\uppercase{List Of Tables}}
|
|---|
| 309 |
|
|---|
| 310 | \setlength{\emergencystretch}{0cm}
|
|---|
| 311 |
|
|---|
| 312 |
|
|---|
| 313 | \cleardoublepage
|
|---|
| 314 | \pagenumbering{roman}
|
|---|
| 315 |
|
|---|
| 316 | \setcounter{page}{2}
|
|---|
| 317 | \setcounter{totalnumber}{8}
|
|---|
| 318 | \setcounter{bottomnumber}{3}
|
|---|
| 319 | \setcounter{topnumber}{3}
|
|---|
| 320 | \renewcommand{\textfraction}{0.1}
|
|---|
| 321 | \renewcommand{\topfraction}{1.0}
|
|---|
| 322 | \renewcommand{\bottomfraction}{1.0}
|
|---|
| 323 |
|
|---|
| 324 | \RequirePackage{samba}
|
|---|