reading-templates/research-proposal/ResearchProposal.cls

538 lines
18 KiB
TeX

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This document is based upon the
% Masters/Doctoral Thesis
% LaTeX Template
% Version 2.5 (27/8/17)
%
% This template was downloaded from:
% http://www.LaTeXTemplates.com
%
% Version 2.x major modifications by:
% Vel (vel@latextemplates.com)
%
% This template is based on a template by:
% Steve Gunn (http://users.ecs.soton.ac.uk/srg/softwaretools/document/templates/)
% Sunil Patel (http://www.sunilpatel.co.uk/thesis-template/)
%
% Template license:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Masters/Doctoral Thesis
% Class File
% Version 1.6 (27/8/17)
%
% This class was downloaded from:
% http://www.LaTeXTemplates.com
%
% Authors:
% Vel (vel@latextemplates.com)
% Johannes Böttcher
%
% Notes:
% 1) This class file defines the structure and layout of the template file (main.tex).
% 2) It has been written in such a way that under most circumstances you should not need
% to edit it; updating it to a newer version will be harder. If you do make changes, please change the name of
% the file and add comments to make your changes more visible.
%
% Class license:
% LPPL v1.3c (http://www.latex-project.org/lppl)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% CLASS DEFINITION AND PARAMETERS
%----------------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\newcommand{\classname}{ResearchProposal}
\ProvidesClass{\classname}[ResearchProposal V1]
\providecommand{\baseclass}{article}
\RequirePackage{etoolbox}
\RequirePackage{xparse}
\newbool{nolistspace}
\newbool{chapteroneline}
\newbool{listtoc}
\newbool{toctoc}
\newbool{parskip}
\newbool{hyperrefsupport}
\booltrue{hyperrefsupport}
\newbool{headsepline}
\newbool{consistentlayout}
\DeclareOption{nohyperref}{\boolfalse{hyperrefsupport}}
\DeclareOption{nolistspacing}{\booltrue{nolistspace}}
\DeclareOption{liststotoc}{\booltrue{listtoc}}
\DeclareOption{chapterinoneline}{\booltrue{chapteroneline}}
\DeclareOption{toctotoc}{\booltrue{toctoc}}
\DeclareOption{parskip}{\booltrue{parskip}}
\DeclareOption{headsepline}{\booltrue{headsepline}}
\DeclareOption{consistentlayout}{\booltrue{consistentlayout}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}}
\ProcessOptions\relax
\LoadClass{\baseclass}
% Simple interface for the user to customize the chapter titles
\ProvideDocumentCommand{\abovechapterskip}{}{\vspace*{20pt}}
\ProvideDocumentCommand{\chapterbelowskip}{}{\vspace*{40pt}}
\ProvideDocumentCommand{\chapterinbetweenskip}{}{\vspace*{20pt}}
\ProvideDocumentCommand{\autodot}{}{}
\ProvideDocumentCommand{\mdtChapapp}{}{}
\ProvideDocumentCommand{\chapteralign}{}{\raggedright}
\ProvideDocumentCommand{\chapterfont}{}{\Huge\bfseries}
\ProvideDocumentCommand{\chapterprefixfont}{}{\LARGE\bfseries}
\DeclareDocumentCommand{\@makechapterhead}{ m }{%
\abovechapterskip
{\parindent \z@ \chapteralign \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\ifbool{chapteroneline}{%
\chapterfont \mdtChapapp\thechapter\autodot\enspace
}{%
\chapterprefixfont \@chapapp\space \thechapter
\par\nobreak
\chapterinbetweenskip
}%
\fi
\fi
\interlinepenalty\@M%
\chapterfont #1\par\nobreak
\chapterbelowskip
}
\thispagestyle{\chapter@p@gestyle}
}
\def\@makeschapterhead#1{%
\abovechapterskip
{\parindent \z@ \chapteralign
\normalfont
\interlinepenalty\@M
\chapterfont #1\par\nobreak
\chapterbelowskip
}
\thispagestyle{\chapter@p@gestyle}
}
% Addchap provides unnumbered chapters with an entry in the table of contents as well as an updated
\ProvideDocumentCommand{\addchap}{ s o m }{%
\chapter*{#3}%
\markboth{}{}%
\IfBooleanTF{#1}{%
}{%
\IfNoValueTF{#2}{%
\addchaptertocentry{#3}%
\markboth{\MakeMarkcase{#3}}{\MakeMarkcase{#3}}%
}{%
\addchaptertocentry{#2}%
\markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}%
}%
}%
}%
\ProvideDocumentCommand{\addsec}{ s o m }{%
\section*{#3}%
\markright{}%
\IfBooleanTF{#1}{%
}{%
\IfNoValueTF{#2}{%
\addcontentsline{toc}{section}{#3}%
\markright{\MakeMarkcase{#3}}%%
}{%
\addcontentsline{toc}{section}{#2}%
\markright{\MakeMarkcase{#2}}%
}%
}%
}%
%----------------------------------------------------------------------------------------
% CLASS OPTIONS
%----------------------------------------------------------------------------------------
\ifbool{parskip}{\RequirePackage{parskip}} % If the parskip option is passed to the class, require the parskip package
\ifbool{listtoc}{% If the liststotoc option has been passed to the class, add the lists to the table of contents
\patchcmd{\listoftables}{\@starttoc{lot}}{%
\addchaptertocentry{\listtablename}\@starttoc{lot}%
}{}{}%
\patchcmd{\listoffigures}{\@starttoc{lof}}{%
\addchaptertocentry{\listfigurename}\@starttoc{lof}%
}{}{}%
}
\ifbool{toctoc}{% If the toctotoc options has been passed to the class, add the table of contents to the table of contents
\patchcmd{\tableofcontents}{\@starttoc{toc}%
}{%
\addchaptertocentry{\contentsname}\@starttoc{toc}}{}{}%
}
\patchcmd{\tableofcontents}{\MakeUppercase}{\MakeMarkcase}{}{}
\patchcmd{\tableofcontents}{\MakeUppercase}{\MakeMarkcase}{}{}
\patchcmd{\listoffigures}{\MakeUppercase}{\MakeMarkcase}{}{}
\patchcmd{\listoffigures}{\MakeUppercase}{\MakeMarkcase}{}{}
\patchcmd{\listoftables}{\MakeUppercase}{\MakeMarkcase}{}{}
\patchcmd{\listoftables}{\MakeUppercase}{\MakeMarkcase}{}{}
% If the option `nolistspacing' is given, the spacing in the different lists is reduced to single spacing. This option is only useful, if the spacing of the document has been changed to onehalfspacing or doublespacing.
\ifbool{nolistspace}{
\patchcmd{\listoffigures}{%
\@starttoc{lof}
}{%
\begingroup%
\singlespace\@starttoc{lof}\endgroup%
}{}{}%
\patchcmd{\listoftables}{%
\@starttoc{lot}
}{%
\begingroup%
\singlespace\@starttoc{lot}\endgroup%
}{}{}%
\patchcmd{\tableofcontents}{%
\@starttoc{toc}
}{%
\begingroup%
\singlespace\@starttoc{toc}\endgroup%
}{}{}%
}{}
%----------------------------------------------------------------------------------------
% REQUIRED PACKAGES
%----------------------------------------------------------------------------------------
\RequirePackage[english]{babel} % Required for automatically changing names of document elements to languages besides english
\RequirePackage{scrbase} % Required for handling language-dependent names of sections/document elements
\RequirePackage{scrhack} % Loads fixes for various packages
\RequirePackage{setspace} % Required for changing line spacing
\RequirePackage{longtable} % Required for tables that span multiple pages (used in the symbols, abbreviations and physical constants pages)
\RequirePackage{siunitx} % Required for \SI commands
\RequirePackage{graphicx} % Required to include images
\graphicspath{{Figures/}{./}} % Specifies where to look for included images
\RequirePackage{booktabs} % Required for better table rules
\RequirePackage{caption} % Required for customising the captions
\captionsetup{justification=centerlast,font=small,labelfont=sc,margin=50pt}
%----------------------------------------------------------------------------------------
% DEFINE CUSTOM THESIS INFORMATION COMMANDS
%----------------------------------------------------------------------------------------
\NewDocumentCommand{\thesistitle} { o m }{%
\IfValueTF{#1}{\def\shorttitle{#1}}{\def\shorttitle{#2}}%
\def\@title{#2}%
\def\ttitle{#2}%
}
\DeclareDocumentCommand{\author}{m}{\newcommand{\authorname}{#1}\renewcommand{\@author}{#1}}
\NewDocumentCommand{\supervisor}{m}{\newcommand{\supname}{#1}}
\NewDocumentCommand{\examiner}{m}{\newcommand{\examname}{#1}}
\NewDocumentCommand{\degree}{m}{\newcommand{\degreename}{#1}}
\NewDocumentCommand{\addresses}{m}{\newcommand{\addressname}{#1}}
\NewDocumentCommand{\university}{m}{\newcommand{\univname}{#1}}
\NewDocumentCommand{\department}{m}{\newcommand{\deptname}{#1}}
\NewDocumentCommand{\group}{m}{\newcommand{\groupname}{#1}}
\NewDocumentCommand{\faculty}{m}{\newcommand{\facname}{#1}}
\NewDocumentCommand{\subject}{m}{\newcommand{\subjectname}{#1}}
\NewDocumentCommand{\keywords}{m}{\newcommand{\keywordnames}{#1}}
\newcommand{\checktoopen}{% New command to move content to the next page which prints to the next odd page if twosided mode is active
\if@openright\cleardoublepage\else\clearpage\fi
\ifdef{\phantomsection}{\phantomsection}{}% The \phantomsection command is necessary for hyperref to jump to the correct page
}
\NewDocumentCommand{\bhrule}{}{\typeout{--------------------}}
\NewDocumentCommand{\tttypeout}{m}{\bhrule\typeout{\space #1}\bhrule}
\newcommand{\HRule}{\rule{.9\linewidth}{.6pt}} % New command to make the lines in the title page
\newcommand{\decoRule}{\rule{.8\textwidth}{.4pt}} % New command for a rule to be used under figures
\setcounter{tocdepth}{3} % The depth to which the document sections are printed to the table of contents
\ProvideDocumentCommand{\addchaptertocentry}{ m }{%
\addcontentsline{toc}{chapter}{#1}%
}
%----------------------------------------------------------------------------------------
% COLOURS
%----------------------------------------------------------------------------------------
\usepackage{xcolor} % Required for specifying custom colours
\colorlet{mdtRed}{red!50!black}
%----------------------------------------------------------------------------------------
% MARGINS
%----------------------------------------------------------------------------------------
\RequirePackage{geometry}
\geometry{
headheight=4ex,
includehead,
includefoot
}
\raggedbottom
%----------------------------------------------------------------------------------------
% PENALTIES
%----------------------------------------------------------------------------------------
\doublehyphendemerits=10000 % No consecutive line hyphens
\brokenpenalty=10000 % No broken words across columns/pages
\widowpenalty=9999 % Almost no widows at bottom of page
\clubpenalty=9999 % Almost no orphans at top of page
\interfootnotelinepenalty=9999 % Almost never break footnotes
%----------------------------------------------------------------------------------------
% ABBREVIATIONS PAGE DESIGN
%----------------------------------------------------------------------------------------
\newcommand{\abbrevname}{List of Abbreviations}
\providecaptionname{english,british,american}{\abbrevname}{List of Abbreviations}
\providecaptionname{ngerman,german,austrian,naustrian}{\abbrevname}{Abk\"urzungsverzeichnis}
\NewDocumentEnvironment{abbreviations}{ m }{%
\ifbool{nolistspace}{\begingroup\singlespacing}{}
\ifbool{listtoc}{\addchap{\abbrevname}}{\addchap*{\abbrevname}}
\begin{longtable}{#1}
}{%
\end{longtable}
\addtocounter{table}{-1}% Don't count this table as one of the document tables
\ifbool{nolistspace}{\endgroup}{}
}
%----------------------------------------------------------------------------------------
% ACKNOWLEDGEMENTS PAGE DESIGN
%----------------------------------------------------------------------------------------
\usepackage{xcolor}
\colorlet{mdtRed}{red!50!black}
\newcommand{\acknowledgementname}{Acknowledgements}
\providecaptionname{american,australian,british,canadian,english,newzealand,UKenglish,USenglish} {\acknowledgementname}{Acknowledgements} % Acknowledgement text for English countries
\providecaptionname{german,ngerman,austrian,naustrian}{\acknowledgementname}{Danksagung} % Acknowledgement text for Germanic countries
\ifbool{consistentlayout}{
\DeclareDocumentEnvironment{acknowledgements}{}{%
\tttypeout{\acknowledgementname}
\addchap*{\acknowledgementname}
}
}
{
\DeclareDocumentEnvironment{acknowledgements}{}{%
\checktoopen
\tttypeout{\acknowledgementname}
\thispagestyle{plain}
\begin{center}{\huge\textit{\acknowledgementname}\par}\end{center}
}
{
\vfil\vfil\null
}
}
%----------------------------------------------------------------------------------------
% DECLARATION PAGE DESIGN
%----------------------------------------------------------------------------------------
\newcommand{\authorshipname}{Declaration of Authorship}
\providecaptionname{american,australian,british,canadian,english,newzealand,UKenglish,USenglish}{\authorshipname}{Declaration of Authorship} % Declaration of Authorship text for English countries
\providecaptionname{german,ngerman,austrian,naustrian}{\authorshipname}{Eidesstattliche Erkl\"arung} % Declaration of Authorship text for Germanic countries
\ifbool{consistentlayout}{
\DeclareDocumentEnvironment{declaration}{}{
\addchap*{\authorshipname}
}{}%
}{
\DeclareDocumentEnvironment{declaration}{}{
\checktoopen
\tttypeout{\authorshipname}
\thispagestyle{plain}
\null\vfil
{\noindent\huge\bfseries\authorshipname\par\vspace{10pt}}
}{}
}
%----------------------------------------------------------------------------------------
% DEDICATION PAGE DESIGN
%----------------------------------------------------------------------------------------
\ifbool{consistentlayout}{
\DeclareDocumentCommand{\dedicatory}{
m O{\vspace*{.7\textheight} } }{
\checktoopen\tttypeout{Dedicatory}
\markboth{}{}
#2
{\hfill\parbox{.4\textwidth}{\flushright#1\par}}
}
}{
\newcommand\dedicatory[1]{
\checktoopen
\tttypeout{Dedicatory}
\null\vfil
\thispagestyle{plain}
\begin{center}{\Large\slshape #1}\end{center}
\vfil\null
}
}
%----------------------------------------------------------------------------------------
% PHYSICAL CONSTANTS PAGE DESIGN
%----------------------------------------------------------------------------------------
\newcommand{\constantsname}{Physical Constants}
\providecaptionname{english,british,american}{\constantsname}{Physical Constants}
\providecaptionname{ngerman,german,austrian,naustrian}{\constantsname}{Physikalische Konstanten}
\NewDocumentEnvironment{constants}{ m }{%
\ifbool{nolistspace}{\begingroup\singlespacing}{}
\ifbool{listtoc}{\addchap{\constantsname}}{\addchap*{\constantsname}}
\begin{longtable}{#1}
}{%
\end{longtable}
\addtocounter{table}{-1}% Don't count this table as one of the document tables
\ifbool{nolistspace}{\endgroup}{}
}
%----------------------------------------------------------------------------------------
% SYMBOLS PAGE DESIGN
%----------------------------------------------------------------------------------------
\newcommand{\symbolsname}{List of Symbols}
\providecaptionname{english,british,american}{\symbolsname}{List of Symbols}
\providecaptionname{ngerman,german,austrian,naustrian}{\symbolsname}{Symbolverzeichnis}
\NewDocumentEnvironment{symbols}{ m }{%
\ifbool{nolistspace}{\begingroup\singlespacing}{}
\ifbool{listtoc}{\addchap{\symbolsname}}{\addchap*{\symbolsname}}
\begin{longtable}{#1}
}{%
\end{longtable}
\addtocounter{table}{-1}% Don't count this table as one of the document tables
\ifbool{nolistspace}{\endgroup}{}
}
%----------------------------------------------------------------------------------------
\ifbool{hyperrefsupport}{% If the nohyperref class option has not been specified
\AtEndPreamble{\RequirePackage{hyperref}
\hypersetup{pdfpagemode={UseOutlines},
bookmarksopen=true,
bookmarksopenlevel=0,
hypertexnames=false,
colorlinks=true,% Set to false to disable coloring links
citecolor=magenta,% The color of citations
linkcolor=red,% The color of references to document elements (sections, figures, etc)
urlcolor=mdtRed,% The color of hyperlinks (URLs)
pdfstartview={FitV},
unicode,
breaklinks=true,
}
\pdfstringdefDisableCommands{% If there is an explicit linebreak in a section heading (or anything printed to the pdf-bookmarks), it is replaced by a space
\let\\\space%
}
}
}{%nothing
}
%----------------------------------------------------------------------------------------
\usepackage[backend=bibtex,style=authoryear,natbib=true]{biblatex} % Use the bibtex backend with the authoryear citation style (which resembles APA)
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage{mathpazo} % Use the Palatino font by default
\pagestyle{fancy}
\fancyhead[L]{Research Proposal}
\fancyhead[R]{\authorname}
\fancyfoot[L]{\shorttitle}
\fancyfoot[C]{}
\fancyfoot[R]{\slshape \thepage/\pageref*{LastPage}}
\renewcommand{\footrulewidth}{0.4pt}
\setlength\parindent{0pt}
\newcommand{\startMain}[0]{
\geometry{
paper=a4paper, % Change to letterpaper for US letter
inner=2.5cm, % Inner margin
outer=3.8cm, % Outer margin
top=1.5cm, % Top margin
bottom=1.5cm, % Bottom margin
%showframe, % Uncomment to show how the type block is set on the page
}
\AtBeginDocument{
\hypersetup{pdftitle=\ttitle} % Set the PDF's title to your title
\hypersetup{pdfauthor=\authorname} % Set the PDF's author to your name
\hypersetup{pdfkeywords=\keywordnames} % Set the PDF's keywords to your keywords
}
\begin{document}
\begin{titlepage}
\begin{center}
\textsc{\LARGE Research Proposal}\\[0.2cm] % Thesis type
\textsc{\degreename}\\[0.5cm]
{\scshape submitted to the \par}
{\scshape\LARGE \univname\par}\vspace{0.5cm} % University name
{\large \deptname}\\[1cm] % Research group name and department name
\HRule \\[0.4cm] % Horizontal line
{\huge \bfseries \ttitle\par}\vspace{0.4cm} % Thesis title
\HRule \\[1.5cm] % Horizontal line
\begin{minipage}[t]{0.4\textwidth}
\begin{flushleft} \large
\emph{Author:}\\
\authorname
\end{flushleft}
\end{minipage}
\if \supname\empty
\else
\begin{minipage}[t]{0.4\textwidth}
\begin{flushright} \large
\emph{Supervisor:\footnotemark[1]} \\
\supname
\end{flushright}
\end{minipage}
\footnotetext[1]{This thesis has been discussed with the listed supervisor.}
\fi
\\[1cm]
{\large \today}\\[1cm] % Date
%\includegraphics{Logo} % University/department logo - uncomment to place it
Keywords: \keywordnames \\[0.5cm]
\groupname\\[0.5cm]
\end{center}
\end{titlepage}
}
\newcommand{\proposalAppendix}[0]{
\newpage
\fancyhead[C]{Appendix}
\appendix
\addcontentsline{toc}{section}{Appendix}
\renewcommand{\thesection}{\Alph{section}}
\section{Appendix}
}
\endinput
% lazyLizardTracer