[f28fdee] | 1 | %====================================================================== |
---|
[1c1c180] | 2 | % University of Waterloo Thesis Template for LaTeX |
---|
| 3 | % Last Updated November, 2020 |
---|
| 4 | % by Stephen Carr, IST Client Services, |
---|
[f28fdee] | 5 | % University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada |
---|
| 6 | % FOR ASSISTANCE, please send mail to request@uwaterloo.ca |
---|
| 7 | |
---|
| 8 | % DISCLAIMER |
---|
[1c1c180] | 9 | % To the best of our knowledge, this template satisfies the current uWaterloo |
---|
| 10 | % thesis requirements. However, it is your responsibility to assure that you |
---|
| 11 | % have met all requirements of the University and your particular department. |
---|
[f28fdee] | 12 | |
---|
[1c1c180] | 13 | % Many thanks for the feedback from many graduates who assisted the |
---|
| 14 | % development of this template. Also note that there are explanatory comments |
---|
| 15 | % and tips throughout this template. |
---|
[f28fdee] | 16 | %====================================================================== |
---|
| 17 | % Some important notes on using this template and making it your own... |
---|
| 18 | |
---|
[1c1c180] | 19 | % The University of Waterloo has required electronic thesis submission since |
---|
| 20 | % October 2006. See the uWaterloo thesis regulations at: |
---|
| 21 | % https://uwaterloo.ca/graduate-studies/thesis. |
---|
| 22 | % This thesis template is geared towards generating a PDF version optimized |
---|
| 23 | % for viewing on an electronic display, including hyperlinks within the PDF. |
---|
[f28fdee] | 24 | |
---|
[1c1c180] | 25 | % DON'T FORGET TO ADD YOUR OWN NAME AND TITLE in the "hyperref" package |
---|
| 26 | % configuration below. THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF |
---|
| 27 | % DOCUMENT. You can view the information if you view properties of the PDF. |
---|
[f28fdee] | 28 | |
---|
[1c1c180] | 29 | % Many faculties/departments also require one or more printed copies. |
---|
| 30 | % This template attempts to satisfy both types of output. |
---|
[f28fdee] | 31 | % See additional notes below. |
---|
[1c1c180] | 32 | % It is based on the standard "book" document class which provides all |
---|
| 33 | % necessary sectioning structures and allows multi-part theses. |
---|
[f28fdee] | 34 | |
---|
[1c1c180] | 35 | % If you are using this template in Overleaf (cloud-based collaboration |
---|
| 36 | % service), then it is automatically processed and previewed for you as you |
---|
| 37 | % edit. |
---|
| 38 | |
---|
| 39 | % For people who prefer to install their own LaTeX distributions on their own |
---|
| 40 | % computers, and process the source files manually, the following notes |
---|
| 41 | % provide the sequence of tasks: |
---|
[f28fdee] | 42 | |
---|
| 43 | % E.g. to process a thesis called "mythesis.tex" based on this template, run: |
---|
| 44 | |
---|
| 45 | % pdflatex mythesis -- first pass of the pdflatex processor |
---|
| 46 | % bibtex mythesis -- generates bibliography from .bib data file(s) |
---|
[1c1c180] | 47 | % makeindex -- should be run only if an index is used |
---|
| 48 | % pdflatex mythesis -- fixes numbering in cross-references, bibliographic |
---|
| 49 | % references, glossaries, index, etc. |
---|
| 50 | % pdflatex mythesis -- it takes a couple of passes to completely process all |
---|
| 51 | % cross-references |
---|
| 52 | |
---|
| 53 | % If you use the recommended LaTeX editor, Texmaker, you would open the |
---|
| 54 | % mythesis.tex file, then click the PDFLaTeX button. Then run BibTeX (under |
---|
| 55 | % the Tools menu). Then click the PDFLaTeX button two more times. |
---|
| 56 | % If you have an index as well, you'll need to run MakeIndex from the Tools |
---|
| 57 | % menu as well, before running pdflatex the last two times. |
---|
| 58 | |
---|
| 59 | % N.B. The "pdftex" program allows graphics in the following formats to be |
---|
| 60 | % included with the "\includegraphics" command: PNG, PDF, JPEG, TIFF |
---|
| 61 | % Tip: Generate your figures and photos in the size you want them to appear |
---|
| 62 | % in your thesis, rather than scaling them with \includegraphics options. |
---|
| 63 | % Tip: Any drawings you do should be in scalable vector graphic formats: SVG, |
---|
| 64 | % PNG, WMF, EPS and then converted to PNG or PDF, so they are scalable in the |
---|
| 65 | % final PDF as well. |
---|
[f28fdee] | 66 | % Tip: Photographs should be cropped and compressed so as not to be too large. |
---|
| 67 | |
---|
[1c1c180] | 68 | % ====================================================================== |
---|
[f28fdee] | 69 | % D O C U M E N T P R E A M B L E |
---|
[f17fb7d] | 70 | \RequirePackage{etoolbox} |
---|
[f28fdee] | 71 | |
---|
[f17fb7d] | 72 | % Control if this for print (set true) or will stay digital (default). |
---|
| 73 | % Print is two sided, digital uses more colours. |
---|
| 74 | \newtoggle{printversion} |
---|
| 75 | %\toggletrue{printversion} |
---|
[f28fdee] | 76 | |
---|
[f17fb7d] | 77 | \iftoggle{printversion}{% |
---|
| 78 | \documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book} |
---|
| 79 | }{% |
---|
| 80 | \documentclass[letterpaper,12pt,titlepage,oneside,final]{book} |
---|
| 81 | } |
---|
[29c9b23] | 82 | |
---|
[edc6ea2] | 83 | % Does nothing, ignores \href tags (redefined by hyperref package). |
---|
[df24d37] | 84 | \newcommand{\href}[1]{#1} |
---|
[f28fdee] | 85 | |
---|
[f17fb7d] | 86 | % For a nomenclature (optional; available from ctan.org) |
---|
| 87 | %\usepackage{nomencl} |
---|
[1c1c180] | 88 | % Lots of math symbols and environments |
---|
| 89 | \usepackage{amsmath,amssymb,amstext} |
---|
[6a8208cb] | 90 | % For including graphics (must match graphics driver) |
---|
| 91 | \usepackage{epic,eepic} |
---|
| 92 | \usepackage{graphicx} |
---|
[29c9b23] | 93 | % Removes large sections of the document. |
---|
| 94 | \usepackage{comment} |
---|
[fadfabf] | 95 | % Adds todo commands. |
---|
| 96 | \usepackage{todo} |
---|
[df24d37] | 97 | % cfa macros used in the document |
---|
| 98 | \usepackage{cfalab} |
---|
[403f287] | 99 | % allow global and individual modification of spacing |
---|
| 100 | \usepackage{enumitem} |
---|
[a049412] | 101 | % Improved reference tools. |
---|
| 102 | \usepackage[nospace]{varioref} |
---|
[1830a86] | 103 | |
---|
[f28fdee] | 104 | % Hyperlinks make it very easy to navigate an electronic document. |
---|
[1c1c180] | 105 | % In addition, this is where you should specify the thesis title and author as |
---|
| 106 | % they appear in the properties of the PDF document. |
---|
[f28fdee] | 107 | % Use the "hyperref" package |
---|
| 108 | % N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE |
---|
[6a8208cb] | 109 | \usepackage[pagebackref=true]{hyperref} |
---|
[1c1c180] | 110 | % N.B. pagebackref=true provides links back from the References to the body |
---|
| 111 | % text. This can cause trouble for printing. |
---|
[f28fdee] | 112 | \hypersetup{ |
---|
| 113 | plainpages=false, % needed if Roman numbers in frontpages |
---|
[7eb6eb5] | 114 | unicode=false, % non-Latin characters in Acrobat's bookmarks |
---|
| 115 | pdftoolbar=true, % show Acrobat's toolbar? |
---|
| 116 | pdfmenubar=true, % show Acrobat's menu? |
---|
[f28fdee] | 117 | pdffitwindow=false, % window fit to page when opened |
---|
| 118 | pdfstartview={FitH}, % fits the width of the page to the window |
---|
| 119 | pdfnewwindow=true, % links in new window |
---|
| 120 | colorlinks=true, % false: boxed links; true: colored links |
---|
| 121 | } |
---|
[f17fb7d] | 122 | \iftoggle{printversion}{ |
---|
| 123 | \hypersetup{ |
---|
| 124 | citecolor=black, % colour of links to bibliography |
---|
| 125 | filecolor=black, % colour of file links |
---|
| 126 | linkcolor=black, % colour of internal links |
---|
| 127 | urlcolor=black, % colour of external links |
---|
| 128 | } |
---|
| 129 | }{ % Digital Version |
---|
| 130 | \hypersetup{ |
---|
| 131 | citecolor=green, |
---|
| 132 | filecolor=magenta, |
---|
| 133 | linkcolor=blue, |
---|
| 134 | urlcolor=cyan, |
---|
| 135 | } |
---|
| 136 | } |
---|
| 137 | |
---|
| 138 | \hypersetup{ |
---|
| 139 | pdftitle={Exception Handling in Cforall}, |
---|
| 140 | pdfauthor={Andrew James Beach}, |
---|
| 141 | pdfsubject={Computer Science}, |
---|
| 142 | pdfkeywords={programming languages} {exceptions} |
---|
| 143 | {language design} {language implementation}, |
---|
| 144 | } |
---|
[f28fdee] | 145 | |
---|
[1c1c180] | 146 | % Exception to the rule of hyperref being the last add-on package |
---|
[299b8b2] | 147 | \usepackage[toc,abbreviations]{glossaries-extra} |
---|
[1c1c180] | 148 | % If glossaries-extra is not in your LaTeX distribution, get it from CTAN |
---|
| 149 | % (http://ctan.org/pkg/glossaries-extra), although it's supposed to be in |
---|
| 150 | % both the TeX Live and MikTeX distributions. There are also documentation |
---|
| 151 | % and installation instructions there. |
---|
[f28fdee] | 152 | |
---|
| 153 | % Setting up the page margins... |
---|
[1c1c180] | 154 | \setlength{\textheight}{9in} |
---|
| 155 | \setlength{\topmargin}{-0.45in} |
---|
| 156 | \setlength{\headsep}{0.25in} |
---|
| 157 | % uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at |
---|
| 158 | % the top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin |
---|
| 159 | % (on binding side). While this is not an issue for electronic viewing, a PDF |
---|
| 160 | % may be printed, and so we have the same page layout for both printed and |
---|
| 161 | % electronic versions, we leave the gutter margin in. Set margins to minimum |
---|
| 162 | % permitted by uWaterloo thesis regulations: |
---|
[f28fdee] | 163 | \setlength{\marginparwidth}{0pt} % width of margin notes |
---|
| 164 | % N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth |
---|
| 165 | % and \marginparsep so that the space left between the margin notes and page |
---|
| 166 | % edge is less than 15 mm (0.6 in.) |
---|
[1c1c180] | 167 | % width of space between body text and margin notes |
---|
| 168 | \setlength{\marginparsep}{0pt} |
---|
| 169 | % Adds 1/8 in. to binding side of all |
---|
[f28fdee] | 170 | % even-numbered pages when the "twoside" printing option is selected |
---|
[1c1c180] | 171 | \setlength{\evensidemargin}{0.125in} |
---|
| 172 | % Adds 1/8 in. to the left of all pages when "oneside" printing is selected, |
---|
| 173 | % and to the left of all odd-numbered pages when "twoside" printing is selected |
---|
| 174 | \setlength{\oddsidemargin}{0.125in} |
---|
| 175 | % assuming US letter paper (8.5 in. x 11 in.) and side margins as above |
---|
| 176 | \setlength{\textwidth}{6.375in} |
---|
[f28fdee] | 177 | \raggedbottom |
---|
| 178 | |
---|
[1c1c180] | 179 | % The following statement specifies the amount of space between paragraphs. |
---|
| 180 | % Other reasonable specifications are \bigskipamount and \smallskipamount. |
---|
[f28fdee] | 181 | \setlength{\parskip}{\medskipamount} |
---|
| 182 | |
---|
[1c1c180] | 183 | % The following statement controls the line spacing. |
---|
| 184 | % The default spacing corresponds to good typographic conventions and only |
---|
| 185 | % slight changes (e.g., perhaps "1.2"), if any, should be made. |
---|
[f28fdee] | 186 | \renewcommand{\baselinestretch}{1} % this is the default line space setting |
---|
| 187 | |
---|
| 188 | % By default, each chapter will start on a recto (right-hand side) page. |
---|
[1c1c180] | 189 | % We also force each section of the front pages to start on a recto page by |
---|
| 190 | % inserting \cleardoublepage commands. In many cases, this will require that |
---|
| 191 | % the verso (left-hand) page be blank, and while it should be counted, a page |
---|
| 192 | % number should not be printed. The following statements ensure a page number |
---|
| 193 | % is not printed on an otherwise blank verso page. |
---|
[f28fdee] | 194 | \let\origdoublepage\cleardoublepage |
---|
| 195 | \newcommand{\clearemptydoublepage}{% |
---|
| 196 | \clearpage{\pagestyle{empty}\origdoublepage}} |
---|
| 197 | \let\cleardoublepage\clearemptydoublepage |
---|
| 198 | |
---|
[1c1c180] | 199 | % Define Glossary terms (This is properly done here, in the preamble and |
---|
| 200 | % could also be \input{} from a separate file...) |
---|
[f28fdee] | 201 | \input{glossaries} |
---|
| 202 | \makeglossaries |
---|
| 203 | |
---|
[887fc79] | 204 | % New commands/options for this document alone: |
---|
| 205 | % Code snipits with formating and line-breaks. |
---|
| 206 | \newcommand\defaultResumptionHandler{\texttt{default\-Resumption\-Handler}} |
---|
| 207 | \newcommand\defaultTerminationHandler{\texttt{default\-Termination\-Handler}} |
---|
| 208 | |
---|
[c1136c56] | 209 | % listings package configuation: |
---|
[df24d37] | 210 | \lstMakeShortInline@ |
---|
[c1136c56] | 211 | \lstset{language=CFA,style=cfacommon,basicstyle=\linespread{0.9}\tt} |
---|
[29c9b23] | 212 | % Annotations from Peter: |
---|
[7eb6eb5] | 213 | \newcommand{\PAB}[1]{{\color{blue}PAB: #1}} |
---|
[29c9b23] | 214 | % Change the style of abbreviations: |
---|
| 215 | \renewcommand{\abbrevFont}{} |
---|
[f28fdee] | 216 | |
---|
| 217 | %====================================================================== |
---|
| 218 | % L O G I C A L D O C U M E N T |
---|
| 219 | % The logical document contains the main content of your thesis. |
---|
[1c1c180] | 220 | % Being a large document, it is a good idea to divide your thesis into several |
---|
| 221 | % files, each one containing one chapter or other significant chunk of content, |
---|
| 222 | % so you can easily shuffle things around later if desired. |
---|
[f28fdee] | 223 | %====================================================================== |
---|
| 224 | \begin{document} |
---|
| 225 | |
---|
| 226 | %---------------------------------------------------------------------- |
---|
| 227 | % FRONT MATERIAL |
---|
| 228 | % title page,declaration, borrowers' page, abstract, acknowledgements, |
---|
[1c1c180] | 229 | % dedication, table of contents, list of tables, list of figures, |
---|
| 230 | % nomenclature, etc. |
---|
[f28fdee] | 231 | %---------------------------------------------------------------------- |
---|
[1c1c180] | 232 | \input{uw-ethesis-frontpgs} |
---|
[f28fdee] | 233 | |
---|
| 234 | %---------------------------------------------------------------------- |
---|
| 235 | % MAIN BODY |
---|
| 236 | % We suggest using a separate file for each chapter of your thesis. |
---|
[1c1c180] | 237 | % Start each chapter file with the \chapter command. Only use \documentclass, |
---|
| 238 | % \begin{document} and \end{document} commands in this master document. |
---|
[f28fdee] | 239 | % Tip: Putting each sentence on a new line is a way to simplify later editing. |
---|
| 240 | %---------------------------------------------------------------------- |
---|
[e8a7ca2] | 241 | \input{intro} |
---|
[f28fdee] | 242 | \input{existing} |
---|
| 243 | \input{features} |
---|
[7eb6eb5] | 244 | \input{implement} |
---|
[dac16a0] | 245 | \input{performance} |
---|
[f28fdee] | 246 | \input{future} |
---|
[cb6b8cb] | 247 | \input{conclusion} |
---|
[f28fdee] | 248 | |
---|
| 249 | %---------------------------------------------------------------------- |
---|
| 250 | % END MATERIAL |
---|
| 251 | % Bibliography, Appendices, Index, etc. |
---|
| 252 | %---------------------------------------------------------------------- |
---|
| 253 | |
---|
| 254 | % Bibliography |
---|
| 255 | |
---|
[1c1c180] | 256 | % The following statement selects the style to use for references. |
---|
| 257 | % It controls the sort order of the entries in the bibliography and also the |
---|
| 258 | % formatting for the in-text labels. |
---|
[f28fdee] | 259 | \bibliographystyle{plain} |
---|
[1c1c180] | 260 | % This specifies the location of the file containing the bibliographic |
---|
| 261 | % information. It assumes you're using BibTeX to manage your references (if |
---|
| 262 | % not, why not?). |
---|
| 263 | \cleardoublepage % This is needed if the "book" document class is used, to |
---|
| 264 | % place the anchor in the correct page, because the bibliography will start |
---|
| 265 | % on its own page. |
---|
| 266 | % Use \clearpage instead if the document class uses the "oneside" argument. |
---|
| 267 | \phantomsection % With hyperref package, enables hyperlinking from the table |
---|
| 268 | % of contents to bibliography. |
---|
| 269 | % The following statement causes the title "References" to be used for the |
---|
| 270 | % bibliography section: |
---|
[f28fdee] | 271 | \renewcommand*{\bibname}{References} |
---|
| 272 | |
---|
| 273 | % Add the References to the Table of Contents |
---|
| 274 | \addcontentsline{toc}{chapter}{\textbf{References}} |
---|
| 275 | |
---|
| 276 | \bibliography{uw-ethesis,pl} |
---|
[1c1c180] | 277 | % Tip: You can create multiple .bib files to organize your references. Just |
---|
| 278 | % list them all in the \bibliogaphy command, separated by commas (no spaces). |
---|
[f28fdee] | 279 | |
---|
[1c1c180] | 280 | % The following statement causes the specified references to be added to the |
---|
| 281 | % bibliography even if they were not cited in the text. The asterisk is a |
---|
| 282 | % wildcard that causes all entries in the bibliographic database to be |
---|
| 283 | % included (optional). |
---|
[f28fdee] | 284 | % \nocite{*} |
---|
| 285 | %---------------------------------------------------------------------- |
---|
| 286 | |
---|
| 287 | % Appendices |
---|
| 288 | |
---|
| 289 | % The \appendix statement indicates the beginning of the appendices. |
---|
| 290 | \appendix |
---|
[1c1c180] | 291 | % Add an un-numbered title page before the appendices and a line in the Table |
---|
| 292 | % of Contents |
---|
[f28fdee] | 293 | % \chapter*{APPENDICES} |
---|
| 294 | % \addcontentsline{toc}{chapter}{APPENDICES} |
---|
[1c1c180] | 295 | % Appendices are just more chapters, with different labeling (letters instead |
---|
| 296 | % of numbers). |
---|
[f28fdee] | 297 | % \input{appendix-matlab_plots.tex} |
---|
| 298 | |
---|
[1c1c180] | 299 | % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. |
---|
| 300 | % provided by the glossaries-extra package) |
---|
[f28fdee] | 301 | % ----------------------------- |
---|
| 302 | \printglossaries |
---|
| 303 | \cleardoublepage |
---|
| 304 | \phantomsection % allows hyperref to link to the correct page |
---|
| 305 | |
---|
[fadfabf] | 306 | \todos |
---|
| 307 | |
---|
[f28fdee] | 308 | %---------------------------------------------------------------------- |
---|
| 309 | \end{document} % end of logical document |
---|