dissertation-4-dissertation/Classes/PhDThesisPSnPDF.cls

1275 lines
37 KiB
OpenEdge ABL
Raw Normal View History

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% Class ``PhD Thesis PSnPDF'' %%
%% %%
%% A PhD thesis LaTeX template for Cambridge University Engineering Department%%
%% %%
%% Version: v2.0 %%
%% Authors: Krishna Kumar %%
%% Date: 2013/11/16 (inception) %%
2013-12-12 12:37:33 +00:00
%% License: MIT License (c) 2013 Krishna Kumar %%
%% GitHub Repo: https://github.com/kks32/phd-thesis-template/ %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ************************** Class Identification *****************************
2014-12-02 23:28:04 +00:00
\newcommand\fileversion{2.0}
\newcommand\filedate{2014/10/08}
\NeedsTeXFormat{LaTeX2e}
2014-08-24 15:38:27 +01:00
\ProvidesClass{PhDThesisPSnPDF}[\filedate\space A PhD thesis class file
by Krishna Kumar (v\fileversion)]
2013-11-17 01:01:46 +00:00
\typeout{https://github.com/kks32/phd-thesis-template/}
%
%******************************************************************************
% **************************** Class Definition *******************************
%******************************************************************************
% *********************** Define a Print/Online Version ***********************
2013-11-19 11:32:39 +00:00
\newif\if@print\@printfalse
\DeclareOption{print}{\@printtrue}
% ****************************** Draft Option *********************************
2014-10-02 15:20:26 +01:00
\newif\ifsetDraft\setDraftfalse
2014-10-08 22:27:23 +01:00
\newif\ifsetDraftClassic\setDraftClassicfalse
2014-04-21 18:13:21 +01:00
% ****************************** Define index *********************************
2013-12-09 14:59:07 +00:00
\newif\ifPHD@index\PHD@indexfalse
\DeclareOption{index}{\PHD@indextrue}
% ******************************* Font Option *********************************
2014-06-05 23:24:38 +01:00
\newif\ifsetFont\setFontfalse % Font is not set
2013-11-19 01:34:28 +00:00
2014-01-20 01:21:13 +00:00
\newif\ifPHD@times\PHD@timesfalse % Times with Math Support
\DeclareOption{times}{
\ifsetFont
\ClassWarning{PhDThesisPSnPDF}{Font selection conflict: A font
package was already specified. Please check the document class options in
case you have defined two fonts.}
\else
\PHD@timestrue
\setFonttrue
\fi
}
2014-01-20 01:21:13 +00:00
\newif\ifPHD@fourier\PHD@fourierfalse % Fourier with Math Support
\DeclareOption{fourier}{
\ifsetFont
\ClassWarning{PhDThesisPSnPDF}{Font selection conflict: A font
package was already specified. Please check the document class options in
case you have defined two fonts.}
\else
\PHD@fouriertrue
\setFonttrue
\fi
}
2013-11-23 16:43:15 +00:00
\newif\ifsetCustomFont\setCustomFontfalse % Custom Font with Math
%Support
\DeclareOption{customfont}{
\ifsetFont
\ClassWarning{PhDThesisPSnPDF}{Font selection conflict: A font
package was already specified. Please check the document class options in
case you have defined two fonts.}
\else
\setCustomFonttrue
\setFonttrue
\fi
}
2013-11-23 16:43:15 +00:00
% ******************************* Bibliography ********************************
\newif\ifsetBib\setBibfalse % Custom Bibliography =
%true/false
2014-01-20 01:21:13 +00:00
\newif\ifsetBiBLaTeX\setBiBLaTeXfalse % BiBLaTeX = True / False
2014-01-20 01:21:13 +00:00
\newif\ifPHD@biblatex\PHD@biblatexfalse % BiBLaTeX
2014-06-09 16:22:51 +01:00
\DeclareOption{biblatex}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style already specified. Please check the document
class options in case you have defined two bibliography styles.}
2014-06-09 16:22:51 +01:00
\else
\PHD@biblatextrue
\fi
}
2014-01-20 01:21:13 +00:00
\newif\ifPHD@authoryear\PHD@authoryearfalse % Author-Year citation
2014-06-09 16:22:51 +01:00
\DeclareOption{authoryear}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style already specified. Please check the document
class options in case you have defined two bibliography styles.}
2014-06-09 16:22:51 +01:00
\else
\PHD@authoryeartrue
\setBibtrue
\fi
}
2014-01-20 01:21:13 +00:00
\newif\ifPHD@numbered\PHD@numberedfalse % Numbered citiation
2014-06-09 16:22:51 +01:00
\DeclareOption{numbered}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style already specified. Please check the document
class options in case you have defined two bibliography styles.}
2014-06-09 16:22:51 +01:00
\else
\PHD@numberedtrue
\setBibtrue
\fi
}
2014-06-09 00:05:59 +01:00
\newif\ifuseCustomBib\useCustomBibfalse % Custom Bibliography
2014-06-09 16:22:51 +01:00
\DeclareOption{custombib}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style already specified. Please check the document
class options in case you have defined two bibliography styles.}
2014-08-07 19:03:13 +01:00
\else
\ifPHD@biblatex
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style already specified. Please check the document
class options in case you have defined two bibliography styles.}
2014-08-07 19:03:13 +01:00
\else
\useCustomBibtrue
\setBibtrue
\fi
2014-06-09 16:22:51 +01:00
\fi
}
% ************************* Header / Footer Styling ***************************
2014-06-29 12:26:45 +01:00
\newif\ifPHD@textJustify\PHD@textJustifytrue % Set Justification true
\DeclareOption{flushleft}{\PHD@textJustifyfalse}
2014-06-29 12:13:35 +01:00
% ************************* Header / Footer Styling ***************************
2013-12-09 14:59:07 +00:00
\newif\ifPHD@pageStyleI\PHD@pageStyleIfalse % Set Page StyleI
\DeclareOption{PageStyleI}{\PHD@pageStyleItrue}
2013-11-23 18:46:46 +00:00
2013-12-09 22:04:17 +00:00
\newif\ifPHD@pageStyleII\PHD@pageStyleIIfalse % Set Page StyleII
2013-12-09 14:59:07 +00:00
\DeclareOption{PageStyleII}{\PHD@pageStyleIItrue}
2013-11-23 18:46:46 +00:00
% ***************************** Custom Margins ********************************
\newif\ifsetCustomMargin\setCustomMarginfalse % Set Custom Margin
2014-06-09 17:48:39 +01:00
\newif\ifsetMargin\setMarginfalse % Set Custom Margin
\DeclareOption{custommargin}{\setCustomMargintrue}
2013-11-25 11:11:21 +00:00
% **************************** Separate Abstract ******************************
2013-12-05 16:01:45 +00:00
\newif \ifdefineAbstract\defineAbstractfalse %To enable Separate abstract
2013-12-09 14:59:07 +00:00
\newif\ifPHD@abstract\PHD@abstractfalse % Enable Separate Abstract
2013-12-07 02:38:37 +00:00
\DeclareOption{abstract}{
2014-06-05 23:24:38 +01:00
\PHD@abstracttrue
\ClassWarning{PhDThesisPSnPDF}{You have chosen an option that
generates only
the Title page and an abstract with PhD title and author name, if
this was
intentional, ignore this warning. Congratulations on submitting your
thesis!
If not, please remove the option `abstract' from the document class
and
2014-06-09 00:05:59 +01:00
recompile. Good luck with your writing!}
\PassOptionsToClass{oneside}{book}
2013-12-07 02:38:37 +00:00
}
2013-12-05 16:01:45 +00:00
% **************** Chapter Mode - To print only selected chapters *************
\newif \ifdefineChapter\defineChapterfalse %To enable Separate abstract
\newif\ifPHD@chapter\PHD@chapterfalse % Enable Separate Abstract
\DeclareOption{chapter}{
2014-06-05 23:24:38 +01:00
\PHD@chaptertrue
\ClassWarning{PhDThesisPSnPDF}{You have chosen an option that
generates only
selected chapters with references, if this was intentional, ignore
this
warning. If not, please remove the option `chapter' from the
document class
2014-06-08 19:02:10 +01:00
and recompile. Good luck with your writing!}
}
2013-11-23 18:46:46 +00:00
\ProcessOptions\relax%
% *************************** Pre-defined Options *****************************
2013-11-23 18:46:46 +00:00
% Font Size
2013-12-09 14:59:07 +00:00
\newcommand\PHD@ptsize{12pt} %Set Default Size as 12
2013-12-07 02:38:37 +00:00
\DeclareOption{10pt}{
\ClassWarning{PhDThesisPSnPDF}{The Cambridge University PhD thesis
guidelines
recommend using a minimum font size of 11pt (12pt is preferred) and 10pt
for
2013-12-07 02:38:37 +00:00
footnotes.}
2013-12-09 14:59:07 +00:00
\renewcommand\PHD@ptsize{10pt}
2013-12-07 02:38:37 +00:00
}
2013-12-09 14:59:07 +00:00
\DeclareOption{11pt}{\renewcommand\PHD@ptsize{11pt}}%
\DeclareOption{12pt}{\renewcommand\PHD@ptsize{12pt}}%
\PassOptionsToClass{\PHD@ptsize}{book}%
2014-06-09 16:22:51 +01:00
\message{PhDThesisPSnPDF: Font size is set as \PHD@ptsize}
2013-11-23 18:46:46 +00:00
% Page Size
2013-12-09 14:59:07 +00:00
\newcommand\PHD@papersize{a4paper} % Set Default as a4paper
2013-12-09 14:59:07 +00:00
\DeclareOption{a4paper}{\renewcommand\PHD@papersize{a4paper}}
\DeclareOption{a5paper}{\renewcommand\PHD@papersize{a5paper}}
2013-12-07 02:38:37 +00:00
\DeclareOption{letterpaper}{
\ClassWarning{PhDThesisPSnPDF}{The Cambridge University Engineering
Deparment
2014-06-09 16:22:51 +01:00
PhD thesis guidelines recommend using A4 or A5paper}
2013-12-09 14:59:07 +00:00
\renewcommand\PHD@papersize{letterpaper}
2013-12-07 02:38:37 +00:00
}
2013-12-09 14:59:07 +00:00
\PassOptionsToClass{\PHD@papersize}{book}%
2013-11-23 18:46:46 +00:00
% Column layout
\DeclareOption{oneside}{\PassOptionsToClass{\CurrentOption}{book}}%
\DeclareOption{twoside}{\PassOptionsToClass{\CurrentOption}{book}}%
2013-11-24 18:40:44 +00:00
% Draft Mode
2014-10-08 22:27:23 +01:00
\DeclareOption{draftclassic}{\PassOptionsToClass{draft}{book}
\setDraftClassictrue
\ClassWarning{PhDThesisPSnPDF}{Draft is ON. Don't forget to turn it
off in your final version. This is the classic version of draft.
Use `draft' for enhanced mode, which adds watermark with timestamp,
line numbering, and version number.}}%
2014-10-02 15:28:14 +01:00
\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{book}
2014-10-08 22:27:23 +01:00
\setDrafttrue
\ClassWarning{PhDThesisPSnPDF}{Draft is ON. Don't forget to turn it
off in your final version. This enhanced `draft' mode adds watermark
with timestamp, line numbering, and version number. Use
`draftclassic'
2014-10-08 22:27:23 +01:00
if you prefer the \cite{} lassic draft mode. To tweak options see
`preamble.tex'}}%
% Deprecated option - use draft instead
\DeclareOption{draftmode}{
\ClassError{PhDThesisPSnPDF}{This option is deprecated. Use `draft'
instead this option replaces `draftmode'. To use the classic version
of draft use `draftclassic`}
\stop}%
2014-04-21 18:13:21 +01:00
% Line Numbers
2014-06-05 23:24:38 +01:00
\newif\ifPHD@lineno\PHD@linenotrue
\DeclareOption{lineno}{\PHD@linenotrue}
\DeclareOption{nolineno}{\PHD@linenofalse}
2013-11-24 18:40:44 +00:00
2013-11-23 18:46:46 +00:00
% Generates Warning for unknown options
2013-11-23 16:43:15 +00:00
\DeclareOption*{
2013-12-07 02:38:37 +00:00
\ClassWarning{PhDThesisPSnPDF}{Unknown or non-standard option
'\CurrentOption'. I'll see if I can load it from the book class. If you
get a
2013-12-07 02:38:37 +00:00
warning unused global option(s): `\CurrentOption` then the option is not
2014-06-05 23:24:38 +01:00
supported!}
2013-11-23 18:46:46 +00:00
\PassOptionsToClass{\CurrentOption}{book}
2013-11-23 16:43:15 +00:00
}
% Determine whether to run pdftex or dvips
2013-11-14 18:51:42 +00:00
\ProcessOptions\relax%
\newif\ifsetDVI\setDVIfalse
\ifx\pdfoutput\undefined
% we are not running PDFLaTeX
\setDVItrue
2013-12-08 15:25:21 +00:00
\LoadClass[dvips,fleqn,openright]{book}%
\else % we are running PDFLaTeX
\ifnum \pdfoutput>0
%PDF-Output
\setDVIfalse
\LoadClass[pdftex,fleqn,openright]{book}%
\else
%DVI-output
\setDVItrue
\LoadClass[fleqn,openright]{book}%
\fi
\fi
2013-11-17 20:12:08 +00:00
%
%******************************************************************************
% ******************************** Packages ***********************************
%******************************************************************************
% ************************** Layout and Formatting ****************************
\renewcommand\pdfshellescape{1}
2013-11-17 01:25:23 +00:00
\RequirePackage{lscape} % Supports Landscape Layout
2013-12-09 22:04:17 +00:00
\RequirePackage{setspace} % Define line spacing in paragraph
\RequirePackage{calc} % To calculate vertical spacing
2013-11-14 18:51:42 +00:00
% ************************* Conditional Statements ****************************
\RequirePackage{ifthen} % conditional statements
\RequirePackage{ifpdf} % Check for pdfLaTeX
2013-11-14 18:51:42 +00:00
% ********************** Table of Contents & Appendices ***********************
2013-11-17 01:25:23 +00:00
% add Bibliography, List of figures and tables to contents
\RequirePackage[nottoc]{tocbibind}
2013-12-07 20:40:49 +00:00
% Add appendices
\RequirePackage[title,titletoc]{appendix}
2013-11-14 18:51:42 +00:00
\renewcommand{\contentsname}{Table of contents}
\renewcommand{\listfigurename}{List of figures}
\renewcommand{\listtablename}{List of tables}
2014-10-08 12:48:43 +01:00
% Hides Contents appearing from TOC, but adds it to bookmarks
\let\temptableofcontents\tableofcontents
\renewcommand{\tableofcontents}{
\cleardoublepage
\pdfbookmark[0]{\contentsname}{Contents}
\temptableofcontents
}
% *************************** Graphics and Figures ****************************
2014-06-05 23:24:38 +01:00
\RequirePackage[usenames, dvipsnames]{color}
\ifpdf
% Convert eps figures to pdf
2014-06-05 23:24:38 +01:00
\RequirePackage{epstopdf}
\RequirePackage[pdftex]{graphicx}
2013-11-25 22:41:50 +00:00
\DeclareGraphicsExtensions{.png, .jpg, .pdf}
\pdfcompresslevel=9
\graphicspath{{Figs/Raster/}{Figs/}}
2013-11-14 18:51:42 +00:00
\else
2013-11-25 22:41:50 +00:00
\RequirePackage{graphicx}
\DeclareGraphicsExtensions{.eps, .ps}
\graphicspath{{Figs/Vector/}{Figs/}}
2013-11-14 18:51:42 +00:00
\fi
2014-06-05 04:28:14 +01:00
% ******************************* Time Stamp **********************************
2014-06-05 04:28:14 +01:00
% Compute the timestamp based on an idea of
% Tim Piessens \texttt{<Tim.Piessens@esat.kuleuven.ac.be>}.
2014-06-09 16:22:51 +01:00
\RequirePackage{datetime}
2014-06-05 04:28:14 +01:00
\newcount\PHD@hour \newcount\PHD@minute
\PHD@hour=\time
\divide \PHD@hour by 60
\PHD@minute=\time
\count@=\PHD@hour
\multiply \count@ by -60
\advance \PHD@minute by \count@
2014-06-05 23:24:38 +01:00
\newcommand{\PHD@daytime}{%
\today\space--\space%
2014-06-05 04:28:14 +01:00
\ifnum\PHD@hour=0 00\else\ifnum\PHD@hour<10 0\fi%
\number\PHD@hour\fi:\ifnum\PHD@minute<10 0\fi\number\PHD@minute
}
% ******************************* Draft Mode **********************************
% Initializing Draft Text
\newcommand\SetDraftText[1]{}
% Initializing Draft Version
\newcommand\SetDraftVersion[1]{}
% Initializing Draft Content
\newcommand\SetDraftWMPosition[1]{}
2014-06-06 17:55:39 +01:00
% Initializing Draft Gray Scale
\newcommand\SetDraftGrayScale[1]{}
2014-10-08 22:27:23 +01:00
% Classic Draft Mode
\ifsetDraftClassic
% Disable figures in `draftmode'\
\setkeys{Gin}{draft=true}
\fi
% If Draft Mode is active
2014-10-02 15:20:26 +01:00
\ifsetDraft
2014-10-08 22:27:23 +01:00
% Disable figures in `draftmode'\
\setkeys{Gin}{draft=false}
% Line numbering (can be switched off)
\ifPHD@lineno
\RequirePackage[switch,pagewise,mathlines]{lineno}
\renewcommand{\frontmatter}{\nolinenumbers}
\renewcommand{\mainmatter}{\linenumbers}
\renewcommand{\backmatter}{\linenumbers}
2014-08-07 19:03:13 +01:00
% Fix display lineno issue in mathmode
\newcommand*\patchAmsMathEnvironmentForLineno[1]{%
\expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
\expandafter\let\csname oldend#1\expandafter\endcsname\csname
end#1\endcsname
2014-08-07 19:03:13 +01:00
\renewenvironment{#1}%
{\linenomath\csname old#1\endcsname}%
{\csname oldend#1\endcsname\endlinenomath}%
}%
\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{%
\patchAmsMathEnvironmentForLineno{#1}%
\patchAmsMathEnvironmentForLineno{#1*}%
}%
\AtBeginDocument{%
\patchBothAmsMathEnvironmentsForLineno{equation}%
\patchBothAmsMathEnvironmentsForLineno{align}%
\patchBothAmsMathEnvironmentsForLineno{flalign}%
\patchBothAmsMathEnvironmentsForLineno{alignat}%
\patchBothAmsMathEnvironmentsForLineno{gather}%
\patchBothAmsMathEnvironmentsForLineno{multline}%
}
\fi % End \ifPDH@lineno
2014-06-05 04:28:14 +01:00
% Creates a Watermark Draft at the specified location.
% The settings can be tweaked in the preamble
% Draft text
\newcommand\drafttext{Draft}
\renewcommand\SetDraftText[1]{%
2014-06-05 04:28:14 +01:00
\renewcommand\drafttext{#1}}
% Draft Version
2014-06-05 23:24:38 +01:00
\newcommand\draftVersion{v1.0}
\renewcommand\SetDraftVersion[1]{%
\renewcommand\draftVersion{#1}}
2014-06-06 17:55:39 +01:00
% Draft Gray Scale
\newcommand\draftGrayScale{0.75}
\renewcommand\SetDraftGrayScale[1]{%
\renewcommand\draftGrayScale{#1}}
2014-06-05 23:24:38 +01:00
% Draft Content
2014-06-05 04:28:14 +01:00
\newcommand\DraftContent{%
\hspace*{\fill}
\Large
2014-06-06 17:55:39 +01:00
\textcolor[gray]{\draftGrayScale}{%
2014-06-05 23:24:38 +01:00
{\drafttext}\space-\space{\draftVersion}\hspace{\stretch{1}}{\PHD@daytime}
2014-06-05 04:28:14 +01:00
\hspace*{\fill}}}
% Adding watermark in draft mode with time stamp
2014-06-05 23:24:38 +01:00
\RequirePackage{everypage}
\RequirePackage[absolute]{textpos}
% Default values for draft watermark
\newcommand\draftposition{top}
\newcommand\draftnodeanchor{1in+\voffset-\topmargin}
2014-06-05 23:24:38 +01:00
\AddEverypageHook{%
\begin{textblock*}{\paperwidth}[0.,2.5](0\paperwidth,\draftnodeanchor)
2014-06-05 23:24:38 +01:00
\DraftContent
\end{textblock*}
}
2014-06-05 04:28:14 +01:00
% Conditional evaluation to position the draft water mark (top / bottom)
\renewcommand\SetDraftWMPosition[1]{%
\renewcommand\draftposition{#1}
\ifthenelse{\equal{\draftposition}{bottom}}
{\renewcommand\draftnodeanchor{\paperheight-\voffset}}
%Bottom
{\ifthenelse{\equal{\draftposition}{top}}
{\renewcommand\draftnodeanchor{1in+\voffset-\topmargin}}
%Top
{\ClassWarning{PDThesisPSnPDF}{Unrecognised draft position
2014-06-06 17:55:39 +01:00
using default value of top}
\renewcommand\draftnodeanchor{1in+\voffset-\topmargin}}}
%Top
\AddEverypageHook{%
\begin{textblock*}{\paperwidth}[0.,2.5](0\paperwidth,\draftnodeanchor)
\DraftContent
\end{textblock*}
}
}
% If NOT Draft Mode
\else
2014-06-08 19:02:10 +01:00
\renewcommand\SetDraftText[1]{\ClassWarning{PhDThesisPSnPDF}{DraftMode is
inactive, to use SetDraftText include `draftmode' in the document
class options.}}
% Draft Version
\renewcommand\SetDraftVersion[1]{\ClassWarning{PhDThesisPSnPDF}{DraftMode
is
2014-06-08 19:02:10 +01:00
inactive, to use SetDraftVersion include `draftmode' in the document
class options.}}
% Draft Content
2014-06-08 19:02:10 +01:00
\renewcommand\SetDraftWMPosition[1]{\ClassWarning{PhDThesisPSnPDF}{DraftMode
is inactive, to use SetDraftWMPosition include `draftmode' in the
document
2014-06-08 19:02:10 +01:00
class options.}}
\renewcommand\SetDraftGrayScale[1]{\ClassWarning{PhDThesisPSnPDF}{DraftMode
is
inactive, to use SetDraftWMPosition include `draftmode' in the
document
2014-06-08 19:02:10 +01:00
class options.}}
2014-06-05 04:28:14 +01:00
\fi
% ******************************* Bibliography *********************************
2013-12-09 14:59:07 +00:00
\ifPHD@authoryear
2014-06-09 16:22:51 +01:00
\ifPHD@biblatex
\RequirePackage[backend=biber, style=authoryear,
citestyle=alphabetic,
2014-06-09 16:22:51 +01:00
sorting=nty, natbib=true]{biblatex}
\setBiBLaTeXtrue
\else
\RequirePackage[round, sort, numbers, authoryear]{natbib} %author
%year
\fi
2014-01-20 01:21:13 +00:00
\else
\ifPHD@numbered
2014-06-09 16:22:51 +01:00
\ifPHD@biblatex
\RequirePackage[backend=biber, style=numeric-comp,
citestyle=numeric, sorting=none, natbib=true]{biblatex}
\setBiBLaTeXtrue
2014-06-09 00:05:59 +01:00
\else
2014-06-09 16:22:51 +01:00
\RequirePackage[numbers,sort&compress]{natbib} % numbered citation
2014-06-09 00:05:59 +01:00
\fi
\else
\ifuseCustomBib
2014-06-09 16:22:51 +01:00
\AtBeginDocument{
\@ifpackageloaded{natbib}{}{
\@ifpackageloaded{biblatex}{}{
2014-06-09 00:57:35 +01:00
\ClassWarning{PhDThesisPSnPDF}{%
You chose custom bibliography, but no corresponding
package
2014-06-09 00:57:35 +01:00
(biblatex/natbib) has been loaded. Please load the
appropriate bibliography package in the preamble.}
}
}
}
\else % set default to
%numbered
\ifPHD@biblatex
\RequirePackage[backend=biber, style=numeric-comp,
citestyle=numeric, sorting=none, natbib=true]{biblatex}
2014-06-09 00:57:35 +01:00
\setBiBLaTeXfalse
\else
\RequirePackage[numbers,sort&compress]{natbib}
2014-06-09 16:22:51 +01:00
\fi % default
2014-06-09 00:57:35 +01:00
\setBibfalse
\fi % custombib
\fi % numbered
\fi % author year
2014-06-09 00:57:35 +01:00
\ifsetBib
\else
2014-06-09 00:57:35 +01:00
\ClassWarning{PhDThesisPSnPDF}{No bibliography style was specified.
Default numbered style is used. If you would like to use a
different style, use `authoryear' or `numbered' in the options in
documentclass or use `custombib` and define the natbib package or
biblatex package with required style in the Preamble.tex file}
\fi
% *********************** To copy ligatures and Fonts **************************
\RequirePackage{textcomp}
2013-11-19 01:34:28 +00:00
% Font Selection
2013-12-09 14:59:07 +00:00
\ifPHD@times
\RequirePackage{mathptmx} % times roman, including math (where
%possible)
\setFonttrue
2014-06-09 16:22:51 +01:00
\message{PhDThesisPSnPDF: Using Times Roman font}
2013-11-23 16:43:15 +00:00
\else
\ifPHD@fourier
\RequirePackage{fourier} % Fourier
\setFonttrue
2014-06-09 16:22:51 +01:00
\message{PhDThesisPSnPDF: Using Fourier font}
\else
\ifsetCustomFont
2014-06-09 16:22:51 +01:00
\setFonttrue
\message{PhDThesisPSnPDF: Using custom font}
\else
\setFontfalse
2014-06-09 16:22:51 +01:00
\message{PhDThesisPSnPDF: No font is set}
\fi % custom font
\fi % Fourier font
\fi % Times font
2014-06-09 16:22:51 +01:00
% If Font is not set throw a warning.
2014-06-08 19:02:10 +01:00
\ifsetFont
2014-06-09 16:22:51 +01:00
\else
\ClassWarning{PhDThesisPSnPDF}{Using default font Latin Modern. If you
would like to use other pre-defined fonts use `times' (The Cambridge
University PhD thesis guidelines recommend using Times font) or
`fourier' or load a custom font in the preamble.tex file by specifying
`customfont' in the class options}
2014-06-09 16:22:51 +01:00
\RequirePackage{lmodern}
\fi
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
2013-11-15 14:15:34 +00:00
\input{glyphtounicode}
\pdfglyphtounicode{f_f}{FB00}
2013-11-16 18:01:50 +00:00
\pdfglyphtounicode{f_i}{FB01}
\pdfglyphtounicode{f_l}{FB02}
2013-11-15 14:15:34 +00:00
\pdfglyphtounicode{f_f_i}{FB03}
\pdfglyphtounicode{f_f_l}{FB04}
\pdfgentounicode=1
2014-08-24 15:38:27 +01:00
% Don't break enumeration (etc.) across pages in an ugly manner
\clubpenalty=10000
\widowpenalty=10000
% If building with PDFLaTeX, use microtype spacing adjustments
2014-10-08 22:27:23 +01:00
\RequirePackage[final]{microtype}
%******************************* Print / Online *******************************
% Defines a print / online version to define page-layout and
%hyperrefering
% Moved below other usepackage definitions to fix PDFLaTeX footnote
%warning
% Based on the suggestion by John Plaice
\ifsetDVI
\special{papersize=\the\paperwidth,\the\paperheight}
\RequirePackage[dvips,unicode=true]{hyperref}
\else
\RequirePackage[unicode=true]{hyperref}
\pdfpagewidth=\the\paperwidth
\pdfpageheight=\the\paperheight
\fi
\if@print
% For Print version
\hypersetup{
final=true,
2014-06-05 23:24:38 +01:00
plainpages=false,
pdfstartview=FitV,
2014-06-05 23:24:38 +01:00
pdftoolbar=true,
pdfmenubar=true,
bookmarksopen=true,
2014-06-05 23:24:38 +01:00
bookmarksnumbered=true,
breaklinks=true,
linktocpage,
colorlinks=true,
linkcolor=black,
2014-06-05 23:24:38 +01:00
urlcolor=black,
citecolor=black,
anchorcolor=black
}
\ifsetCustomMargin
% Margin to be define in preamble using geometry package
\else
\ifsetDVI
% Odd and Even side Margin for binding and set viewmode for PDF
2014-06-09 00:05:59 +01:00
\RequirePackage[dvips,paper=\PHD@papersize,hmarginratio=1:1,
vmarginratio=1:1,scale=0.75,bindingoffset=5mm]{geometry}
\else
2014-06-09 00:05:59 +01:00
\RequirePackage[pdftex,paper=\PHD@papersize,hmarginratio=1:1,
vmarginratio=1:1,scale=0.75,bindingoffset=5mm]{geometry}
\fi
\fi
2014-06-05 23:24:38 +01:00
\if@twoside
\hypersetup{pdfpagelayout=TwoPageRight}
2014-06-05 23:24:38 +01:00
\else
\hypersetup{pdfpagelayout=OneColumn}
\fi
\else
% For PDF Online version
\hypersetup{
final=true,
plainpages=false,
2014-06-05 23:24:38 +01:00
pdfstartview=FitV,
pdftoolbar=true,
pdfmenubar=true,
bookmarksopen=true,
bookmarksnumbered=true,
breaklinks=true,
2014-06-05 23:24:38 +01:00
linktocpage,
colorlinks=true,
linkcolor=blue,
urlcolor=blue,
2014-06-05 23:24:38 +01:00
citecolor=blue,
anchorcolor=green
}
2014-06-05 23:24:38 +01:00
\ifsetCustomMargin
% Margin to be define in preamble using geometry package
\else
2014-06-05 23:24:38 +01:00
% No Margin staggering on Odd and Even side
\ifsetDVI
2014-06-09 00:05:59 +01:00
\RequirePackage[dvips,paper=\PHD@papersize,hmarginratio=1:1,
vmarginratio=1:1,scale=0.75]{geometry}
\else
2014-06-09 00:05:59 +01:00
\RequirePackage[pdftex,paper=\PHD@papersize,hmarginratio=1:1,
vmarginratio=1:1,scale=0.75]{geometry}
\fi
\fi
\hypersetup{pdfpagelayout=OneColumn}
\fi
2014-06-09 17:48:39 +01:00
% Backward compatibility - setMargin is now replaced with customMargin
\ifsetCustomMargin
\setMarginfalse
\else
\setMargintrue
\fi
% ************************ URL Package and Definition **************************
\RequirePackage{url}
% Redefining urlstyle to use smaller fontsize in References with URLs
\newcommand{\url@leostyle}{%
\@ifundefined{selectfont}{\renewcommand{\UrlFont}{\sffamily}}
{\renewcommand{\UrlFont}{\normalsize}}}
\urlstyle{leo}
% option to split urls over multiple lines for latex >> DVIPS >> PDF
%option
% PDFLaTeX does it automatically.
\ifsetDVI
\RequirePackage{breakurl} % to split the url over multiple lines
\fi
%
%******************************************************************************
% **************************** Pre-defined Settings ***************************
%******************************************************************************
2013-11-15 14:15:34 +00:00
% *************************** Setting PDF Meta-Data ***************************
2013-11-15 13:11:41 +00:00
\ifpdf
\AtBeginDocument{
\hypersetup{
pdftitle = {\@title},
pdfauthor = {\@author},
pdfsubject={\@subject},
pdfkeywords={\@keywords}
}
}
\fi
% ******************************** Line Spacing *******************************
2014-06-09 22:05:10 +01:00
% Set spacing as 1.5 line spacing for the PhD Thesis
% In practice, fortunately, nobody knows really what one-and-a-half
%spaced
% type means exactly (in terms of millimetres baseline distance). The
%following
2014-06-09 22:05:10 +01:00
% LaTeX setting has routinely been considered perfectly acceptable:
\renewcommand\baselinestretch{1.2}
% ******************************** Justification ******************************
2014-06-09 22:05:10 +01:00
% Left aligned as per University identity guidelines
2014-06-29 12:13:35 +01:00
\ifPHD@textJustify
\message{PhDThesisPSnPDF: The University identity guidelines recommend
using
left aligned text. Please use `flushleft' in the documentclass option,
if you
2014-06-29 12:13:35 +01:00
wish to left align your text}
2014-06-29 12:26:45 +01:00
\else
\AtBeginDocument{
\raggedright
}
2014-06-29 12:13:35 +01:00
\fi
2013-11-14 18:51:42 +00:00
% ************************** TOC and Hide Sections ****************************
\newcommand{\nocontentsline}[3]{}
\newcommand{\tochide}[2]{
\bgroup\let
\addcontentsline=\nocontentsline#1{#2}
\egroup}
% Removes pagenumber appearing from TOC
\addtocontents{toc}{\protect\thispagestyle{empty}}
2013-11-14 18:51:42 +00:00
% ***************************** Header Formatting *****************************
2013-11-14 18:51:42 +00:00
% Custom Header with Chapter Number, Page Number and Section Numbering
2013-11-23 01:14:15 +00:00
2013-11-25 18:14:19 +00:00
\RequirePackage{fancyhdr} % Define custom header
% Set Fancy Header Command is defined to Load FancyHdr after Geometry is
%defined
2013-11-26 00:56:29 +00:00
\newcommand{\setFancyHdr}{
2013-11-22 01:02:14 +00:00
2013-11-26 00:56:29 +00:00
\pagestyle{fancy}
2013-12-09 14:59:07 +00:00
\ifPHD@pageStyleI
2013-11-24 00:53:30 +00:00
% Style 1: Sets Page Number at the Top and Chapter/Section Name on LE/RO
2013-11-26 00:56:29 +00:00
\renewcommand{\chaptermark}[1]{\markboth{##1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ ##1\ }}
2013-11-24 00:53:30 +00:00
\fancyhf{}
2014-06-09 00:05:59 +01:00
\fancyhead[RO]{\nouppercase \rightmark\hspace{0.25em} |
\hspace{0.25em} \bfseries{\thepage}}
\fancyhead[LE]{ {\bfseries\thepage} \hspace{0.25em} |
\hspace{0.25em} \nouppercase \leftmark}
2013-11-24 00:53:30 +00:00
\else
2013-12-09 14:59:07 +00:00
\ifPHD@pageStyleII
% Style 2: Sets Page Number at the Bottom with Chapter/Section Name on
%LO/RE
2013-11-26 00:56:29 +00:00
\renewcommand{\chaptermark}[1]{\markboth{##1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ ##1}}
2013-11-24 00:53:30 +00:00
\fancyhf{}
\fancyhead[RO]{\bfseries\nouppercase \rightmark}
\fancyhead[LE]{\bfseries \nouppercase \leftmark}
\fancyfoot[C]{\thepage}
\else
% Default Style: Sets Page Number at the Top (LE/RO) with
%Chapter/Section Name
2013-12-07 02:38:37 +00:00
% on LO/RE and an empty footer
2013-11-26 00:56:29 +00:00
\renewcommand{\chaptermark}[1]{\markboth {##1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ ##1}}
\fancyhf{}
2013-11-22 20:44:16 +00:00
\fancyhead[LO]{\nouppercase \rightmark}
2013-11-22 18:46:10 +00:00
\fancyhead[LE,RO]{\bfseries\thepage}
2013-11-22 20:44:16 +00:00
\fancyhead[RE]{\nouppercase \leftmark}
2013-11-24 00:53:30 +00:00
\fi
2013-11-15 00:05:34 +00:00
2013-11-24 00:53:30 +00:00
\fi
2013-11-26 00:56:29 +00:00
}
2013-11-25 18:14:19 +00:00
\setlength{\headheight}{14.5pt}
2013-11-16 22:57:26 +00:00
%\renewcommand{\headrulewidth}{0.5pt}
%\renewcommand{\footrulewidth}{0pt}
2013-11-17 01:25:23 +00:00
\fancypagestyle{plain}{
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
}
2013-11-14 18:51:42 +00:00
2013-11-26 00:56:29 +00:00
% If Margin has been set (default margin print/online version)
2014-06-06 19:22:15 +01:00
\ifsetCustomMargin
\AtBeginDocument{
\@ifpackageloaded{geometry}{}{\ClassWarning{PhDThesisPSnPDF}{%
Custom margin is chosen, but geometry package is not loaded. Please
load the
`geometry' package in the preamble.}}}
2014-06-06 19:22:15 +01:00
\else
2013-11-26 00:56:29 +00:00
\setFancyHdr % Apply fancy header settings otherwise apply it in preamble
\fi
2013-11-25 18:14:19 +00:00
% *************** Clear Header Style on the Last Empty Odd pages **************
\renewcommand{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else%
\hbox{}%
\thispagestyle{empty} % Empty header styles
\newpage%
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
2013-11-14 18:51:42 +00:00
2013-11-17 20:12:08 +00:00
% ***************************** Roman Pages ***********************************
% The romanpages environment set the page numbering to lowercase roman
%one
% for the contents and figures lists. It also resets
% page-numbering for the remainder of the dissertation (arabic, starting
%at 1).
2013-11-14 18:51:42 +00:00
\newenvironment{romanpages}{
\setcounter{page}{1}
\renewcommand{\thepage}{\roman{page}}}
{\newpage\renewcommand{\thepage}{\arabic{page}}}
% ****************************** Appendices ***********************************
2014-01-20 12:09:46 +00:00
% Appending the appendix name to the letter in TOC
% Especially when backmatter is enabled
%\renewcommand\backmatter{
% \def\chaptermark##1{\markboth{%
% \ifnum \c@secnumdepth > \m@ne \@chapapp\ \thechapter: \fi
%##1}{%
% \ifnum \c@secnumdepth > \m@ne \@chapapp\ \thechapter: \fi
%##1}}%
2014-01-20 12:09:46 +00:00
% \def\sectionmark##1{\relax}}
%
%******************************************************************************
% *************************** Macro Definitions *******************************
%******************************************************************************
2013-11-14 18:51:42 +00:00
% These macros are used to declare arguments needed for the
% construction of the title page and other preamble.
2014-07-14 23:54:39 +01:00
% Subtitle (optional)
\newcommand{\@subtitle}{}
\newcommand{\subtitle}[1]{\renewcommand{\@subtitle}{#1}}
2013-11-14 18:51:42 +00:00
% The year and term the degree will be officially conferred
2014-06-09 16:22:51 +01:00
\newcommand{\@degreedate}{\monthname[\the\month]\space\the\year}
\newcommand{\degreedate}[1]{\renewcommand{\@degreedate}{#1}}
2013-11-14 18:51:42 +00:00
% The full (unabbreviated) name of the degree
2014-11-07 15:31:30 +00:00
\newcommand{\@degreetitle}{}
\newcommand{\degreetitle}[1]{\renewcommand{\@degreetitle}{#1}}
2013-11-14 23:17:26 +00:00
% The name of your department(eg. Engineering, Maths, Physics)
\newcommand{\@dept}{}
\newcommand{\dept}[1]{\renewcommand{\@dept}{#1}}
2013-11-14 23:17:26 +00:00
% The name of your college (eg. King's)
\newcommand{\@college}{}
\newcommand{\college}[1]{\renewcommand{\@college}{#1}}
2013-11-14 18:51:42 +00:00
% The name of your University
\newcommand{\@university}{}
\newcommand{\university}[1]{\renewcommand{\@university}{#1}}
2013-11-14 18:51:42 +00:00
% Defining the crest
\newcommand{\@crest}{}
\newcommand{\crest}[1]{\renewcommand{\@crest}{#1}}
% Defining the college crest
\newif\ifPHD@collegeshield\PHD@collegeshieldfalse
\newcommand{\@collegeshield}{}
\newcommand{\collegeshield}[1]{\renewcommand{\@collegeshield}{#1}\PHD@collegeshieldtrue}
% Submission Text
\newcommand{\submissiontext}{This dissertation is submitted for the
degree of }
% keywords (These keywords will appear in the PDF meta-information
% called `pdfkeywords`.)
\newcommand{\@keywords}{}
\newcommand{\keywords}[1]{\renewcommand{\@keywords}{#1}}
% subjectline (This subject will appear in the PDF meta-information
% called `pdfsubject`.)
\newcommand{\@subject}{}
\newcommand{\subject}[1]{\renewcommand{\@subject}{#1}}
2013-11-15 13:11:41 +00:00
2013-11-14 18:51:42 +00:00
2014-06-05 23:24:38 +01:00
% These macros define an environment for front matter that is always
2013-11-14 18:51:42 +00:00
% single column even in a double-column document.
\newenvironment{alwayssingle}{%
\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
\else\newpage\fi}
{\if@restonecol\twocolumn\else\newpage\fi}
% Set single column even under two column layout
2013-11-17 21:24:43 +00:00
\newcommand{\setsinglecolumn}{
\if@twocolumn
\onecolumn
\else
\fi
}
2013-11-16 18:01:50 +00:00
%
%******************************************************************************
%*************************** Front Matter Layout ******************************
%******************************************************************************
% ******************************** titlepage **********************************
% Fix issue of title page having same number as the next page in oneside
%option
% Issue #24 https://github.com/kks32/phd-thesis-template/issues/24
\renewenvironment{titlepage} % changed from "newenvironment"
{%
\begingroup
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}
\setcounter{page}\z@
}%
{
\if@restonecol
\twocolumn
\else
\newpage
\fi
\endgroup
\clearpage
\addtocounter{page}{1}
}
% ******************************** Title Page *********************************
2013-11-18 00:27:00 +00:00
\renewcommand{\maketitle}{
2013-12-09 22:04:17 +00:00
2013-11-24 15:40:35 +00:00
% To compute the free vertical space in Title page
\computeTitlePageSpacing
% Fix for issue #24
%https://github.com/kks32/phd-thesis-template/issues/24
\renewcommand*{\thepage}{i}
2013-11-14 18:51:42 +00:00
\begin{singlespace}
2013-11-14 23:17:26 +00:00
\begin{center}
% University Crest Long if college crest is defined
\ifPHD@collegeshield%
{\usebox{\PHD@crest}}
\vspace{.15\PHD@titlepagespacing}
\fi
2013-11-18 00:27:00 +00:00
% Title
2014-07-14 23:54:39 +01:00
{\usebox{\PHD@Title}} % subtitle is defined
2013-11-18 00:27:00 +00:00
% Crest
\ifPHD@collegeshield%
\vspace{.15\PHD@titlepagespacing}
{\usebox{\PHD@collegecrest}}
\vspace{.1\PHD@titlepagespacing}
\else
\vspace{.25\PHD@titlepagespacing}
{\usebox{\PHD@crest}}
\vspace{.15\PHD@titlepagespacing}
\fi
2013-11-18 00:27:00 +00:00
% Author
{\usebox{\PHD@author}}
2014-07-14 23:54:39 +01:00
\vspace*{1em}
2013-11-18 00:27:00 +00:00
% Department and University
{\usebox{\PHD@dept}}
2013-12-09 14:59:07 +00:00
\vspace{.2\PHD@titlepagespacing}
2013-11-18 00:27:00 +00:00
% Submission Text
{\usebox{\PHD@submission}}
2013-11-18 00:27:00 +00:00
2013-11-14 18:51:42 +00:00
\end{center}
\vfill
{\usebox{\PHD@collegedate}}
2013-11-14 23:17:26 +00:00
\end{singlespace}
2013-11-14 18:51:42 +00:00
}
% ********************************* Dedication *********************************
2013-11-14 18:51:42 +00:00
% The dedication environment makes sure the dedication gets its
% own page, centered
2013-11-14 18:51:42 +00:00
\newenvironment{dedication}
2013-11-17 18:28:28 +00:00
{
\cleardoublepage
2013-11-17 21:24:43 +00:00
\setsinglecolumn
2013-11-17 18:28:28 +00:00
\vspace*{0.2\textheight}
\thispagestyle{empty}
\centering
}
2013-11-14 18:51:42 +00:00
% ******************************* Declaration *********************************
2014-06-05 23:24:38 +01:00
% The declaration environment puts a large, bold, centered
2013-11-19 01:34:28 +00:00
% "Declaration" label at the top of the page.
2013-11-14 18:51:42 +00:00
2013-11-17 20:12:08 +00:00
\newenvironment{declaration}{
2013-11-17 18:28:28 +00:00
\cleardoublepage
2013-11-17 21:24:43 +00:00
\setsinglecolumn
2013-11-17 20:12:08 +00:00
\chapter*{\centering \Large Declaration}
2013-11-17 18:37:05 +00:00
\thispagestyle{empty}
}{
\flushright
\@author{}\\
\@degreedate{}
\vfill
2013-11-17 18:28:28 +00:00
}
2013-11-14 18:51:42 +00:00
% **************************** Acknowledgements *******************************
2014-06-05 23:24:38 +01:00
% The acknowledgements environment puts a large, bold, centered
2013-11-19 01:34:28 +00:00
% "Acknowledgements" label at the top of the page.
2013-11-14 18:51:42 +00:00
2014-01-13 01:18:37 +00:00
\newenvironment{acknowledgements}{
2013-11-17 20:12:08 +00:00
\cleardoublepage
2013-11-17 21:24:43 +00:00
\setsinglecolumn
2014-01-13 01:18:37 +00:00
\chapter*{\centering \Large Acknowledgements}
2013-11-17 20:12:08 +00:00
\thispagestyle{empty}
}
2013-11-14 18:51:42 +00:00
% ******************************* Nomenclature *********************************
2013-11-14 18:51:42 +00:00
2014-12-02 23:28:04 +00:00
\RequirePackage[intoc]{nomencl}
\makenomenclature
2013-11-20 00:55:21 +00:00
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{\item[\textbf{Roman Symbols}]}{%
\ifthenelse{\equal{#1}{G}}{\item[\textbf{Greek Symbols}]}{%
\ifthenelse{\equal{#1}{Z}}{\item[\textbf{Acronyms / Abbreviations}]}{%
\ifthenelse{\equal{#1}{R}}{\item[\textbf{Superscripts}]}{%
\ifthenelse{\equal{#1}{S}}{\item[\textbf{Subscripts}]}{%
\ifthenelse{\equal{#1}{X}}{\item[\textbf{Other Symbols}]}
{}
}% matches mathematical symbols > X
}% matches Subscripts > S
}% matches Superscripts > R
}% matches Abbreviations > Z
}% matches Greek Symbols > G
}% matches Roman Symbols > A
2013-12-10 11:13:50 +00:00
% To add nomenclature in the header
\renewcommand{\nompreamble}{\markboth{\nomname}{\nomname}}
2013-11-16 10:46:13 +00:00
% ***************************** Create the index *******************************
2013-12-09 14:59:07 +00:00
\ifPHD@index
\RequirePackage{makeidx}
\makeindex
\newcommand{\printthesisindex}{
\cleardoublepage
\phantomsection
\printindex}
\else
\newcommand{\printthesisindex}{}
\fi
%***************************** Chapter Mode **********************************
% The chapter mode allows user to only print particular chapters with
%references
% All other options are disabled by default
% To include only specific chapters without TOC, LOF, Title and Front
%Matter
% To send it to supervisior for changes
\ifPHD@chapter
\defineChaptertrue
% Disable the table of contents, figures, tables, index and
%nomenclature
\renewcommand{\maketitle}{}
\renewcommand{\tableofcontents}{}
\renewcommand{\listoffigures}{}
\renewcommand{\listoftables}{}
\renewcommand{\printnomencl}{}
\renewcommand{\printthesisindex}{}
\else
\defineChapterfalse
\fi
% ******************************** Abstract ***********************************
% The abstract environment puts a large, bold, centered "Abstract" label
%at
% the top of the page. Defines both abstract and separate abstract
%environment
2013-12-05 16:01:45 +00:00
% To include only the Title and the abstract pages for submission to BoGS
2013-12-09 14:59:07 +00:00
\ifPHD@abstract
2013-12-05 16:01:45 +00:00
\defineAbstracttrue
% Disable the table of contents, figures, tables, index and
%nomenclature
2013-12-05 16:01:45 +00:00
\renewcommand{\tableofcontents}{}
\renewcommand{\listoffigures}{}
\renewcommand{\listoftables}{}
\renewcommand{\printnomencl}{}
\renewcommand{\printnomencl}[1][2]{}
2013-12-05 16:01:45 +00:00
\renewcommand{\printthesisindex}{}
\renewcommand{\bibname}{}
\renewcommand{\bibliography}[1]{\thispagestyle{empty}}
2013-12-05 16:01:45 +00:00
\else
\defineAbstractfalse
\fi
\newenvironment{abstract} {
2013-12-09 14:59:07 +00:00
\ifPHD@abstract
2013-12-05 16:01:45 +00:00
% Separate abstract as per Student Registry guidelines
\thispagestyle{empty}
\setsinglecolumn
\begin{center}
{ \Large {\bfseries {\@title}} \par}
{{\large \vspace*{1em} \@author} \par}
\end{center}
\else
% Normal abstract in the thesis
\cleardoublepage
2014-06-05 23:24:38 +01:00
\setsinglecolumn
2013-12-05 16:01:45 +00:00
\chapter*{\centering \Large Abstract}
\thispagestyle{empty}
\fi
}
% ******************** To compute empty space in title page *******************
% Boxes below are used to space different contents on the title page
% Based on https://github.com/cambridge/thesis
2013-11-24 15:40:35 +00:00
\newcommand{\computeTitlePageSpacing}{
% Title Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@Title}
\begin{lrbox}{\PHD@Title}
\begin{minipage}[c]{0.98\textwidth}
\centering \Huge \bfseries{\@title}
\ifthenelse{\equal{\@subtitle}{}}{
% subtitle is not defined
}{
\\
\centering \Large {\@subtitle}
} % subtitle is defined
\end{minipage}
2013-11-24 15:40:35 +00:00
\end{lrbox}
% University Crest Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@crest}
\begin{lrbox}{\PHD@crest}
{\@crest \par}
\end{lrbox}
\newsavebox{\PHD@collegecrest}
\begin{lrbox}{\PHD@collegecrest}
\ifPHD@collegeshield%
{\@collegeshield}
\else
% College shield is undefined
\fi
2013-11-24 15:40:35 +00:00
\end{lrbox}
% Author Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@author}
\begin{lrbox}{\PHD@author}
\begin{minipage}[c]{\textwidth}
\centering \Large \bfseries{\@author}
\end{minipage}
2013-11-24 15:40:35 +00:00
\end{lrbox}
% Department Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@dept}
\begin{lrbox}{\PHD@dept}
\begin{minipage}[c]{\textwidth}
\centering {\large \@dept \par}
{\large \@university \par}
\end{minipage}
2013-11-24 15:40:35 +00:00
\end{lrbox}
% Submission Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@submission}
\begin{lrbox}{\PHD@submission}
\begin{minipage}[c]{\textwidth}
\begin{center}
\large \submissiontext \par
\large \textit {\@degreetitle} \par
\end{center}
\end{minipage}
2013-11-24 15:40:35 +00:00
\end{lrbox}
% College and Date Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@collegedate}
\begin{lrbox}{\PHD@collegedate}
2013-11-24 15:40:35 +00:00
\begin{minipage}[c]{\textwidth}
\large
\ifthenelse{\equal{\@college}{}}{
% college is not defined
\@degreedate
}{
% college is defined
2014-11-16 18:48:39 +00:00
\begin{minipage}[b]{0.49\textwidth}
\flushleft\@college
\end{minipage}
2014-11-16 18:48:39 +00:00
\begin{minipage}[b]{0.49\textwidth}
\flushright \@degreedate
\end{minipage}
} % college is defined
2013-11-24 15:40:35 +00:00
\end{minipage}
\end{lrbox}
% Now to compute the free vertical space
2013-12-09 14:59:07 +00:00
\newlength{\PHD@titlepagespacing}
\setlength{\PHD@titlepagespacing}{ \textheight %
- \totalheightof{\usebox{\PHD@Title}}
- \totalheightof{\usebox{\PHD@crest}}
- \totalheightof{\usebox{\PHD@collegecrest}}
2013-12-09 14:59:07 +00:00
- \totalheightof{\usebox{\PHD@author}}
- \totalheightof{\usebox{\PHD@dept}}
- \totalheightof{\usebox{\PHD@submission}}
- \totalheightof{\usebox{\PHD@collegedate}}
2013-11-24 15:40:35 +00:00
}
}
2014-08-15 11:46:25 +01:00