| [9a5a2cd] | 1 | %======================================================================
 | 
|---|
 | 2 | % University of Waterloo Thesis Template for LaTeX 
 | 
|---|
 | 3 | % Last Updated August 2022
 | 
|---|
 | 4 | % by IST Client Services, 
 | 
|---|
 | 5 | % University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada
 | 
|---|
 | 6 | % FOR ASSISTANCE, please send mail to helpdesk@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...
 | 
|---|
| [1180175] | 16 | 
 | 
|---|
| [9a5a2cd] | 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 | % Search for: PDFTITLE, PDFAUTHOR, PDFSUBJECT, and PDFKEYWORDS.
 | 
|---|
 | 24 | % THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF DOCUMENT.
 | 
|---|
 | 25 | % You can view the information if you view properties of the PDF document.
 | 
|---|
 | 26 | 
 | 
|---|
 | 27 | % Many faculties/departments also require one or more printed copies. 
 | 
|---|
 | 28 | % This template attempts to satisfy both types of output. 
 | 
|---|
 | 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:
 | 
|---|
 | 35 |  
 | 
|---|
 | 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.
 | 
|---|
| [1180175] | 53 | 
 | 
|---|
| [9a5a2cd] | 54 | % To create a PDF output that is optimized for double-sided printing: 
 | 
|---|
 | 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".
 | 
|---|
| [1180175] | 57 | 
 | 
|---|
| [9a5a2cd] | 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}
 | 
|---|
 | 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 | 
 | 
|---|
 | 84 | \usepackage{tikz} % for diagrams and figures
 | 
|---|
 | 85 | \def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;}
 | 
|---|
| [1180175] | 86 | \usepackage{fullpage,times,comment}
 | 
|---|
| [678c540] | 87 | \usepackage{textcomp}
 | 
|---|
| [1180175] | 88 | \usepackage{graphicx}
 | 
|---|
 | 89 | \usepackage{tabularx}
 | 
|---|
| [7f164c3] | 90 | \usepackage[labelformat=simple,aboveskip=0pt,farskip=0pt,font=normalsize]{subfig}
 | 
|---|
 | 91 | \renewcommand\thesubfigure{(\alph{subfigure})}
 | 
|---|
| [9a5a2cd] | 92 | \input{style}
 | 
|---|
 | 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[dvips,pagebackref=false]{hyperref} % with basic options
 | 
|---|
 | 99 | \hypersetup{
 | 
|---|
 | 100 |     plainpages=false,       % needed if Roman numbers in frontpages
 | 
|---|
| [525a46a] | 101 |     unicode=false,          % non-Latin characters in Acrobat's bookmarks
 | 
|---|
 | 102 |     pdftoolbar=true,        % show Acrobat's toolbar?
 | 
|---|
 | 103 |     pdfmenubar=true,        % show Acrobat's menu?
 | 
|---|
| [9a5a2cd] | 104 |     pdffitwindow=false,     % window fit to page when opened
 | 
|---|
 | 105 |     pdfstartview={FitH},    % fits the width of the page to the window
 | 
|---|
 | 106 |     pdftitle={High Level Concurrency in \CFA},
 | 
|---|
 | 107 |     pdfauthor={Colby Parsons},
 | 
|---|
 | 108 |     pdfsubject={Cforall},
 | 
|---|
 | 109 | %    pdfkeywords={keyword1} {key2} {key3}, % list of keywords, and uncomment this line if desired
 | 
|---|
 | 110 |     pdfnewwindow=true,      % links in new window
 | 
|---|
 | 111 |     colorlinks=true,        % false: boxed links; true: colored links
 | 
|---|
 | 112 |     linkcolor=blue,         % color of internal links
 | 
|---|
| [8599415] | 113 |     citecolor=blue,         % color of links to bibliography
 | 
|---|
| [9a5a2cd] | 114 |     filecolor=magenta,      % color of file links
 | 
|---|
| [61a20af] | 115 |     urlcolor=blue,          % color of external links
 | 
|---|
| [8599415] | 116 |     breaklinks=true
 | 
|---|
| [9a5a2cd] | 117 | }
 | 
|---|
 | 118 | \ifthenelse{\boolean{PrintVersion}}{   % for improved print quality, change some hyperref options
 | 
|---|
 | 119 | \hypersetup{    % override some previously defined hyperref options
 | 
|---|
 | 120 | %    colorlinks,%
 | 
|---|
 | 121 |     citecolor=black,%
 | 
|---|
 | 122 |     filecolor=black,%
 | 
|---|
 | 123 |     linkcolor=black,%
 | 
|---|
 | 124 |     urlcolor=black}
 | 
|---|
 | 125 | }{} % end of ifthenelse (no else)
 | 
|---|
| [61a20af] | 126 | \usepackage{breakurl}
 | 
|---|
 | 127 | \urlstyle{rm}
 | 
|---|
| [9a5a2cd] | 128 | 
 | 
|---|
 | 129 | % \usepackage[acronym]{glossaries}
 | 
|---|
 | 130 | \usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package
 | 
