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