diff options
author | Aria <me@aria.rip> | 2023-09-25 16:16:21 +0100 |
---|---|---|
committer | Aria <me@aria.rip> | 2023-09-25 16:16:21 +0100 |
commit | 747029c9313f5b79d0ef19f9cddee79ae555dcdc (patch) | |
tree | 34aa451e4aef34a0485f24fad7e5db27aa1a5327 /thesis/infthesis.cls |
setup thesis template
Diffstat (limited to 'thesis/infthesis.cls')
-rw-r--r-- | thesis/infthesis.cls | 698 |
1 files changed, 698 insertions, 0 deletions
diff --git a/thesis/infthesis.cls b/thesis/infthesis.cls new file mode 100644 index 0000000..57e660e --- /dev/null +++ b/thesis/infthesis.cls @@ -0,0 +1,698 @@ +%% +%% File : infthesis.cls (LaTeX2e class file) +%% Author : Version 3.8 by Sharon Goldwater <sgwater@inf.ed.ac.uk> +%% Version 3.7 updated by Jennifer Oxley <joxley@inf.ed.ac.uk> +%% Version 3.6 by Charles Sutton <csutton@inf.ed.ac.uk> +%% Version 3.5 by Vasilis Vasaitis <v.vasaitis@sms.ed.ac.uk> +%% Version 3.4.1 updated by Tiejun Ma (t.j.ma@ed.ac.uk) +%% Version 3.0 by Mary Ellen Foster <mef@cogsci.ed.ac.uk> +%% Original version by Martin Reddy (mxr@dcs.ed.ac.uk) +%% Version : 3.8 +%% Updates : 1.0 [9/11/95] - initial release. +%% 1.1 [24/4/96] - fixed bibliography bug caused by new report.cls +%% 1.2 [13/5/96] - \dedication & \thesiscaption[] +%% 1.3 [28/5/96] - abbrevs, parskip, minitoc fix, \headfootstyle +%% 1.4 [12/7/96] - appendices okay now, \cleardoublepage's added +%% 1.45 [6/8/96] - added space between chapter & numb on toc +%% 1.5 [13/8/96] - tailmargin was too small by 0.7cm!! +%% 2.0 [20/9/96] - \SetPrinter for margin settings (default=hp24) +%% no header, more abbreviations +%% 3.0 [16/10/2000] - Changed name and some formatting to become +%% "infthesis" instead +%% 3.1 [20/10/2000] - Added sans-serif running heads +%% Added pslatex by default (unless "cmfonts") +%% Added back in the code to create empty pages +%% on cleardoublepage (from titlesec.sty) +%% 3.2 [13/11/2000] - Changed name of font-setting commands +%% - Changed name of shield input file +%% 3.3 [23/11/2000] - Use the new and improved shield graphic +%% 3.4 [23/11/2000] - Political changes... also fixed a problem +%% with the margins on two-sided documents. +%% 3.4.1[09/03/2006] -add [a4paper] parameter for geometry package +%% 3.5 [02/02/2011] - fix double-sided margins with modern +%% versions of the geometry package +%% 3.6 [15/03/2012] - addition to support the MInf degree +%% 3.7 [07/02/2013] - fix MInf definition +%% 3.8 [06/06/2019] - added support for MSc degrees: +%% adi, datasci, di, cyber + + +%% This file contains a class definition, infthesis, for the LaTeX2e +%% system which defines the layout of theses which are submitted in +%% the School of Informatics at the University of Edinburgh. +%% +%% For information on this class, please refer to "texdoc infthesis" +%% + +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesClass{infthesis}[2013/02/07 v3.7 School of Informatics Thesis Class] + + +%% +%% --- Initial Code --- +%% + +%% Required packages: +%% - ifthen for conditionals +%% - geometry for margin-setting +%% - graphics for including the (scaled) logo on the front page +%% - xspace if abbreviations are used +\usepackage[paper=a4paper]{geometry} +\RequirePackage{ifthen,% + graphics,% + xspace, + eushield} + + +%%%% The following packages are also used but are included further on rather +%%%% than here, either because their options depend on the class options or +%%%% because they only need to be loaded in certain cases. +%% - parskip for alternate formatting of paragraphs +%% - tocbibind to put LOF and LOT into table of contents +%% - sectsty to change format of section headers +%% - caption to change format of captions +%% - pslatex to set default fonts (if they don't specify notimes) + +%% Default values for various fields +\newcommand{\@degreetext}{} +\newcommand{\@infschool}{School of Informatics} +\newcommand{\@university}{University of Edinburgh} +\newcommand{\@chapteralignment}{\centering} +\newcommand{\@chapterfont}{} +\newcommand{\@thesisside}{} +\newcommand{\@thesisopen}{} +\newcommand{\@thesispoints}{} +\newcommand{\@draftmessage}{} + +%% Lots of boolean things to keep track of options +\newboolean{draftthesis} +\newboolean{usequotemarks} +\newboolean{usesinglespacing} +\newboolean{usedoublespacing} +\newboolean{usefullspacing} +\newboolean{usedeptreport} +\newboolean{useabbrevs} +\newboolean{sansheadings} +\newboolean{ltoc} +\newboolean{romanpre} +\newboolean{logo} +\newboolean{frontabs} +\newboolean{strict} +\newboolean{timesfonts} + +%% Choose the monochrome crest for the front page (if crests used) +\shieldtype{0} + +%% +%% --- Options --- +%% +%% Current options: phd, mphil, msc, mscres, bsc +%% deptreport +%% draft +%% usequotes +%% singlespacing, doublespacing, fullspacing +%% cent{er,re}chapter, leftchapter, rightchapter, +%% + all report.cls options +%% + +%% Commands to set course and project (for 4th year -- too many possibilities +%% to use options). +\let\@course\@empty +\newcommand{\course}[1]{\gdef\@course{#1}} +\newcommand{\@project}{Fourth Year Project Report} +\newcommand{\project}[1]{\gdef\@project{#1}} + +%% Options to specify school and/or degree +% MSc degree: default is none specified +\let\@mscdegree\@empty +\DeclareOption{adi}{\gdef\@mscdegree{Advanced Design Informatics}} +\DeclareOption{ai}{\gdef\@mscdegree{Artificial Intelligence}} +\DeclareOption{cogsci}{\gdef\@mscdegree{Cognitive Science}} +\DeclareOption{cs}{\gdef\@mscdegree{Computer Science}} +\DeclareOption{cyber}{\gdef\@mscdegree{Cyber Security, Privacy and Trust}} +\DeclareOption{datasci}{\gdef\@mscdegree{Data Science}} +\DeclareOption{di}{\gdef\@mscdegree{Design Informatics}} +\DeclareOption{dsti}{\gdef\@mscdegree{Data Science, Technology, and Innovation}} +\DeclareOption{inf}{\gdef\@mscdegree{Informatics}} + +% Institute +\let\@institute\@empty +\DeclareOption{aiai}{\gdef\@institute{Artificial Intelligence +Applications Institute}} +\DeclareOption{cisa}{\gdef\@institute{Centre for Intelligent Systems +and their Applications}} +\DeclareOption{icsa}{\gdef\@institute{Institute of Computing Systems +Architecture}} +\DeclareOption{ianc}{\gdef\@institute{Institute for Adaptive and +Neural Computation}} +\DeclareOption{ilcc}{\gdef\@institute{Institute for Language, Cognition and +Computation}} +\DeclareOption{ipab}{\gdef\@institute{Institute of Perception, Action +and Behaviour}} +\DeclareOption{lfcs}{\gdef\@institute{Laboratory for Foundations of +Computer Science}} + +% Degree +\def\@researchdegree#1{% + \renewcommand{\@degreetext}{#1 \\ + \ifx\@empty\@institute + \PackageWarning{infthesis}{No institute specified for research + degree} + \else + \@institute \\ + \fi + \@infschool \\ \@university} + \setboolean{strict}{true}} +\DeclareOption{phdproposal}{\@researchdegree{PhD Proposal}} +\DeclareOption{phd}{\@researchdegree{Doctor of Philosophy}} +\DeclareOption{mphil}{\@researchdegree{Master of Philosophy}} +\DeclareOption{mscres}{\@researchdegree{Master of Science by Research}} + +\def\@taughtdegree#1#2{% + \renewcommand{\@degreetext}{#1 \\ + \ifx\@empty#2 + % \PackageWarning{infthesis}{No course/school specified for taught + % degree} + \else + #2 \\ + \fi + \@infschool \\ \@university}% + \setboolean{strict}{false}} +\DeclareOption{msc}{\@taughtdegree{Master of Science}{\@mscdegree}} +\DeclareOption{minf}{\@taughtdegree{Master of Informatics}{~}} +\DeclareOption{bsc}{\@taughtdegree{\@project}{\@course}} + +%% Chapter header alignment, font of headings +\DeclareOption{centerchapter,centrechapter} + {\renewcommand{\@chapteralignment}{\centering}} +\DeclareOption{leftchapter} + {\renewcommand{\@chapteralignment}{\raggedright}} +\DeclareOption{rightchapter} + {\renewcommand{\@chapteralignment}{\raggedleft}} +\DeclareOption{sansheadings}{% + \setboolean{sansheadings}{true}} +\DeclareOption{normalheadings}{% + \setboolean{sansheadings}{false}} + +%% Sidedness, openright-ness, and font size (so that the draft option can +%% override them as needed. +\DeclareOption{twoside}{\renewcommand{\@thesisside}{twoside}} +\DeclareOption{oneside}{\renewcommand{\@thesisside}{oneside}} +\DeclareOption{openany}{\renewcommand{\@thesisopen}{openany}} +\DeclareOption{openright}{\renewcommand{\@thesisopen}{openright}} +\DeclareOption{10pt}{\renewcommand{\@thesispoints}{10pt}} +\DeclareOption{11pt}{\renewcommand{\@thesispoints}{11pt}} +\DeclareOption{12pt}{\renewcommand{\@thesispoints}{12pt}} + +%% Font options. +\DeclareOption{notimes}{\setboolean{timesfonts}{false}} +\DeclareOption{timesfonts}{\setboolean{timesfonts}{true}} + +%% Whether it's a draft (if so, single space and wider margins to fit more) +\DeclareOption{draft}{ + \setboolean{draftthesis}{true} + \ExecuteOptions{10pt,openany,twoside} + \renewcommand{\@draftmessage}{(Draft Copy)}} + +%% Use quotation marks in quotation environment? +\DeclareOption{usequotes}{\setboolean{usequotemarks}{true}} + +%% Use useful abbrevations? +\DeclareOption{abbrevs}{\setboolean{useabbrevs}{true}} + +%% Select spacing (default: fullspacing) +\DeclareOption{singlespacing}{\setboolean{usesinglespacing}{true}} +\DeclareOption{doublespacing}{\setboolean{usedoublespacing}{true}} +\DeclareOption{fullspacing}{\setboolean{usefullspacing}{true}} + +%% Options to control the format of the cover page +\DeclareOption{deptreport}{\setboolean{usedeptreport}{true}} +\DeclareOption{logo}{% + \setboolean{logo}{true}} +\DeclareOption{frontabs}{% + \setboolean{frontabs}{true}} + +%% Use parskip formatting of paragraphs +\DeclareOption{parskip}{\AtEndOfClass{\RequirePackage{parskip}}} + +%% Whether to put list of figures and tables into TOC (default: no) +\DeclareOption{listsintoc}{% + \setboolean{ltoc}{true}} + +%% Pre pages can be numbered separately or with the rest of the thesis. +\DeclareOption{romanprepages}{\setboolean{romanpre}{true}} +\DeclareOption{plainprepages}{\setboolean{romanpre}{false}} + +%% Pass all other options directly to report class +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} + +%% Set default options and process the ones we were given. +\ExecuteOptions{phd,centerchapter,romanprepages,% + sansheadings,openright,oneside,12pt,timesfonts} +\ProcessOptions + +%% +%% --- Class Loading (built ontop of report.cls) --- +%% + +\LoadClass[a4paper,\@thesispoints,\@thesisside,\@thesisopen]{report} +\ifthenelse{\boolean{draftthesis}} + {} + {\ifthenelse{\boolean{strict}} + {\if@twoside + \if@openright + \else + \PackageWarning{infthesis}{A two-sided PhD or MPhil thesis must + not use the "openany" option} + \fi + \fi} + {}} + +%% +%% --- Main Code --- +%% + +\newboolean{isspecialchapter} +\setboolean{isspecialchapter}{false} + +%% +%% First we will sort out the page layout. The following is a brief +%% summary of the university typesetting regulations: +%% Printed on A4 paper, entirely on rectos (single-sided) or on both sides +%% but with chapters starting on even pages +%% 4cm binding margin +%% 2cm head margin +%% 2.5cm fore-edge margin +%% 4cm tail margin +%% spacing: not less then 1.5 spacing (18pt leading) +%% quotations & footnotes in single spacing +%% bibliography may be in single spacing +%% character size: not exceed 12pt for body text (at least 10pt) +%% style: a serif font should be used, with a sans-serif for headings +%% hyphenation should be avoided if possible + +%% Try to set up the margins according to the specifications in the thesis +%% regulations. I have removed all of the old code (ca. 1996) that attempted +%% to compensate for particular printers in the Department of Computer +%% Science. +\ifthenelse{\boolean{draftthesis}} + {\geometry{a4paper,margin=2cm,twoside}} + {\if@twoside + \geometry{a4paper,left=4cm,top=2cm,right=2.5cm,bottom=4cm,twoside} + \else + \geometry{a4paper,left=4cm,top=2cm,right=2.5cm,bottom=4cm} + \fi} + +%% We should make pages created by "cleardoublepage" be +%% really empty. Taken from titlesec.sty + +\def\cleardoublepage{% + \clearpage{\ps@empty\if@twoside\ifodd\c@page\else + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}} + +%% +%% Hack to make minitoc work with csthesis. We declare a new chapter +%% variable called starchapter to be used by \addcontentsline when we +%% add contents lines for List of Figures/Tables. If we don't, then +%% minitoc treats the LOF/LOT sections as chapters of the thesis. +%% + +\@ifundefined{chapter}{}{\let\l@starchapter\l@chapter} + +%% +%% This bit will set up the header format for the thesis. +%% This currently uses a "headings" style showing the pagenumber +%% and chapter number/title. (in slanted text) If the document is two-sided, +%% the right-hand page will show the section number and title instead. +%% + +\newcommand{\headfootstyle}{\normalsize} % font size of headers and footers +% This will have \sffamily added to it if "sansheadings" is specified. + +%% Set up different headers for right and left-hand pages. Those \defs are a +%% bit magic, but they seem to do the trick... :-) +%% Adapted from Francois Pitt's ut-thesis class from the University of +%% Toronto. +\if@twoside % if two-sided printing +\renewcommand{\ps@headings}{ + \let\@mkboth\markboth + \def\@oddfoot{} + \let\@evenfoot\@oddfoot + \def\@oddhead{{\headfootstyle\itshape \rightmark}\hfil \headfootstyle\thepage}% + \def\@evenhead{\headfootstyle\thepage\hfil + {\headfootstyle\itshape\leftmark}}% + \def\chaptermark##1{\markboth + {\ifnum\c@secnumdepth >\m@ne + \@chapapp\ \thechapter. \ \fi ##1}{}}% + \def\sectionmark##1{\markright + {\ifnum\c@secnumdepth >\z@ + \thesection. \ \fi ##1}}% +}%ps@headings +\else % if one-sided printing +\renewcommand{\ps@headings}{ + \let\@mkboth\markboth + \def\@oddfoot{} + \def\@oddhead{{\headfootstyle\itshape\rightmark}\hfil + \headfootstyle\thepage}% + \def\chaptermark##1{\markright + {\ifnum\c@secnumdepth >\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}% +}%ps@headings +\fi%@twoside + +\renewcommand{\ps@plain}{ + \renewcommand{\@oddfoot}{\hfil\headfootstyle\thepage\hfil} + \renewcommand{\@evenfoot}{\hfil\headfootstyle\thepage\hfil} + \renewcommand{\@evenhead}{} + \renewcommand{\@oddhead}{} +} + +%% +%% And now setup that headings style as default +%% + +\newcommand{\@textpagenumbering}{arabic} +\newcommand{\@preamblepagenumbering}{roman} +\newcommand{\@textpagestyle}{headings} +\newcommand{\@preamblepagestyle}{plain} + +\pagestyle{\@textpagestyle} + +\setcounter{secnumdepth}{6} + +%% +%% Set up the default names for the various chapter headings +%% + +\renewcommand{\contentsname}{Table of Contents} +\renewcommand{\listfigurename}{List of Figures} +\renewcommand{\listtablename}{List of Tables} +\renewcommand{\bibname}{Bibliography} +\renewcommand{\indexname}{Index} +\renewcommand{\abstractname}{Abstract} + +%% +%% Some sundry commands which are generally useful... +%% + +\ifthenelse{\boolean{useabbrevs}} + {\newcommand{\NB}{N.B.\@\xspace} + \newcommand{\eg}{e.g.\@\xspace} + \newcommand{\Eg}{E.g.\@\xspace} + \newcommand{\ie}{i.e.\@\xspace} + \newcommand{\Ie}{I.e.\@\xspace} + \newcommand{\etc}{etc.\@\xspace} + \newcommand{\etal}{{\em et al}.\@\xspace} + \newcommand{\etseq}{{\em et seq}.\@\xspace} + \newcommand{\precis}{pr\'ecis\xspace} + \newcommand{\Precis}{Pr\'ecis\xspace} + \newcommand{\role}{r\^ole\xspace} + \newcommand{\Role}{R\^ole\xspace} + \newcommand{\naive}{na\"\i ve\xspace} + \newcommand{\Naive}{Na\"\i ve\xspace} + \newcommand{\tm}{\raisebox{1ex}{\tiny TM}\xspace} + \newcommand{\cpright}{\raisebox{1ex}{\tiny\copyright}\xspace} + \newcommand{\degrees}{\raisebox{1.2ex}{\tiny\ensuremath{\circ}}\xspace}} + {} + +%% +%% Set up the double spacing and provide commands to alter the +%% spacing for the subsequent text. By default, 1.5 spacing will be +%% used. This can be modified through the singlespacing, doublespacing +%% or draft class options. +%% + +\newcommand{\doublespace}{% + \renewcommand{\baselinestretch}{1.66}\normalsize} +\newcommand{\oneandahalfspace}{% + \renewcommand{\baselinestretch}{1.33}\normalsize} +\newcommand{\singlespace}{% + \renewcommand{\baselinestretch}{1}\normalsize} + +\ifthenelse{\boolean{draftthesis}} + {\AtBeginDocument{\singlespace}}% \SetPrinterDraft} + {\ifthenelse{\boolean{usesinglespacing}} + {\AtBeginDocument{\singlespace}% + \ifthenelse{\boolean{strict}} + {\PackageWarning{infthesis}{Single spacing is not permitted in the + regulations for PhD and MPhil theses}} + {}} + {\ifthenelse{\boolean{usedoublespacing}} + {\AtBeginDocument{\doublespace}} + {\AtBeginDocument{\oneandahalfspace}} + } + } + +%% +%% We must ensure that the thesis ends on a lef-hand page. We +%% do the latter by issuing a \cleardoublepage at the end of document. +%% MEF: deleted this, there's no point -- it'll print the other side of that +%% page anyway! +%% + +% \AtEndDocument{\cleardoublepage} + +%% +%% A couple of commands for figures/captions +%% + +\newcommand{\thesiscaption}[3][]{ + \ifthenelse{\equal{#1}{}} + {\parbox{5in}{\caption{{\em #2\/}}\label{#3}}} + {\parbox{5in}{\caption[#1]{{\em #2\/}}\label{#3}}} +} + +%% +%% Quotations are supposed to be in single-space, so we will +%% explicitly redefine the quotation env. to support this. +%% And introduce a quotetext env. which can add an attribution. +%% + +\let\old@quote\quote +\let\old@endquote\endquote +\renewcommand{\quote}{\old@quote\singlespace\ifthenelse{\boolean{usequotemarks}}{``}{}} +\renewcommand{\endquote}{\ifthenelse{\boolean{usequotemarks}}{''}{}\old@endquote} + +\let\old@quotation\quotation +\let\old@endquotation\endquotation +\renewcommand{\quotation}{\old@quotation\singlespace} +\renewcommand{\endquotation}{\old@endquotation} +% \renewenvironment{quote} +% {\old@quote\singlespace +% \ifthenelse{\boolean{usequotemarks}}{``}{}} +% {\ifthenelse{\boolean{usequotemarks}}{''}{}\end{quote}} + +\newenvironment{iquote} + {\begin{quote}\it} + {\rm\end{quote}} + +\newcommand{\quotationname}{} +\newenvironment{quotetext}[1] + {\renewcommand{\quotationname}{#1}\begin{iquote}\singlespace + \ifthenelse{\boolean{usequotemarks}}{``}{}\it} + {\ifthenelse{\boolean{usequotemarks}}{\rm''}{} + \hspace*{\fill}\nolinebreak[1]\hspace*{\fill} + \rm (\quotationname)\end{iquote}} + +%% +%% Footnotes should also be single-spaced. +%% + +\let\tmp@footnotetext=\@footnotetext +\renewcommand{\@footnotetext}[1]% + {{\singlespace\tmp@footnotetext{#1}}} + +%% "preliminary" environment to control numbering of pages between title and +%% first chapter. This will only kick in if romanprepages is specificed (the +%% default). +%% Based on Francois Pitt's ut-thesis.cls from University of Toronto. + +\newenvironment{preliminary} + {\ifthenelse{\boolean{romanpre}}% + {\pagestyle{plain}\pagenumbering{roman}} + {\pagestyle{empty}}}% + {\cleardoublepage% + \ifthenelse{\boolean{romanpre}}% + {\pagenumbering{arabic}}% + {}} + +%% +%% Let's have a dedication page so I can thank my mummy. +%% + +\newcommand{\dedication}[1] + {\vspace*{\fill} + \begin{center}#1\end{center} + \vspace*{\fill}} + + +%% A generic "frontmatter" environment, for use with abstract, dedication etc. +%% You specify the title of the environment and the font size to use (so that +%% both normal abstracts and those on the front page can be accommodated.) + +\newenvironment{frontenv}[2] + {\vspace{1cm} + \begin{center} + \@chapterfont\bfseries \LARGE#1 + \end{center}} + {\par\vfil} + +%% You specify the abstract with the \abs command; it gets automatically +%% inserted into the document where appropriate (title page or first main +%% page. + +\def\@abs{} +\renewcommand{\abstract}[1]{\gdef\@abs{#1}} + +\newenvironment{mainabs} + {\begin{frontenv}{\abstractname}{\LARGE}} + {\end{frontenv}\newpage} +\newenvironment{frontabs} + {\begin{frontenv}{\abstractname}{\large} + \begin{quotation}\rm} + {\end{quotation}\end{frontenv}} + +%% +%% Based upon the above abstract env., provide wrappers for +%% an acknowledgements and declation env. +%% + +\newenvironment{acknowledgements} + {\renewcommand{\abstractname}{Acknowledgements}\begin{mainabs}} + {\end{mainabs}\renewcommand{\abstractname}{Abstract}} + +\newenvironment{declaration} + {\renewcommand{\abstractname}{Declaration}\begin{mainabs}} + {\end{mainabs}\renewcommand{\abstractname}{Abstract}} + +\newcommand{\standarddeclaration}{ + \begin{declaration} + I declare that this thesis was composed by myself, + that the work contained herein is my own + except where explicitly stated otherwise in the text, + and that this work has not been submitted for any other degree or + professional qualification except as specified.\par + \vspace{1in}\raggedleft({\em \@author\/}) + \end{declaration} +} + +%% +%% Now let's look at the format for the title page of the +%% thesis. This is done by redefining \maketitle, and allowing +%% some extra input options: \submityear and \graduationdate +%% + +\def\submityear#1{\gdef\@submityear{#1}} +\gdef\@submityear{\the\year} + +\def\graduationdate#1{\gdef\@graduationdate{#1}} +\gdef\@graduationdate{} + +%% If usedeptreport is specified, then none of the other funky options kick +%% in. If not, then if frontabs is specified then it is used; otherwise, +%% the logo is inserted if required. If the abstract is not put on the front +%% page, then \maketitle will also create the abstract page as the first page +%% of the actual document. + +\ifthenelse{\boolean{usedeptreport}}{ + \renewcommand{\maketitle}{ + \begin{titlepage} + \addtolength{\oddsidemargin}{-0.75cm} + \begin{center} + \null\vskip 6.1cm + \begin{minipage}[t][7.6cm]{10.5cm} + \begin{center} + {\LARGE\bfseries \@chapterfont \@title \par + \ifthenelse{\boolean{draftthesis}}{\large \@draftmessage}{} + }\vfil + {\Large\itshape \@author \par} + \end{center} + \end{minipage}\\ + {\large \@degreetext \par \@submityear \par} + \ifthenelse{\equal{\@graduationdate}{}}{} + {\vskip 1cm {\large \ttfamily (Graduation date: \@graduationdate)}} + \end{center} + \end{titlepage}\cleardoublepage + \begin{mainabs}\@abs\end{mainabs} + }}{\ifthenelse{\boolean{frontabs}}{ + \ifthenelse{\boolean{strict}} + {\PackageWarning{infthesis}{The regulations for PhD and MPhil theses + do not permit the abstract on the front page}} + {} + \renewcommand{\maketitle}{ + \begin{titlepage}\begin{center} + {\LARGE\bfseries \@chapterfont \@title \par + \ifthenelse{\boolean{draftthesis}}{\large (Draft Copy)}{} + }\vspace{3cm} + {\Large\itshape \@author \par}\vspace{3cm} + {\large \@degreetext \par \@submityear \par} + \vskip 1cm + \ifthenelse{\equal{\@graduationdate}{}}{} + {{\large \ttfamily (Graduation date: \@graduationdate)}} + \end{center} + \begin{frontabs}\@abs\end{frontabs} + \end{titlepage} + }}{ + \renewcommand{\maketitle}{ + \begin{titlepage}\begin{center} + \null\vfil\vskip 60\p@ + {\LARGE\bfseries \@chapterfont \@title \par + \ifthenelse{\boolean{draftthesis}}{\large (Draft Copy)}{} + }\vfill + {\Large\itshape \@author \par}\vskip 1cm\vfill + \ifthenelse{\boolean{logo}}% + {\resizebox{30mm}{!}{\includeshield}\\\vfill} + {} + {\large \@degreetext \par \@submityear \par} + \vskip 1cm + \ifthenelse{\equal{\@graduationdate}{}}{} + {{\large \ttfamily (Graduation date: \@graduationdate)}} + \end{center} + \end{titlepage}\cleardoublepage + \begin{mainabs}\@abs\end{mainabs} + }}} + + +%% If requested, put the list of figures and list of tables into the table of +%% contents. + +\ifthenelse{\boolean{ltoc}} + {\RequirePackage[nottoc,notbib]{tocbibind}} + {} + +%% Use the "pslatex" fonts unless they told us not to +\ifthenelse{\boolean{timesfonts}} + {\RequirePackage{pslatex}} + {} + +%% ALWAYS put the bibliography into the TOC. +%% Thanks to Peter Wilson <peter.r.wilson@boeing.com> for pointing me in the +%% right direction, and to Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de> +%% and Michael J Downes <epsmjd@ams,org> for together coming up with this +%% solution. +%% +%% However the bibliography is defined, this will append the \addcontentsline +%% statement to it. Also, it will put the bibname into the page headers. +\AtBeginDocument{% + \expandafter\def\expandafter\thebibliography\expandafter + #\expandafter1\expandafter{\thebibliography{#1}% + {\addcontentsline{toc}{chapter}{\bibname}} + \markboth{\bibname}{\bibname}}} + +%% Do what is requested with headings and captions... can't include these +%% packages above because sectsty won't work except from within report.cls +%% itself. Must save \@chapterfont because the front environments (abstract +%% etc) also need to use it. +\RequirePackage{sectsty,caption} +\ifthenelse{\boolean{sansheadings}} + {\allsectionsfont{\sffamily} + \renewcommand{\@chapterfont}{\sffamily} + \renewcommand{\captionfont}{\sffamily} + \renewcommand{\headfootstyle}{\normalsize\sffamily}} + {} +%% To make sure we get chapters aligned correctly, we set it here instead. +\chapterfont{\@chapterfont\@chapteralignment} + +%% +%% EOF: infthesis.cls +%% |