|---|
| [8599415] | 131 | \renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}}
 | 
|---|
| [9a5a2cd] | 132 | % If glossaries-extra is not in your LaTeX distribution, get it from CTAN (http://ctan.org/pkg/glossaries-extra), 
 | 
|---|
 | 133 | % although it's supposed to be in both the TeX Live and MikTeX distributions. There are also documentation and 
 | 
|---|
 | 134 | % installation instructions there.
 | 
|---|
| [1180175] | 135 | 
 | 
|---|
| [3c17a10] | 136 | % Setting up the page margins...
 | 
|---|
 | 137 | % uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at the
 | 
|---|
| [9a5a2cd] | 138 | % top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin (on binding side). 
 | 
|---|
| [3c17a10] | 139 | % 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.
 | 
|---|
 | 140 | % Set margins to minimum permitted by uWaterloo thesis regulations:
 | 
|---|
 | 141 | \setlength{\marginparwidth}{0pt} % width of margin notes
 | 
|---|
 | 142 | % N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth
 | 
|---|
 | 143 | % and \marginparsep so that the space left between the margin notes and page
 | 
|---|
 | 144 | % edge is less than 15 mm (0.6 in.)
 | 
|---|
 | 145 | \setlength{\marginparsep}{0pt} % width of space between body text and margin notes
 | 
|---|
| [9a5a2cd] | 146 | \setlength{\evensidemargin}{0.125in} % Adds 1/8 in. to binding side of all 
 | 
|---|
| [3c17a10] | 147 | % even-numbered pages when the "twoside" printing option is selected
 | 
|---|
 | 148 | \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
 | 
|---|
 | 149 | \setlength{\textwidth}{6.375in} % assuming US letter paper (8.5 in. x 11 in.) and side margins as above
 | 
|---|
 | 150 | \raggedbottom
 | 
|---|
 | 151 | 
 | 
|---|
 | 152 | % The following statement specifies the amount of space between paragraphs. Other reasonable specifications are \bigskipamount and \smallskipamount.
 | 
|---|
 | 153 | \setlength{\parskip}{\medskipamount}
 | 
|---|
| [1180175] | 154 | 
 | 
|---|
| [9a5a2cd] | 155 | % The following statement controls the line spacing.  
 | 
|---|
 | 156 | % The default spacing corresponds to good typographic conventions and only slight changes (e.g., perhaps "1.2"), if any, should be made.
 | 
|---|
 | 157 | \renewcommand{\baselinestretch}{1} % this is the default line space setting
 | 
|---|
| [1180175] | 158 | 
 | 
|---|
| [9a5a2cd] | 159 | % By default, each chapter will start on a recto (right-hand side) page.
 | 
|---|
 | 160 | % We also force each section of the front pages to start on a recto page by inserting \cleardoublepage commands.
 | 
|---|
 | 161 | % 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.
 | 
|---|
 | 162 | % The following statements ensure a page number is not printed on an otherwise blank verso page.
 | 
|---|
 | 163 | \let\origdoublepage\cleardoublepage
 | 
|---|
 | 164 | \newcommand{\clearemptydoublepage}{%
 | 
|---|
 | 165 |   \clearpage{\pagestyle{empty}\origdoublepage}}
 | 
|---|
 | 166 | \let\cleardoublepage\clearemptydoublepage
 | 
|---|
| [1180175] | 167 | 
 | 
|---|
| [9a5a2cd] | 168 | % Define Glossary terms (This is properly done here, in the preamble and could also be \input{} from a separate file...)
 | 
|---|
| [1180175] | 169 | \input{glossary}
 | 
|---|
| [9a5a2cd] | 170 | \makeglossaries
 | 
|---|
| [1180175] | 171 | 
 | 
|---|
 | 172 | %======================================================================
 | 
|---|
| [9a5a2cd] | 173 | %   L O G I C A L    D O C U M E N T
 | 
|---|
 | 174 | % The logical document contains the main content of your thesis.
 | 
|---|
 | 175 | % 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.
 | 
|---|
| [1180175] | 176 | %======================================================================
 | 
|---|
 | 177 | \begin{document}
 | 
|---|
| [601bd9e] | 178 | \newtheorem{theorem}{Theorem}
 | 
|---|
| [1180175] | 179 | 
 | 
|---|
 | 180 | %----------------------------------------------------------------------
 | 
|---|
 | 181 | % FRONT MATERIAL
 | 
|---|
| [9a5a2cd] | 182 | % title page,declaration, borrowers' page, abstract, acknowledgements,
 | 
|---|
 | 183 | % dedication, table of contents, list of tables, list of figures, nomenclature, etc.
 | 
|---|
| [1180175] | 184 | %----------------------------------------------------------------------
 | 
|---|
| [9a5a2cd] | 185 | \input{frontpgs} 
 | 
|---|
| [1180175] | 186 | 
 | 
|---|
 | 187 | %----------------------------------------------------------------------
 | 
|---|
 | 188 | % MAIN BODY
 | 
|---|
| [9a5a2cd] | 189 | % We suggest using a separate file for each chapter of your thesis.
 | 
|---|
 | 190 | % Start each chapter file with the \chapter command.
 | 
|---|
 | 191 | % Only use \documentclass or \begin{document} and \end{document} commands in this master document.
 | 
|---|
 | 192 | % Tip: Putting each sentence on a new line is a way to simplify later editing.
 | 
|---|
| [1180175] | 193 | %----------------------------------------------------------------------
 | 
|---|
| [6e83384] | 194 | \input{intro}
 | 
|---|
| [1180175] | 195 | 
 | 
|---|
| [6e83384] | 196 | \input{CFA_intro}
 | 
|---|
| [512d937c] | 197 | 
 | 
|---|
| [6e83384] | 198 | \input{CFA_concurrency}
 | 
|---|
| [1180175] | 199 | 
 | 
|---|
| [6e83384] | 200 | \input{mutex_stmt}
 | 
|---|
| [0faacb8] | 201 | 
 | 
|---|
| [512d937c] | 202 | \input{channels}
 | 
|---|
| [0faacb8] | 203 | 
 | 
|---|
| [6e83384] | 204 | \input{actors}
 | 
|---|
| [1180175] | 205 | 
 | 
|---|
| [a0c746df] | 206 | \input{waituntil}
 | 
|---|
 | 207 | 
 | 
|---|
| [930a800] | 208 | \input{conclusion}
 | 
|---|
 | 209 | 
 | 
|---|
| [9a5a2cd] | 210 | %----------------------------------------------------------------------
 | 
|---|
 | 211 | % END MATERIAL
 | 
|---|
 | 212 | % Bibliography, Appendices, Index, etc.
 | 
|---|
 | 213 | %----------------------------------------------------------------------
 | 
|---|
| [1180175] | 214 | 
 | 
|---|
| [9a5a2cd] | 215 | % Bibliography
 | 
|---|
 | 216 | 
 | 
|---|
 | 217 | % The following statement selects the style to use for references.  
 | 
|---|
 | 218 | % It controls the sort order of the entries in the bibliography and also the formatting for the in-text labels.
 | 
|---|
| [1180175] | 219 | \bibliographystyle{plain}
 | 
|---|
| [9a5a2cd] | 220 | % This specifies the location of the file containing the bibliographic information.  
 | 
|---|
 | 221 | % It assumes you're using BibTeX to manage your references (if not, why not?).
 | 
|---|
 | 222 | \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.
 | 
|---|
 | 223 | % Use \clearpage instead if the document class uses the "oneside" argument
 | 
|---|
 | 224 | \phantomsection  % With hyperref package, enables hyperlinking from the table of contents to bibliography             
 | 
|---|
 | 225 | % The following statement causes the title "References" to be used for the bibliography section:
 | 
|---|
 | 226 | \renewcommand*{\bibname}{References}
 | 
|---|
 | 227 | 
 | 
|---|
 | 228 | % Add the References to the Table of Contents
 | 
|---|
 | 229 | \addcontentsline{toc}{chapter}{\textbf{References}}
 | 
|---|
 | 230 | 
 | 
|---|
| [1180175] | 231 | \bibliography{pl,local}
 | 
|---|
| [9a5a2cd] | 232 | % Tip: You can create multiple .bib files to organize your references. 
 | 
|---|
 | 233 | % Just list them all in the \bibliogaphy command, separated by commas (no spaces).
 | 
|---|
 | 234 | 
 | 
|---|
 | 235 | % The following statement causes the specified references to be added to the bibliography even if they were not cited in the text. 
 | 
|---|
 | 236 | % The asterisk is a wildcard that causes all entries in the bibliographic database to be included (optional).
 | 
|---|
 | 237 | % \nocite{*}
 | 
|---|
 | 238 | %----------------------------------------------------------------------
 | 
|---|
| [1180175] | 239 | 
 | 
|---|
| [9a5a2cd] | 240 | % Appendices
 | 
|---|
 | 241 | 
 | 
|---|
 | 242 | % The \appendix statement indicates the beginning of the appendices.
 | 
|---|
 | 243 | % \appendix
 | 
|---|
 | 244 | % % Add an un-numbered title page before the appendices and a line in the Table of Contents
 | 
|---|
 | 245 | % \chapter*{APPENDICES}
 | 
|---|
 | 246 | % \addcontentsline{toc}{chapter}{APPENDICES}
 | 
|---|
 | 247 | % % Appendices are just more chapters, with different labeling (letters instead of numbers).
 | 
|---|
 | 248 | % \input{appendix-matlab_plots.tex}
 | 
|---|
 | 249 | 
 | 
|---|
 | 250 | % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
 | 
|---|
| [1180175] | 251 | % -----------------------------
 | 
|---|
 | 252 | \printglossary
 | 
|---|
 | 253 | \cleardoublepage
 | 
|---|
 | 254 | \phantomsection         % allows hyperref to link to the correct page
 | 
|---|
 | 255 | 
 | 
|---|
| [9a5a2cd] | 256 | %----------------------------------------------------------------------
 | 
|---|
 | 257 | \end{document} % end of logical document
 | 
|---|