dissertation-4-dissertation/Classes/PhDThesisPSnPDF.cls

754 lines
23 KiB
OpenEdge ABL
Raw Normal View History

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% Class ``PhD Thesis PSnPDF'' %%
%% %%
%% A PhD thesis LaTeX template for Cambridge University Engineering Department%%
%% %%
%% Version: v1.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 ******************************
\NeedsTeXFormat{LaTeX2e}
2013-12-09 15:33:06 +00:00
\ProvidesClass{PhDThesisPSnPDF}[2013/12/10 version 1.0 by Krishna Kumar]
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}
% ****************************** Define index **********************************
2013-12-09 14:59:07 +00:00
\newif\ifPHD@index\PHD@indexfalse
\DeclareOption{index}{\PHD@indextrue}
% ******************************* Font Option **********************************
\newif\ifsetFont\setFontfalse % Font is not set
2013-11-19 01:34:28 +00:00
2013-12-09 14:59:07 +00:00
\newif\ifPHD@times\PHD@timesfalse % Times with Math Support
\DeclareOption{times}{\PHD@timestrue}
2013-12-09 14:59:07 +00:00
\newif\ifPHD@fourier\PHD@fourierfalse % Fourier with Math Support
\DeclareOption{fourier}{\PHD@fouriertrue}
2013-11-23 16:43:15 +00:00
2013-12-09 14:59:07 +00:00
\newif\ifPHD@customfont\PHD@customfontfalse % Custom Font with Math Support
\DeclareOption{customfont}{\PHD@customfonttrue}
2013-11-23 16:43:15 +00:00
% ******************************* Bibliography *********************************
\newif\ifsetBib\setBibfalse % Using Custom Bibliography
2013-12-09 14:59:07 +00:00
\newif\ifPHD@authoryear\PHD@authoryearfalse % Author-Year citation
\DeclareOption{authoryear}{\PHD@authoryeartrue}
2013-12-09 14:59:07 +00:00
\newif\ifPHD@numbered\PHD@numberedfalse % Numbered citiation
\DeclareOption{numbered}{\PHD@numberedtrue}
2013-12-09 14:59:07 +00:00
\newif\ifPHD@custombib\PHD@custombibfalse % Custom Bibliography
\DeclareOption{custombib}{\PHD@custombibtrue}
% ************************* 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 ********************************
2013-11-25 11:11:21 +00:00
\newif\ifsetMargin\setMarginfalse % Margins are not set
2013-12-09 14:59:07 +00:00
\newif\ifPHD@custommargin\PHD@custommarginfalse % Custom margin
\DeclareOption{custommargin}{\PHD@custommargintrue}
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}{
2013-12-09 14:59:07 +00:00
\PHD@abstracttrue
2013-12-07 02:38:37 +00:00
\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
recompile. Good luck with your writing!}
}
2013-12-05 16:01:45 +00:00
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
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}%
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
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
\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{book}}%
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
2013-12-09 22:04:17 +00:00
'\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
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
%* ***************************** Print / Online ********************************
2013-11-19 11:32:39 +00:00
% Defines a print / online version to define page-layout and hyperrefering
2013-12-05 11:09:11 +00:00
\ifsetDVI
2013-12-08 20:13:19 +00:00
\special{papersize=\the\paperwidth,\the\paperheight}
2014-01-11 17:51:19 +00:00
\RequirePackage[dvips,unicode=true]{hyperref}
2013-12-05 11:09:11 +00:00
\else
2014-01-11 17:51:19 +00:00
\RequirePackage[unicode=true]{hyperref}
2013-12-09 00:18:39 +00:00
\pdfpagewidth=\the\paperwidth
\pdfpageheight=\the\paperheight
2013-12-05 11:09:11 +00:00
\fi
2013-11-19 11:32:39 +00:00
\if@print
2013-12-07 02:38:37 +00:00
% For Print version
\hypersetup{
plainpages=false,
pdfstartview=FitV,
pdftoolbar=true,
pdfmenubar=true,
bookmarksopen=true,
bookmarksnumbered=true,
breaklinks=true,
linktocpage,
colorlinks=true,
linkcolor=black,
urlcolor=black,
citecolor=black,
anchorcolor=black
}
2013-12-09 14:59:07 +00:00
\ifPHD@custommargin
2013-11-25 11:11:21 +00:00
\setMarginfalse
2013-12-07 02:38:37 +00:00
\else
2013-12-09 00:18:39 +00:00
\ifsetDVI
% Odd and Even side Margin for binding and set viewmode for PDF
2013-12-09 14:59:07 +00:00
\RequirePackage[dvips,paper=\PHD@papersize,hmarginratio=1:1,vmarginratio=1:1,scale=0.75,bindingoffset=5mm]{geometry}
2013-12-09 00:18:39 +00:00
\else
2013-12-09 14:59:07 +00:00
\RequirePackage[pdftex,paper=\PHD@papersize,hmarginratio=1:1,vmarginratio=1:1,scale=0.75,bindingoffset=5mm]{geometry}
2013-12-09 00:18:39 +00:00
\fi
2013-12-07 02:38:37 +00:00
\setMargintrue
\fi
\if@twoside
\hypersetup{pdfpagelayout=TwoPageRight}
\else
2013-11-24 23:26:21 +00:00
\hypersetup{pdfpagelayout=OneColumn}
2013-12-07 02:38:37 +00:00
\fi
\else
2013-12-07 02:38:37 +00:00
% For PDF Online version
\hypersetup{
plainpages=false,
pdfstartview=FitV,
pdftoolbar=true,
pdfmenubar=true,
bookmarksopen=true,
bookmarksnumbered=true,
breaklinks=true,
linktocpage,
colorlinks=true,
linkcolor=blue,
urlcolor=blue,
citecolor=blue,
anchorcolor=green
}
2013-12-09 14:59:07 +00:00
\ifPHD@custommargin
2013-11-25 11:11:21 +00:00
\setMarginfalse
2013-12-07 02:38:37 +00:00
\else
% No Margin staggering on Odd and Even side
2013-12-09 00:18:39 +00:00
\ifsetDVI
2013-12-09 14:59:07 +00:00
\RequirePackage[dvips,paper=\PHD@papersize,hmarginratio=1:1,vmarginratio=1:1,scale=0.75]{geometry}
2013-12-09 00:18:39 +00:00
\else
2013-12-09 14:59:07 +00:00
\RequirePackage[pdftex,paper=\PHD@papersize,hmarginratio=1:1,vmarginratio=1:1,scale=0.75]{geometry}
2013-12-09 00:18:39 +00:00
\fi
2013-11-25 11:11:21 +00:00
\setMargintrue
2013-12-07 02:38:37 +00:00
\fi
2013-11-25 11:11:21 +00:00
2013-12-07 02:38:37 +00:00
\hypersetup{pdfpagelayout=OneColumn}
\fi
2013-11-16 17:13:31 +00:00
2013-11-17 20:12:08 +00:00
2013-11-17 01:25:23 +00:00
% ******************************************************************************
% ******************************** Packages ************************************
% ******************************************************************************
2013-11-16 22:57:26 +00:00
2013-11-25 18:14:19 +00:00
% ************************** Layout and Formatting *****************************
2013-11-14 18:51:42 +00:00
\def\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} % Used in LaTeX Class files for conditional statements
\RequirePackage{ifpdf} % Check for pdfLaTeX
2013-11-14 18:51:42 +00:00
2013-12-07 20:40:49 +00:00
% *********************** Table of Contents & Appendices ***********************
2013-11-17 01:25:23 +00:00
% add Bibliography, List of figures and tables to contents
\RequirePackage{tocbibind}
2013-12-07 20:40:49 +00:00
% Add appendices
\RequirePackage[title,titletoc]{appendix}
2013-11-14 18:51:42 +00:00
% *************************** Graphics and Figures *****************************
\RequirePackage[usenames, dvipsnames]{color}
2013-11-17 01:25:23 +00:00
\ifpdf
% Convert eps figures to pdf
\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
% ************************ URL Package and Definition **************************
\RequirePackage{url}
2013-11-16 10:46:13 +00:00
% Redefining urlstyle to use smaller fontsize in References with URLs
2013-11-24 23:26:21 +00:00
\newcommand{\url@leostyle}{%
\@ifundefined{selectfont}{\renewcommand{\UrlFont}{\sf}}
{\renewcommand{\UrlFont}{\small\ttfamily}}}
2013-11-15 17:05:57 +00:00
\urlstyle{leo}
% ******************************* Bibliography *********************************
2013-12-09 14:59:07 +00:00
\ifPHD@authoryear
\RequirePackage[round, sort, numbers, authoryear]{natbib} %author year
\setBibtrue
\else
2013-12-09 14:59:07 +00:00
\ifPHD@numbered
\RequirePackage[numbers,sort&compress]{natbib} % numbered citation
\setBibtrue
\else
2013-12-09 14:59:07 +00:00
\ifPHD@custombib
\setBibfalse
\else
\RequirePackage[numbers,sort&compress]{natbib} % Default - numbered
\setBibtrue
2013-12-07 02:38:37 +00: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 natbibpackage with required style in the Preamble.tex file}
\fi
\fi
\fi
2013-11-17 01:25:23 +00:00
% *********************** To copy ligatures and Fonts **************************
\RequirePackage{textcomp}
2013-11-20 01:42:27 +00:00
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
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
2013-11-23 16:43:15 +00:00
\else
2013-12-09 14:59:07 +00:00
\ifPHD@fourier
2013-11-25 20:53:18 +00:00
\RequirePackage{fourier} % Fourier
2013-11-23 16:43:15 +00:00
\setFonttrue
\else
2013-12-09 14:59:07 +00:00
\ifPHD@customfont
2013-11-23 16:43:15 +00:00
\setFontfalse
\else
2013-12-07 02:38:37 +00:00
\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
2013-12-09 22:04:17 +00:00
font in the preamble.tex file by specifying `customfont' in the class options}
2013-11-23 16:43:15 +00:00
\RequirePackage{lmodern}
\setFonttrue
\fi
\fi
\fi
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
% ******************************************************************************
% **************************** 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
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
2013-11-26 00:56:29 +00:00
% Set Fancy Header Command is defined to Load FancyHdr after Geometry is defined
\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{}
\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
2013-11-24 00:53:30 +00:00
% 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
2013-12-07 02:38:37 +00:00
% Default Style: Sets Page Number at the Top (LE/RO) with Chapter/Section Name
% 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-23 01:14:15 +00:00
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)
\ifsetMargin
\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}}}
% ******************************************************************************
% **************************** 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.
2013-11-14 18:51:42 +00:00
% The year and term the degree will be officially conferred
\newcommand{\@degreedate}{}
\newcommand{\degreedate}[1]{\renewcommand{\@degreedate}{#1}}
2013-11-14 18:51:42 +00:00
% The full (unabbreviated) name of the degree
\newcommand{\@degree}{}
\newcommand{\degree}[1]{\renewcommand{\@degree}{#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}}
% 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
% These macros define an environment for front matter that is always
% 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 ******************************
% ******************************************************************************
% ******************************** 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
2013-11-14 18:51:42 +00:00
\begin{singlespace}
2013-11-14 23:17:26 +00:00
\begin{center}
2013-11-18 00:27:00 +00:00
% Title
{\Huge \bfseries{\@title} \par}
2013-12-09 14:59:07 +00:00
\vspace{.25\PHD@titlepagespacing}
2013-11-18 00:27:00 +00:00
% Crest
{\@crest \par}
2013-12-09 14:59:07 +00:00
\vspace{.2\PHD@titlepagespacing}
2013-11-18 00:27:00 +00:00
% Author
{\Large \bfseries{\@author} \par}
2013-11-14 18:51:42 +00:00
\vspace*{1ex}
2013-11-18 00:27:00 +00:00
% Department and University
{\large \@dept \par}
\vspace*{1ex}
{\large \@university \par}
2013-12-09 14:59:07 +00:00
\vspace{.2\PHD@titlepagespacing}
2013-11-18 00:27:00 +00:00
% Submission Text
{\large \submissiontext \par}
2013-11-18 00:27:00 +00:00
\vspace*{1ex}
{\large \it {\@degree} \par}
2013-11-24 15:40:35 +00:00
2013-11-18 00:27:00 +00:00
2013-11-14 18:51:42 +00:00
\end{center}
\vfill
2013-11-18 00:27:00 +00:00
\large
2013-11-18 10:52:17 +00:00
\begin{minipage}{0.49\textwidth}
\flushleft\hspace*{\oddsidemargin}\@college
2013-11-18 00:27:00 +00:00
\end{minipage}
2013-11-18 10:52:17 +00:00
\begin{minipage}{0.49\textwidth}
2013-11-18 00:27:00 +00:00
\flushright \@degreedate
\end{minipage}
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 **********************************
2013-11-14 18:51:42 +00: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
2014-01-12 11:51:52 +00:00
% ****************************** Acknowledgments ********************************
2013-11-14 18:51:42 +00: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-12 11:51:52 +00:00
\newenvironment{acknowledgments}{
2013-11-17 20:12:08 +00:00
\cleardoublepage
2013-11-17 21:24:43 +00:00
\setsinglecolumn
2014-01-12 11:51:52 +00:00
\chapter*{\centering \Large Acknowledgments}
2013-11-17 20:12:08 +00:00
\thispagestyle{empty}
}
2013-11-14 18:51:42 +00:00
2013-11-14 18:51:42 +00:00
% ******************************* Nomenclature *********************************
\usepackage{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-20 00:55:21 +00:00
% Add nomenclature to contents and print out nomenclature
2013-11-26 18:18:30 +00:00
\newcommand{\printnomencl}[1][]{
\ifthenelse{\equal {#1}{}}
{\printnomenclature}
{\printnomenclature[#1]}
2013-11-20 00:55:21 +00:00
\addcontentsline{toc}{chapter}{\nomname}
}
2013-11-14 18:51:42 +00:00
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
% ******************************** Abstract ************************************
2013-12-05 16:01:45 +00:00
% The abstract environment puts a large, bold, centered "Abstract" label at
% the top of the page. Defines both abstract and separate abstract environment
% 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
\renewcommand{\tableofcontents}{}
\renewcommand{\listoffigures}{}
\renewcommand{\listoftables}{}
\renewcommand{\printnomencl}{}
\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
\setsinglecolumn
\chapter*{\centering \Large Abstract}
\thispagestyle{empty}
\fi
}
2013-12-07 20:40:49 +00:00
% ******************************** Line Spacing ********************************
% Set spacing as 1.5 line spacing for the PhD Thesis
\onehalfspace
2013-12-05 16:01:45 +00:00
% ******************** To compute empty space in title page ********************
% Boxes below are used to space differt contents on the title page
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}
2013-11-24 15:40:35 +00:00
\begin{minipage}[c]{0.98\textwidth}
\centering \Huge \bfseries{\@title}
\end{minipage}
\end{lrbox}
% University Crest Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@crest}
\begin{lrbox}{\PHD@crest}
2013-11-24 15:40:35 +00:00
\@crest
\end{lrbox}
% Author Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@author}
\begin{lrbox}{\PHD@author}
2013-11-24 15:40:35 +00:00
\begin{minipage}[c]{\textwidth}
\centering \Large \bfseries{\@author}
\end{minipage}
\end{lrbox}
% Department Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@dept}
\begin{lrbox}{\PHD@dept}
2013-11-24 15:40:35 +00:00
\begin{minipage}[c]{\textwidth}
\centering {\large \@dept \par}
\vspace*{1ex}
{\large \@university \par}
\end{minipage}
\end{lrbox}
% Submission Box
2013-12-09 14:59:07 +00:00
\newsavebox{\PHD@submission}
\begin{lrbox}{\PHD@submission}
2013-11-24 15:40:35 +00:00
\begin{minipage}[c]{\textwidth}
\begin{center}
\large \submissiontext \par
\vspace*{1ex}
\large \it {\@degree} \par
\end{center}
\end{minipage}
\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
\begin{minipage}{0.45\textwidth}
\flushleft\@college
\end{minipage}
\begin{minipage}{0.45\textwidth}
\flushright \@degreedate
\end{minipage}
\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@author}}
- \totalheightof{\usebox{\PHD@dept}}
- \totalheightof{\usebox{\PHD@submission}}
- \totalheightof{\usebox{\PHD@collegedate}}
2013-11-24 15:40:35 +00:00
}
}