Skip to content

Instantly share code, notes, and snippets.

@kelvinmo
Created December 8, 2020 23:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kelvinmo/1b5ac98419ffd18246bda3f472649034 to your computer and use it in GitHub Desktop.
Save kelvinmo/1b5ac98419ffd18246bda3f472649034 to your computer and use it in GitHub Desktop.
LaTeX document class file for typesetting theses in accordance with style guidelines set by the former Faculty of Commerce and Economics (now the Australian School of Business) at the University of New South Wales
% \iffalse -*- latex -*-
%% Portions Copyright (C) Kelvin Mo 2000
%% This work is based on:
%% - ADFATHESIS.CLS Stephen Harker, School of Physics, ADFA 1994 (public
%% domain)
%% - MONTHESIS.STY Tony McGrath, Dept of Physics, Monash University 1987
%% - REPORT.CLS LaTeX3 Project Copyright (C) LaTeX3 Project 1993, 1994,
%% 1995, 1996, 1997
% \fi
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%
% \DoNotIndex{\documentclass,\CodelineIndex,\EnableCrossrefs,\RecordChanges}
% \DoNotIndex{\setlength,\hfuzz,\hbadness,\begin,\DocInput,\end}
% \DoNotIndex{\NeedsTeXFormat,\ProvidesClass,\newcommand,\@ptsize,\newif}
% \DoNotIndex{\if@restonecol}
%
% \changes{0.1}{1999/11/01}{Initial working version}
% \changes{0.2}{2000/06/01}{Added documentation}
% \changes{0.3}{2002/03/01}{Fixed up bibliography and date formats}
% \newcommand{\FCE}{\textsf{fce-thesis}}
% \newcommand{\RPT}{\textsf{report}}
% \newcommand{\NonMacro}[1]{\marginpar{\raggedleft\sffamily #1}}
% \newcommand{\Turabian}[1]{($\rightarrow$ \textit{#1})}
% \GetFileInfo{fce-thesis.cls}
% \newif\ifmulticols ^^A Only use multicols if the package exists
% \IfFileExists{multicol.sty}{\multicolstrue}{}
% \ifmulticols\addtocontents{toc}{\protect\begin{multicols}{2}}\fi
% \title{The \FCE{} class\thanks{Version \fileversion, dated \filedate}}
% \author{Kelvin Mo}
% \date{}
% \maketitle
% \begin{abstract}
% This class file provides a basis for typesetting theses in accordance
% with style guidelines set by Faculty of Commerce and Economics, UNSW, which
% in turn references Turabian\footnote{Kate L Turabian, \emph{A Manual for
% Writers of Term Papers, Theses and Dissertations}. 6th ed. (Chicago:
% University of Chicago Press, 1996). For the rest of this document, specific
% sections cited will be denoted \Turabian{n}.}.
% \end{abstract}
% {\parskip 0pt\tableofcontents}
% \section{Points to Note}
% \begin{itemize}
% \item Bibliographies are single spaced. Use |\begin{single}| and
% |\end{single}| around |\thebibliography|.
% \StopEventually{}
% \section{Implementation}
% Because this class is so heavily drawn from the \RPT{} class, the only
% annotation in this section is the changes to the original class. The margin
% will signal any new or changed macros.
% \subsection{Driver file}
% This is the driver file used to generate embedded documentation.
% \begin{macrocode}
%<*driver>
\documentclass[a4paper]{ltxdoc}
\CodelineIndex
\DisableCrossrefs
\RecordChanges
\OldMakeindex
\setlength\hfuzz{15pt}
\hbadness=7000
\begin{document}
\DocInput{fce-thesis.dtx}
\end{document}
%</driver>
% \end{macrocode}
% \subsection{Initial Code}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
% \end{macrocode}
%
% \begin{macro}{\ProvidesClass}
% |\ProvidesClass| is changed to reflect the new class.
% \end{macro}
% \begin{macrocode}
\ProvidesClass{fce-thesis}
[2002/03/01 0.3 FCE thesis class]
% \end{macrocode}
% \begin{macro}{\@spacing}
% This control sequence is used store the control sequence that is used for
% line spacing.
% \begin{macrocode}
\newcommand\@ptsize{}
\newcommand\@spacing{}
\newif\if@restonecol
\newif\if@titlepage
\@titlepagetrue
\newif\if@openright
% \end{macrocode}
% \end{macro}
% \begin{macro}{\if@mainmatter}
% Because the original \RPT{} class does not support the |\frontmatter|,
% etc.~commands, these are transferred from the \textsf{book} class.
% \end{macro}
% \begin{macrocode}
\newif\if@mainmatter \@mainmattertrue
% \end{macrocode}
% \begin{macro}{\if@phd}\begin{macro}{\if@chicago}\begin{macro}{\if@dblspace}
% The \FCE{} class provides three more switches: |\if@phd| to incdicate whether
% the thesis is for a PhD (which requires a different title page) and
% |\if@chicago| to indicate whether the \textsf{chicago} \BibTeX{} style.
% \end{macro}\end{macro}\end{macro}
% \begin{macrocode}
\newif\if@phd \@phdfalse
\newif\if@chicago \@chicagotrue
% \end{macrocode}
% \subsection{Declaration of Options}
% \subsubsection{Setting Paper Sizes}
% \begin{macrocode}
\if@compatibility\else
\DeclareOption{a4paper}
{\setlength\paperheight {297mm}%
\setlength\paperwidth {210mm}}
\DeclareOption{a5paper}
{\setlength\paperheight {210mm}%
\setlength\paperwidth {148mm}}
\DeclareOption{b5paper}
{\setlength\paperheight {250mm}%
\setlength\paperwidth {176mm}}
\DeclareOption{letterpaper}
{\setlength\paperheight {11in}%
\setlength\paperwidth {8.5in}}
\DeclareOption{legalpaper}
{\setlength\paperheight {14in}%
\setlength\paperwidth {8.5in}}
\DeclareOption{executivepaper}
{\setlength\paperheight {10.5in}%
\setlength\paperwidth {7.25in}}
\DeclareOption{landscape}
{\setlength\@tempdima {\paperheight}%
\setlength\paperheight {\paperwidth}%
\setlength\paperwidth {\@tempdima}}
\fi
% \end{macrocode}
% \subsubsection{Choosing the type size}
% For compatibility mode, the default font size is changed to 12~points.
% (For \LaTeXe, this change is implemented later.)
% \NonMacro{Default font size}
%
% Also, for each size option, |\dbl@spread| is redefined to store the line
% spread applicable to that size.
% \begin{macrocode}
\if@compatibility
\renewcommand\@ptsize{2}
\else
\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
\fi
\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
% \end{macrocode}
% \subsubsection{Two-side or one-side printing}
% \begin{macrocode}
\if@compatibility\else
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\fi
\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
% \end{macrocode}
% \subsubsection{Draft option}
% \begin{macrocode}
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\if@compatibility\else
\DeclareOption{final}{\setlength\overfullrule{0pt}}
\fi
% \end{macrocode}
% \subsubsection{Titlepage option}
% \begin{macrocode}
\DeclareOption{titlepage}{\@titlepagetrue}
\if@compatibility\else
\DeclareOption{notitlepage}{\@titlepagefalse}
\fi
% \end{macrocode}
% \subsubsection{Openright option}
% \begin{macrocode}
\if@compatibility
\else
\DeclareOption{openright}{\@openrighttrue}
\DeclareOption{openany}{\@openrightfalse}
\fi
% \end{macrocode}
% \subsubsection{Two-column printing}
% \begin{macrocode}
\if@compatibility\else
\DeclareOption{onecolumn}{\@twocolumnfalse}
\fi
\DeclareOption{twocolumn}{\@twocolumntrue}
% \end{macrocode}
% \subsubsection{Equation numbering}
% \begin{macrocode}
\DeclareOption{leqno}{\input{leqno.clo}}
\DeclareOption{fleqn}{\input{fleqn.clo}}
% \end{macrocode}
% \subsubsection{Open Bibliography}
% \begin{macrocode}
\DeclareOption{openbib}{%
\AtEndOfPackage{%
\renewcommand\@openbib@code{%
\advance\leftmargin\bibindent
\itemindent -\bibindent
\listparindent \itemindent
\parsep \z@
}%
\renewcommand\newblock{\par}}%
}
% \end{macrocode}
% \subsubsection{\FCE specific options}
% The \textsf{phd} option switches on |\if@phd| which will alter the title
% page generated. The \textsf{ownbib} option specifices the \textsf{chicago}
% \BibTeX{} style should not be used. The \textsf{single} option typesets
% the thesis in single space, and similarly for \textsf{double} and
% \textsf{onehalf}
% \begin{macrocode}
\DeclareOption{phd}{\@phdtrue}
\DeclareOption{ownbib}{\@chicagofalse}
\DeclareOption{single}{\renewcommand\@spacing{\singlespace}}
\DeclareOption{double}{\renewcommand\@spacing{\doublespace}}
\DeclareOption{onehalf}{\renewcommand\@spacing{\onehalfspace}}
% \end{macrocode}
% \subsection{Executing Options}
% For non-compatibility mode, the default options are changed to \textsf{12pt}
% (12 point type) and \textsf{a4paper}.\NonMacro{Default font and paper size}
% \begin{macrocode}
\ExecuteOptions{a4paper,12pt,oneside,onecolumn,final,openany,double}
\ProcessOptions
\input{size1\@ptsize.clo}
% \end{macrocode}
% \subsection{Loading Packages}
% The \FCE{} class loads three packages: \textsf{geometry} for setting margins,
% \textsf{doublespace} for line spacing,
% and \textsf{chicago} for referencing (unless the \textsf{ownbib} option
% is specified).\NonMacro{geometry, chicago}
%
% Because the \textsf{chicago} style is designed to be loaded \emph{after}
% the class, its entry occurs later.
% \begin{macrocode}
\IfFileExists{geometry.sty}%
{\RequirePackage[hmargin=3cm,vmargin=3cm,includemp=false]{geometry}}%
{\ClassError{\filename}{geometry package was not found.}%
{The geometry package is used to set the margins for this\MessageBreak
\space class. You can download this package from CTAN.}}
\IfFileExists{doublespace.sty}%
{\RequirePackage{doublespace}}%
{\ClassError{\filename}{doublespace package was not found.}%
{The doublespace package is used to set line spacing for this\MessageBreak
\space class. You can download this package from CTAN.}}
% \end{macrocode}
% \subsection{Document Layout}
% \subsubsection{Fonts}
% There are current no new code for this section.
% \subsubsection{Paragraphing}
% \begin{macrocode}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
\setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty 51
\@medpenalty 151
\@highpenalty 301
% \end{macrocode}
% \begin{macro}{\clubpenalty}\begin{macro}{\widowpenalty}
% The penalties are used to eliminate widow and orphan lines, from Michael
% Downes\footnote{\texttt{comp.text.tex}: 31 Aug 1998}.
% \end{macro}\end{macro}
% \begin{macrocode}
\widowpenalty 9999
\clubpenalty 9996
% \end{macrocode}
% \begin{macro}{\displaywidowpenalty}\begin{macro}{\predisplaypenalty}
% \begin{macro}{\postdisplaypenalty}
% Discourage widows in front of a displayed equation and forbid breaking
% directly in front of a display. Discourage break
% after a display without a penalty.
% \begin{macrocode}
\displaywidowpenalty 1602
\predisplaypenalty 10000
\postdisplaypenalty 1549
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}
% \begin{macro}{\brokenpenalty}
% Discourage page break after a hyphenated line.
% \begin{macrocode}
\brokenpenalty 4991
% \end{macrocode}
% \end{macro}
% \subsubsection{Float placement parameters}
% \begin{macro}{\c@topnumber}\begin{macro}{\c@bottomnumber}
% \begin{macro}{\c@totalnumber}\begin{macro}{\c@dbltopnumber}
% \begin{macro}{\topfraction}\begin{macro}{\bottomfraction}
% \begin{macro}{\textfraction}\begin{macro}{\floatpagefraction}
% \begin{macro}{\dbltopfraction}\begin{macro}{\dblfloatpagefraction}
% Increased the number of floats that could appear on any one page, at any
% position. Modifies the fractions of a page occupied by floats to reduce
% problems, from David Aresnau\footnote{\texttt{comp.text.tex}: 17 Nov 1997}.
% \begin{macrocode}
\setcounter{topnumber}{9}
\renewcommand\topfraction{.85}
\setcounter{bottomnumber}{9}
\renewcommand\bottomfraction{.7}
\setcounter{totalnumber}{20}
\renewcommand\textfraction{.15}
\renewcommand\floatpagefraction{.66}
\setcounter{dbltopnumber}{9}
\renewcommand\dbltopfraction{.66}
\renewcommand\dblfloatpagefraction{.66}
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}\end{macro}
% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
% \subsubsection{Page Styles}
% The \texttt{headings} and \texttt{myheadings} page styles are removed.
% This is replaced with \texttt{turabian}, which places the page numbers centred
% at the top for the main matter, and mimicks \texttt{plain} for the front
% matter \Turabian{1.4}.
% \begin{macrocode}
\def\ps@turabian{%
\if@mainmatter{%
\let\@oddfoot\@empty\let\@evenfoot\@empty
\def\@evenhead{\reset@font\hfil\thepage\hfil}%
\let\@evenfoot\@evenhead
}\else{%
\ps@plain
}\fi
}
% \end{macrocode}
% \subsection{Document Markup}
% \subsubsection{The title}
% \begin{macro}{\school}\begin{macro}{\award}
% In addition to the standard \LaTeX{} macros |\title|, |\author| and |\date|,
% \FCE{} defines |\school| and |\award| to store the school (or department)
% that oversees the thesis, as well as the award for which the thesis is
% required.
% \begin{macrocode}
\def\school#1{\gdef\@school{#1}}
\def\@school{\@latex@error{No \noexpand\school given}\@ehc}
\def\award#1{\gdef\@award{#1}}
\def\@award{\@latex@error{No \noexpand\award given}\@ehc}
% \end{macrocode}
% \end{macro}\end{macro}
% \begin{macro}{\@maketitle}\begin{macro}{\maketitle}
% If a separate title page is made, the formatting of the title page depends
% on the whether the award is for an Honours degree, or a PhD. By default,
% the Honours style is used, but that can be changed by using the \textsf{phd}
% option. The formatting is set through the |\@maketitle| macro.
%
% \begin{macrocode}
\if@titlepage
\if@phd
\newcommand\@maketitle{%
\begin{center}%
\textsc{A thesis submitted for the degree of \\
\expandafter{\@award}}
\end{center}%
\vfill%
\begin{center}%
{\normalsize By\\\@author}\\%
\end{center}%
\vfill%
\begin{center}%
{\normalsize \expandafter{\@school},\\
Faculty of Commerce and Economics,\\
University of New South Wales.}
\vskip1cm%
{\normalsize \@date}\\%
\end{center}%
}\else
\newcommand\@maketitle{%
\begin{center}%
{\normalsize \@author}\\%
\end{center}%
\vskip1cm
\begin{center}%
{\normalsize \expandafter{\@school},\\
Faculty of Commerce and Economics,\\
University of New South Wales.}
\vskip1cm%
{\normalsize \@date}\\%
\end{center}%
\vfill
\begin{center}%
\textsc{Submitted in partial fulfillment of the requirements of the
degree of \\
\expandafter{\@award}}
\end{center}%
}\fi
\else
\newcommand\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\fi
\if@titlepage
\newcommand\maketitle{\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\null\vskip 2.5cm
\begin{center}%
{\LARGE\expandafter{\@title}}%
\vfill%
\end{center}%
\@maketitle
\@thanks
\vfil\null
\end{titlepage}%
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\@school\@empty
\global\let\@award\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\school\relax
\global\let\award\relax
\global\let\and\relax
}
\else
\newcommand\maketitle{\par
\begingroup
\@spacing
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
\long\def\@makefntext##1{\parindent 1em\noindent
\hb@xt@1.8em{%
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@ % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\singlespace
\endgroup
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
}
\fi
% \end{macrocode}
% \end{macro}\end{macro}
% \subsubsection{Chapters and Sections}
% \begin{macrocode}
\newcommand*\chaptermark[1]{}
\setcounter{secnumdepth}{2}
\newcounter {part}
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\renewcommand \thepart {\@Roman\c@part}
\renewcommand \thechapter {\@arabic\c@chapter}
\renewcommand \thesection {\thechapter.\@arabic\c@section}
\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}
\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}
\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
\newcommand\@chapapp{\chaptername}
% \end{macrocode}
% \begin{macro}{\frontmatter}\begin{macro}{\mainmatter}
% \begin{macro}{\backmatter}
% These are transferred from the \textsf{book} class.
% \begin{macrocode}
\newcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
\pagenumbering{roman}}
\newcommand\mainmatter{%
\cleardoublepage
\@mainmattertrue
\pagenumbering{arabic}\pagestyle{turabian}}
\newcommand\backmatter{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\@mainmatterfalse}
\newcommand\part{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\thispagestyle{plain}%
\if@twocolumn
\onecolumn
\@tempswatrue
\else
\@tempswafalse
\fi
\null\vfil
\secdef\@part\@spart}
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}
% \begin{macro}{\@part}\begin{macro}{\@spart}
% Although Turabian does not specify how the part title pages are formatted,
% |\@part| and |\@spart| are redefined to give the part title pages a
% consistent look.
% \begin{macrocode}
\def\@part[#1]#2{%
\thispagestyle{empty}
\@spacing
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\partname~\thepart.\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\scshape \partname~\thepart
\par
\vskip 20\p@
\fi
\huge \scshape #2\par}%
\@endpart}
\def\@spart#1{%
\thispagestyle{empty}
\@spacing
{\centering
\interlinepenalty \@M
\normalfont
\huge \scshape #1\par}%
\@endpart}
% \end{macrocode}
% \end{macro}\end{macro}
% \begin{macrocode}
\def\@endpart{\vfil\singlespace\newpage
\if@twoside
\null
\thispagestyle{empty}%
\newpage
\fi
\if@tempswa
\twocolumn
\fi\@spacing}
\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
% \end{macrocode}
% \begin{macro}{\@chapter}
% Because we now have |\if@mainmatter|, we redefine |\@chapter|
% from the \textsf{book} class.
% \begin{macrocode}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@makechapterhead}\begin{macro}{\@makeschapterhead}
% |\@makechapterhead| and |\@makeschapterhead| (below) are redefined in
% accordance with Turabian \Turabian{1.36}. Also, |\if@mainmatter| is
% transferred from the \textsf{book} class.
% \begin{macrocode}
\def\@makechapterhead#1{%
\vspace*{10\p@}%
{\parindent \z@ \centering \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\LARGE\scshape \@chapapp\space \thechapter
\par\nobreak
\vskip 8\p@
\fi
\fi
\interlinepenalty\@M
\LARGE \scshape #1\par\nobreak
\vskip 10\p@
}}
\def\@schapter#1{\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}]%
\else
\@makeschapterhead{#1}%
\@afterheading
\fi}
\def\@makeschapterhead#1{%
\vspace*{10\p@}%
{\parindent \z@ \centering
\normalfont
\interlinepenalty\@M
\LARGE \scshape #1\par\nobreak
\vskip 10\p@
}}
% \end{macrocode}
% \end{macro}\end{macro}
% \begin{macro}{\section}\begin{macro}{\subsection}\begin{macro}{\subsubsection}
% \begin{macro}{\paragraph}\begin{macro}{\subparagraph}
% The subheadings that use the generic |\@startsection| macro are redefined
% to reflect Turabian \Turabian{1.37, 14.4}.
% \begin{macrocode}
\newcommand\section{\@startsection {section}{1}{\z@}%
{1.5ex \@plus 1ex \@minus .2ex}%
{0.8ex \@plus.2ex}%
{\normalfont\Large\centering\bfseries}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
{1.2ex\@plus .5ex \@minus 2ex}%
{.5ex \@plus .1ex}%
{\normalfont\large\centering}}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{1.0ex\@plus .5ex \@minus .2ex}%
{0.3ex \@plus .1ex}%
{\normalfont\normalsize\bfseries\itshape\raggedright}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{1.0ex \@plus .5ex \@minus .2ex}%
{0.3ex \@plus .1ex}%
{\normalfont\normalsize\raggedright}}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\normalfont\normalsize\itshape}}
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
% \subsubsection{Lists}
% \begin{macrocode}
\if@twocolumn
\setlength\leftmargini {2em}
\else
\setlength\leftmargini {2.5em}
\fi
\leftmargin \leftmargini
\setlength\leftmarginii {2.2em}
\setlength\leftmarginiii {1.87em}
\setlength\leftmarginiv {1.7em}
\if@twocolumn
\setlength\leftmarginv {.5em}
\setlength\leftmarginvi {.5em}
\else
\setlength\leftmarginv {1em}
\setlength\leftmarginvi {1em}
\fi
\setlength \labelsep {.5em}
\setlength \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
\renewcommand\theenumi{\@arabic\c@enumi}
\renewcommand\theenumii{\@alph\c@enumii}
\renewcommand\theenumiii{\@roman\c@enumiii}
\renewcommand\theenumiv{\@Alph\c@enumiv}
\newcommand\labelenumi{\theenumi.}
\newcommand\labelenumii{(\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}
\newcommand\labelitemi{\textbullet}
\newcommand\labelitemii{\normalfont\bfseries \textendash}
\newcommand\labelitemiii{\textasteriskcentered}
\newcommand\labelitemiv{\textperiodcentered}
\newenvironment{description}
{\list{}{\labelwidth\z@ \itemindent-\leftmargin
\let\makelabel\descriptionlabel}}
{\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
\normalfont\bfseries #1}
% \end{macrocode}
% \subsubsection{Defining New Environments}
% \begin{environment}{abstract}
% The abstract formatting has been changed to be consistent with those of
% chapters.
% \begin{macrocode}
\if@titlepage
\newenvironment{abstract}{%
\titlepage
\null\vfil
\@beginparpenalty\@lowpenalty
\begin{center}%
\LARGE\scshape \abstractname
\@endparpenalty\@M
\end{center}}%
{\par\vfil\null\endtitlepage}
\else
\newenvironment{abstract}{%
\if@twocolumn
\section*{\abstractname}%
\else
\small
\begin{center}%
{\LARGE\scshape \abstractname\vspace{-.5em}\vspace{\z@}}%
\end{center}%
\quotation
\fi}
{\if@twocolumn\else\endquotation\fi}
\fi
% \end{macrocode}
% \end{environment}
% \begin{environment}{verse}\begin{environment}{quote}
% \begin{environment}{quotation}
% These enviroments have been single-spaced \Turabian{5.6, 5.4}.
% \begin{macrocode}
\newenvironment{verse}
{\singlespace\let\\\@centercr
\list{}{\itemsep \z@
\itemindent -1.5em%
\listparindent\itemindent
\rightmargin \leftmargin
\advance\leftmargin 1.5em}%
\item\relax}
{\endlist\endsinglespace}
\newenvironment{quotation}
{\singlespace\list{}{\listparindent 1.5em%
\itemindent \listparindent
\rightmargin \leftmargin
\parsep \z@ \@plus\p@}%
\item\relax}
{\endlist\endsinglespace}
\newenvironment{quote}
{\singlespace\list{}{\rightmargin\leftmargin}%
\item\relax}
{\endlist\endsinglespace}
% \end{macrocode}
% \end{environment}\end{environment}\end{environment}
% \begin{environment}{titlepage}
% The title is now numbered page i, not page 0, as per Turabian \Turabian{1.7}.
% \begin{macrocode}
\if@compatibility
\newenvironment{titlepage}
{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}%
\setcounter{page}\@ne
}%
{\if@restonecol\twocolumn \else \newpage \fi
}
\else
\newenvironment{titlepage}
{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}%
}%
{\if@restonecol\twocolumn \else \newpage \fi
}
\fi
\newcommand\appendix{\par
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\renewcommand\@chapapp{\appendixname}%
\renewcommand\thechapter{\@Alph\c@chapter}}
% \end{macrocode}
% \end{environment}
% \subsubsection{Parameters for Existing Environments}
% \begin{macrocode}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
\skip\@mpfootins = \skip\footins
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
\@addtoreset {equation}{chapter}
\renewcommand\theequation
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation}
% \end{macrocode}
% \subsubsection{Floating Objects}
% \begin{macrocode}
\newcounter{figure}[chapter]
\renewcommand \thefigure
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename~\thefigure}
\newenvironment{figure}
{\@float{figure}}
{\end@float}
\newenvironment{figure*}
{\@dblfloat{figure}}
{\end@dblfloat}
\newcounter{table}[chapter]
\renewcommand \thetable
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tablename~\thetable}
\newenvironment{table}
{\@float{table}}
{\end@float}
\newenvironment{table*}
{\@dblfloat{table}}
{\end@dblfloat}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\sbox\@tempboxa{#1: #2}%
\ifdim \wd\@tempboxa >\hsize
#1: #2\par
\else
\global \@minipagefalse
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}
% \end{macrocode}
% \subsubsection{Font Changing}
% \begin{macrocode}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
% \end{macrocode}
% \subsection{Cross Referencing}
% \subsubsection{Table of Contents,~etc.}
% \begin{macrocode}
\newcommand\@pnumwidth{1.55em}
\newcommand\@tocrmarg{2.55em}
\newcommand\@dotsep{4.5}
\setcounter{tocdepth}{2}
\newcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
% \end{macrocode}
% \begin{macro}{\l@part}\begin{macro}{\l@chapter}
% The table of contents formatting entries for part and chapter are modified
% to be consistent with Turabian \Turabian{11.13, 14.19}. Page numbers are
% not displayed for parts, and a dotted leader has been added in front of
% page numbers for chapters.
% \begin{macrocode}
\newcommand*\l@part[2]{%
\ifnum \c@tocdepth >-2\relax
\addpenalty{-\@highpenalty}%
\addvspace{2.25em \@plus\p@}%
\begingroup
\parindent \z@
{\leavevmode
\hfil \large \scshape #1\hfill}\par
\nobreak
\global\@nobreaktrue
\everypar{\global\@nobreakfalse\everypar{}}%
\endgroup
\fi}
\newcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \scshape
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\normalfont\nobreak\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
% \end{macrocode}
% \end{macro}\end{macro}
% \begin{macrocode}
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
\newcommand\listoffigures{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\listfigurename
\@mkboth{\MakeUppercase\listfigurename}%
{\MakeUppercase\listfigurename}}%
\@starttoc{lof}%
\if@restonecol\twocolumn\fi
}
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand\listoftables{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\listtablename
\@mkboth{%
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}%
\@starttoc{lot}%
\if@restonecol\twocolumn\fi
}
\let\l@table\l@figure
% \end{macrocode}
% \subsubsection{Bibliography}
% \begin{macrocode}
\newdimen\bibindent
\setlength\bibindent{1.5em}
\newenvironment{thebibliography}[1]
{\chapter*{\bibname
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
% \end{macrocode}
% \subsubsection{Index}
% \begin{macrocode}
\newenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\columnseprule \z@
\columnsep 35\p@
\twocolumn[\@makeschapterhead{\indexname}]%
\@mkboth{\MakeUppercase\indexname}%
{\MakeUppercase\indexname}%
\thispagestyle{plain}\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\let\item\@idxitem}
{\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
% \end{macrocode}
% \subsubsection{Footnotes}
% An improvement to be made here is to single-space footnotes.
% \begin{macrocode}
\renewcommand\footnoterule{%
\kern-3\p@
\hrule\@width.4\columnwidth
\kern2.6\p@}
\@addtoreset{footnote}{chapter}
\newcommand\@makefntext[1]{%
\parindent 1em%
\noindent
\hb@xt@1.8em{\hss\@makefnmark}#1}
% \end{macrocode}
% \subsection{Initialisation}
% In accordance with Turabian, the name of the bibliography has been
% changed to ``References''.
%
% In addition, the date format has been changed in accordance to the
% Australian system.
% \begin{macrocode}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
\newcommand\bibname{References}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
\newcommand\chaptername{Chapter}
\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\def\today{\number\day\space\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\year}
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
\pagestyle{plain}
\pagenumbering{arabic}
\if@twoside
\else
\raggedbottom
\fi
\if@twocolumn
\twocolumn
\sloppy
\flushbottom
\else
\onecolumn
\fi
\if@chicago\IfFileExists{chicago.sty}%
{\RequirePackage{chicago}}%
{\ClassError{\filename}{chicago package was not found.}%
{The geometry package is used to control the appearance of\MessageBreak
\space the bibliography. You can download this package from\MessageBreak
\space CTAN. You can also specify the ownbib option if \MessageBreak
\space do not want to use it.}}\fi
\@spacing
\endinput
% \end{macrocode}
% \ifmulticols\addtocontents{toc}{\protect\end{multicols}}\fi
% \Finale \PrintIndex \PrintChanges
%%
%% This file will generate fast loadable files and documentation
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
%%
%% --------------- start of docstrip commands ------------------
%%
\input docstrip.tex % ignored in distribution
\preamble
This is a generated file.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
\endpreamble
\keepsilent
\usedir{tex/latex/fce-thesis}
\generateFile{fce-thesis.cls}{t}{\from{fce-thesis.dtx}{package}}
\Msg{***********************************************************}
\Msg{\space}
\Msg{To finish the installation you have to move the following}
\Msg{file into a directory searched by TeX:}
\Msg{\space}
\Msg{\space\space fce-thesis.cls}
\Msg{\space}
\Msg{To produce the documentation run `fce-thesis.dtx' through LaTeX.}
\Msg{\space}
\Msg{***********************************************************}
\endinput
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment