[bbf6a180] | 1 | %======================================================================
|
---|
[266732e] | 2 | % University of Waterloo Thesis Template for LaTeX
|
---|
| 3 | % Last Updated August 2022
|
---|
| 4 | % by IST Client Services,
|
---|
[bbf6a180] | 5 | % University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada
|
---|
[266732e] | 6 | % FOR ASSISTANCE, please send mail to helpdesk@uwaterloo.ca
|
---|
[bbf6a180] | 7 |
|
---|
| 8 | % DISCLAIMER
|
---|
| 9 | % To the best of our knowledge, this template satisfies the current uWaterloo thesis requirements.
|
---|
| 10 | % However, it is your responsibility to assure that you have met all requirements of the University and your particular department.
|
---|
| 11 |
|
---|
| 12 | % Many thanks for the feedback from many graduates who assisted the development of this template.
|
---|
| 13 | % Also note that there are explanatory comments and tips throughout this template.
|
---|
| 14 | %======================================================================
|
---|
| 15 | % Some important notes on using this template and making it your own...
|
---|
| 16 |
|
---|
| 17 | % The University of Waterloo has required electronic thesis submission since October 2006.
|
---|
| 18 | % See the uWaterloo thesis regulations at
|
---|
| 19 | % https://uwaterloo.ca/graduate-studies/thesis.
|
---|
| 20 | % This thesis template is geared towards generating a PDF version optimized for viewing on an electronic display, including hyperlinks within the PDF.
|
---|
| 21 |
|
---|
| 22 | % DON'T FORGET TO ADD YOUR OWN NAME AND TITLE in the "hyperref" package configuration below.
|
---|
[266732e] | 23 | % Search for: PDFTITLE, PDFAUTHOR, PDFSUBJECT, and PDFKEYWORDS.
|
---|
| 24 | % THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF DOCUMENT.
|
---|
[bbf6a180] | 25 | % You can view the information if you view properties of the PDF document.
|
---|
| 26 |
|
---|
[266732e] | 27 | % Many faculties/departments also require one or more printed copies.
|
---|
| 28 | % This template attempts to satisfy both types of output.
|
---|
[bbf6a180] | 29 | % See additional notes below.
|
---|
| 30 | % It is based on the standard "book" document class which provides all necessary sectioning structures and allows multi-part theses.
|
---|
| 31 |
|
---|
| 32 | % If you are using this template in Overleaf (cloud-based collaboration service), then it is automatically processed and previewed for you as you edit.
|
---|
| 33 |
|
---|
| 34 | % 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:
|
---|
[266732e] | 35 |
|
---|
[bbf6a180] | 36 | % E.g. to process a thesis called "mythesis.tex" based on this template, run:
|
---|
| 37 |
|
---|
| 38 | % pdflatex mythesis -- first pass of the pdflatex processor
|
---|
| 39 | % bibtex mythesis -- generates bibliography from .bib data file(s)
|
---|
| 40 | % makeindex -- should be run only if an index is used
|
---|
| 41 | % pdflatex mythesis -- fixes numbering in cross-references, bibliographic references, glossaries, index, etc.
|
---|
| 42 | % pdflatex mythesis -- it takes a couple of passes to completely process all cross-references
|
---|
| 43 |
|
---|
| 44 | % 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).
|
---|
| 45 | % Then click the PDFLaTeX button two more times.
|
---|
| 46 | % If you have an index as well,you'll need to run MakeIndex from the Tools menu as well, before running pdflatex
|
---|
| 47 | % the last two times.
|
---|
| 48 |
|
---|
| 49 | % N.B. The "pdftex" program allows graphics in the following formats to be included with the "\includegraphics" command: PNG, PDF, JPEG, TIFF
|
---|
| 50 | % Tip: Generate your figures and photos in the size you want them to appear in your thesis, rather than scaling them with \includegraphics options.
|
---|
| 51 | % 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.
|
---|
| 52 | % Tip: Photographs should be cropped and compressed so as not to be too large.
|
---|
| 53 |
|
---|
[266732e] | 54 | % To create a PDF output that is optimized for double-sided printing:
|
---|
[bbf6a180] | 55 | % 1) comment-out the \documentclass statement in the preamble below, and un-comment the second \documentclass line.
|
---|
| 56 | % 2) change the value assigned below to the boolean variable "PrintVersion" from " false" to "true".
|
---|
| 57 |
|
---|
| 58 | %======================================================================
|
---|
| 59 | % D O C U M E N T P R E A M B L E
|
---|
| 60 | % Specify the document class, default style attributes, and page dimensions, etc.
|
---|
| 61 | % For hyperlinked PDF, suitable for viewing on a computer, use this:
|
---|
| 62 | \documentclass[letterpaper,12pt,titlepage,oneside,final]{book}
|
---|
[37e9c1d] | 63 | \usepackage[T1]{fontenc} % Latin-1 => 256-bit characters, => | not dash, <> not Spanish question marks
|
---|
[266732e] | 64 |
|
---|
[bbf6a180] | 65 | % For PDF, suitable for double-sided printing, change the PrintVersion variable below to "true" and use this \documentclass line instead of the one above:
|
---|
| 66 | %\documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book}
|
---|
| 67 |
|
---|
| 68 | % Some LaTeX commands I define for my own nomenclature.
|
---|
| 69 | % If you have to, it's easier to make changes to nomenclature once here than in a million places throughout your thesis!
|
---|
| 70 | \newcommand{\package}[1]{\textbf{#1}} % package names in bold text
|
---|
[266732e] | 71 | \newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font
|
---|
[bbf6a180] | 72 | \newcommand{\href}[1]{#1} % does nothing, but defines the command so the print-optimized version will ignore \href tags (redefined by hyperref pkg).
|
---|
| 73 | %\newcommand{\texorpdfstring}[2]{#1} % does nothing, but defines the command
|
---|
| 74 | % Anything defined here may be redefined by packages added below...
|
---|
| 75 |
|
---|
| 76 | % This package allows if-then-else control structures.
|
---|
| 77 | \usepackage{ifthen}
|
---|
| 78 | \newboolean{PrintVersion}
|
---|
| 79 | \setboolean{PrintVersion}{false}
|
---|
| 80 | % CHANGE THIS VALUE TO "true" as necessary, to improve printed results for hard copies by overriding some options of the hyperref package, called below.
|
---|
| 81 |
|
---|
| 82 | %\usepackage{nomencl} % For a nomenclature (optional; available from ctan.org)
|
---|
| 83 | \usepackage{amsmath,amssymb,amstext} % Lots of math symbols and environments
|
---|
[266732e] | 84 | \usepackage{fullpage,times,comment}
|
---|
[bbf6a180] | 85 | \usepackage{xcolor}
|
---|
| 86 | \usepackage{epic,eepic}
|
---|
| 87 | \usepackage{graphicx}
|
---|
| 88 | \usepackage{tabularx}
|
---|
[42d81a7] | 89 | \usepackage{pifont}
|
---|
[5e8d75bb] | 90 | \newcommand{\cmark}{\ding{51}}
|
---|
| 91 | \newcommand{\xmark}{\ding{55}}
|
---|
| 92 | \usepackage{multirow}
|
---|
[f0daaeb] | 93 | \usepackage[labelformat=simple,aboveskip=0pt,farskip=0pt,font=normalsize]{subfig}
|
---|
[5d9c4bb] | 94 | \renewcommand\thesubfigure{(\alph{subfigure})}
|
---|
[bbf6a180] | 95 |
|
---|
[266732e] | 96 | \graphicspath{{pictures/}} % picture directory
|
---|
| 97 | %\usepackage{algorithm}
|
---|
| 98 | %\usepackage{algpseudocode}
|
---|
[40ab446] | 99 | \usepackage{pbox}
|
---|
| 100 |
|
---|
[266732e] | 101 | \makeatletter
|
---|
[cad8c88] | 102 | \newcommand{\lstinput}[3][]{\lstinputlisting[#1,linerange={#2},xleftmargin=\parindentlnth,escapechar={\$},moredelim={**[is][\color{red}]{@}{@}}]{#3}}
|
---|
[266732e] | 103 | \makeatother
|
---|
| 104 | % cfa macros used in the document
|
---|
| 105 | \input{common}
|
---|
| 106 | %\usepackage{common}
|
---|
[c3e41cda] | 107 |
|
---|
[266732e] | 108 | \CFAStyle % CFA code-style
|
---|
| 109 | \lstset{language=cfa,belowskip=-1pt} % set default language to CFA
|
---|
[cad8c88] | 110 | \lstnewenvironment{c++}[1][]{\lstset{language=[GNU]C++,escapechar=\$,moredelim=**[is][\color{red}]{@}{@},}\lstset{#1}}{}
|
---|
[f06ba98] | 111 | \lstnewenvironment{pascal}[1][]{\lstset{language=pascal,escapechar=\$,moredelim=**[is][\color{red}]{@}{@},}\lstset{#1}}{}
|
---|
[b67d7a5b] | 112 | \lstnewenvironment{java}[1][]{\lstset{language=java,escapechar=\$,moredelim=**[is][\color{red}]{@}{@},}\lstset{#1}}{}
|
---|
[7592f42] | 113 | \lstnewenvironment{rust}[1][]{\lstset{language=rust,escapechar=\$,moredelim=**[is][\color{red}]{@}{@},}\lstset{#1}}{}
|
---|
[266732e] | 114 | \lstset{inputpath={programs}}
|
---|
| 115 |
|
---|
| 116 | \newcommand{\uCpp}{$\mu$\CC}
|
---|
[f0daaeb] | 117 | \newcommand{\PAB}[1]{{\color{magenta}PAB: #1}}
|
---|
[16a843b] | 118 | \newcommand{\MLB}[1]{{\color{red}MLB: #1}}
|
---|
[266732e] | 119 |
|
---|
[bbf6a180] | 120 | % Hyperlinks make it very easy to navigate an electronic document.
|
---|
| 121 | % In addition, this is where you should specify the thesis title and author as they appear in the properties of the PDF document.
|
---|
[266732e] | 122 | % Use the "hyperref" package
|
---|
[bbf6a180] | 123 | % N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE
|
---|
[266732e] | 124 | \usepackage{url}
|
---|
[bbf6a180] | 125 | \usepackage[pagebackref=true]{hyperref} % with basic options
|
---|
| 126 | %\usepackage[pdftex,pagebackref=true]{hyperref}
|
---|
| 127 | % N.B. pagebackref=true provides links back from the References to the body text. This can cause trouble for printing.
|
---|
| 128 | \hypersetup{
|
---|
| 129 | plainpages=false, % needed if Roman numbers in frontpages
|
---|
| 130 | unicode=false, % non-Latin characters in Acrobat's bookmarks
|
---|
| 131 | pdftoolbar=true, % show Acrobat's toolbar?
|
---|
| 132 | pdfmenubar=true, % show Acrobat's menu?
|
---|
| 133 | pdffitwindow=false, % window fit to page when opened
|
---|
| 134 | pdfstartview={FitH}, % fits the width of the page to the window
|
---|
[266732e] | 135 | pdftitle={\CFA Container Library}, % title: CHANGE THIS TEXT!
|
---|
| 136 | pdfauthor={Mike Brooks}, % author: CHANGE THIS TEXT! and uncomment this line
|
---|
[bbf6a180] | 137 | pdfsubject={Cforall}, % subject: CHANGE THIS TEXT! and uncomment this line
|
---|
[266732e] | 138 | pdfkeywords={Cforall} {container library} {C language}, % optional list of keywords
|
---|
[bbf6a180] | 139 | pdfnewwindow=true, % links in new window
|
---|
| 140 | colorlinks=true, % false: boxed links; true: colored links
|
---|
| 141 | linkcolor=blue, % color of internal links
|
---|
[266732e] | 142 | citecolor=blue, % color of links to bibliography
|
---|
[bbf6a180] | 143 | filecolor=magenta, % color of file links
|
---|
[266732e] | 144 | urlcolor=blue, % color of external links
|
---|
[5d9c4bb] | 145 | breaklinks=true
|
---|
[bbf6a180] | 146 | }
|
---|
| 147 | \ifthenelse{\boolean{PrintVersion}}{ % for improved print quality, change some hyperref options
|
---|
| 148 | \hypersetup{ % override some previously defined hyperref options
|
---|
[266732e] | 149 | % colorlinks,%
|
---|
[bbf6a180] | 150 | citecolor=black,%
|
---|
| 151 | filecolor=black,%
|
---|
| 152 | linkcolor=black,%
|
---|
[266732e] | 153 | urlcolor=black}
|
---|
| 154 | }{} % end of ifthenelse (no else)
|
---|
| 155 |
|
---|
[19a2890] | 156 | \urlstyle{sf}
|
---|
[bbf6a180] | 157 |
|
---|
[e50b65c] | 158 | \setcounter{secnumdepth}{4} % number subsubsection
|
---|
| 159 | \setcounter{tocdepth}{4} % subsubsection in TOC
|
---|
| 160 |
|
---|
[bbf6a180] | 161 | %\usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package
|
---|
[266732e] | 162 | % If glossaries-extra is not in your LaTeX distribution, get it from CTAN (http://ctan.org/pkg/glossaries-extra),
|
---|
| 163 | % although it's supposed to be in both the TeX Live and MikTeX distributions. There are also documentation and
|
---|
[bbf6a180] | 164 | % installation instructions there.
|
---|
| 165 |
|
---|
[5717495] | 166 | % Customizing tabularx
|
---|
| 167 | \newcolumntype{Y}{>{\centering\arraybackslash}X}
|
---|
| 168 |
|
---|
[bbf6a180] | 169 | % Setting up the page margins...
|
---|
[266732e] | 170 | %\setlength{\textheight}{9in}
|
---|
| 171 | %\setlength{\topmargin}{-0.45in}
|
---|
| 172 | %\setlength{\headsep}{0.25in}
|
---|
[bbf6a180] | 173 | % uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at the
|
---|
[266732e] | 174 | % top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin (on binding side).
|
---|
[bbf6a180] | 175 | % 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.
|
---|
| 176 | % Set margins to minimum permitted by uWaterloo thesis regulations:
|
---|
| 177 | \setlength{\marginparwidth}{0pt} % width of margin notes
|
---|
| 178 | % N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth
|
---|
| 179 | % and \marginparsep so that the space left between the margin notes and page
|
---|
| 180 | % edge is less than 15 mm (0.6 in.)
|
---|
| 181 | \setlength{\marginparsep}{0pt} % width of space between body text and margin notes
|
---|
[266732e] | 182 | \setlength{\evensidemargin}{0.125in} % Adds 1/8 in. to binding side of all
|
---|
[bbf6a180] | 183 | % even-numbered pages when the "twoside" printing option is selected
|
---|
[f0daaeb] | 184 | %\setlength{\oddsidemargin}{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
|
---|
| 185 | %\setlength{\textwidth}{6.375in} % assuming US letter paper (8.5 in. x 11 in.) and side margins as above
|
---|
[bbf6a180] | 186 | \raggedbottom
|
---|
| 187 |
|
---|
| 188 | % The following statement specifies the amount of space between paragraphs. Other reasonable specifications are \bigskipamount and \smallskipamount.
|
---|
| 189 | \setlength{\parskip}{\medskipamount}
|
---|
| 190 |
|
---|
[266732e] | 191 | % The following statement controls the line spacing.
|
---|
[bbf6a180] | 192 | % The default spacing corresponds to good typographic conventions and only slight changes (e.g., perhaps "1.2"), if any, should be made.
|
---|
| 193 | \renewcommand{\baselinestretch}{1} % this is the default line space setting
|
---|
| 194 |
|
---|
| 195 | % By default, each chapter will start on a recto (right-hand side) page.
|
---|
| 196 | % We also force each section of the front pages to start on a recto page by inserting \cleardoublepage commands.
|
---|
| 197 | % 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.
|
---|
| 198 | % The following statements ensure a page number is not printed on an otherwise blank verso page.
|
---|
| 199 | \let\origdoublepage\cleardoublepage
|
---|
| 200 | \newcommand{\clearemptydoublepage}{%
|
---|
| 201 | \clearpage{\pagestyle{empty}\origdoublepage}}
|
---|
| 202 | \let\cleardoublepage\clearemptydoublepage
|
---|
| 203 |
|
---|
[266732e] | 204 | % Define Glossary terms (This is properly done here, in the preamble and could also be \input{} from a separate file...)
|
---|
[bbf6a180] | 205 | %\input{glossaries}
|
---|
| 206 | %\makeglossaries
|
---|
| 207 |
|
---|
| 208 | %======================================================================
|
---|
| 209 | % L O G I C A L D O C U M E N T
|
---|
| 210 | % The logical document contains the main content of your thesis.
|
---|
| 211 | % 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.
|
---|
| 212 | %======================================================================
|
---|
| 213 | \begin{document}
|
---|
| 214 |
|
---|
| 215 | %----------------------------------------------------------------------
|
---|
| 216 | % FRONT MATERIAL
|
---|
| 217 | % title page,declaration, borrowers' page, abstract, acknowledgements,
|
---|
| 218 | % dedication, table of contents, list of tables, list of figures, nomenclature, etc.
|
---|
| 219 | %----------------------------------------------------------------------
|
---|
[266732e] | 220 | \input{uw-ethesis-frontpgs}
|
---|
[bbf6a180] | 221 |
|
---|
| 222 | %----------------------------------------------------------------------
|
---|
| 223 | % MAIN BODY
|
---|
| 224 | % We suggest using a separate file for each chapter of your thesis.
|
---|
| 225 | % Start each chapter file with the \chapter command.
|
---|
| 226 | % Only use \documentclass or \begin{document} and \end{document} commands in this master document.
|
---|
| 227 | % Tip: Putting each sentence on a new line is a way to simplify later editing.
|
---|
| 228 | %----------------------------------------------------------------------
|
---|
[266732e] | 229 |
|
---|
[27f1055] | 230 | \input{intro}
|
---|
| 231 | \input{background}
|
---|
[bbf6a180] | 232 | \input{array}
|
---|
[f5212ca] | 233 | \input{list}
|
---|
[bbf6a180] | 234 | \input{string}
|
---|
[27f1055] | 235 | \input{conclusion}
|
---|
[bbf6a180] | 236 |
|
---|
| 237 | %----------------------------------------------------------------------
|
---|
| 238 | % END MATERIAL
|
---|
| 239 | % Bibliography, Appendices, Index, etc.
|
---|
| 240 | %----------------------------------------------------------------------
|
---|
| 241 |
|
---|
| 242 | % Bibliography
|
---|
| 243 |
|
---|
[266732e] | 244 | % The following statement selects the style to use for references.
|
---|
[bbf6a180] | 245 | % It controls the sort order of the entries in the bibliography and also the formatting for the in-text labels.
|
---|
| 246 | \bibliographystyle{plain}
|
---|
[266732e] | 247 | % This specifies the location of the file containing the bibliographic information.
|
---|
[bbf6a180] | 248 | % It assumes you're using BibTeX to manage your references (if not, why not?).
|
---|
| 249 | \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.
|
---|
| 250 | % Use \clearpage instead if the document class uses the "oneside" argument
|
---|
[266732e] | 251 | \phantomsection % With hyperref package, enables hyperlinking from the table of contents to bibliography
|
---|
[bbf6a180] | 252 | % The following statement causes the title "References" to be used for the bibliography section:
|
---|
| 253 | \renewcommand*{\bibname}{References}
|
---|
| 254 |
|
---|
| 255 | % Add the References to the Table of Contents
|
---|
| 256 | \addcontentsline{toc}{chapter}{\textbf{References}}
|
---|
| 257 |
|
---|
| 258 | \bibliography{pl,uw-ethesis}
|
---|
[266732e] | 259 | % Tip: You can create multiple .bib files to organize your references.
|
---|
[bbf6a180] | 260 | % Just list them all in the \bibliogaphy command, separated by commas (no spaces).
|
---|
| 261 |
|
---|
[266732e] | 262 | % The following statement causes the specified references to be added to the bibliography even if they were not cited in the text.
|
---|
[bbf6a180] | 263 | % The asterisk is a wildcard that causes all entries in the bibliographic database to be included (optional).
|
---|
| 264 | % \nocite{*}
|
---|
| 265 | %----------------------------------------------------------------------
|
---|
| 266 |
|
---|
| 267 | % Appendices
|
---|
| 268 |
|
---|
| 269 | % The \appendix statement indicates the beginning of the appendices.
|
---|
| 270 | \appendix
|
---|
| 271 | % Add an un-numbered title page before the appendices and a line in the Table of Contents
|
---|
| 272 | % \chapter*{APPENDICES}
|
---|
| 273 | % \addcontentsline{toc}{chapter}{APPENDICES}
|
---|
| 274 | % Appendices are just more chapters, with different labeling (letters instead of numbers).
|
---|
| 275 | % \input{appendix-matlab_plots.tex}
|
---|
| 276 |
|
---|
[266732e] | 277 | % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
|
---|
[bbf6a180] | 278 | % -----------------------------
|
---|
| 279 | %\printglossaries
|
---|
| 280 | %\cleardoublepage
|
---|
| 281 | %\phantomsection % allows hyperref to link to the correct page
|
---|
| 282 |
|
---|
| 283 | %----------------------------------------------------------------------
|
---|
| 284 | \end{document} % end of logical document
|
---|