%======================================================================
% University of Waterloo Thesis Template for LaTeX
% Last Updated November, 2020
% by Stephen Carr, IST Client Services,
% University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada
% FOR ASSISTANCE, please send mail to request@uwaterloo.ca

% DISCLAIMER
% To the best of our knowledge, this template satisfies the current uWaterloo
% thesis requirements. However, it is your responsibility to assure that you
% have met all requirements of the University and your particular department.

% Many thanks for the feedback from many graduates who assisted the
% development of this template. Also note that there are explanatory comments
% and tips throughout this template.
%======================================================================
% Some important notes on using this template and making it your own...

% The University of Waterloo has required electronic thesis submission since
% October 2006. See the uWaterloo thesis regulations at:
%   https://uwaterloo.ca/graduate-studies/thesis.
% This thesis template is geared towards generating a PDF version optimized
% for viewing on an electronic display, including hyperlinks within the PDF.

% DON'T FORGET TO ADD YOUR OWN NAME AND TITLE in the "hyperref" package
% configuration below. THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF
% DOCUMENT. You can view the information if you view properties of the PDF.

% Many faculties/departments also require one or more printed copies.
% This template attempts to satisfy both types of output.
% See additional notes below.
% It is based on the standard "book" document class which provides all
% necessary sectioning structures and allows multi-part theses.

% If you are using this template in Overleaf (cloud-based collaboration
% service), then it is automatically processed and previewed for you as you
% edit.

% For people who prefer to install their own LaTeX distributions on their own
% computers, and process the source files manually, the following notes
% provide the sequence of tasks:

% E.g. to process a thesis called "mythesis.tex" based on this template, run:

% pdflatex mythesis	-- first pass of the pdflatex processor
% bibtex mythesis	-- generates bibliography from .bib data file(s)
% makeindex         -- should be run only if an index is used
% pdflatex mythesis	-- fixes numbering in cross-references, bibliographic
%                      references, glossaries, index, etc.
% pdflatex mythesis	-- it takes a couple of passes to completely process all
%                      cross-references

% If you use the recommended LaTeX editor, Texmaker, you would open the
% mythesis.tex file, then click the PDFLaTeX button. Then run BibTeX (under
% the Tools menu). Then click the PDFLaTeX button two more times.
% If you have an index as well, you'll need to run MakeIndex from the Tools
% menu as well, before running pdflatex the last two times.

% N.B. The "pdftex" program allows graphics in the following formats to be
% included with the "\includegraphics" command: PNG, PDF, JPEG, TIFF
% Tip: Generate your figures and photos in the size you want them to appear
% in your thesis, rather than scaling them with \includegraphics options.
% Tip: Any drawings you do should be in scalable vector graphic formats: SVG,
% PNG, WMF, EPS and then converted to PNG or PDF, so they are scalable in the
% final PDF as well.
% Tip: Photographs should be cropped and compressed so as not to be too large.

% To create a PDF output that is optimized for double-sided printing:
% 1) comment-out the \documentclass statement in the preamble below, and
%    un-comment the second \documentclass line.
% 2) change the value assigned below to the boolean variable "PrintVersion"
%    from "false" to "true".

% ======================================================================
%   D O C U M E N T   P R E A M B L E
% Specify the document class, default style attributes, page dimensions, etc.
% For hyperlinked PDF, suitable for viewing on a computer, use this:
\documentclass[letterpaper,12pt,titlepage,oneside,final]{book}

% For PDF, suitable for double-sided printing, change the PrintVersion
% variable below to "true" and use this \documentclass line instead of the
% one above:
%\documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book}

\usepackage{etoolbox}

