diff options
Diffstat (limited to 'tex/thesis/usydthesis.cls')
-rw-r--r-- | tex/thesis/usydthesis.cls | 387 |
1 files changed, 387 insertions, 0 deletions
diff --git a/tex/thesis/usydthesis.cls b/tex/thesis/usydthesis.cls new file mode 100644 index 0000000..e18eb53 --- /dev/null +++ b/tex/thesis/usydthesis.cls @@ -0,0 +1,387 @@ +% LaTeX2e thesis style. by David Symonds, 2003 +% +% This LaTeX style file is for a University of Sydney thesis. +% +% (based on a style file by Andrew Mathas) + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{usydthesis} + +\include{config} + +% options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsart}} + +\ProcessOptions +\LoadClass[a4paper,oneside,11pt,reqno]{amsbook} + +\hfuzz=4pt +\vfuzz=4pt + +% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% for the University crest +\usepackage{epsfig} +\usepackage{graphicx} + +% cross-references +\usepackage{style/prettyref} + +% Maths and algorithms +\usepackage{amssymb,amsmath} +\newcommand{\theHalgorithm}{\arabic{algorithm}} +\usepackage[ruled]{algorithm} +\usepackage{algorithmic} + +% Fancy footnotes +\usepackage[stable]{style/footmisc} + +% times fonts look better +\usepackage{times} +\usepackage[T1]{fontenc} +\usepackage{textcomp} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% we now change a few things in the standard amsbook setup + +% sections are numbered within the chapters +\numberwithin{section}{chapter} +\numberwithin{equation}{chapter} + +\def\chapter{% + \cleardoublepage + \thispagestyle{plain}\global\@topnum\z@ + \@afterindenttrue \secdef\@chapter\@schapter} +\def\pagechapter{% + \clearpage + \thispagestyle{plain}\global\@topnum\z@ + \@afterindenttrue \secdef\@chapter\@schapter} + +% section numbers in appendices shouldn't have a dot in them +% \def\appendix{\par +% \c@chapter\z@ \c@section\z@ +% \let\chaptername\appendixname +% \def\thechapter{\@Alph\c@chapter} +% \renewcommand\thesection{\thechapter{}\arabic{section}} +% } + +%%put dotfill in toc entries and make chapter entries bold +\def\contentsname{\normalfont\scshape{Contents}} +\def\@tocline#1#2#3#4#5#6#7{\relax +\ifnum #1>\c@tocdepth % then omit +\else + \par \addpenalty\@secpenalty\addvspace{#2}% + \begingroup \hyphenpenalty\@M + \@ifempty{#4}{% + \@tempdima\csname r@tocindent\number#1\endcsname\relax + }{% + \@tempdima#4\relax + }% + \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax + \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth + {#5\leavevmode\hskip-\@tempdima #6}\nobreak\relax + \ifnum #1>0 % only dot for entries below chapter level + \dotfill\hbox to\@pnumwidth{\@tocpagenum{#5{#7}}}\par + \else + \hfill\hbox to\@pnumwidth{\@tocpagenum{#5{#7}}}\par + \fi + \nobreak + \endgroup +\fi +} +\def\l@chapter{\@tocline{0}{8pt plus1pt}{0pt}{}{\bfseries}} +\def\l@subsection{\@tocline{2}{0pt}{30pt}{}{}} +% tocline parameters: +% 1: depth (0=chapter, 1=section, etc.) +% 2: spacing above +% 3: indent +% 4: ? +% 5: font modifier +% 6: TOC entry +% 7: page number + +% chapter at top of chapters should be \sc rather than in capitals +\def\@makechapterhead#1{\global\topskip 7.5pc\relax + \begingroup + \fontsize{\@xivpt}{18}\bfseries\centering + \ifnum\c@secnumdepth>\m@ne + \leavevmode \hskip-\leftskip + \rlap{\vbox to\z@{\vss + \centerline{\normalsize\mdseries + \@xp{\scshape\chaptername}\enspace\thechapter} + \vskip 3pc}}\hskip\leftskip\fi + #1\par \endgroup + \vskip 2pt \hrulefill + \skip@34\p@ \advance\skip@-\normalbaselineskip + \vskip\skip@ } + +% the standard amsbook headings are not very good %%%% +\def\partrunhead#1#2#3{% + \@ifnotempty{#2}{\ignorespaces#1 #2\unskip\@ifnotempty{#3}{ }}% + \textsc{#3} +} + +\let\chapterrunhead\partrunhead +\let\sectionrunhead\partrunhead + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% date on title page of thesis +\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} + +\def\@sid#1{\textsc{sid}: #1} +\def\@supervisor#1{Supervisor: #1} +\def\@assocsupervisor#1{Associate Supervisor: #1} + +% thesis title page +\def\@maketitle{ + \cleardoublepage\thispagestyle{empty}% + \begingroup \topskip\z@skip + \null\vfil + \begingroup + \LARGE\bfseries \centering + \openup\medskipamount + \@title\par\vspace{30pt}% + \centering\mdseries{\sc \authors}\par + \centering\@sid{\sid}\par\bigskip + \endgroup + \vfil + \begin{center} + \vfil + \fontsize{12}{12} + \centering\@supervisor{\supervisor} + \@ifundefined{assocsupervisor}{} { + \\ \centering\@assocsupervisor{\assocsupervisor} + } + \par\bigskip + This thesis is submitted in partial fulfillment of\\ + the requirements for the degree of\\ + \degree + \vfil + {\department\\ + The University of Sydney\\ + Australia}\\ + \vfil + \Today + \vskip50mm + \includegraphics[width=102mm]{usyd-primary-colour}\\ + \end{center} + \endgroup + %\cleardoublepage + \newpage +} + +% insert page break after tableofcontents +\def\tableofcontents{% + \@starttoc{toc}\contentsname\newpage +} + +% control spacing in the bibliograph and fix up the toc entry +\def\thebibliography#1{ + \c@chapter\z@ \c@section\z@\let\chaptername\relax + \chapter*{References} +\singlespace + \list + {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep 11pt \parsep\z@\topsep\z@\parskip\z@ + \usecounter{enumi}} + \def\newblock{\hskip .11em plus .33em minus .07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax +} + +\def\@lbibitem[#1]#2{\item[]\hspace{-\parindent}\if@filesw + { \def\protect##1{\string ##1\space}\immediate + \write\@auxout{\string\bibcite{#2}{#1}}\fi\ignorespaces}} + +\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout + {\string\bibcite{#1}{\the\c@enumi}}\fi\ignorespaces} + +% Maybe some people do not want subsection headings indented +%\def\subsection{\@startsection{subsection}{2}% +% \z@{0.7\linespacing}{.5\linespacing}% +% {\normalfont\bfseries}} + +\def\section{\@startsection {section}{1}{\z@}{-2.0ex plus + -0.5ex minus -.2ex}{1.5ex plus 0.3ex minus .2ex}{\Large\bf\raggedright}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-1.8ex plus + -0.5ex minus -.2ex}{0.8ex plus .2ex}{\large\bf\raggedright}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{1.5ex plus + 0.5ex minus .2ex}{0.5ex plus .2ex}{\normalsize\bf\raggedright}} +\def\paragraph{\@startsection{paragraph}{4}{\z@}{1.5ex plus + 0.5ex minus .2ex}{-1em}{\normalsize\bf}} +\def\subparagraph{\@startsection{subparagraph}{5}{\parindent}{1.5ex plus + 0.5ex minus .2ex}{-1em}{\normalsize\bf}} + +% global macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Use "... \LaTeX{} ..." when mentioning LaTeX +\input texnames.sty + +% Paragraphs should not have their initial line indented, but instead we want +% a blank line between paragraphs. We do not want this for some stuff, so use +% the "\setupParagraphs" command just before the first chapter +\newcommand{\setupParagraphs}{ + \setlength{\parindent}{0cm} + \addtolength{\parskip}{0.5\baselineskip} +} + +% change the default labels for enumerate +%\renewcommand{\labelenumi}{\alph{enumi})} +%\renewcommand{\labelenumii}{(\roman{enumii})} + +% Algorithms should be numbered 'A', 'B', etc. +%\renewcommand{\thealgorithm}{\Alph{algorithm}} + +% Figures should be numbered globally +\renewcommand{\thefigure}{\thechapter.\arabic{figure}} +\renewcommand{\thetable}{\thechapter.\arabic{table}} + +\renewcommand{\theequation}{\thechapter.\arabic{equation}} + + +% some utilities +\newcommand*{\marginnote}[1] + {\mbox{}\marginpar{$\leftarrow$ \small #1}\ignorespaces} +\newcommand{\attention}[1][\attentionsymbol] + {\mbox{}\marginpar{\raggedright #1}} +\newcommand*{\attentionsymbol}{$\leftarrow$ \large\bfseries !} + +% maths stuff +\newtheorem{lemma}{Lemma} +\newcommand{\sd}[2]{#1 \triangle #2} + +\newcommand{\data}[1]{\texttt{#1}} + +\newcommand{\seesec}[1]{(see \Sec{#1})} +\newcommand{\seefig}[1]{(see \Fig{#1})} +\newcommand{\seeapp}[1]{(see \App{#1})} +\newcommand{\seetab}[1]{(see \Tab{#1})} + +\def\Sec#1{Section~\ref{#1}} +\def\Fig#1{Figure~\ref{#1}} +\def\Eqn#1{Equation~\ref{#1}} +\def\App#1{Appendix~\ref{#1}} +\def\sec#1{section~\ref{#1}} +\def\fig#1{figure~\ref{#1}} +\def\eqn#1{equation~\ref{#1}} +\def\Tab#1{Table~\ref{#1}} +\def\tab#1{table~\ref{#1}} + +\newcommand{\NB}{N.B.\@\xspace} +\newcommand{\eg}{e.g.} +\newcommand{\Eg}{E.g.} +\newcommand{\ie}{i.e.} +\newcommand{\Ie}{I.e.} +\newcommand{\etc}{etc.} +\newcommand{\etal}{{\em et al}.} +\newcommand{\etseq}{{\em et seq}.} +\newcommand{\precis}{pr\'ecis} +\newcommand{\Precis}{Pr\'ecis} +\newcommand{\role}{r\^ole} +\newcommand{\Role}{R\^ole} +\newcommand{\tm}{\raisebox{1ex}{\tiny TM}} +\newcommand{\cpright}{\raisebox{1ex}{\tiny\copyright}} +\newcommand{\degrees}{\raisebox{1.2ex}{\tiny\ensuremath{\circ}}} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% remove final '.' from section numbers (text) +% short title in TOC +\def\@sect#1#2#3#4#5#6[#7]#8{% + \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}% + \ifnum #2>\c@secnumdepth \let\@secnumber\@empty + \else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi + \@tempskipa #5\relax + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \edef\@secnumpunct{% + \ifdim\@tempskipa>\z@ % not a run-in section heading + \@ifnotempty{#8}{\@nx\enspace}% + \else \@nx\enspace + \fi + }% + \protected@edef\@svsec{% + \ifnum#2<\@m + \@ifundefined{#1name}{}{% + \ignorespaces\csname #1name\endcsname\space + }% + \fi + \@seccntformat{#1}% + }% + \fi + \ifdim \@tempskipa>\z@ % then this is not a run-in section heading + \begingroup #6\relax + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}% + \endgroup + \csname #1mark\endcsname{#7}% + \ifnum#2>\@m \else \@tocwrite{#1}{#7}\fi + \else + \def\@svsechd{#6\hskip #3\@svsec + \@ifnotempty{#8}{\ignorespaces#8\unskip + \@addpunct.}% + \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi + }% + \fi + \global\@nobreaktrue + \@xsect{#5}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% remove '.' after section number (TOC) +\renewcommand{\tocsection}[3]{% + \indentlabel{\@ifnotempty{#2}{\ignorespaces#1 #2\quad}}#3} +\let\tocsubsection\tocsection +\let\tocsubsubsection\tocsection +\let\l@paragraph\l@subsubsection +\let\tocparagraph\tocsection +\let\l@subparagraph\l@subsubsection +\let\tocsubparagraph\tocsection +\let\tocpart\tocsection +\let\tocchapter\tocsection +\renewcommand{\tocappendix}[3]{% + \indentlabel{#1\@ifnotempty{#2}{ #2}\quad}#3} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% table and figure captions use ':' not '.' +\long\def\@makecaption#1#2{% + \setbox\@tempboxa\vbox{\color@setgroup + \advance\hsize-2\captionindent\noindent + \@captionfont\@captionheadfont#1\@xp\@ifnotempty\@xp + {\@cdr#2\@nil}{:\@captionfont\upshape\enspace#2}% + \unskip\kern-2\captionindent\par + \global\setbox\@ne\lastbox\color@endgroup}% + \ifhbox\@ne % the normal case + \setbox\@ne\hbox{\unhbox\@ne\unskip\unskip\unpenalty\unkern}% + \fi + \ifdim\wd\@tempboxa=\z@ % this means caption will fit on one line + \setbox\@ne\hbox to\columnwidth{\hss\kern-2\captionindent\box\@ne\hss}% + \else % tempboxa contained more than one line + \setbox\@ne\vbox{\unvbox\@tempboxa\parskip\z@skip + \noindent\unhbox\@ne\advance\hsize-2\captionindent\par}% + \fi + \ifnum\@tempcnta<64 % if the float IS a figure... + \addvspace\abovecaptionskip + \hbox to\hsize{\kern\captionindent\box\@ne\hss}% + \else % if the float IS NOT a figure... + \addvspace\abovecaptionskip + \hbox to\hsize{\kern\captionindent\box\@ne\hss}% + \nobreak + \vskip\belowcaptionskip + \fi +\relax +} + + +\endinput |