summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ucthesis
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ucthesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/ucthesis')
-rw-r--r--macros/latex/contrib/ucthesis/README237
-rw-r--r--macros/latex/contrib/ucthesis/uct10.clo439
-rw-r--r--macros/latex/contrib/ucthesis/uct11.clo439
-rw-r--r--macros/latex/contrib/ucthesis/uct12.clo439
-rw-r--r--macros/latex/contrib/ucthesis/uctest.bib153
-rw-r--r--macros/latex/contrib/ucthesis/uctest.tex127
-rw-r--r--macros/latex/contrib/ucthesis/ucthesis.cls1291
7 files changed, 3125 insertions, 0 deletions
diff --git a/macros/latex/contrib/ucthesis/README b/macros/latex/contrib/ucthesis/README
new file mode 100644
index 0000000000..330fc20ea3
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/README
@@ -0,0 +1,237 @@
+This is the README file for the UCTHESIS class for LaTeX. It
+corresponds to version 3.2 of the UCTHESIS class (19 December 2004).
+This README is public domain.
+
+The only change from 3.1 to 3.2 is to clarify the license as LPPL, per
+Daniel Gildea. 3.2 was prepared by Karl Berry.
+Version 3.1 was prepared by Daniel Gildea.
+
+NOTE: v3.0 is the first LaTeX2e version of UCTHESIS. It is now a
+class that runs in native LaTeX2e mode. It is functionally identical
+to UCTHESIS.STY v2.7 released on 30 October 1994 by Ethan V. Munson.
+Other than changes for compatibility (mostly having to do with font
+selection), and option selection, very little modification has been
+done to the style. As a result, there are probably cleaner ways to
+implement a number of features. That will have to wait for the next
+release. (BBF 10/31/94)
+
+========================
+Using the UCTHESIS class
+========================
+
+Sample File
+-----------
+
+There is a sample dissertation (by the fictitious, but very
+irritating, Perry H Disdainful) in the file uctest.tex. It also uses
+uctest.bib as its bibliography database (though the contents of the
+database are not important). Mostly this is useful as an example of
+how to produce the front matter. If you don't understand LaTeX at
+all, this file might help you get started, but, since you're going to
+be writing a 100+ page document, you should invest the $20 in a copy
+of the LaTeX manual (by Leslie Lamport the original author of LaTeX).
+This has recently been updated for LaTeX2e.
+
+The LaTeX Companion, by Goossens, Mittelbach, and Samarin (who have been
+involved in developping and supporting the new version of LaTeX) is also quite
+good. It gives a lot of useful information if you are going to be writing
+or modifying classes, and gives a lot of additional information on commonly
+available style packages. It's about $35.
+
+Choosing the UCTHESIS class
+---------------------------
+
+To use the UCTHESIS class, make sure that the ucthesis.cls file is on
+your TEXINPUTS search path and use the following command at the start
+of your input file:
+
+\documentclass{ucthesis}
+
+============================
+What the UCTHESIS class does
+============================
+
+The UCTHESIS class is a port of the UCTHESIS style version 2.7 (the
+final 2.09 release) to LaTeX2e. The UCTHESIS style is a modified
+version of the standard LaTeX REPORT style that is accepted for use
+with University of California PhD dissertations and Masters theses.
+The available commands are almost identical to those of the REPORT style,
+so your best starting point for documentation is the LaTeX manual written
+by Leslie Lamport.
+
+The key features of the class are:
+
+1) The primary modification to the REPORT style is the use of
+pseudo-double-spacing, since the UC system's rules are still designed
+for typewriters. This is achieved by increasing the \baselinestretch
+parameter to 1.37. The \baselinestretch is returned to a
+single-spaced value of 1.00 for elements like tables, captions, and
+footnotes and for all displayed text (quote, quotation, and verse
+environments). Unfortunately, this is done with a macro called \ssp
+which resets the font size to \normalsize. In LaTeX 2.09 this seems
+to be unavoidable, but it makes it very hard to create tables in
+different font sizes.
+
+2) Margins are 1.5 inches on the left, 1.0 inches elsewhere.
+
+3) Uses 11 point by default; you can use the 10pt or 12pt options for
+those sizes.
+
+4) Page numbers are in the top right corner for all pages.
+
+5) Complete, correct front matter for UC dissertations can be
+generated. If you are not a UC student, you should make sure that the
+front matter is OK with your school.
+
+Options
+---------------
+
+There are five primary options:
+
+The "draft" style uses single-spacing throughout the document.
+
+The "final" style uses the correct pseudo-double-spacing. This option
+is the default and is redundant, but is included for symmetry.
+
+The "10pt", "11pt", and "12pt" styles set the default font size to the
+obvious value. The "11pt" option is the default and thus is
+redundant, but is safe to use anyway.
+
+The options are selected on the \documentclass line, e.g.:
+
+\documentclass[10pt,draft]{ucthesis}
+
+Page Headers
+------------
+
+If you want to use page headers or footers other than the default
+ones, you should try using "headerfooter.sty" or "fancyheadings.sty".
+The myheadings pagestyle doesn't work well and there is no workaround.
+The headerfooter and fancyheadings styles are widely distributed, well
+documented, and easy to use.
+
+============
+Front matter
+============
+
+The other key service provided by this class is that it generates
+correct front matter (title page, approval page, abstract, etc.) with
+a failrly simple set of commands. This facility could be a little
+easier, but compared to an earlier state of affairs, it's pretty
+slick. The format of the front matter is specified quite explicitly
+in the document "Guidelines for Submitting a Doctoral Dissertation or
+Master's Thesis" distributed by the UC Berkeley Graduate Division.
+The current version of the class is based on the 2001 version of
+this document.
+
+A complete example of the use of the front matter commands can be
+found in the sample dissertation distributed with the class.
+
+Declarations
+------------
+
+To use the front matter macros and environments, you must first
+declare a number of text strings:
+
+\title Dissertation title
+\author Your name as registered with UC (usually w/ full
+ middle name)
+\degreeyear Year your dissertation will be granted
+\degreesemester Semester (or quarter) your dissertation will be granted
+\degree The title of your degree (e.g. Doctor of Philosophy)
+\chair Title and name of your committee chair
+ (e.g. "Professor Michael A. Harrison")
+\othermembers The names of the other members of your committee
+ separated by linebreaks
+ (e.g. "Professor Susan L. Graham\\Professor Jim Pitman)
+\numberofmembers The number of members on your committee. This defaults to
+ 3 (and thus is optional) and can be any value between
+ 3 and 6. It affects the number of lines on the approval
+ page and the space between them.
+\prevdegrees Your previous degrees
+ "B.A. (University of California, San Diego) 1978\\
+ B.A. (University of California, San Diego) 1986\\
+ M.S. (University of California, Berkeley) 1989"
+\field The official title of your field. This is usually
+ your department's name, but at Berkeley, most
+ Engineering degrees have a more complex name.
+ Be sure to check the guidelines for any special
+ twists on the name of your field.
+\campus The name of your UC campus. This should be capitalized.
+ (e.g. Berkeley)
+
+Title, Approval, and Copyright pages
+------------------------------------
+
+The title, approval, and copyright pages have extremely rigid formats
+that allow them to be generated automatically once the above
+declarations have been made. To generate them, invoke the macros
+
+ \maketitle
+ \approvalpage
+ \copyrightpage
+
+You should probably invoke them in that order, because that's the
+order required by the guidelines.
+
+Abstract Environment
+--------------------
+
+Because you have to provide the text of the abstract, only the title
+can be generated automatically. So, there is an abstract environment.
+It generates the title and numbers the abstract in arabic numerals and
+makes sure that it starts on new page.
+
+The UC system requires that your advisor sign the last page of your
+abstract. Many students just let their advisor just sign at a random
+location on the page, but you can use the \abstractsignature command
+to generate a signature line with your advisor's name printed below
+it. This command generates the signature line at the point it is
+invoked, so it should be placed at the end of the abstract.
+
+Other Front Matter
+------------------
+
+The remaining front matter (dedication, table of contents, lists of
+figures and tables, acknowledgements) MUST be put inside the
+"frontmatter" environment, which ensures that page-numbering is
+handled properly. Within this frontmatter environment, you put the
+environments and commands for the rest of the front matter. There are
+environments for "dedication" and "acknowledgements" and the standard
+LaTeX commands for producing \tableofcontents, \listoffigures, and
+\listoftables.
+
+The standard LaTeX commands are well documented in the LaTeX manual.
+You will probably have to hand edit the .lof (list of figures) and
+.lot (list of tables) files to make verbose captions more suitable for
+this front matter. Once you do this, remember to use the \nofiles
+macro to keep them from getting overwritten.
+
+The acknowledgements and dedication environments make their contents
+start on a new page. The acknowledgements environment also put the
+word "Acknowledgements" in large, bold, centered text at the top of
+the page. For formatting the dedication page, you're on your own.
+After all, the dedication is a kind of poetry and there's no
+predicting the right way to format poetry.
+
+=====================================================
+Other commands not found in the standard report style
+=====================================================
+
+The "smalltabular" and "smalltabular*" environments are equivalent to
+the "tabular" and "tabular*" environments, except that they use the
+\small font. The "scriptsizetabular" and "scriptsizetabular*" use the
+\scriptsize font.
+
+=============================
+Installing the UCTHESIS class
+=============================
+
+To install the UCTHESIS class, you need to install four files:
+
+ ucthesis.cls
+ uct10.clo
+ uct11.clo
+ uct12.clo
+
+in your LaTeX class file repository.
diff --git a/macros/latex/contrib/ucthesis/uct10.clo b/macros/latex/contrib/ucthesis/uct10.clo
new file mode 100644
index 0000000000..44e4d60fec
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/uct10.clo
@@ -0,0 +1,439 @@
+%% uct10.clo 11/3/94
+%% Copyright (C) 1988-2004 Daniel Gildea, BBF, Ethan Munson.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Daniel Gildea.
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1.37}
+
+% All of the font selection commands have been revised to conform with the
+% LaTeX2e font selection commands (BBF 10/31/94).
+%
+% Each size-changing command \SIZE executes the command
+% \fontsize\@FONTSIZE{BASELINESKIP}\selectfont
+% where:
+% \@FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \@vpt (5pt), \@vipt (6pt),
+% \@viipt (etc.), \@viiipt, \@ixpt, \@xpt, \@xipt, \@xiipt,
+% \@xivpt, \@xviipt, \@xxpt, \@xxvpt. These are defined
+% in ltfss.dtx.
+%
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% For reasons of efficiency that needn't concern the designer, the
+% document style defines \@normalsize instead of \normalsize . This
+% is done only for \normalsize, not for any other size-changing
+% commands.
+
+\renewcommand{\normalsize}{\fontsize\@xpt{12}\selectfont%
+\abovedisplayskip 10\p@ plus2\p@ minus5\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3\p@
+\belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+\let\@listi\@listI} % Setting of \@listi added 9 Jun 87
+
+\newcommand{\small}{\fontsize\@ixpt{11}\selectfont%
+\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2\p@
+\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@
+\itemsep \parsep}}
+
+\newcommand{\footnotesize}{\fontsize\@viiipt{9.5}\selectfont%
+\abovedisplayskip 6\p@ plus2\p@ minus4\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus\p@
+\belowdisplayshortskip 3\p@ plus\p@ minus2\p@
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@
+\itemsep \parsep}}
+
+\newcommand{\scriptsize}{\fontsize\@viipt{8pt}\selectfont}
+\newcommand{\tiny}{\fontsize\@vpt{6pt}\selectfont}
+\newcommand{\large}{\fontsize\@xiipt{14pt}\selectfont}
+\newcommand{\Large}{\fontsize\@xivpt{18pt}\selectfont}
+\newcommand{\LARGE}{\fontsize\@xviipt{22pt}\selectfont}
+\newcommand{\huge}{\fontsize\@xxpt{25pt}\selectfont}
+\newcommand{\Huge}{\fontsize\@xxvpt{30pt}\selectfont}
+
+% The shortform font selection commands are not defined in LaTeX2e. This
+% defines them so that they do non-orthogonal font selection, which is
+% useful if you are in the middle of converting a document from 2.09.
+% These commands are no longer used internally in this class. (BBF 10/31/94)
+
+\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}
+\newcommand{\sl}{\slshape}
+\newcommand{\sc}{\scshape}
+
+\normalsize % Choose the normalsize font.
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page.
+
+%% UCTHESIS style is not intended to be used two-sided because the
+%% University of California style requirements explicitly specify
+%% single-sided printing. So the two-sided settings are meaningless.
+
+% SIDE MARGINS:
+\if@twoside % Values for two-sided printing:
+ \oddsidemargin 0.5in % Left margin on odd-numbered pages.
+ \evensidemargin 0.0in % Left margin on even-numbered pages.
+ \marginparwidth 0pt % Width of marginal notes.
+\else % Values for one-sided printing:
+ \oddsidemargin 0.5in % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0.5in
+ \marginparwidth 0pt
+\fi
+\marginparsep 11pt % Horizontal space between outer margin and
+ % marginal note
+
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin 0.0in % Nominal distance from top of page to top
+ % of box containing running head.
+\headheight 12pt % Height of box containing running head.
+\headsep 25pt % Space between running head and text.
+\topskip = 10pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footskip 30pt % Distance from baseline of box containing
+ % foot to baseline of last line of text.
+
+
+% DIMENSION OF TEXT:
+% 24 Jun 86: changed to explicitly compute \textheight to avoid
+% roundoff. The value of the multiplier was calculated as the floor
+% of the old \textheight minus \topskip, divided by \baselineskip for
+% \normalsize. The old value of \textheight was 528pt. \textheight
+% is the height of text (including footnotes and figures, excluding
+% running head and foot).
+
+\textheight = 37\baselineskip
+\advance\textheight by \topskip
+\textwidth 6.0truein % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+% A \raggedbottom command causes 'ragged bottom' pages: pages set to
+% natural height instead of being stretched to exactly \textheight.
+
+% FOOTNOTES:
+
+\footnotesep 6.65pt % Height of strut placed at the beginning of every
+ % footnote = height of normal \footnotesize strut,
+ % so no extra space between footnotes.
+
+\skip\footins 9pt plus 4pt minus 2pt % Space between last line of text
+ % and top of first footnote.
+
+% FLOATS: (a float is something like a figure or table)
+%
+% FOR FLOATS ON A TEXT PAGE:
+%
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats
+ % moved to top or bottom of
+ % text page.
+\textfloatsep 20pt plus 2pt minus 4pt % Space between main text and
+ % floats at top or bottom of
+ % page.
+\intextsep 12pt plus 2pt minus 2pt % Space between in-text figures
+ % and text.
+% TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
+\dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for
+ % double-column figures in
+ % two-column mode.
+\dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for
+ % double-column floats.
+
+% FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must
+ % be 0pt plus ...)
+\@fpsep 8pt plus 2fil % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must
+ % be 0pt plus ... )
+
+% DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt
+ % plus ...)
+\@dblfpsep 8pt plus 2fil % Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+ % 0pt plus ... )
+% MARGINAL NOTES:
+%
+\marginparpush 5pt % Minimum vertical separation between two
+ % marginal notes.
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip 0pt plus 1pt % Extra vertical space between
+ % paragraphs.
+\parindent 4em % Width of paragraph indentation.
+%\topsep 8pt plus 2pt minus 4pt % Extra vertical space, in addition
+ % to \parskip, added above and below
+ % list and paragraphing environments.
+\partopsep 2pt plus 1pt minus 1pt % Extra vertical space, in addition
+ % to \parskip and \topsep, added when
+ % user leaves blank line before
+ % environment.
+%\itemsep 4pt plus 2pt minus 1pt % Extra vertical space, in addition
+ % to \parskip, added between list
+ % items.
+% See \@listI for values of \topsep and \itemsep
+% (Change made 9 Jun 87)
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph
+ % environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph
+ % environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % '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 *
+% ****************************************
+%
+%
+
+% Definition of \part moved to report.doc on 19 Jan 88
+
+% \@makechapterhead {TEXT} : Makes the heading for the \chapter command.
+%
+
+\def\@makechapterhead#1{% % Heading for \chapter command
+ \vspace*{50\p@}% % Space at top of text page.
+ {\parindent \z@\raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN
+ \huge\bfseries \@chapapp{} \thechapter % Print '\chaptername' and number.
+ \par
+ \vskip 20\p@ \fi % Space between number and title.
+ \Huge \bfseries % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40\p@ % Space between title and text.
+ }}
+
+% \@makeschapterhead {TEXT} : Makes the heading for the \chapter*
+% command.
+%
+
+\def\@makeschapterhead#1{% % Heading for \chapter* command
+ \vspace*{50\p@}% % Space at top of page.
+ {\parindent \z@ \raggedright
+ \Huge \bfseries % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40\p@ % Space between title and text.
+ }}
+
+% \secdef{UNSTARCMDS}{STARCMDS} :
+% When defining a \chapter or \section command without using
+% \@startsection, you can use \secdef as follows:
+% \def\chapter { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... } % Command to define
+% % \chapter[...]{...}
+% \def\CMDB #1{ ... } % Command to define
+% % \chapter*{...}
+
+\def\chapter{\clearpage % Starts new page.
+ \thispagestyle{plain}% % Page style of chapter page is 'plain'
+ \global\@topnum\z@ % Prevents figures from going
+ % at top of page.
+ \@afterindenttrue % Suppresses indent in first paragraph.
+ \secdef\@chapter\@schapter} % Change to \@afterindentfase for no indent.
+
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}{\protect
+ \numberline{\thechapter}#1}\else
+ \addcontentsline{toc}{chapter}{#1}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}%
+ {\protect\addvspace{10\p@}} % Adds between-chapter space
+ \addtocontents{lot}%
+ {\protect\addvspace{10\p@}} % to lists of figs & tables.
+ \if@twocolumn % Tests for two-column mode.
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else \@makechapterhead{#2}%
+ \@afterheading % Routine called after chapter and
+ \fi} % section heading.
+
+\def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]%
+ \else \@makeschapterhead{#1}%
+ \@afterheading\fi}
+
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+% optional * [ALTHEADING]{HEADING}
+% Generic command to start a section.
+% NAME : e.g., 'subsection'
+% LEVEL : a number, denoting depth of section -- e.g.,
+% chapter=1, section = 2, etc. A section number will be
+% printed if and only if LEVEL < or = the value of the
+% secnumdepth counter.
+% INDENT : Indentation of heading from left margin
+% BEFORESKIP : Absolute value = skip to leave above the heading.
+% If negative, then paragraph indent of text following
+% heading is suppressed.
+% AFTERSKIP : if positive, then skip to leave below heading,
+% else - skip to leave to right of run-in heading.
+% STYLE : commands to set style
+% If '*' missing, then increments the counter. If it is present, then
+% there should be no [ALTHEADING] argument. A sectioning command
+% is normally defined to \@startsection + its first six arguments.
+
+\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus
+ -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bfseries}}
+\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex
+ minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bfseries}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus
+ -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bfseries}}
+\def\paragraph{\@startsection
+ {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font
+ \normalsize \bfseries}}
+\def\subparagraph{\@startsection
+ {subparagraph}{4}{\parindent}{3.25ex plus1ex minus
+ .2ex}{-1em}{\reset@font\normalsize\bfseries}}
+
+
+% Default initializations of \...mark commands. (See below for their
+% us in defining page styles.
+%
+
+\def\chaptermark#1{}
+% \def\sectionmark#1{} % Preloaded definitions
+% \def\subsectionmark#1{}
+% \def\subsubsectionmark#1{}
+% \def\paragraphmark#1{}
+% \def\subparagraphmark#1{}
+
+% The value of the counter secnumdepth gives the depth of the
+% highest-level sectioning command that is to produce section numbers.
+%
+
+\setcounter{secnumdepth}{2}
+
+% APPENDIX
+%
+% The \appendix command must do the following:
+% -- reset the chapter counter to zero
+% -- set \@chapapp to Appendix (for messages)
+% -- redefine the chapter counter to produce appendix numbers
+% -- reset the section counter to zero
+% -- redefine the \chapter command if appendix titles and headings
+% are to look different from chapter titles and headings.
+
+\def\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \def\@chapapp{\appendixname}%
+ \def\thechapter{\Alph{chapter}}}
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to set only \leftmargin.
+
+\leftmargini 25pt
+\leftmarginii 22pt % > \labelsep + width of '(m)'
+\leftmarginiii 18.7pt % > \labelsep + width of 'vii.'
+\leftmarginiv 17pt % > \labelsep + width of 'M.'
+\leftmarginv 10pt
+\leftmarginvi 10pt
+
+\leftmargin\leftmargini
+\labelsep 5pt
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+%\parsep 4pt plus 2pt minus 1pt (Removed 9 Jun 87)
+
+% \@listI defines top level and \@listi values of
+% \leftmargin, \topsep, \parsep, and \itemsep
+% (Added 9 Jun 87)
+\def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@%
+\topsep 8\p@ plus2\p@ minus4\p@
+\itemsep 4\p@ plus2\p@ minus\p@}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 4\p@ plus2\p@ minus\p@
+ \parsep 2\p@ plus\p@ minus\p@
+ \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2\p@ plus\p@ minus\p@
+ \parsep \z@ \partopsep\p@ plus\z@ minus\p@
+ \itemsep \topsep}
+
+\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}
+
+\endinput
diff --git a/macros/latex/contrib/ucthesis/uct11.clo b/macros/latex/contrib/ucthesis/uct11.clo
new file mode 100644
index 0000000000..23ec391286
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/uct11.clo
@@ -0,0 +1,439 @@
+%% uct11.clo 11/3/94
+%% Copyright (C) 1988-2004 Daniel Gildea, BBF, Ethan Munson.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Daniel Gildea.
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1.37}
+
+% All of the font selection commands have been revised to conform with the
+% LaTeX2e font selection commands (BBF 10/31/94).
+%
+% Each size-changing command \SIZE executes the command
+% \fontsize\@FONTSIZE{BASELINESKIP}\selectfont
+% where:
+% \@FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \@vpt (5pt), \@vipt (6pt),
+% \@viipt (etc.), \@viiipt, \@ixpt, \@xpt, \@xipt, \@xiipt,
+% \@xivpt, \@xviipt, \@xxpt, \@xxvpt. These are defined
+% in ltfss.dtx.
+%
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% For reasons of efficiency that needn't concern the designer, the
+% document style defines \@normalsize instead of \normalsize . This
+% is done only for \normalsize, not for any other size-changing
+% commands.
+
+\renewcommand{\normalsize}{\fontsize\@xipt{13.6}\selectfont%
+\abovedisplayskip 11\p@ plus3\p@ minus6\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3\p@
+\belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+\let\@listi\@listI} % Setting of \@listi added 9 Jun 87
+
+\newcommand{\small}{\fontsize\@xpt{12}\selectfont%
+\abovedisplayskip 10\p@ plus2\p@ minus5\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3\p@
+\belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@
+\itemsep \parsep}}
+
+\newcommand{\footnotesize}{\fontsize\@ixpt{11}\selectfont%
+\abovedisplayskip 8\p@ plus2\p@ minus4\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus\p@
+\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@
+\itemsep \parsep}}
+
+\newcommand{\scriptsize}{\fontsize\@viiipt{9.5pt}\selectfont}
+\newcommand{\tiny}{\fontsize\@vipt{7pt}\selectfont}
+\newcommand{\large}{\fontsize\@xiipt{14pt}\selectfont}
+\newcommand{\Large}{\fontsize\@xivpt{18pt}\selectfont}
+\newcommand{\LARGE}{\fontsize\@xviipt{22pt}\selectfont}
+\newcommand{\huge}{\fontsize\@xxpt{25pt}\selectfont}
+\newcommand{\Huge}{\fontsize\@xxvpt{30pt}\selectfont}
+
+% The shortform font selection commands are not defined in LaTeX2e. This
+% defines them so that they do non-orthogonal font selection, which is
+% useful if you are in the middle of converting a document from 2.09.
+% These commands are no longer used internally in this class. (BBF 10/31/94)
+
+\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}
+\newcommand{\sl}{\slshape}
+\newcommand{\sc}{\scshape}
+
+\normalsize % Choose the normalsize font.
+
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page.
+
+%% UCTHESIS style is not intended to be used two-sided because the
+%% University of California style requirements explicitly specify
+%% single-sided printing. So the two-sided settings are meaningless.
+
+% SIDE MARGINS:
+\if@twoside % Values for two-sided printing:
+ \oddsidemargin 0.5in % Left margin on odd-numbered pages.
+ \evensidemargin 0.0in % Left margin on even-numbered pages.
+ \marginparwidth 0pt % Width of marginal notes.
+\else % Values for one-sided printing:
+ \oddsidemargin 0.5in % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0.5in
+ \marginparwidth 0pt
+\fi
+\marginparsep 10pt % Horizontal space between outer margin and
+ % marginal note
+
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin 0.0in % Nominal distance from top of page to top of
+ % box containing running head.
+\headheight 12pt % Height of box containing running head.
+\headsep 25pt % Space between running head and text.
+\topskip = 11pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footskip 30pt % Distance from baseline of box containing
+ % foot to baseline of last line of text.
+
+
+% DIMENSION OF TEXT:
+% 24 Jun 86: changed to explicitly compute \textheight to avoid
+% roundoff. The value of the multiplier was calculated as the floor
+% of the old \textheight minus \topskip, divided by \baselineskip for
+% \normalsize. The old value of \textheight was 530.4pt. \textheight
+% is the height of text (including footnotes and figures, excluding
+% running head and foot).
+
+\textheight = 32\baselineskip
+\advance\textheight by \topskip
+\textwidth 6.0truein % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+% A \raggedbottom command causes 'ragged bottom' pages: pages set to
+% natural height instead of being stretched to exactly \textheight.
+
+% FOOTNOTES:
+
+\footnotesep 7.7pt % Height of strut placed at the beginning of every
+ % footnote = height of normal \footnotesize strut,
+ % so no extra space between footnotes.
+
+\skip\footins 10pt plus 4pt minus 2pt % Space between last line of text
+ % and top of first footnote.
+
+% FLOATS: (a float is something like a figure or table)
+%
+% FOR FLOATS ON A TEXT PAGE:
+%
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats
+ % moved to top or bottom of
+ % text page.
+\textfloatsep 20pt plus 2pt minus 4pt % Space between main text and
+ % floats at top or bottom of
+ % page.
+\intextsep 12pt plus 2pt minus 2pt % Space between in-text figures
+ % and text.
+% TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
+\dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for
+ % double-column figures in
+ % two-column mode.
+\dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for
+ % double-column floats.
+
+% FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must
+ % be 0pt plus ...)
+\@fpsep 8pt plus 2fil % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must
+ % be 0pt plus ... )
+
+% DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt
+ % plus ...)
+\@dblfpsep 8pt plus 2fil % Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+ % 0pt plus ... )
+% MARGINAL NOTES:
+%
+\marginparpush 5pt % Minimum vertical separation between two
+ % marginal notes.
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip 0pt plus 1pt % Extra vertical space between
+ % paragraphs.
+\parindent 4em % Width of paragraph indentation.
+%\topsep 9pt plus 3pt minus 5pt % Extra vertical space, in addition
+ % to \parskip, added above and below
+ % list and paragraphing environments.
+\partopsep 3pt plus 1pt minus 2pt % Extra vertical space, in addition
+ % to \parskip and \topsep, added when
+ % user leaves blank line before
+ % environment.
+%\itemsep 4.5pt plus 2pt minus 1pt % Extra vertical space, in addition
+ % to \parskip, added between list
+ % items.
+% See \@listI for values of \topsep and \itemsep
+% (Change made 9 Jun 87)
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph
+ % environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph
+ % environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % '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 *
+% ****************************************
+%
+
+% Definition of \part moved to report.doc 19 Jan 88
+
+% \@makechapterhead {TEXT} : Makes the heading for the \chapter
+% command.
+%
+
+\def\@makechapterhead#1{% % Heading for \chapter command
+ \vspace*{50\p@}% % Space at top of text page.
+ {\parindent \z@ \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN
+ \huge\bfseries \@chapapp{} \thechapter %Print '\chaptername' and number.
+ \par
+ \vskip 20\p@ \fi % Space between number and title.
+ \Huge \bfseries % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40\p@ % Space between title and text.
+ }}
+
+% \@makeschapterhead {TEXT} : Makes the heading for the \chapter*
+% command.
+%
+
+\def\@makeschapterhead#1{% % Heading for \chapter* command
+ \vspace*{50\p@}% % Space at top of page.
+ {\parindent \z@ \raggedright
+ \Huge \bfseries % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40\p@ % Space between title and text.
+ }}
+
+% \secdef{UNSTARCMDS}{STARCMDS} :
+% When defining a \chapter or \section command without using
+% \@startsection, you can use \secdef as follows:
+% \def\chapter { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... % Command to define
+% % \chapter[...]{...}
+% \def\CMDB #1{ ... % Command to define
+% % \chapter*{...}
+
+\def\chapter{\clearpage % Starts new page.
+ \thispagestyle{plain}% % Page style of chapter page is 'plain'
+ \global\@topnum\z@ % Prevents figures from going
+ % at top of page.
+ \@afterindenttrue % Suppresses indent in first paragraph.
+ \secdef\@chapter\@schapter} % Change to \@afterindentfase for no indent.
+
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}{\protect
+ \numberline{\thechapter}#1}\else
+ \addcontentsline{toc}{chapter}{#1}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}%
+ {\protect\addvspace{10\p@}} % Adds between-chapter space
+ \addtocontents{lot}%
+ {\protect\addvspace{10\p@}} % to lists of figs & tables.
+ \if@twocolumn % Tests for two-column mode.
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else \@makechapterhead{#2}%
+ \@afterheading % Routine called after chapter and
+ \fi} % section heading.
+
+\def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]%
+ \else \@makeschapterhead{#1}%
+ \@afterheading\fi}
+
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+% optional * [ALTHEADING]{HEADING}
+% Generic command to start a section.
+% NAME : e.g., 'subsection'
+% LEVEL : a number, denoting depth of section -- e.g.,
+% chapter=1, section = 2, etc. A section number will be
+% printed if and only if LEVEL < or = the value of the
+% secnumdepth counter.
+% INDENT : Indentation of heading from left margin
+% BEFORESKIP : Absolute value = skip to leave above the heading.
+% If negative, then paragraph indent of text following
+% heading is suppressed.
+% AFTERSKIP : if positive, then skip to leave below heading,
+% else - skip to leave to right of run-in heading.
+% STYLE : commands to set style
+% If '*' missing, then increments the counter. If it is present, then
+% there should be no [ALTHEADING] argument. A sectioning command
+% is normally defined to \@startsection + its first six arguments.
+
+\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus
+ -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bfseries}}
+\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex
+ minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bfseries}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus
+ -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bfseries}}
+\def\paragraph{\@startsection
+ {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font
+ \normalsize\bfseries}}
+\def\subparagraph{\@startsection
+ {subparagraph}{4}{\parindent}{3.25ex plus1ex minus
+ .2ex}{-1em}{\reset@font\normalsize\bfseries}}
+
+% Default initializations of \...mark commands. (See below for their
+% us in defining page styles.
+%
+
+\def\chaptermark#1{}
+% \def\sectionmark#1{} % Preloaded definitions
+% \def\subsectionmark#1{}
+% \def\subsubsectionmark#1{}
+% \def\paragraphmark#1{}
+% \def\subparagraphmark#1{}
+
+% The value of the counter secnumdepth gives the depth of the
+% highest-level sectioning command that is to produce section numbers.
+%
+
+\setcounter{secnumdepth}{2}
+
+% APPENDIX
+%
+% The \appendix command must do the following:
+% -- reset the chapter counter to zero
+% -- set \@chapapp to Appendix (for messages)
+% -- redefine the chapter counter to produce appendix numbers
+% -- reset the section counter to zero
+% -- redefine the \chapter command if appendix titles and headings
+% are to look different from chapter titles and headings.
+
+\def\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \def\@chapapp{\appendixname}%
+ \def\thechapter{\Alph{chapter}}}
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to set only \leftmargin.
+
+\leftmargini 2.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+
+\leftmargin\leftmargini
+\labelsep .5em
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+%\parsep 4.5pt plus 2pt minus 1pt %(Removed 9 Jun 87)
+
+% \@listI defines top level and \@listi values of
+% \leftmargin, \topsep, \parsep, and \itemsep
+% (Added 9 Jun 87)
+\def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@
+\topsep 9\p@ plus3\p@ minus5\p@
+\itemsep 4.5\p@ plus2\p@ minus\p@}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 4.5\p@ plus2\p@ minus\p@
+ \parsep 2\p@ plus\p@ minus\p@
+ \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2\p@ plus\p@ minus\p@
+ \parsep \z@ \partopsep \p@ plus\z@ minus\p@
+ \itemsep \topsep}
+
+\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}
+
+\endinput
diff --git a/macros/latex/contrib/ucthesis/uct12.clo b/macros/latex/contrib/ucthesis/uct12.clo
new file mode 100644
index 0000000000..abe9673fc2
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/uct12.clo
@@ -0,0 +1,439 @@
+%% uct12.clo 11/3/94
+%% Copyright (C) 1988-2004 Daniel Gildea, BBF, Ethan Munson.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Daniel Gildea.
+
+% ****************************************
+% * FONTS *
+% ****************************************
+%
+
+\lineskip 1pt % \lineskip is 1pt for all font sizes.
+\normallineskip 1pt
+\def\baselinestretch{1.37}
+
+% All of the font selection commands have been revised to conform with the
+% LaTeX2e font selection commands (BBF 10/31/94).
+%
+% Each size-changing command \SIZE executes the command
+% \fontsize\@FONTSIZE{BASELINESKIP}\selectfont
+% where:
+% \@FONTSIZE = Name of font-size command. The currently available
+% (preloaded) font sizes are: \@vpt (5pt), \@vipt (6pt),
+% \@viipt (etc.), \@viiipt, \@ixpt, \@xpt, \@xipt, \@xiipt,
+% \@xivpt, \@xviipt, \@xxpt, \@xxvpt. These are defined
+% in ltfss.dtx.
+%
+% BASELINESKIP = Normal value of \baselineskip for that size. (Actual
+% value will be \baselinestretch * BASELINESKIP.)
+%
+% For reasons of efficiency that needn't concern the designer, the
+% document style defines \@normalsize instead of \normalsize . This
+% is done only for \normalsize, not for any other size-changing
+% commands.
+
+\renewcommand{\normalsize}{\fontsize\@xiipt{14.5}\selectfont%
+\abovedisplayskip 12\p@ plus3\p@ minus7\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3\p@
+\belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+\let\@listi\@listI} % Setting of \@listi added 9 Jun 87
+
+\newcommand{\small}{\fontsize\@xipt{13.6}\selectfont%
+\abovedisplayskip 11\p@ plus3\p@ minus6\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3\p@
+\belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\parsep 4.5\p@ plus2\p@ minus\p@
+ \itemsep \parsep
+ \topsep 9\p@ plus3\p@ minus5\p@}}
+
+\newcommand{\footnotesize}{\fontsize\@xpt{12}\selectfont%
+\abovedisplayskip 10\p@ plus2\p@ minus5\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3\p@
+\belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
+\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+\topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@
+\itemsep \parsep}}
+
+\newcommand{\scriptsize}{\fontsize\@viiipt{9.5pt}\selectfont}
+\newcommand{\tiny}{\fontsize\@vipt{7pt}\selectfont}
+\newcommand{\large}{\fontsize\@xivpt{18pt}\selectfont}
+\newcommand{\Large}{\fontsize\@xviipt{22pt}\selectfont}
+\newcommand{\LARGE}{\fontsize\@xxpt{25pt}\selectfont}
+\newcommand{\huge}{\fontsize\@xxvpt{30pt}\selectfont}
+\newcommand{\Huge}{\fontsize\@xxvpt{30pt}\selectfont}
+
+% The shortform font selection commands are not defined in LaTeX2e. This
+% defines them so that they do non-orthogonal font selection, which is
+% useful if you are in the middle of converting a document from 2.09.
+% These commands are no longer used internally in this class. (BBF 10/31/94)
+
+\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}
+\newcommand{\sl}{\slshape}
+\newcommand{\sc}{\scshape}
+
+\normalsize % Choose the normalsize font.
+
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+%
+% All margin dimensions measured from a point one inch from top and side
+% of page.
+
+%% UCTHESIS style is not intended to be used two-sided because the
+%% University of California style requirements explicitly specify
+%% single-sided printing. So the two-sided settings are meaningless.
+
+% SIDE MARGINS:
+\if@twoside % Values for two-sided printing:
+ \oddsidemargin 0.5in % Left margin on odd-numbered pages.
+ \evensidemargin 0.0in % Left margin on even-numbered pages.
+ \marginparwidth 0pt % Width of marginal notes.
+\else % Values for one-sided printing:
+ \oddsidemargin 0.5in % Note that \oddsidemargin = \evensidemargin
+ \evensidemargin 0.5in
+ \marginparwidth 0pt
+\fi
+\marginparsep 10pt % Horizontal space between outer margin and
+ % marginal note
+
+
+% VERTICAL SPACING:
+ % Top of page:
+\topmargin 0.0in % Nominal distance from top of page to top
+ % of box containing running head.
+\headheight 12pt % Height of box containing running head.
+\headsep 25pt % Space between running head and text.
+\topskip = 12pt % '\baselineskip' for first line of page.
+ % Bottom of page:
+\footskip 30pt % Distance from baseline of box containing
+ % foot to baseline of last line of text.
+
+
+% DIMENSION OF TEXT:
+% 24 Jun 86: changed to explicitly compute \textheight to avoid
+% roundoff. The value of the multiplier was calculated as the floor
+% of the old \textheight minus \topskip, divided by \baselineskip for
+% \normalsize. The old value of \textheight was 536.5pt. \textheight
+% is the height of text (including footnotes and figures, excluding
+% running head and foot).
+
+\textheight = 30\baselineskip
+\advance\textheight by \topskip
+\textwidth 6.0truein % Width of text line.
+ % For two-column mode:
+\columnsep 10pt % Space between columns
+\columnseprule 0pt % Width of rule between columns.
+
+% A \raggedbottom command causes 'ragged bottom' pages: pages set to
+% natural height instead of being stretched to exactly \textheight.
+
+% FOOTNOTES:
+
+\footnotesep 8.4pt % Height of strut placed at the beginning of every
+ % footnote = height of normal \footnotesize strut,
+ % so no extra space between footnotes.
+
+\skip\footins 10.8pt plus 4pt minus 2pt % Space between last line of
+ % text and top of first
+ % footnote.
+
+% FLOATS: (a float is something like a figure or table)
+%
+% FOR FLOATS ON A TEXT PAGE:
+%
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\floatsep 14pt plus 2pt minus 4pt % Space between adjacent floats
+ % moved to top or bottom of
+ % text page.
+\textfloatsep 20pt plus 2pt minus 4pt % Space between main text and
+ % floats at top or bottom of
+ % page.
+\intextsep 14pt plus 4pt minus 4pt % Space between in-text figures
+ % and text.
+% TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
+\dblfloatsep 14pt plus 2pt minus 4pt % Same as \floatsep for
+ % double-column figures in
+ % two-column mode.
+\dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for
+ % double-column floats.
+
+% FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
+% ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
+\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must
+ % be 0pt plus ...)
+\@fpsep 10pt plus 2fil % Space between floats on float page/column.
+\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column.
+ % (Must be 0pt plus ... )
+
+% DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
+\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be
+ % 0pt plus ...)
+\@dblfpsep 10pt plus 2fil% Space between floats on float page.
+\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
+ % 0pt plus ... )
+% MARGINAL NOTES:
+%
+\marginparpush 7pt % Minimum vertical separation between two
+ % marginal notes.
+
+
+% ****************************************
+% * PARAGRAPHING *
+% ****************************************
+%
+\parskip 0pt plus 1pt % Extra vertical space between
+ % paragraphs.
+\parindent 1.5em % Width of paragraph indentation.
+%\topsep 10pt plus 4pt minus 6pt % Extra vertical space, in addition
+ % to \parskip, added above and below
+ % list and paragraphing environments.
+\partopsep 3pt plus 2pt minus 2pt % Extra vertical space, in addition
+ % to \parskip and \topsep, added when
+ % list leaves blank line before
+ % environment.
+%\itemsep 5pt plus 2.5pt minus 1pt % Extra vertical space, in addition
+ % to \parskip, added between list
+ % items.
+% See \@listI for values of \topsep and \itemsep
+% (Change made 9 Jun 87)
+
+% The following page-breaking penalties are defined
+
+\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
+\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
+\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
+
+\@beginparpenalty -\@lowpenalty % Before a list or paragraph
+ % environment.
+\@endparpenalty -\@lowpenalty % After a list or paragraph
+ % environment.
+\@itempenalty -\@lowpenalty % Between list items.
+
+% \clubpenalty % 'Club line' at bottom of page.
+% \widowpenalty % '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 *
+% ****************************************
+%
+% Definition of \part moved to report.doc 19 Jan 88
+
+% \@makechapterhead {TEXT} : Makes the heading for the \chapter
+% command.
+%
+
+\def\@makechapterhead#1{% % Heading for \chapter command
+ \vspace*{50\p@}% % Space at top of text page.
+ {\parindent \z@ \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN
+ \huge\bfseries \@chapapp{} \thechapter %Print '\chaptername' and number.
+ \par
+ \vskip 20\p@ \fi % Space between number and title.
+ \Huge \bfseries % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40\p@ % Space between title and text.
+ }}
+
+% \@makeschapterhead {TEXT} : Makes the heading for the \chapter*
+% command.
+%
+
+\def\@makeschapterhead#1{% % Heading for \chapter* command
+ \vspace*{50\p@}% % Space at top of page.
+ {\parindent \z@ \raggedright
+ \Huge \bfseries % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40\p@ % Space between title and text.
+ }}
+
+% \secdef{UNSTARCMDS}{STARCMDS} :
+% When defining a \chapter or \section command without using
+% \@startsection, you can use \secdef as follows:
+% \def\chapter { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... % Command to define
+% % \chapter[...]{...}
+% \def\CMDB #1{ ... % Command to define
+% % \chapter*{...}
+
+\def\chapter{\clearpage % Starts new page.
+ \thispagestyle{plain}% % Page style of chapter page is 'plain'
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@afterindenttrue % Suppresses indent in first paragraph.
+ \secdef\@chapter\@schapter} % Change to \@afterindentfase for no indent.
+
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}{\protect
+ \numberline{\thechapter}#1}\else
+ \addcontentsline{toc}{chapter}{#1}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}%
+ {\protect\addvspace{10\p@}}% Adds between-chapter space
+ \addtocontents{lot}%
+ {\protect\addvspace{10\p@}}% to lists of figs & tables.
+ \if@twocolumn % Tests for two-column mode.
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else \@makechapterhead{#2}%
+ \@afterheading % Routine called after chapter and
+ \fi} % section heading.
+
+\def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]%
+ \else \@makeschapterhead{#1}%
+ \@afterheading\fi}
+
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+% optional * [ALTHEADING]{HEADING}
+% Generic command to start a section.
+% NAME : e.g., 'subsection'
+% LEVEL : a number, denoting depth of section -- e.g.,
+% chapter=1, section = 2, etc. A section number will be
+% printed if and only if LEVEL < or = the value of the
+% secnumdepth counter.
+% INDENT : Indentation of heading from left margin
+% BEFORESKIP : Absolute value = skip to leave above the heading.
+% If negative, then paragraph indent of text following
+% heading is suppressed.
+% AFTERSKIP : if positive, then skip to leave below heading,
+% else - skip to leave to right of run-in heading.
+% STYLE : commands to set style
+% If '*' missing, then increments the counter. If it is present, then
+% there should be no [ALTHEADING] argument. A sectioning command
+% is normally defined to \@startsection + its first six arguments.
+
+\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus
+ -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bfseries}}
+\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex
+ minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bfseries}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus
+ -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bfseries}}
+\def\paragraph{\@startsection
+ {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font
+ \normalsize\bfseries}}
+\def\subparagraph{\@startsection
+ {subparagraph}{4}{\parindent}{3.25ex plus1ex minus
+ .2ex}{-1em}{\reset@font\normalsize\bfseries}}
+
+% Default initializations of \...mark commands. (See below for their
+% us in defining page styles.
+%
+
+\def\chaptermark#1{}
+% \def\sectionmark#1{} % Preloaded definitions
+% \def\subsectionmark#1{}
+% \def\subsubsectionmark#1{}
+% \def\paragraphmark#1{}
+% \def\subparagraphmark#1{}
+
+% The value of the counter secnumdepth gives the depth of the
+% highest-level sectioning command that is to produce section numbers.
+%
+
+\setcounter{secnumdepth}{2}
+
+% APPENDIX
+%
+% The \appendix command must do the following:
+% -- reset the chapter counter to zero
+% -- set \@chapapp to Appendix (for messages)
+% -- redefine the chapter counter to produce appendix numbers
+% -- reset the section counter to zero
+% -- redefine the \chapter command if appendix titles and headings
+% are to look different from chapter titles and headings.
+
+\def\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \def\@chapapp{\appendixname}%
+ \def\thechapter{\Alph{chapter}}}
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% The following commands are used to set the default values for the list
+% environment's parameters. See the LaTeX manual for an explanation of
+% the meanings of the parameters. Defaults for the list environment are
+% set as follows. First, \rightmargin, \listparindent and \itemindent
+% are set to 0pt. Then, for a Kth level list, the command \@listK is
+% called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
+% called for a third-level list.) By convention, \@listK should set
+% \leftmargin to \leftmarginK.
+%
+% For efficiency, level-one list's values are defined at top level, and
+% \@listi is defined to set only \leftmargin.
+
+\leftmargini 2.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+
+\leftmargin\leftmargini
+\labelsep .5em
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+%\parsep 5pt plus 2.5pt minus 1pt %(Removed 9 Jun 87)
+
+% \@listI defines top level and \@listi values of
+% \leftmargin, \topsep, \parsep, and \itemsep
+% (Added 9 Jun 87)
+\def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@
+\topsep 10\p@ plus4\p@ minus6\p@
+\itemsep 5\p@ plus2.5\p@ minus\p@}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 5\p@ plus2.5\p@ minus\p@
+ \parsep 2.5\p@ plus\p@ minus\p@
+ \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2.5\p@ plus\p@ minus\p@
+ \parsep \z@ \partopsep \p@ plus\z@ minus\p@
+ \itemsep \topsep}
+
+\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}
+
+\endinput
diff --git a/macros/latex/contrib/ucthesis/uctest.bib b/macros/latex/contrib/ucthesis/uctest.bib
new file mode 100644
index 0000000000..ac07311bce
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/uctest.bib
@@ -0,0 +1,153 @@
+%% uctest.bib 11/3/94
+%% Copyright (C) 1988-2004 Daniel Gildea, BBF, Ethan Munson.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Daniel Gildea.
+
+@BOOK{knuth:tex,
+ AUTHOR = "Donald E. Knuth",
+ TITLE = "The {\TeX} Book",
+ PUBLISHER = {Addison-Wesley},
+ YEAR = "1984",
+ ADDRESS = {Reading, Massachusetts},
+ NOTE = {Reprinted as Vol. A of {\it Computers \& Typesetting\/}, 1986}
+}
+
+@BOOK{knuth:pgm,
+ AUTHOR = "Donald E. Knuth",
+ TITLE = "{\TeX}: The Program",
+ PUBLISHER = {Addison-Wesley},
+ YEAR = "1986",
+ VOLUME = {B},
+ SERIES = {Computers \& Typesetting},
+ ADDRESS = {Reading, Massachusetts}
+}
+
+@TECHREPORT{knuth:web,
+ AUTHOR = {Donald E. Knuth},
+ TITLE = {The {WEB} System for Structured Documentation, Version 2.3},
+ INSTITUTION = {Computer Science Department, Stanford University},
+ YEAR = {1983},
+ NUMBER = {STAN-CS-83-980},
+ ADDRESS = {Stanford, California},
+ MONTH = Sep
+}
+
+@ARTICLE{knuth:lp,
+ AUTHOR = {Donald E. Knuth},
+ TITLE = {Literate Programming},
+ JOURNAL = {The Computer Journal},
+ YEAR = {1984},
+ VOLUME = {27},
+ NUMBER = {2},
+ PAGES = {97--111},
+ MONTH = May
+}
+
+@TECHREPORT{knuth:tor,
+ AUTHOR = {Donald E. Knuth},
+ TITLE = {A Torture Test for {\TeX}, Version 1.3},
+ INSTITUTION = {Computer Science Department, Stanford University},
+ YEAR = {1984},
+ NUMBER = {STAN-CS-84-1027},
+ ADDRESS = {Stanford, California},
+ MONTH = Nov
+}
+
+@ARTICLE{furuta:pctex,
+ AUTHOR = "Richard K. Furuta and Pierre A. MacKay",
+ TITLE = "Two {\TeX} Implementations for the {IBM PC}",
+ JOURNAL = "Dr. Dobb's Journal",
+ YEAR = "1985",
+ VOLUME = "10",
+ NUMBER = "9",
+ PAGES = "80--91",
+ MONTH = Sep
+}
+
+@TECHREPORT{des:tex,
+ AUTHOR = {Jacques D{\'e}sarm{\'e}nien},
+ TITLE = {How to Run {\TeX} in French},
+ INSTITUTION = {Computer Science Department, Stanford University},
+ YEAR = {1984},
+ NUMBER = {SATN-CS-1013},
+ ADDRESS = {Stanford, California},
+ MONTH = Aug
+}
+
+@TECHREPORT{samuel:tex,
+ AUTHOR = "Arthur L. Samuel",
+ TITLE = "First Grade {\TeX}: A Beginner's {\TeX} Manual",
+ INSTITUTION = {Computer Science Department, Stanford University},
+ YEAR = "1983",
+ NUMBER = "SATN-CS-83-985",
+ ADDRESS = {Stanford, California},
+ MONTH = Nov
+}
+
+@BOOK{lamport:latex,
+ AUTHOR = {Leslie Lamport},
+ TITLE = {{\LaTeX}: A Document Preparation System. User's Guide and
+ Reference Manual},
+ PUBLISHER = {Addison-Wesley},
+ YEAR = {1986},
+ ADDRESS = {Reading, Massachusetts}
+}
+
+@BOOK{spivak:ams,
+ AUTHOR = {Michael D. Spivak},
+ TITLE = {The Joy of {\TeX}},
+ PUBLISHER = {American Mathematical Society},
+ YEAR = {1985}
+}
+
+@MANUAL{patashnik:bibtex,
+ TITLE = "Bib{\TeX}ing",
+ AUTHOR = "Oren Patashnik",
+ ORGANIZATION = {Computer Science Department, Stanford University},
+ ADDRESS = {Stanford, California},
+ MONTH = jan,
+ YEAR = "1988",
+ NOTE = {Available in the Bib{\TeX} release}
+}
+
+@MANUAL{patashnik:bibhax,
+ TITLE = {Designing Bib{\TeX} Styles},
+ AUTHOR = {Oren Patashnik},
+ ORGANIZATION = {Computer Science Department, Stanford University},
+ MONTH = jan,
+ YEAR = {1988}
+}
+
+@ARTICLE{fuchs:dvi0,
+ AUTHOR = "David Fuchs",
+ TITLE = "The Format of {\TeX}'s {DVI} Files Version 1",
+ JOURNAL = "TUGboat",
+ YEAR = "1981",
+ VOLUME = "2",
+ NUMBER = "2",
+ PAGES = "12--16",
+ MONTH = Jul
+}
+
+@ARTICLE{fuchs:dvi,
+ AUTHOR = "David Fuchs",
+ TITLE = "Device Independent File Format",
+ JOURNAL = "TUGboat",
+ YEAR = "1982",
+ VOLUME = "3",
+ NUMBER = "2",
+ PAGES = "14--19",
+ MONTH = Oct
+}
+
+
diff --git a/macros/latex/contrib/ucthesis/uctest.tex b/macros/latex/contrib/ucthesis/uctest.tex
new file mode 100644
index 0000000000..1fdf0b7866
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/uctest.tex
@@ -0,0 +1,127 @@
+%% uctest.tex 11/3/94
+%% Copyright (C) 1988-2004 Daniel Gildea, BBF, Ethan Munson.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Daniel Gildea.
+
+\documentclass[11pt]{ucthesis}
+\def\dsp{\def\baselinestretch{2.0}\large\normalsize}
+\dsp
+\begin{document}
+
+% Declarations for Front Matter
+
+\title{The Elements of Theses}
+\author{Perry H. Disdainful}
+\degreeyear{1994}
+\degreesemester{Spring}
+\degree{Doctor of Philosophy}
+\chair{Professor Ignatius Arrogant}
+\othermembers{Professor Ivory Insular\\
+Professor General Reference}
+\numberofmembers{3}
+\prevdegrees{B.A. (University of Northern South Dakota at Hoople) 1978\\
+M.S. (Ed's School of Quantum Mechanics and Muffler Repair Shop) 1989}
+\field{Aboriginal Basketry}
+\campus{Berkeley}
+
+\maketitle
+\approvalpage
+\copyrightpage
+
+\begin{abstract}
+Theses have elements. Isn't that nice?
+
+\abstractsignature
+\end{abstract}
+
+\begin{frontmatter}
+
+\begin{dedication}
+\null\vfil
+{\large
+\begin{center}
+To myself,\\\vspace{12pt}
+Perry H. Disdainful,\\\vspace{12pt}
+the only person worthy of my company.
+\end{center}}
+\vfil\null
+\end{dedication}
+
+
+\tableofcontents
+\listoffigures
+\listoftables
+\begin{acknowledgements}
+I want to ``thank'' my committee, without whose ridiculous demands, I
+would have graduated so, so, very much faster.
+\end{acknowledgements}
+
+\end{frontmatter}
+
+\part{First Part}
+
+\chapter{Introduction}
+
+Every dissertation should have an introduction. You might not realize
+it, but the introduction should introduce the concepts, backgrouand,
+and goals of the dissertation.
+
+\begin{table}
+\begin{tabular}{|l|r|}
+ \hline
+Title & Author \\
+\hline
+War And Peace & Leo Tolstoy \\
+The Great Gatsby & F. Scott Fitzgerald \\ \hline
+\end{tabular}
+\caption{A normalsize table. There has been a complaint that table
+captions are not single-spaced. This is odd because the code
+indicates that they should be.}
+\end{table}
+
+\begin{table}
+\caption{A small table.}
+\begin{scriptsizetabular}{|l|r|}
+ \hline
+Title & Author \\
+\hline
+War And Peace & Leo Tolstoy \\
+The Great Gatsby & F. Scott Fitzgerald \\ \hline
+\end{scriptsizetabular}
+\end{table}
+
+\chapter{Previous Work}
+
+Some other research was once performed.
+
+\begin{figure}
+\caption{A first figure.}
+\end{figure}
+
+\begin{figure}
+\caption{A second figure.}
+\end{figure}
+
+\chapter{Conclusion}
+
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{uctest}
+
+\appendix
+\chapter{Some Ancillary Stuff}
+
+Ancillary material should be put in appendices, which appear after the
+bibliography.
+
+\end{document}
diff --git a/macros/latex/contrib/ucthesis/ucthesis.cls b/macros/latex/contrib/ucthesis/ucthesis.cls
new file mode 100644
index 0000000000..69ad4dee2a
--- /dev/null
+++ b/macros/latex/contrib/ucthesis/ucthesis.cls
@@ -0,0 +1,1291 @@
+%% ucthesis.cls
+%% Copyright (C) 1988-2004 Daniel Gildea, BBF, Ethan Munson.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "unmaintained".
+%
+% This work consists of the files ucthesis.cls, uct10.clo, uct11.clo,
+% uct12.clo, uctest.bib, and uctest.tex.
+
+%%% ====================================================================
+%%% @LaTeX-class-file{
+%%% filename = "ucthesis.cls",
+%%% version = "3.2",
+%%% date = "19 December 2004",
+%%% license = "LPPL",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "LaTeX, ucthesis",
+%%% docstring = "This file is the main file for the ucthesis
+%%% class, which is intended to meet the requirements
+%%% for University of California Ph.D. dissertations.
+%%% It is a direct port to LaTeX2e from UCTHESIS
+%%% v2.7 by Ethan V. Munson, with no changes other
+%%% than those for compatibility. The major modifictions
+%%% are in the font selection commands in the option
+%%% files uct1x.clo.
+%%%
+%%% UCTHESIS.STY v2.7 is based on the standard
+%%% report.sty as modified by Mittelbach and Schopf in
+%%% Jan 1992. The primary differences are (1) the use
+%%% of pseudo-double-spacing, except in certain special
+%%% environments; and (2) the use of a 6 inch line
+%%% with 4em paragraph indentation. It is only
+%%% intended for single-sided printing. Double-sided
+%%% printing may be possible, but you're on
+%%% your own.
+%%%
+%%% I know of no bugs in this implementation,
+%%% but would be happy to hear of any problems
+%%% that arise with it.
+%%%
+%%% Version 2.x fixes a bug in the previous
+%%% version of 20 Jun 1988. The bug was that
+%%% "draft" optional mode didn't work because of
+%%% problems in handling optional arguments.
+%%% This file does not seem to work with earlier
+%%% versions of LaTeX (pre-Jan 1992).
+%%%
+%%% Version 2.3 includes a single-spaced
+%%% tabular* environment.
+%%%
+%%% Version 2.4 sets \evensidemargin correctly
+%%% for two-sided style. It also adds new
+%%% environments (\smalltabular and
+%%% \scriptsizetabular) which produce tables
+%%% with smaller fonts. The obvious methods
+%%% of producing small-font tables don't work
+%%% in ucthesis style.
+%%%
+%%% Version 2.5 adds support for the \maketitle
+%%% macro.
+%%%
+%%% Version 2.6 adds support for complete and
+%%% correct front matter. Some dead code was
+%%% removed, too.
+%%%
+%%% Version 2.7 adds front matter support for
+%%% thesis committees of more than 3 people
+%%% and for a labeled signature line on the
+%%% abstract page.
+%%%
+%%% Version 3.0 is a direct port of version 2.7
+%%% to LaTeX2e. The major revisions in ucthesis.cls
+%%% are converting option processing to LaTeX2e
+%%% conventions. The uct1x files have been revised
+%%% to use the new font selection commands.
+%%%
+%%% Version 3.1 makes the following changes:
+%%% ``U of C at CAMPUS'' is now ``U of C, CAMPUS''
+%%% new degreesemester variable
+%%% roman numeral frontmatter begins with page i,
+%%% not iii
+%%% ``acknowledgments'' not ``acknowledgements''
+%%%
+%%% Version 3.2 explicitly states the license as LPPL.
+%%%
+%%% Some users have had problems with the
+%%% margins ending up too small on one side.
+%%% This appears to be a DVI-to-PostScript
+%%% driver or printer-adjustment problem.
+%%% If you have such trouble, make small adjustments
+%%% to the \textwidth and \oddsidemargin
+%%% settings in your document preamble.
+%%%
+%%% Another problem some people have had is
+%%% that you can't use \pagestyle{headings}
+%%% and \markboth if you use \part. The solution
+%%% is to get the headerfooter style, which is
+%%% nice and simple to use."
+%%% }
+%%% ====================================================================
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{ucthesis}[2004/12/19 v3.2 University of California Thesis Class]
+
+% ****************************************
+% * OPTIONS *
+% ****************************************
+%
+% Option values are now declared first thing. Defaults are set to
+% 11 point, onesided, final (ie not draft) mode (BBF 10/31/94)
+\newcommand\@ptsize{}
+\newcommand\@draftmark{}
+\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
+\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
+\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\DeclareOption{draft}{\renewcommand\@draftmark{1}}
+\DeclareOption{final}{\renewcommand\@draftmark{0}}
+\ExecuteOptions{11pt,oneside,final}
+
+
+% CHOOSING THE TYPE SIZE:
+%
+% The type size option is handled by reading a different file for each
+% size, as follows, to define font size-specific commands:
+% 10pt : UCT10, 11pt : UCT11, 12pt : UCT12
+%
+
+% Two-side or one-side printing.
+%
+% \@twosidefalse % Default is one-sided printing.
+\def\ds@twoside{\@twosidetrue % Defines twoside option.
+ \@mparswitchtrue} % Marginpars go on outside of page.
+
+% This is a tricky solution to a tough bootstrapping problem. The
+% "draft" option requires the definition of the \ssp macro. However,
+% the \ssp macro requires that the uct1?.clo file has been loaded. This
+% loading is done by the \@options command which also invokes the
+% \ds@draft macro. This was a cyclic dependency in the previous
+% version. To break this dependency, I have made \ds@draft set a marker
+% which is later tested to determine whether to actually do the draft
+% mode actions.
+%
+% Ethan Munson (October 16, 1992)
+
+% FMi 91/03/30: made twocolum.sty a file and twocolumn an option.
+
+% RmS 91/10/15: moved actual reading of twocolumn.sty
+% to the end of this file.
+\def\ds@twocolumn{\@twocolumntrue}
+
+% The \ProcessOptions command causes the execution of every option command
+% FOO which is declared and for which the user typed the FOO option in his
+% \documentclass. For every undeclared option BAR there will be a warning
+% message. (BBF 10/31/94)
+
+\ProcessOptions
+
+\input uct1\@ptsize.clo\relax
+
+% For some environments we switch back to single-spacing, also
+% provides \dsp in case you need double-spacing where single-spacing
+% is otherwise used.
+\def\ssp{\def\baselinestretch{1.0}\large\normalsize}
+\def\dsp{\def\baselinestretch{1.37}\large\normalsize}
+
+% \smallssp is used to produce tabular environments in the small font.
+% This is required because single-spacing requires a change in font size.
+% \scriptsizessp is a still smaller version of the same thing.
+
+\def\smallssp{\def\baselinestretch{1.0}\large\small}
+\def\scriptsizessp{\def\baselinestretch{1.0}\large\scriptsize}
+
+% draft option (this is where the draft option is actually implemented)
+%
+% \overfullrule = 0pt % Default is don't mark overfull hboxes.
+\ifnum \@draftmark = 1
+\ssp % Single-spaces and
+\overfullrule 5pt % causes overfull hboxes to be marked.
+\fi
+
+
+% PREPARING A FOREIGN LANGUAGE VERSION:
+%
+% This document style is for documents prepared in the English language.
+% To prepare a version for another language, various English words must
+% be replaced. Many of the English words that required replacement are
+% indicated below, where we give the name of the command in which the
+% words appear, and which must be redefined, with the actual words
+% underlined.
+%
+% Other English words that need replacement can be found in the macros
+% supporting the title and approval pages.
+%
+% \tableofcontents:
+\def\contentsname{Contents}
+% ~~~~~~~~
+%
+% \listoffigures:
+\def\listfigurename{List of Figures}
+% ~~~~~~~~~~~~~~~
+%
+% \listoftables:
+\def\listtablename{List of Tables}
+% ~~~~~~~~~~~~~~
+%
+% \thebibliography:
+\def\bibname{Bibliography}
+% ~~~~~~~~~~~~
+%
+% \theindex:
+\def\indexname{Index}
+% ~~~~~
+%
+% figure environment:
+\def\figurename{Figure}
+% ~~~~~~
+%
+% table environment:
+\def\tablename{Table}
+% ~~~~~
+%
+% \chapter:
+\def\chaptername{Chapter}
+% ~~~~~~~
+% \appendix:
+\def\appendixname{Appendix}
+% ~~~~~~~~
+% \part
+\def\partname{Part}
+% ~~~~
+% abstract environment:
+\def\abstractname{Abstract}
+% ~~~~~~~~
+%
+% acknowledge environment:
+\def\acknowledgename{Acknowledgments}
+% ~~~~~~~~~~~~~~~~
+
+% ****************************************
+% * FRONT MATTER *
+% ****************************************
+%
+
+% DECLARATIONS
+%
+% These macros are used to declare arguments needed for the
+% construction of the front matter.
+
+% The year the degree will be officially conferred
+\def\degreeyear#1{\gdef\@degreeyear{#1}}
+
+% The semester (Fall or Spring) the degree will be officially conferred
+\def\degreesemester#1{\gdef\@degreesemester{#1}}
+
+% The full (unabbreviated) name of the degree
+\def\degree#1{\gdef\@degree{#1}}
+
+% All previous degrees: one per line in chronological order
+\def\prevdegrees#1{\gdef\@prevdegrees{#1}}
+
+% The name of your committee's chair
+\def\chair#1{\gdef\@chair{#1}}
+
+% The names of your other committe members, one per line
+\def\othermembers#1{\gdef\@othermembers{#1}}
+
+% The number of committee members, which affects both the
+% number of lines and the amount of space between lines
+% on the approval page.
+\def\@numberofmembers{3}
+\def\@approvalspace{.75in}
+\def\numberofmembers#1{\gdef\@numberofmembers{#1}
+\ifnum \@numberofmembers > 3
+\gdef\@approvalspace{.5in}
+\fi}
+
+% The name of your degree's field (e.g. Psychology, Computer Science)
+\def\field#1{\gdef\@field{#1}}
+
+% You have to define the campus name twice because I can't figure out
+% how to get the TeX \uppercase macro to work for me (EVM, 9/21/94)
+
+% The name of your UC Campus CAPITALIZED (e.g. Berkeley, Los Angeles)
+\def\campus#1{\gdef\@campus{#1}}
+
+% \alwayssingle and \endalwayssingle
+%
+% These macros define an environment for front matter that is always
+% single column even in a double-column document.
+
+\def\alwayssingle{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \else \newpage \fi}
+
+\def\endalwayssingle{\if@restonecol\twocolumn \else \newpage \fi}
+
+% \maketitle outputs the complete titlepage. It requires all the
+% above macros except \campuscap. It is probably not correct for
+% joint (e.g. UCSD/SDSU) degrees.
+
+% Set the font that will be used in the front matter headings
+\def\fmfont{\fontsize\@xiipt{14.5}\selectfont}
+\def\fmsmallfont{\fontsize\@xiipt{14pt}\selectfont}
+
+\def\maketitle{
+{\ssp
+\begin{alwayssingle}
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \thispagestyle{empty}
+ \setcounter{page}{1}
+
+ \null\vfil
+ \begin{center}
+ \fmfont
+ {\bfseries {\@title} \par}
+ \bigskip \medskip
+ by \par
+ \bigskip \medskip
+ {\@author} \par
+\vspace{6ex}
+ {\@prevdegrees} \par
+\vspace{6ex}
+ A dissertation submitted in partial satisfaction of the \par
+\smallskip
+ requirements for the degree of \par
+\smallskip
+ {\@degree} \par
+ \bigskip \medskip
+ in \par
+ \bigskip \medskip
+ {\@field}\par
+ \bigskip \medskip
+ in the \par
+ \bigskip \medskip
+ GRADUATE DIVISION \par
+\smallskip
+ of the \par
+\smallskip
+ UNIVERSITY OF CALIFORNIA, {\expandafter\uppercase\expandafter{\@campus}}
+ \end{center}
+{
+\vspace{6ex}
+\begin{center}
+\fmsmallfont
+ Committee in charge: \\
+{\@chair}, Chair \\
+{\@othermembers} \\
+\vspace{4ex}
+ {\@degreesemester \ \@degreeyear}
+\end{center}
+}
+ \vfil\null
+\end{alwayssingle}
+
+\setcounter{footnote}{0}
+}}
+
+% APPROVALPAGE
+%
+% The \approvalpage macro emits a UC-approved approval page ready for
+% your committee's signature. It is not an automatic part of the
+% output because there's really no point in printing it until you are
+% ready to get signatures. It requires the the \year, \author, and
+% \campus macros have been defined. It uses lots of tricky spacing
+% that is probably better handled with tabular environment code, but
+% I'm too lazy to fix it. (EVM, 9/19/94)
+
+\def\approvalpage{
+\begin{alwayssingle}
+\thispagestyle{empty}
+\null\vfill
+\begin{center}
+\fmfont The dissertation of {\@author} is approved: \\
+\vspace{.25in}
+\vspace{\@approvalspace}
+$\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small Chair%
+\hspace{3.15in} Date }}\:$ \\
+\vspace{\@approvalspace}
+$\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
+\vspace{\@approvalspace}
+$\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
+\vspace{\@approvalspace}
+\ifnum \@numberofmembers > 3
+$\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
+\vspace{\@approvalspace}
+\fi
+\ifnum \@numberofmembers > 4
+$\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
+\vspace{\@approvalspace}
+\fi
+\ifnum \@numberofmembers > 5
+$\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
+\vspace{\@approvalspace}
+\fi
+{\fmfont University of California, {\@campus}} \\
+\vspace{-.25in}
+\vspace{\@approvalspace}
+{\fmfont \@degreesemester \ \@degreeyear}
+\end{center}
+\vfill\null
+\end{alwayssingle}
+}
+
+% COPYRIGHTPAGE
+%
+% While it's technically optional, you probably want a copyright page.
+% This is a macro, not an environment, because it can be generated
+% with the \title, \author, and \year macros.
+
+\def\copyrightpage{
+\begin{alwayssingle}
+\thispagestyle{empty}
+\begin{center}
+{\fmfont
+{\bfseries\@title}\par
+\vspace{1in}
+Copyright \@degreeyear\par
+by\par
+\@author}
+\end{center}
+\end{alwayssingle}}
+
+% ABSTRACT
+%
+% The ABSTRACT environment allows for multi-page abstracts which,
+% in accordance with UC rules, is numbered separately from the rest
+% of the rest of the dissertation in Arabic. It requires definition
+% of the \title, \author, \degree, \field, \campus, and \chair macros.
+
+
+\def\abstract{
+\begin{alwayssingle}
+\pagestyle{plain}
+\thispagestyle{plain}
+\setcounter{page}{1}
+\begin{center}
+{\fmfont
+{\bfseries \abstractname}\par
+\vspace{.5in}
+\@title\par
+\vspace{.1in}
+by\par
+\vspace{.1in}
+\@author\par
+{\@degree} in \@field\par
+\vspace{.1in}
+University of California, {\@campus}\par
+\vspace{.1in}
+{\@chair}, Chair}
+\vspace{.1in}
+\end{center}}
+
+\def\endabstract{\par\vfil\null\end{alwayssingle}
+}
+
+\def\abstractsignature{
+\hspace*{\fill}
+\begin{minipage}[t]{3.25in}
+\addtolength{\baselineskip}{-.5\baselineskip}
+\vspace{1.7cm}
+\rule{3.2in}{.5pt}\\
+\@chair\\
+Dissertation Committee Chair
+\end{minipage}}
+
+% DEDICATION
+%
+% The dedication environment just makes sure the dedication gets its
+% own page.
+
+\newenvironment{dedication}
+{\begin{alwayssingle}}
+{\end{alwayssingle}}
+
+% ACKNOWLEDGEMENTS
+%
+% The acknowledgements environment puts a large, bold, centered
+% "Acknowledgements" label at the top of the page.
+
+\newenvironment{acknowledgements}
+{\begin{alwayssingle}
+\begin{center}
+{\large \bfseries \acknowledgename}
+\end{center}
+}
+{\end{alwayssingle}}
+
+% FRONTMATTER environment
+%
+% The FRONTMATTER environment makes sure that page numbering is set
+% correctly (roman, lower-case, starting at 3) for the front matter
+% that follows the abstract. It also resets page-numbering for
+% the remainder of the dissertation (arabic, starting at 1).
+
+\newenvironment{frontmatter}
+{\setcounter{page}{1}\renewcommand{\thepage}{\roman{page}}}
+{\newpage\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}}
+
+
+% ****************************************
+% * LISTS *
+% ****************************************
+%
+
+% ENUMERATE
+% Enumeration is done with four counters: enumi, enumii, enumiii
+% and enumiv, where enumN controls the numbering of the Nth level
+% enumeration. The label is generated by the commands \labelenumi
+% ... \labelenumiv. The expansion of \p@enumN\theenumN defines the
+% output of a \ref command.
+%
+% 16 Mar 88 -- changed defs of \labelenum... to use \theenum...
+
+\def\labelenumi{\theenumi.}
+\def\theenumi{\arabic{enumi}}
+
+\def\labelenumii{(\theenumii)}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+
+\def\labelenumiii{\theenumiii.}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+
+\def\labelenumiv{\theenumiv.}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+
+% ITEMIZE
+% Itemization is controlled by four commands: \labelitemi, \labelitemii,
+% \labelitemiii, and \labelitemiv, which define the labels of the
+% various itemization levels.
+
+\def\labelitemi{$\m@th\bullet$}
+\def\labelitemii{\bfseries --}
+\def\labelitemiii{$\m@th\ast$}
+\def\labelitemiv{$\m@th\cdot$}
+
+
+% VERSE
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types \\ to end a line.
+% This is implemented by \let'in \\ equal \@centercr.
+%
+\def\verse{\par\let\\=\@centercr
+ \list{}{\ssp\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
+ \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
+\let\endverse\endlist
+
+% QUOTATION
+% Fills lines
+% Indents paragraph
+%
+\def\quotation{\par\list{}{\ssp\listparindent 1.5em
+ \itemindent\listparindent
+ \rightmargin\leftmargin\parsep \z@ plus\p@}\item[]}
+\let\endquotation=\endlist
+
+% QUOTE -- same as quotation except no paragraph indentation,
+%
+\def\quote{\par\list{}{\ssp\rightmargin\leftmargin}\item[]}
+\let\endquote=\endlist
+
+% DESCRIPTION
+%
+% To change the formatting of the label, you must redefine
+% \descriptionlabel.
+
+\def\descriptionlabel#1{\hspace\labelsep \bfseries #1}
+\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+
+\let\enddescription\endlist
+
+\newdimen\descriptionmargin
+\descriptionmargin=3em
+
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+%
+%
+% VERBATIM
+%
+% standard verbatim mode driver macro is modified to use
+% single-spacing. There appears to be a small problem with extra
+% vertical space (1 or 2 points worth) after this environment.
+% Probably, this results from returning to double-spacing before
+% issuing a \parskip, but I'm not enough of TeX hacker to figure out
+% the source of the problem. (EVM, 9/25/94)
+% 94/11/03 BBF converted \tt to \ttfamily
+
+\def\@verbatim{\trivlist\ssp \item[]\if@minipage\else\vskip\parskip\fi
+\leftskip\@totalleftmargin\rightskip\z@
+\parindent\z@\parfillskip\@flushglue\parskip\z@
+%%RmS 91/08/26 Added \@@par to clear possible \parshape definition
+%%from a surrounding list (the verbatim guru says)
+\@@par
+\@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
+\penalty\interlinepenalty}%
+\obeylines \ttfamily \catcode``=13 \@noligs \let\do\@makeother \dospecials}
+
+% ARRAY AND TABULAR
+%
+
+\arraycolsep 5pt % Half the space between columns in an array
+ % environment.
+\tabcolsep 6pt % Half the space between columns in a tabular
+ % environment.
+\arrayrulewidth .4pt % Width of rules in array and tabular environment.
+\doublerulesep 2pt % Space between adjacent rules in array or tabular
+ % environment.
+
+% We have to redefine array here in order to make it single-spaced.
+% (Not sure if this is really necessary.)
+\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
+ \let\@classiv\@arrayclassiv \let\\\@arraycr\let\@halignto\@empty\@tabarray}
+
+% TABBING
+%
+\tabbingsep \labelsep % Space used by the \' command.
+ % (See LaTeX manual.)
+
+% We have to redefine tabular here in order to make it single-spaced.
+\def\tabular{\par\ssp\let\@halignto\@empty\@tabular}
+\expandafter \def\csname tabular*\endcsname #1%
+{\par\ssp\def\@halignto{to#1}\@tabular}
+
+% \smalltabular and \smalltabular* are alternative tabular styles
+% in the \small font. They are required because single-spacing implies a
+% change of font to a particular size.
+% EVM, 7/20/93
+\def\smalltabular{\par\smallssp\let\@halignto\@empty\@tabular}
+\def\endsmalltabular{\endtabular}
+\expandafter \def\csname smalltabular*\endcsname #1%
+{\par\smallssp\def\@halignto{to#1}\@tabular}
+\expandafter \let \csname endsmalltabular*\endcsname = \endtabular
+
+% \scriptsizetabular and \scriptsizetabular* are analogs of \smalltabular
+\def\scriptsizetabular{\par\scriptsizessp\let\@halignto\@empty\@tabular}
+\def\endscriptsizetabular{\endtabular}
+\expandafter \def\csname scriptsizetabular*\endcsname #1%
+{\par\scriptsizessp\def\@halignto{to#1}\@tabular}
+\expandafter \let \csname endscriptsizetabular*\endcsname = \endtabular
+
+% MINIPAGE
+% \@minipagerestore is called upon entry to a minipage environment to
+% set up things that are to be handled differently inside a minipage
+% environment. In the current styles, it does nothing.
+%
+% \skip\@mpfootins : plays same role for footnotes in a minipage as
+% \skip\footins does for ordinary footnotes
+
+\skip\@mpfootins = \skip\footins
+
+% FRAMEBOX
+%
+\fboxsep = 3pt % Space left between box and text by \fbox and
+ % \framebox.
+\fboxrule = .4pt % Width of rules in box made by \fbox and \framebox.
+
+
+% ****************************************
+% * CHAPTERS AND SECTIONS *
+% ****************************************
+%
+% DEFINE COUNTERS:
+%
+% \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is
+% reset to zero when counter OLDCTR is
+% stepped.
+% Counter OLDCTR must already be defined.
+
+% Must redefine @startsection so that we always get indentation.
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+ \par \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \relax\fi
+ \if@nobreak \everypar{}\else
+ \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+\newcounter {part}
+\newcounter {chapter}
+\newcounter {section}[chapter]
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+
+% For any counter CTR, \theCTR is a macro that defines the printed
+% version of counter CTR. It is defined in terms of the following
+% macros:
+%
+% \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral.
+% \roman{COUNTER} : Its value printed as a lower-case roman numberal.
+% \Roman{COUNTER} : Its value printed as an upper-case roman numberal.
+% \alph{COUNTER} : Value of COUNTER printed as a lower-case letter:
+% 1 = a, 2 = b, etc.
+% \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter:
+% 1 = A, 2 = B, etc.
+%
+
+\def\thepart {\Roman{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}}
+
+% \@chapapp is initially defined to be '\chaptername'. The \appendix
+% command redefines it to be '\appendixname'.
+%
+\def\@chapapp{\chaptername}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% PART %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\part{\cleardoublepage % Starts new page.
+ \thispagestyle{plain}% % Page style of part page is 'plain'
+ \if@twocolumn % IF two-column style
+ \onecolumn % THEN \onecolumn
+ \@tempswatrue % @tempswa := true
+ \else \@tempswafalse % ELSE @tempswa := false
+ \fi % FI
+ \hbox{}\vfil % Add fil glue to center title
+%% \bgroup \centering % BEGIN centering %% Removed 19 Jan 88
+ \secdef\@part\@spart}
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2
+ \refstepcounter{part}% % THEN step
+ % part counter
+ \addcontentsline{toc}{part}{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add
+ % unnumb. line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ \markboth{}{}%
+ {\centering % %% added 19 Jan 88
+ \interlinepenalty \@M %% RmS added 11 Nov 91
+ \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2
+ \huge\bfseries \partname~\thepart % THEN Print '\partname' and
+ \par % number in \huge bold.
+ \vskip 20\p@\fi % Add space before title.
+ \Huge \bfseries % FI
+ #2\par}\@endpart} % Print Title in \Huge bold.
+ % Bug Fix 13 Nov 89: #1 -> #2
+
+
+% \@endpart finishes the part page
+%
+\def\@endpart{\vfil\newpage % End page with 1fil glue.
+ \if@twoside % IF twoside printing
+ \hbox{}% % THEN Produce totally blank page
+ \thispagestyle{empty}%
+ \newpage
+ \fi % FI
+ \if@tempswa % IF @tempswa = true
+ \twocolumn % THEN \twocolumn
+ \fi} % FI
+
+\def\@spart#1{{\centering % %% added 19 Jan 88
+ \interlinepenalty \@M %% RmS added 11 Nov 91
+ \Huge \bfseries % Print title in \Huge boldface
+ #1\par}\@endpart}
+
+
+
+
+
+% ****************************************
+% * TABLE OF CONTENTS, ETC. *
+% ****************************************
+%
+% A \subsection command writes a
+% \contentsline{subsection}{TITLE}{PAGE}
+% command on the .toc file, where TITLE contains the contents of the
+% entry and PAGE is the page number. If subsections are being numbered,
+% then TITLE will be of the form
+% \numberline{NUM}{HEADING}
+% where NUM is the number produced by \thesubsection. Other sectioning
+% commands work similarly.
+%
+% A \caption command in a 'figure' environment writes
+% \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE}
+% on the .lof file, where NUM is the number produced by \thefigure and
+% CAPTION is the figure caption. It works similarly for a 'table'
+% environment.
+%
+% The command \contentsline{NAME} expands to \l@NAME. So, to specify
+% the table of contents, we must define \l@chapter, \l@section,
+% \l@subsection, ... ; to specify the list of figures, we must define
+% \l@figure; and so on. Most of these can be defined with the
+% \@dottedtocline command, which works as follows.
+%
+% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}
+% LEVEL : An entry is produced only if LEVEL < or = value of
+% 'tocdepth' counter. Note, \chapter is level 0, \section
+% is level 1, etc.
+% INDENT : The indentation from the outer left margin of the start
+% of the contents line.
+% NUMWIDTH : The width of a box in which the section number is to go,
+% if TITLE includes a \numberline command.
+%
+% This command uses the following three parameters, which are set
+% with a \def (so em's can be used to make them depend upon the font).
+% \@pnumwidth : The width of a box in which the page number is put.
+% \@tocrmarg : The right margin for multiple line entries. One
+% wants \@tocrmarg > or = \@pnumwidth
+% \@dotsep : Separation between dots, in mu units. Should be
+% \def'd to a number like 2 or 1.7
+
+\def\@pnumwidth{1.55em}
+\def\@tocrmarg {2.55em}
+\def\@dotsep{4.5}
+\setcounter{tocdepth}{2}
+
+
+% TABLEOFCONTENTS
+% In ucthesis style, \tableofcontents, \listoffigures, etc. are always
+% set in single-column style. @restonecol
+
+\def\tableofcontents{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \chapter*{\contentsname
+ \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}%
+ {\ssp\@starttoc{toc}}\if@restonecol\twocolumn\fi}
+
+\def\l@part#1#2{\addpenalty{-\@highpenalty}%
+ \addvspace{2.25em plus\p@}% space above part line
+ \begingroup
+ \@tempdima 3em % width of box holding part number, used by
+ \parindent \z@ \rightskip \@pnumwidth %% \numberline
+ \parfillskip -\@pnumwidth
+ {\large \bfseries % set line in \large boldface
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+ \nobreak % Never break after part entry
+ \global\@nobreaktrue %% Added 24 May 89 as
+ \everypar{\global\@nobreakfalse\everypar{}}%% suggested by
+ %% Jerry Leichter
+ \endgroup}
+
+%% First line of l@chapter changed 24 May 89, as suggested
+%% by Jerry Leichter.
+%%
+\def\l@chapter#1#2{\addpenalty{-\@highpenalty}%
+ \vskip 1.0em plus\p@ % space above chapter line
+ \@tempdima 1.5em % width of box holding chapter number
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \bfseries % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to
+ \hskip -\leftskip %% 25 Jan 88 change to \numberline
+ #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty %% added 24 May 89, suggested by J. Leichter
+ \endgroup}
+
+\def\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
+\def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
+\def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
+\def\l@paragraph{\@dottedtocline{4}{10em}{5em}}
+\def\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
+
+% LIST OF FIGURES
+%
+% Single-space list of figures, add it to the table of contents.
+\def\listoffigures{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \chapter*{\listfigurename\@mkboth{\uppercase{\listfigurename}}%
+{\uppercase{\listfigurename}}}
+ \addcontentsline{toc}{chapter}{\listfigurename}
+ {\ssp\@starttoc{lof}}\if@restonecol
+ \twocolumn\fi}
+
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+
+% LIST OF TABLES
+%
+\def\listoftables{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}%
+ {\uppercase{\listtablename}}}\@starttoc{lot}\if@restonecol
+ \twocolumn\fi}
+\def\listoftables{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn\fi
+ \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}%
+{\uppercase{\listtablename}}}
+ \addcontentsline{toc}{chapter}{\listtablename}
+ {\ssp\@starttoc{lot}}\if@restonecol
+ \twocolumn\fi}
+
+
+\let\l@table\l@figure
+
+
+
+% ****************************************
+% * BIBLIOGRAPHY *
+% ****************************************
+%
+% The thebibliography environment executes the following commands:
+%
+% \def\newblock{\hskip .11em plus .33em minus .07em} --
+% Defines the `closed' format, where the blocks (major units of
+% information) of an entry run together.
+%
+% \sloppy -- Used because it's rather hard to do line breaks in
+% bibliographies,
+%
+% \sfcode`\.=1000\relax --
+% Causes a `.' (period) not toproduce an end-of-sentence space.
+
+%% RmS 91/10/27 [ .. ] replaced by \@biblabel{ .. }
+%% RmS 91/11/13: Changed counter enumi to enumiv,
+%% as it says in the comment in latex.tex
+%% RmS 92/01/14: Set \p@enumiv to {} and \theenumiv to \arabic{enumiv}
+%% to get correct references
+\def\thebibliography#1{\chapter*{\bibname\@mkboth
+ {\uppercase{\bibname}}{\uppercase{\bibname}}}
+ \addcontentsline{toc}{chapter}{\bibname}
+ \list{\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \def\theenumiv{\arabic{enumiv}}}%
+ \def\newblock{\hskip .11em plus.33em minus.07em}%
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=\@m}
+
+
+%% 91/08/26 FMI & RmS: introduced warning instead of error
+
+\def\endthebibliography{%
+ \def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+
+% \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...]
+ % command.
+% \def\@cite#1{[#1]} % Produces the output of the \cite
+ % command.
+
+
+
+% ****************************************
+% * THE INDEX *
+% ****************************************
+%
+% THE THEINDEX ENVIRONMENT
+% Produces double column format, with each paragraph a separate entry.
+% The user commands \item, \subitem and \subsubitem are used to
+% produce the entries, and \indexspace adds an extra vertical space
+% that's the right size to put above the first entry with a new letter
+% of the alphabet.
+
+\newif\if@restonecol
+
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+\columnseprule \z@
+\columnsep 35\p@\twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ plus .3\p@\relax\let\item\@idxitem}
+
+\def\@idxitem{\par\hangindent 40\p@}
+
+\def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
+
+\def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
+
+\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+
+\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
+
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+%
+% \footnoterule is a macro to draw the rule separating the footnotes
+% from the text. It should take zero vertical space, so it needs a
+% negative skip to compensate for any positive space taken by the rule.
+% (See PLAIN.TEX.)
+
+\def\footnoterule{\kern-3\p@
+ \hrule width .4\columnwidth
+ \kern 2.6\p@} % The \hrule has default height of .4pt.
+
+% \newcounter{footnote}
+\@addtoreset{footnote}{chapter} % Numbers footnotes within chapters
+
+% \@makefntext{NOTE} :
+% Must produce the actual footnote, using \@thefnmark as the mark
+% of the footnote and NOTE as the text. It is called when
+% effectively inside a \parbox of width \columnwidth (i.e., with
+% \hsize = \columnwidth).
+%
+% The following macro indents all lines of the footnote by 10pt,
+% and indents the first line of a new paragraph by 1em. To
+% change these dimensions, just substitute the desired value for
+% '10pt' [in both places] or '1em'. The mark is flushright
+% against the footnote.
+% \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
+% \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par
+% \parindent 1em\noindent
+% \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1}
+%
+% A simpler macro is used, in which the footnote text is
+% set like an ordinary text paragraph, with no indentation except
+% on the first line of a paragraph, and the first line of the
+% footnote. Thus, all the macro must do is set \parindent
+% to the appropriate value for succeeding paragraphs and put the
+% proper indentation before mark.
+
+\long\def\@makefntext#1{\parindent 1em\noindent
+ \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1}
+
+% \@makefnmark : A macro to generate the footnote marker that goes
+% in the text. Default used.
+%
+
+
+% Single-space footnotes.
+\long\def\@footnotetext#1{\insert\footins{\ssp\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces
+ #1\strut}}}
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+%
+% Float placement parameters. See LaTeX manual for their definition.
+%
+\setcounter{topnumber}{2}
+\def\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\def\textfraction{.2}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+% \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.
+% NUMBER : Figure or table number--e.g., 'Figure 3.2'
+% TEXT : The caption text.
+% Macro should be called inside a \parbox of right width, with
+% \normalsize.
+% changed 25 Jun 86 to fix according to Howard Trickey:
+% instead of \unhbox\@tempboxa\par we do #1: #2\par
+
+% 15 Nov 93: further changes to support captions BEFORE the figure
+% or table. Changes suggested by Donald Arseneau, installed by Ethan
+% Munson. Detailed reasons are:
+% The \unhbox allows \vadjust material (\vspace) to get out;
+% the \vbox to\topskip{} is for captions at the top of top-floats;
+% the \ifdim is for captions above the figure or table;
+% the strut is for tables below the caption.
+
+\long\def\@makecaption#1#2{% Add space only if something is ...
+ \par\ifdim\prevdepth>-\p@ \vskip 10\p@\relax \fi % above the caption
+ \setbox\@tempboxa\hbox{\vbox to\topskip{}#1: #2\unskip\strut}%
+ \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
+ {\ssp#1: #2\unskip\strut\par} % THEN set as ordinary paragraph.
+ \else % ELSE center.
+ \hbox to\hsize{\hfil\unhbox\@tempboxa\hfil}%
+ \fi}
+
+% To define a float of type TYPE (e.g., TYPE = figure), the document
+% style must define the following.
+%
+% \fps@TYPE : The default placement specifier for floats of type
+% TYPE.
+%
+% \ftype@TYPE : The type number for floats of type TYPE. Each TYPE
+% has associated a unique positive TYPE NUMBER, which
+% is a power of two. E.g., figures might have type
+% number 1, tables type number 2, programs type number
+% 4, etc.
+%
+% \ext@TYPE : The file extension indicating the file on which the
+% contents list for float type TYPE is stored. For
+% example, \ext@figure = 'lof'.
+%
+% \fnum@TYPE : A macro to generate the figure number for a caption.
+% For example, \fnum@TYPE == Figure \thefigure.
+%
+% The actual float-making environment commands--e.g., the commands
+% \figure and \endfigure--are defined in terms of the macros \@float
+% and \end@float, which are described below.
+%
+% \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a
+% single-column float of type TYPE with PLACEMENT as the placement
+% specifier. The default value of PLACEMENT is defined by
+% \fps@TYPE. The environment is ended by \end@float. E.g.,
+% \figure == \@float{figure}, \endfigure == \end@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{\figurename~\thefigure}
+\def\figure{\@float{figure}}
+\let\endfigure\end@float
+\@namedef{figure*}{\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+% TABLE
+%
+\newcounter{table}[chapter]
+\def\thetable{\thechapter.\@arabic\c@table}
+
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{\tablename~\thetable}
+\def\table{\@float{table}}
+\let\endtable\end@float
+\@namedef{table*}{\@dblfloat{table}}
+\@namedef{endtable*}{\end@dblfloat}
+
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+%
+% The page style 'foo' is defined by defining the command \ps@foo. This
+% command should make only local definitions. There should be no stray
+% spaces in the definition, since they could lead to mysterious extra
+% spaces in the output.
+%
+% The \ps@... command defines the macros \@oddhead, \@oddfoot,
+% \@evenhead, and \@evenfoot to define the running heads and
+% feet---e.g., \@oddhead is the macro to produce the contents of the
+% heading box for odd-numbered pages. It is called inside an \hbox of
+% width \textwidth.
+%
+% To make headings determined by the sectioning commands, the page style
+% defines the commands \chaptermark, \sectionmark, ... , where
+% \chaptermark{TEXT} is called by \chapter to set a mark, and so on.
+% The \...mark commands and the \...head macros are defined with the
+% help of the following macros. (All the \...mark commands should be
+% initialized to no-ops.)
+%
+% MARKING CONVENTIONS:
+% LaTeX extends TeX's \mark facility by producing two kinds of marks
+% a 'left' and a 'right' mark, using the following commands:
+% \markboth{LEFT}{RIGHT} : Adds both marks.
+% \markright{RIGHT} : Adds a 'right' mark.
+% \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or
+% \@evenfoot macro, gets the current 'left' mark.
+% Works like TeX's \botmark command.
+% \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or
+% \@evenfoot macro, gets the current 'right' mark.
+% Works like TeX's \firstmark command.
+% The marking commands work reasonably well for right marks 'numbered
+% within' left marks--e.g., the left mark is changed by a \chapter
+% command and the right mark is changed by a \section command. However,
+% it does produce somewhat anomalous results if two \bothmark's occur on
+% the same page.
+%
+%
+% Commands like \tableofcontents that should set the marks in some
+% page styles use a \@mkboth command, which is \let by the pagestyle
+% command (\ps@...) to \markboth for setting the heading or
+% \@gobbletwo to do nothing.
+
+\mark{{}{}} % Initializes TeX's marks
+
+% \ps@empty defined in LATEX.TEX
+
+% Definition of 'headings' page style
+% Note the use of ##1 for parameter of \def\chaptermark inside the
+% \def\ps@headings.
+%
+% 91/03/26 FMi: Added extra set of braces arround |\sl| in |\@oddhead|
+% to support NFSS (|\sl| is a shape |\rm| a family). Also remove
+% unnecessary |\hbox{}| commands.
+%
+% 94/11/3 BBF: Eliminated two letter font selection commands \rm and \sl
+% in favor of \rmfamily and \slshape.
+%
+
+\if@twoside % If two-sided printing.
+\def\ps@headings{\let\@mkboth\markboth
+ \def\@oddfoot{}\def\@evenfoot{}% No feet.
+ \def\@evenhead{\rmfamily \thepage\hfil \slshape \leftmark}% Left heading.
+ \def\@oddhead{{\slshape \rightmark}\hfil \rmfamily\thepage}% Right heading.
+ \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}{}}%
+ \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection. \ \fi ##1}}}}
+\else % If one-sided printing.
+\def\ps@headings{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{}% No feet.
+\def\@oddhead{{\slshape \rightmark}\hfil \rmfamily\thepage}% Heading.
+\def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}}}
+\fi
+
+% Definition of 'myheadings' page style.
+%
+\def\ps@myheadings{\let\@mkboth\@gobbletwo
+ \def\@oddhead{{\slshape\rightmark}\hfil \rmfamily\thepage}%
+ \def\@oddfoot{}\def\@evenhead{\rmfamily \thepage\hfil\slshape\leftmark}%
+ \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}%
+ \def\subsectionmark##1{}}
+
+% Definition of 'plain' page style.
+%
+\def\ps@plain{\let\@mkboth\markboth
+\def\@oddfoot{}\def\@evenfoot{} % no feet
+\def\@oddhead{\hbox{}\hfil\rmfamily\thepage} % heading (right)
+\def\@evenhead{\rmfamily\thepage\hfil\hbox{}}} % heading (left)
+
+
+
+% ****************************************
+% * 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
+%
+% \newcounter{equation}
+%
+\@addtoreset{equation}{chapter} % Makes \chapter reset 'equation'
+ % counter.
+
+\def\theequation{\thechapter.\arabic{equation}}
+
+% \jot = 3pt % Extra space added between lines of an eqnarray
+ % environment
+
+% The macro \@eqnnum defines how equation numbers are to appear in
+% equations.
+%
+% \def\@eqnnum{(\theequation)}
+%
+
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+%
+% Default initializations
+
+\ps@plain % 'plain' page style
+\pagenumbering{arabic} % Arabic page numbers
+\if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside
+ % option.
+\if@twocolumn
+ \@@input twocolum.sty\relax
+\else
+ \onecolumn % Single-column.
+\fi
+
+\endinput