% Some LaTeX commands I define for my own nomenclature.
% If you have to, it's easier to make changes to nomenclature once here than
% in a million places throughout your thesis!
\newcommand{\package}[1]{\textbf{#1}} % package names in bold text
\newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font
\newcommand{\href}[1]{#1} % does nothing, but defines the command so the
% print-optimized version will ignore \href tags (redefined by hyperref pkg).
% Anything defined here may be redefined by packages added below...

% This package allows if-then-else control structures.
\usepackage{ifthen}
\newboolean{PrintVersion}
\setboolean{PrintVersion}{false}
% CHANGE THIS VALUE TO "true" as necessary, to improve printed results for
% hard copies by overriding some options of the hyperref package, called below.

%\usepackage{nomencl} % For a nomenclature (optional; available from ctan.org)
% Lots of math symbols and environments
\usepackage{amsmath,amssymb,amstext}
% For including graphics N.B. pdftex graphics driver
\usepackage[pdftex]{graphicx}
% Removes large sections of the document.
\usepackage{comment}
% Adds todos (Must be included after comment.)
\usepackage{todonotes}


% Hyperlinks make it very easy to navigate an electronic document.
% In addition, this is where you should specify the thesis title and author as
% they appear in the properties of the PDF document.
% Use the "hyperref" package
% N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE
\usepackage[pdftex,pagebackref=true]{hyperref} % with basic options
%\usepackage[pdftex,pagebackref=true]{hyperref}
% N.B. pagebackref=true provides links back from the References to the body
% text. This can cause trouble for printing.
\hypersetup{
    plainpages=false,       % needed if Roman numbers in frontpages
    unicode=false,          % non-Latin characters in Acrobat's bookmarks
    pdftoolbar=true,        % show Acrobat's toolbar?
    pdfmenubar=true,        % show Acrobat's menu?
    pdffitwindow=false,     % window fit to page when opened
    pdfstartview={FitH},    % fits the width of the page to the window
%    pdftitle={uWaterloo\ LaTeX\ Thesis\ Template}, % title: CHANGE THIS TEXT!
%    pdfauthor={Author},    % author: CHANGE THIS TEXT! and uncomment this line
%    pdfsubject={Subject},  % subject: CHANGE THIS TEXT! and uncomment this line
%    pdfkeywords={keyword1} {key2} {key3}, % optional list of keywords
    pdfnewwindow=true,      % links in new window
    colorlinks=true,        % false: boxed links; true: colored links
    linkcolor=blue,         % color of internal links
    citecolor=green,        % color of links to bibliography
    filecolor=magenta,      % color of file links
    urlcolor=cyan           % color of external links
}
% for improved print quality, change some hyperref options
\ifthenelse{\boolean{PrintVersion}}{
\hypersetup{	% override some previously defined hyperref options
%    colorlinks,%
    citecolor=black,%
    filecolor=black,%
    linkcolor=black,%
    urlcolor=black}
}{} % end of ifthenelse (no else)

% Exception to the rule of hyperref being the last add-on package
\usepackage[automake,toc,abbreviations]{glossaries-extra}
% If glossaries-extra is not in your LaTeX distribution, get it from CTAN
% (http://ctan.org/pkg/glossaries-extra), although it's supposed to be in
% both the TeX Live and MikTeX distributions. There are also documentation
% and installation instructions there.

% Setting up the page margins...
\setlength{\textheight}{9in}
\setlength{\topmargin}{-0.45in}
\setlength{\headsep}{0.25in}
% uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at
% the top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin
% (on binding side). While this is not an issue for electronic viewing, a PDF
% may be printed, and so we have the same page layout for both printed and
% electronic versions, we leave the gutter margin in. Set margins to minimum
% permitted by uWaterloo thesis regulations:
\setlength{\marginparwidth}{0pt} % width of margin notes
% N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth
% and \marginparsep so that the space left between the margin notes and page
% edge is less than 15 mm (0.6 in.)
% width of space between body text and margin notes
\setlength{\marginparsep}{0pt}
% Adds 1/8 in. to binding side of all
% even-numbered pages when the "twoside" printing option is selected
\setlength{\evensidemargin}{0.125in}
% Adds 1/8 in. to the left of all pages when "oneside" printing is selected,
% and to the left of all odd-numbered pages when "twoside" printing is selected
\setlength{\oddsidemargin}{0.125in}
% assuming US letter paper (8.5 in. x 11 in.) and side margins as above
\setlength{\textwidth}{6.375in}
\raggedbottom

% The following statement specifies the amount of space between paragraphs.
% Other reasonable specifications are \bigskipamount and \smallskipamount.
\setlength{\parskip}{\medskipamount}

% The following statement controls the line spacing.
% The default spacing corresponds to good typographic conventions and only
% slight changes (e.g., perhaps "1.2"), if any, should be made.
\renewcommand{\baselinestretch}{1} % this is the default line space setting

% By default, each chapter will start on a recto (right-hand side) page.
% We also force each section of the front pages to start on a recto page by
% inserting \cleardoublepage commands. In many cases, this will require that
% the verso (left-hand) page be blank, and while it should be counted, a page
% number should not be printed. The following statements ensure a page number
% is not printed on an otherwise blank verso page.
\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{%
  \clearpage{\pagestyle{empty}\origdoublepage}}
\let\cleardoublepage\clearemptydoublepage

% Define Glossary terms (This is properly done here, in the preamble and
% could also be \input{} from a separate file...)
\input{glossaries}
\makeglossaries

% cfa macros used in the document
%\usepackage{cfalab}
% I'm going to bring back eventually.
\makeatletter
% Combines all \CC* commands:
\newrobustcmd*\Cpp[1][\xspace]{\cfalab@Cpp#1}
\newcommand\cfalab@Cpp{C\kern-.1em\hbox{+\kern-.25em+}}
% Optional arguments do not work with pdf string. (Some fix-up required.)
\pdfstringdefDisableCommands{\def\Cpp{C++}}

% Colour text, formatted in LaTeX style instead of TeX style.
\newcommand*\colour[2]{{\color{#1}#2}}
\makeatother

\input{common}
% CFA code-style for all languages
\CFAStyle
% CFA default lnaguage
\lstset{language=CFA,basicstyle=\linespread{0.9}\tt}
% Annotations from Peter:
\newcommand{\PAB}[1]{{\color{blue}PAB: #1}}
% Change the style of abbreviations:
\renewcommand{\abbrevFont}{}

%======================================================================
%   L O G I C A L    D O C U M E N T
% The logical document contains the main content of your thesis.
% Being a large document, it is a good idea to divide your thesis into several
% files, each one containing one chapter or other significant chunk of content,
% so you can easily shuffle things around later if desired.
%======================================================================
\begin{document}

%----------------------------------------------------------------------
% FRONT MATERIAL
% title page,declaration, borrowers' page, abstract, acknowledgements,
% dedication, table of contents, list of tables, list of figures,
% nomenclature, etc.
%----------------------------------------------------------------------
\input{uw-ethesis-frontpgs}

%----------------------------------------------------------------------
% MAIN BODY
% We suggest using a separate file for each chapter of your thesis.
% Start each chapter file with the \chapter command. Only use \documentclass,
% \begin{document} and \end{document} commands in this master document.
% Tip: Putting each sentence on a new line is a way to simplify later editing.
%----------------------------------------------------------------------
\input{existing}
\input{features}
\input{implement}
%\input{unwinding}
\input{future}

%----------------------------------------------------------------------
% END MATERIAL
% Bibliography, Appendices, Index, etc.
%----------------------------------------------------------------------

% Bibliography

% The following statement selects the style to use for references.
% It controls the sort order of the entries in the bibliography and also the
% formatting for the in-text labels.
\bibliographystyle{plain}
% This specifies the location of the file containing the bibliographic
% information. It assumes you're using BibTeX to manage your references (if
% not, why not?).
\cleardoublepage % This is needed if the "book" document class is used, to
% place the anchor in the correct page, because the bibliography will start
% on its own page.
% Use \clearpage instead if the document class uses the "oneside" argument.
\phantomsection  % With hyperref package, enables hyperlinking from the table
% of contents to bibliography.
% The following statement causes the title "References" to be used for the
% bibliography section:
\renewcommand*{\bibname}{References}

% Add the References to the Table of Contents
\addcontentsline{toc}{chapter}{\textbf{References}}

\bibliography{uw-ethesis,pl}
% Tip: You can create multiple .bib files to organize your references. Just
% list them all in the \bibliogaphy command, separated by commas (no spaces).

% The following statement causes the specified references to be added to the
% bibliography even if they were not cited in the text. The asterisk is a
% wildcard that causes all entries in the bibliographic database to be
% included (optional).
% \nocite{*}
%----------------------------------------------------------------------

% Appendices

% The \appendix statement indicates the beginning of the appendices.
\appendix
% Add an un-numbered title page before the appendices and a line in the Table
% of Contents
% \chapter*{APPENDICES}
% \addcontentsline{toc}{chapter}{APPENDICES}
% Appendices are just more chapters, with different labeling (letters instead
% of numbers).
% \input{appendix-matlab_plots.tex}

% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc.
% provided by the glossaries-extra package)
% -----------------------------
\printglossaries
\cleardoublepage
\phantomsection		% allows hyperref to link to the correct page

%----------------------------------------------------------------------
\end{document} % end of logical document
