1 |
%%$Header$ |
2 |
%% |
3 |
%% This is file `book.cls', |
4 |
%% generated with the docstrip utility. |
5 |
%% |
6 |
%% The original source files were: |
7 |
%% |
8 |
%% classes.dtx (with options: `book') |
9 |
%% |
10 |
%% This is a generated file. |
11 |
%% |
12 |
%% Copyright 1993 1994 1995 1996 1997 1998 1999 |
13 |
%% The LaTeX3 Project and any individual authors listed elsewhere |
14 |
%% in this file. |
15 |
%% |
16 |
%% This file is part of the LaTeX2e system. |
17 |
%% ---------------------------------------- |
18 |
%% |
19 |
%% It may be distributed under the terms of the LaTeX Project Public |
20 |
%% License, as described in lppl.txt in the base LaTeX distribution. |
21 |
%% Either version 1.0 or, at your option, any later version. |
22 |
%% \CharacterTable |
23 |
%% {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 |
24 |
%% 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 |
25 |
%% Digits \0\1\2\3\4\5\6\7\8\9 |
26 |
%% Exclamation \! Double quote \" Hash (number) \# |
27 |
%% Dollar \$ Percent \% Ampersand \& |
28 |
%% Acute accent \' Left paren \( Right paren \) |
29 |
%% Asterisk \* Plus \+ Comma \, |
30 |
%% Minus \- Point \. Solidus \/ |
31 |
%% Colon \: Semicolon \; Less than \< |
32 |
%% Equals \= Greater than \> Question mark \? |
33 |
%% Commercial at \@ Left bracket \[ Backslash \\ |
34 |
%% Right bracket \] Circumflex \^ Underscore \_ |
35 |
%% Grave accent \` Left brace \{ Vertical bar \| |
36 |
%% Right brace \} Tilde \~} |
37 |
\NeedsTeXFormat{LaTeX2e}[1995/12/01] |
38 |
\ProvidesClass{custbook} |
39 |
[1999/01/07 v1.4a |
40 |
Standard LaTeX document class] |
41 |
\newcommand\@ptsize{} |
42 |
\newif\if@restonecol |
43 |
\newif\if@titlepage |
44 |
\@titlepagetrue |
45 |
\newif\if@openright |
46 |
\newif\if@mainmatter \@mainmattertrue |
47 |
\if@compatibility\else |
48 |
\DeclareOption{a4paper} |
49 |
{\setlength\paperheight {297mm}% |
50 |
\setlength\paperwidth {210mm}} |
51 |
\DeclareOption{a5paper} |
52 |
{\setlength\paperheight {210mm}% |
53 |
\setlength\paperwidth {148mm}} |
54 |
\DeclareOption{b5paper} |
55 |
{\setlength\paperheight {250mm}% |
56 |
\setlength\paperwidth {176mm}} |
57 |
\DeclareOption{letterpaper} |
58 |
{\setlength\paperheight {11in}% |
59 |
\setlength\paperwidth {8.5in}} |
60 |
\DeclareOption{legalpaper} |
61 |
{\setlength\paperheight {14in}% |
62 |
\setlength\paperwidth {8.5in}} |
63 |
\DeclareOption{executivepaper} |
64 |
{\setlength\paperheight {10.5in}% |
65 |
\setlength\paperwidth {7.25in}} |
66 |
\DeclareOption{landscape} |
67 |
{\setlength\@tempdima {\paperheight}% |
68 |
\setlength\paperheight {\paperwidth}% |
69 |
\setlength\paperwidth {\@tempdima}} |
70 |
\fi |
71 |
\if@compatibility |
72 |
\renewcommand\@ptsize{0} |
73 |
\else |
74 |
\DeclareOption{10pt}{\renewcommand\@ptsize{0}} |
75 |
\fi |
76 |
\DeclareOption{11pt}{\renewcommand\@ptsize{1}} |
77 |
\DeclareOption{12pt}{\renewcommand\@ptsize{2}} |
78 |
\if@compatibility\else |
79 |
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} |
80 |
\fi |
81 |
\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} |
82 |
\DeclareOption{draft}{\setlength\overfullrule{5pt}} |
83 |
\if@compatibility\else |
84 |
\DeclareOption{final}{\setlength\overfullrule{0pt}} |
85 |
\fi |
86 |
\DeclareOption{titlepage}{\@titlepagetrue} |
87 |
\if@compatibility\else |
88 |
\DeclareOption{notitlepage}{\@titlepagefalse} |
89 |
\fi |
90 |
\if@compatibility |
91 |
\@openrighttrue |
92 |
\else |
93 |
\DeclareOption{openright}{\@openrighttrue} |
94 |
\DeclareOption{openany}{\@openrightfalse} |
95 |
\fi |
96 |
\if@compatibility\else |
97 |
\DeclareOption{onecolumn}{\@twocolumnfalse} |
98 |
\fi |
99 |
\DeclareOption{twocolumn}{\@twocolumntrue} |
100 |
\DeclareOption{leqno}{\input{leqno.clo}} |
101 |
\DeclareOption{fleqn}{\input{fleqn.clo}} |
102 |
\DeclareOption{openbib}{% |
103 |
\AtEndOfPackage{% |
104 |
\renewcommand\@openbib@code{% |
105 |
\advance\leftmargin\bibindent |
106 |
\itemindent -\bibindent |
107 |
\listparindent \itemindent |
108 |
\parsep \z@ |
109 |
}% |
110 |
\renewcommand\newblock{\par}}% |
111 |
} |
112 |
\ExecuteOptions{letterpaper,10pt,twoside,onecolumn,final,openright} |
113 |
\ProcessOptions |
114 |
\input{bk1\@ptsize.clo} |
115 |
\setlength\lineskip{1\p@} |
116 |
\setlength\normallineskip{1\p@} |
117 |
\renewcommand\baselinestretch{} |
118 |
\setlength\parskip{0\p@ \@plus \p@} |
119 |
\@lowpenalty 51 |
120 |
\@medpenalty 151 |
121 |
\@highpenalty 301 |
122 |
\setcounter{topnumber}{2} |
123 |
\renewcommand\topfraction{.7} |
124 |
\setcounter{bottomnumber}{1} |
125 |
\renewcommand\bottomfraction{.3} |
126 |
\setcounter{totalnumber}{3} |
127 |
\renewcommand\textfraction{.2} |
128 |
\renewcommand\floatpagefraction{.5} |
129 |
\setcounter{dbltopnumber}{2} |
130 |
\renewcommand\dbltopfraction{.7} |
131 |
\renewcommand\dblfloatpagefraction{.5} |
132 |
\if@twoside |
133 |
\def\ps@headings{% |
134 |
\let\@oddfoot\@empty\let\@evenfoot\@empty |
135 |
\def\@evenhead{\thepage\hfil\slshape\leftmark}% |
136 |
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}% |
137 |
\let\@mkboth\markboth |
138 |
\def\chaptermark##1{% |
139 |
\markboth {\MakeUppercase{% |
140 |
\ifnum \c@secnumdepth >\m@ne |
141 |
\if@mainmatter |
142 |
\@chapapp\ \thechapter. \ % |
143 |
\fi |
144 |
\fi |
145 |
##1}}{}}% |
146 |
\def\sectionmark##1{% |
147 |
\markright {\MakeUppercase{% |
148 |
\ifnum \c@secnumdepth >\z@ |
149 |
\thesection. \ % |
150 |
\fi |
151 |
##1}}}} |
152 |
\else |
153 |
\def\ps@headings{% |
154 |
\let\@oddfoot\@empty |
155 |
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}% |
156 |
\let\@mkboth\markboth |
157 |
\def\chaptermark##1{% |
158 |
\markright {\MakeUppercase{% |
159 |
\ifnum \c@secnumdepth >\m@ne |
160 |
\if@mainmatter |
161 |
\@chapapp\ \thechapter. \ % |
162 |
\fi |
163 |
\fi |
164 |
##1}}}} |
165 |
\fi |
166 |
\def\ps@myheadings{% |
167 |
\let\@oddfoot\@empty\let\@evenfoot\@empty |
168 |
\def\@evenhead{\thepage\hfil\slshape\leftmark}% |
169 |
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}% |
170 |
\let\@mkboth\@gobbletwo |
171 |
\let\chaptermark\@gobble |
172 |
\let\sectionmark\@gobble |
173 |
} |
174 |
\if@titlepage |
175 |
\newcommand\maketitle{\begin{titlepage}% |
176 |
\let\footnotesize\small |
177 |
\let\footnoterule\relax |
178 |
\let \footnote \thanks |
179 |
\null\vfil |
180 |
\vskip 60\p@ |
181 |
\begin{center}% |
182 |
{\LARGE \@title \par}% |
183 |
\vskip 3em% |
184 |
{\large |
185 |
\lineskip .75em% |
186 |
\begin{tabular}[t]{c}% |
187 |
\@author |
188 |
\end{tabular}\par}% |
189 |
\vskip 1.5em% |
190 |
{\large \@date \par}% % Set date in \large size. |
191 |
\end{center}\par |
192 |
\@thanks |
193 |
\vfil\null |
194 |
\end{titlepage}% |
195 |
\setcounter{footnote}{0}% |
196 |
\global\let\thanks\relax |
197 |
\global\let\maketitle\relax |
198 |
\global\let\@thanks\@empty |
199 |
\global\let\@author\@empty |
200 |
\global\let\@date\@empty |
201 |
\global\let\@title\@empty |
202 |
\global\let\title\relax |
203 |
\global\let\author\relax |
204 |
\global\let\date\relax |
205 |
\global\let\and\relax |
206 |
} |
207 |
\else |
208 |
\newcommand\maketitle{\par |
209 |
\begingroup |
210 |
\renewcommand\thefootnote{\@fnsymbol\c@footnote}% |
211 |
\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% |
212 |
\long\def\@makefntext##1{\parindent 1em\noindent |
213 |
\hb@xt@1.8em{% |
214 |
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}% |
215 |
\if@twocolumn |
216 |
\ifnum \col@number=\@ne |
217 |
\@maketitle |
218 |
\else |
219 |
\twocolumn[\@maketitle]% |
220 |
\fi |
221 |
\else |
222 |
\newpage |
223 |
\global\@topnum\z@ % Prevents figures from going at top of page. |
224 |
\@maketitle |
225 |
\fi |
226 |
\thispagestyle{plain}\@thanks |
227 |
\endgroup |
228 |
\setcounter{footnote}{0}% |
229 |
\global\let\thanks\relax |
230 |
\global\let\maketitle\relax |
231 |
\global\let\@maketitle\relax |
232 |
\global\let\@thanks\@empty |
233 |
\global\let\@author\@empty |
234 |
\global\let\@date\@empty |
235 |
\global\let\@title\@empty |
236 |
\global\let\title\relax |
237 |
\global\let\author\relax |
238 |
\global\let\date\relax |
239 |
\global\let\and\relax |
240 |
} |
241 |
\def\@maketitle{% |
242 |
\newpage |
243 |
\null |
244 |
\vskip 2em% |
245 |
\begin{center}% |
246 |
\let \footnote \thanks |
247 |
{\LARGE \@title \par}% |
248 |
\vskip 1.5em% |
249 |
{\large |
250 |
\lineskip .5em% |
251 |
\begin{tabular}[t]{c}% |
252 |
\@author |
253 |
\end{tabular}\par}% |
254 |
\vskip 1em% |
255 |
{\large \@date}% |
256 |
\end{center}% |
257 |
\par |
258 |
\vskip 1.5em} |
259 |
\fi |
260 |
\newcommand*\chaptermark[1]{} |
261 |
\setcounter{secnumdepth}{2} |
262 |
\newcounter {part} |
263 |
\newcounter {chapter} |
264 |
\newcounter {section}[chapter] |
265 |
\newcounter {subsection}[section] |
266 |
\newcounter {subsubsection}[subsection] |
267 |
\newcounter {paragraph}[subsubsection] |
268 |
\newcounter {subparagraph}[paragraph] |
269 |
\renewcommand \thepart {\@Roman\c@part} |
270 |
\renewcommand \thechapter {\@arabic\c@chapter} |
271 |
\renewcommand \thesection {\thechapter.\@arabic\c@section} |
272 |
\renewcommand\thesubsection {\thesection.\@arabic\c@subsection} |
273 |
\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection} |
274 |
\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph} |
275 |
\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph} |
276 |
\newcommand\@chapapp{\chaptername} |
277 |
\newcommand\frontmatter{% |
278 |
\cleardoublepage |
279 |
\@mainmatterfalse |
280 |
\pagenumbering{roman}} |
281 |
\newcommand\mainmatter{% |
282 |
\cleardoublepage |
283 |
\@mainmattertrue |
284 |
\pagenumbering{arabic}} |
285 |
\newcommand\backmatter{% |
286 |
\if@openright |
287 |
\cleardoublepage |
288 |
\else |
289 |
\clearpage |
290 |
\fi |
291 |
\@mainmatterfalse} |
292 |
\newcommand\part{% |
293 |
\if@openright |
294 |
\cleardoublepage |
295 |
\else |
296 |
\clearpage |
297 |
\fi |
298 |
\thispagestyle{plain}% |
299 |
\if@twocolumn |
300 |
\onecolumn |
301 |
\@tempswatrue |
302 |
\else |
303 |
\@tempswafalse |
304 |
\fi |
305 |
\null\vfil |
306 |
\secdef\@part\@spart} |
307 |
|
308 |
\def\@part[#1]#2{% |
309 |
\ifnum \c@secnumdepth >-2\relax |
310 |
\refstepcounter{part}% |
311 |
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% |
312 |
\else |
313 |
\addcontentsline{toc}{part}{#1}% |
314 |
\fi |
315 |
\markboth{}{}% |
316 |
{\centering |
317 |
\interlinepenalty \@M |
318 |
\normalfont |
319 |
\ifnum \c@secnumdepth >-2\relax |
320 |
\huge\bfseries \partname~\thepart |
321 |
\par |
322 |
\vskip 20\p@ |
323 |
\fi |
324 |
\Huge \bfseries #2\par}% |
325 |
\@endpart} |
326 |
\def\@spart#1{% |
327 |
{\centering |
328 |
\interlinepenalty \@M |
329 |
\normalfont |
330 |
\Huge \bfseries #1\par}% |
331 |
\@endpart} |
332 |
\def\@endpart{\vfil\newpage |
333 |
\if@twoside |
334 |
\null |
335 |
\thispagestyle{empty}% |
336 |
\newpage |
337 |
\fi |
338 |
\if@tempswa |
339 |
\twocolumn |
340 |
\fi} |
341 |
\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi |
342 |
\thispagestyle{plain}% |
343 |
\global\@topnum\z@ |
344 |
\@afterindentfalse |
345 |
\secdef\@chapter\@schapter} |
346 |
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne |
347 |
\if@mainmatter |
348 |
\refstepcounter{chapter}% |
349 |
\typeout{\@chapapp\space\thechapter.}% |
350 |
\addcontentsline{toc}{chapter}% |
351 |
{\protect\numberline{\thechapter}#1}% |
352 |
\else |
353 |
\addcontentsline{toc}{chapter}{#1}% |
354 |
\fi |
355 |
\else |
356 |
\addcontentsline{toc}{chapter}{#1}% |
357 |
\fi |
358 |
\chaptermark{#1}% |
359 |
\addtocontents{lof}{\protect\addvspace{10\p@}}% |
360 |
\addtocontents{lot}{\protect\addvspace{10\p@}}% |
361 |
\if@twocolumn |
362 |
\@topnewpage[\@makechapterhead{#2}]% |
363 |
\else |
364 |
\@makechapterhead{#2}% |
365 |
\@afterheading |
366 |
\fi} |
367 |
\def\@makechapterhead#1{% |
368 |
\vspace*{50\p@}% |
369 |
{\parindent \z@ \raggedright \normalfont |
370 |
\ifnum \c@secnumdepth >\m@ne |
371 |
\if@mainmatter |
372 |
\huge\bfseries \@chapapp\space \thechapter |
373 |
\par\nobreak |
374 |
\vskip 20\p@ |
375 |
\fi |
376 |
\fi |
377 |
\interlinepenalty\@M |
378 |
\Huge \bfseries #1\par\nobreak |
379 |
\vskip 40\p@ |
380 |
}} |
381 |
\def\@schapter#1{\if@twocolumn |
382 |
\@topnewpage[\@makeschapterhead{#1}]% |
383 |
\else |
384 |
\@makeschapterhead{#1}% |
385 |
\@afterheading |
386 |
\fi} |
387 |
\def\@makeschapterhead#1{% |
388 |
\vspace*{50\p@}% |
389 |
{\parindent \z@ \raggedright |
390 |
\normalfont |
391 |
\interlinepenalty\@M |
392 |
\Huge \bfseries #1\par\nobreak |
393 |
\vskip 40\p@ |
394 |
}} |
395 |
\newcommand\section{\@startsection {section}{1}{\z@}% |
396 |
{-3.5ex \@plus -1ex \@minus -.2ex}% |
397 |
{2.3ex \@plus.2ex}% |
398 |
{\normalfont\Large\bfseries}} |
399 |
\newcommand\subsection{\@startsection{subsection}{2}{\z@}% |
400 |
{-3.25ex\@plus -1ex \@minus -.2ex}% |
401 |
{1.5ex \@plus .2ex}% |
402 |
{\normalfont\large\bfseries}} |
403 |
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% |
404 |
{-3.25ex\@plus -1ex \@minus -.2ex}% |
405 |
{1.5ex \@plus .2ex}% |
406 |
{\normalfont\normalsize\bfseries}} |
407 |
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}% |
408 |
{3.25ex \@plus1ex \@minus.2ex}% |
409 |
{-1em}% |
410 |
{\normalfont\normalsize\bfseries}} |
411 |
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% |
412 |
{3.25ex \@plus1ex \@minus .2ex}% |
413 |
{-1em}% |
414 |
{\normalfont\normalsize\bfseries}} |
415 |
\if@twocolumn |
416 |
\setlength\leftmargini {2em} |
417 |
\else |
418 |
\setlength\leftmargini {2.5em} |
419 |
\fi |
420 |
\leftmargin \leftmargini |
421 |
\setlength\leftmarginii {2.2em} |
422 |
\setlength\leftmarginiii {1.87em} |
423 |
\setlength\leftmarginiv {1.7em} |
424 |
\if@twocolumn |
425 |
\setlength\leftmarginv {.5em} |
426 |
\setlength\leftmarginvi {.5em} |
427 |
\else |
428 |
\setlength\leftmarginv {1em} |
429 |
\setlength\leftmarginvi {1em} |
430 |
\fi |
431 |
\setlength \labelsep {.5em} |
432 |
\setlength \labelwidth{\leftmargini} |
433 |
\addtolength\labelwidth{-\labelsep} |
434 |
\@beginparpenalty -\@lowpenalty |
435 |
\@endparpenalty -\@lowpenalty |
436 |
\@itempenalty -\@lowpenalty |
437 |
\renewcommand\theenumi{\@arabic\c@enumi} |
438 |
\renewcommand\theenumii{\@alph\c@enumii} |
439 |
\renewcommand\theenumiii{\@roman\c@enumiii} |
440 |
\renewcommand\theenumiv{\@Alph\c@enumiv} |
441 |
\newcommand\labelenumi{\theenumi.} |
442 |
\newcommand\labelenumii{(\theenumii)} |
443 |
\newcommand\labelenumiii{\theenumiii.} |
444 |
\newcommand\labelenumiv{\theenumiv.} |
445 |
\renewcommand\p@enumii{\theenumi} |
446 |
\renewcommand\p@enumiii{\theenumi(\theenumii)} |
447 |
\renewcommand\p@enumiv{\p@enumiii\theenumiii} |
448 |
\newcommand\labelitemi{\textbullet} |
449 |
\newcommand\labelitemii{\normalfont\bfseries \textendash} |
450 |
\newcommand\labelitemiii{\textasteriskcentered} |
451 |
\newcommand\labelitemiv{\textperiodcentered} |
452 |
\newenvironment{description} |
453 |
{\list{}{\labelwidth\z@ \itemindent-\leftmargin |
454 |
\let\makelabel\descriptionlabel}} |
455 |
{\endlist} |
456 |
\newcommand*\descriptionlabel[1]{\hspace\labelsep |
457 |
\normalfont\bfseries #1} |
458 |
\newenvironment{verse} |
459 |
{\let\\\@centercr |
460 |
\list{}{\itemsep \z@ |
461 |
\itemindent -1.5em% |
462 |
\listparindent\itemindent |
463 |
\rightmargin \leftmargin |
464 |
\advance\leftmargin 1.5em}% |
465 |
\item\relax} |
466 |
{\endlist} |
467 |
\newenvironment{quotation} |
468 |
{\list{}{\listparindent 1.5em% |
469 |
\itemindent \listparindent |
470 |
\rightmargin \leftmargin |
471 |
\parsep \z@ \@plus\p@}% |
472 |
\item\relax} |
473 |
{\endlist} |
474 |
\newenvironment{quote} |
475 |
{\list{}{\rightmargin\leftmargin}% |
476 |
\item\relax} |
477 |
{\endlist} |
478 |
\if@compatibility |
479 |
\newenvironment{titlepage} |
480 |
{% |
481 |
\cleardoublepage |
482 |
\if@twocolumn |
483 |
\@restonecoltrue\onecolumn |
484 |
\else |
485 |
\@restonecolfalse\newpage |
486 |
\fi |
487 |
\thispagestyle{empty}% |
488 |
\setcounter{page}\z@ |
489 |
}% |
490 |
{\if@restonecol\twocolumn \else \newpage \fi |
491 |
} |
492 |
\else |
493 |
\newenvironment{titlepage} |
494 |
{% |
495 |
\cleardoublepage |
496 |
\if@twocolumn |
497 |
\@restonecoltrue\onecolumn |
498 |
\else |
499 |
\@restonecolfalse\newpage |
500 |
\fi |
501 |
\thispagestyle{empty}% |
502 |
\setcounter{page}\@ne |
503 |
}% |
504 |
{\if@restonecol\twocolumn \else \newpage \fi |
505 |
\if@twoside\else |
506 |
\setcounter{page}\@ne |
507 |
\fi |
508 |
} |
509 |
\fi |
510 |
\newcommand\appendix{\par |
511 |
\setcounter{chapter}{0}% |
512 |
\setcounter{section}{0}% |
513 |
\gdef\@chapapp{\appendixname}% |
514 |
\gdef\thechapter{\@Alph\c@chapter}} |
515 |
\setlength\arraycolsep{5\p@} |
516 |
\setlength\tabcolsep{6\p@} |
517 |
\setlength\arrayrulewidth{.4\p@} |
518 |
\setlength\doublerulesep{2\p@} |
519 |
\setlength\tabbingsep{\labelsep} |
520 |
\skip\@mpfootins = \skip\footins |
521 |
\setlength\fboxsep{3\p@} |
522 |
\setlength\fboxrule{.4\p@} |
523 |
\@addtoreset {equation}{chapter} |
524 |
\renewcommand\theequation |
525 |
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation} |
526 |
\newcounter{figure}[chapter] |
527 |
\renewcommand \thefigure |
528 |
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} |
529 |
\def\fps@figure{tbp} |
530 |
\def\ftype@figure{1} |
531 |
\def\ext@figure{lof} |
532 |
\def\fnum@figure{\figurename~\thefigure} |
533 |
\newenvironment{figure} |
534 |
{\@float{figure}} |
535 |
{\end@float} |
536 |
\newenvironment{figure*} |
537 |
{\@dblfloat{figure}} |
538 |
{\end@dblfloat} |
539 |
\newcounter{table}[chapter] |
540 |
\renewcommand \thetable |
541 |
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} |
542 |
\def\fps@table{tbp} |
543 |
\def\ftype@table{2} |
544 |
\def\ext@table{lot} |
545 |
\def\fnum@table{\tablename~\thetable} |
546 |
\newenvironment{table} |
547 |
{\@float{table}} |
548 |
{\end@float} |
549 |
\newenvironment{table*} |
550 |
{\@dblfloat{table}} |
551 |
{\end@dblfloat} |
552 |
\newcounter{algorithm}[chapter] |
553 |
\renewcommand \thealgorithm |
554 |
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@algorithm} |
555 |
\def\fps@algorithm{tbp} |
556 |
\def\ftype@algorithm{4} |
557 |
\def\ext@algorithm{loa} |
558 |
\def\fnum@algorithm{\algorithmname~\thealgorithm} |
559 |
\newenvironment{algorithm} |
560 |
{\@float{algorithm}} |
561 |
{\end@float} |
562 |
\newenvironment{algorithm*} |
563 |
{\@dblfloat{algorithm}} |
564 |
{\end@dblfloat} |
565 |
\newlength\abovecaptionskip |
566 |
\newlength\belowcaptionskip |
567 |
\setlength\abovecaptionskip{10\p@} |
568 |
\setlength\belowcaptionskip{0\p@} |
569 |
\long\def\@makecaption#1#2{% |
570 |
\vskip\abovecaptionskip |
571 |
\sbox\@tempboxa{#1: #2}% |
572 |
\ifdim \wd\@tempboxa >\hsize |
573 |
#1: #2\par |
574 |
\else |
575 |
\global \@minipagefalse |
576 |
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% |
577 |
\fi |
578 |
\vskip\belowcaptionskip} |
579 |
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} |
580 |
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} |
581 |
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} |
582 |
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} |
583 |
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} |
584 |
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} |
585 |
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} |
586 |
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} |
587 |
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} |
588 |
\newcommand\@pnumwidth{1.55em} |
589 |
\newcommand\@tocrmarg{2.55em} |
590 |
\newcommand\@dotsep{4.5} |
591 |
\setcounter{tocdepth}{2} |
592 |
\newcommand\tableofcontents{% |
593 |
\if@twocolumn |
594 |
\@restonecoltrue\onecolumn |
595 |
\else |
596 |
\@restonecolfalse |
597 |
\fi |
598 |
\chapter*{\contentsname |
599 |
\@mkboth{% |
600 |
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% |
601 |
\@starttoc{toc}% |
602 |
\if@restonecol\twocolumn\fi |
603 |
} |
604 |
\newcommand*\l@part[2]{% |
605 |
\ifnum \c@tocdepth >-2\relax |
606 |
\addpenalty{-\@highpenalty}% |
607 |
\addvspace{2.25em \@plus\p@}% |
608 |
\begingroup |
609 |
\parindent \z@ \rightskip \@pnumwidth |
610 |
\parfillskip -\@pnumwidth |
611 |
{\leavevmode |
612 |
\large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par |
613 |
\nobreak |
614 |
\global\@nobreaktrue |
615 |
\everypar{\global\@nobreakfalse\everypar{}}% |
616 |
\endgroup |
617 |
\fi} |
618 |
\newcommand*\l@chapter[2]{% |
619 |
\ifnum \c@tocdepth >\m@ne |
620 |
\addpenalty{-\@highpenalty}% |
621 |
\vskip 1.0em \@plus\p@ |
622 |
\setlength\@tempdima{1.5em}% |
623 |
\begingroup |
624 |
\parindent \z@ \rightskip \@pnumwidth |
625 |
\parfillskip -\@pnumwidth |
626 |
\leavevmode \bfseries |
627 |
\advance\leftskip\@tempdima |
628 |
\hskip -\leftskip |
629 |
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par |
630 |
\penalty\@highpenalty |
631 |
\endgroup |
632 |
\fi} |
633 |
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}} |
634 |
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} |
635 |
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} |
636 |
\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}} |
637 |
\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}} |
638 |
\newcommand\listoffigures{% |
639 |
\if@twocolumn |
640 |
\@restonecoltrue\onecolumn |
641 |
\else |
642 |
\@restonecolfalse |
643 |
\fi |
644 |
\chapter*{\listfigurename |
645 |
\@mkboth{\MakeUppercase\listfigurename}% |
646 |
{\MakeUppercase\listfigurename}}% |
647 |
\@starttoc{lof}% |
648 |
\if@restonecol\twocolumn\fi |
649 |
} |
650 |
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} |
651 |
\newcommand\listoftables{% |
652 |
\if@twocolumn |
653 |
\@restonecoltrue\onecolumn |
654 |
\else |
655 |
\@restonecolfalse |
656 |
\fi |
657 |
\chapter*{\listtablename |
658 |
\@mkboth{% |
659 |
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}% |
660 |
\@starttoc{lot}% |
661 |
\if@restonecol\twocolumn\fi |
662 |
} |
663 |
\let\l@table\l@figure |
664 |
\newcommand\listofalgorithms{% |
665 |
\if@twocolumn |
666 |
\@restonecoltrue\onecolumn |
667 |
\else |
668 |
\@restonecolfalse |
669 |
\fi |
670 |
\chapter*{\listalgorithmname |
671 |
\@mkboth{% |
672 |
\MakeUppercase\listalgorithmname}{\MakeUppercase\listalgorithmname}}% |
673 |
\@starttoc{loa}% |
674 |
\if@restonecol\twocolumn\fi |
675 |
} |
676 |
\let\l@algorithm\l@figure |
677 |
\newdimen\bibindent |
678 |
\setlength\bibindent{1.5em} |
679 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
680 |
%The custom bibliography hacked in to allow the bibliography |
681 |
%to be split up. Only diff is that chapter commands |
682 |
%removed so can be used multiple times. Also hacked |
683 |
%to use a different counter, "custombibcounter", to |
684 |
%hold the "enumiv" counter so that on next environment |
685 |
%old value can be restored. Before using this environment, |
686 |
%the counter "custombibcounter" must be created. |
687 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
688 |
\newenvironment{thecustombibliography}[1] |
689 |
{\list{\@biblabel{\@arabic\c@enumiv}}% |
690 |
{\settowidth\labelwidth{\@biblabel{#1}}% |
691 |
\leftmargin\labelwidth |
692 |
\advance\leftmargin\labelsep |
693 |
\@openbib@code |
694 |
\usecounter{enumiv}% |
695 |
\setcounter{enumiv}{\value{custombibcounter}}% |
696 |
\let\p@enumiv\@empty |
697 |
\renewcommand\theenumiv{\@arabic\c@enumiv}}% |
698 |
\sloppy |
699 |
\clubpenalty4000 |
700 |
\@clubpenalty \clubpenalty |
701 |
\widowpenalty4000% |
702 |
\sfcode`\.\@m} |
703 |
{\setcounter{custombibcounter}{\value{enumiv}}\def\@noitemerr |
704 |
{\@latex@warning{Empty `thebibliography' environment}}% |
705 |
\endlist} |
706 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
707 |
%This is the original "thebibliography" environment, |
708 |
%which has not been modified. |
709 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
710 |
\newenvironment{thebibliography}[1] |
711 |
{\chapter*{\bibname |
712 |
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}% |
713 |
\list{\@biblabel{\@arabic\c@enumiv}}% |
714 |
{\settowidth\labelwidth{\@biblabel{#1}}% |
715 |
\leftmargin\labelwidth |
716 |
\advance\leftmargin\labelsep |
717 |
\@openbib@code |
718 |
\usecounter{enumiv}% |
719 |
\let\p@enumiv\@empty |
720 |
\renewcommand\theenumiv{\@arabic\c@enumiv}}% |
721 |
\sloppy |
722 |
\clubpenalty4000 |
723 |
\@clubpenalty \clubpenalty |
724 |
\widowpenalty4000% |
725 |
\sfcode`\.\@m} |
726 |
{\def\@noitemerr |
727 |
{\@latex@warning{Empty `thebibliography' environment}}% |
728 |
\endlist} |
729 |
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} |
730 |
\let\@openbib@code\@empty |
731 |
\newenvironment{theindex} |
732 |
{\if@twocolumn |
733 |
\@restonecolfalse |
734 |
\else |
735 |
\@restonecoltrue |
736 |
\fi |
737 |
\columnseprule \z@ |
738 |
\columnsep 35\p@ |
739 |
\twocolumn[\@makeschapterhead{\indexname}]% |
740 |
\@mkboth{\MakeUppercase\indexname}% |
741 |
{\MakeUppercase\indexname}% |
742 |
\thispagestyle{plain}\parindent\z@ |
743 |
\parskip\z@ \@plus .3\p@\relax |
744 |
\let\item\@idxitem} |
745 |
{\if@restonecol\onecolumn\else\clearpage\fi} |
746 |
\newcommand\@idxitem{\par\hangindent 40\p@} |
747 |
\newcommand\subitem{\@idxitem \hspace*{20\p@}} |
748 |
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}} |
749 |
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} |
750 |
\renewcommand\footnoterule{% |
751 |
\kern-3\p@ |
752 |
\hrule\@width.4\columnwidth |
753 |
\kern2.6\p@} |
754 |
\@addtoreset{footnote}{chapter} |
755 |
\newcommand\@makefntext[1]{% |
756 |
\parindent 1em% |
757 |
\noindent |
758 |
\hb@xt@1.8em{\hss\@makefnmark}#1} |
759 |
\newcommand\contentsname{Contents} |
760 |
\newcommand\listfigurename{List of Figures} |
761 |
\newcommand\listtablename{List of Tables} |
762 |
\newcommand\listalgorithmname{List of Algorithms} |
763 |
\newcommand\bibname{Bibliography} |
764 |
\newcommand\indexname{Index} |
765 |
\newcommand\figurename{Figure} |
766 |
\newcommand\tablename{Table} |
767 |
\newcommand\algorithmname{Algorithm} |
768 |
\newcommand\partname{Part} |
769 |
\newcommand\chaptername{Chapter} |
770 |
\newcommand\appendixname{Appendix} |
771 |
\def\today{\ifcase\month\or |
772 |
January\or February\or March\or April\or May\or June\or |
773 |
July\or August\or September\or October\or November\or December\fi |
774 |
\space\number\day, \number\year} |
775 |
\setlength\columnsep{10\p@} |
776 |
\setlength\columnseprule{0\p@} |
777 |
\pagestyle{headings} |
778 |
\pagenumbering{arabic} |
779 |
\if@twoside |
780 |
\else |
781 |
\raggedbottom |
782 |
\fi |
783 |
\if@twocolumn |
784 |
\twocolumn |
785 |
\sloppy |
786 |
\flushbottom |
787 |
\else |
788 |
\onecolumn |
789 |
\fi |
790 |
\endinput |
791 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
792 |
% $Log: custbook.cls,v $ |
793 |
% Revision 1.8 2004/03/12 11:08:39 dtashley |
794 |
% Modified to provide class CUSTBOOK rather than BOOK to eliminate LaTeX |
795 |
% warning. |
796 |
% |
797 |
% Revision 1.7 2003/04/17 06:04:14 dtashley |
798 |
% Some advice from Donald Arseneau that should change the "ftype" to 4 for |
799 |
% algorithms. Apparently this is a bit-masked thing, and the value should |
800 |
% not interfere with tables and figures. It was 3 in my initial hack and |
801 |
% there seemed not to be any ill effects, but safer is better. |
802 |
% |
803 |
% Revision 1.6 2003/04/07 07:09:33 dtashley |
804 |
% Keyword expansion finally corrected. Change to file was the addition of |
805 |
% an "algorithm" environment that behaves like figures and tables, including |
806 |
% the capability to generate a list of algorithms. |
807 |
% |
808 |
% Revision 1.5 2003/04/07 07:00:52 dtashley |
809 |
% Additional attempt at keyword expansion. |
810 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
811 |
%$History: custbook.cls $ |
812 |
% ***************** Version 1 ***************** |
813 |
% User: David T. Ashley Date: 7/16/00 Time: 2:04p |
814 |
% Created in $/uC Software Multi-Volume Book (A)/LaTeX Classes And Style Files |
815 |
% Initial check-in. |
816 |
% |
817 |
% End of file `custbook.cls'. |