Changeset 1c1c180
- Timestamp:
- Feb 1, 2021, 4:59:45 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 3b402339
- Parents:
- 85871478
- Location:
- doc/theses/andrew_beach_MMath
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/andrew_beach_MMath/existing.tex
r85871478 r1c1c180 12 12 obvious to the reader. 13 13 14 \section{\texorpdfstring{Overloading and \lstinline|extern|}{Overloading and extern}} 14 \section{\texorpdfstring{Overloading and \lstinline|extern|} 15 {Overloading and extern}} 15 16 \CFA has extensive overloading, allowing multiple definitions of the same name 16 17 to be defined.~\cite{Moss18} -
doc/theses/andrew_beach_MMath/features.tex
r85871478 r1c1c180 7 7 Virtual types and casts are not required for a basic exception-system but are 8 8 useful for advanced exception features. However, \CFA is not object-oriented so 9 there is no obvious concept of virtuals. 9 there is no obvious concept of virtuals. Hence, to create advanced exception 10 10 features for this work, I needed to designed and implemented a virtual-like 11 11 system for \CFA. … … 30 30 \end{center} 31 31 The hierarchy provides the ability to handle an exception at different degrees 32 of specificity (left to right). 32 of specificity (left to right). Hence, it is possible to catch a more general 33 33 exception-type in higher-level code where the implementation details are 34 34 unknown, which reduces tight coupling to the lower-level implementation. … … 78 78 79 79 Exceptions are defined by the trait system; there are a series of traits, and 80 if a type satisfies them, then it can be used as an exception. 80 if a type satisfies them, then it can be used as an exception. The following 81 81 is the base trait all exceptions need to match. 82 82 \begin{cfa} … … 92 92 \PAB{I do not understand this paragraph.} 93 93 One odd thing about @get_exception_vtable@ is that it should always be a 94 constant function, returning the same value regardless of its argument. 94 constant function, returning the same value regardless of its argument. A 95 95 pointer or reference to the virtual table instance could be used instead, 96 96 however using a function has some ease of implementation advantages and allows 97 97 for easier disambiguation because the virtual type name (or the address of an 98 98 instance that is in scope) can be used instead of the mangled virtual table 99 name. 99 name. Also note the use of the word ``promise'' in the trait 100 100 description. Currently, \CFA cannot check to see if either @exceptT@ or 101 101 @virtualT@ match the layout requirements. This is considered part of … … 126 126 127 127 Finally there are three convenience macros for referring to the these traits: 128 @IS_EXCEPTION@, @IS_TERMINATION_EXCEPTION@ and @IS_RESUMPTION_EXCEPTION@. 128 @IS_EXCEPTION@, @IS_TERMINATION_EXCEPTION@ and @IS_RESUMPTION_EXCEPTION@. Each 129 129 takes the virtual type's name, and for polymorphic types only, the 130 130 parenthesized list of polymorphic arguments. These macros do the name mangling … … 212 212 expression has a type with a @void defaultResumptionHandler(T &)@ (default 213 213 handler) defined, where the handler is found at the call site by the type 214 system. 214 system. At runtime, a representation of the exception type and an instance of 215 215 the exception type is \emph{not} copied because the stack is maintained during 216 216 the handler search. … … 306 306 exception matches, @CONDITION@ is executed. The condition expression may 307 307 reference all names in scope at the beginning of the try block and @NAME@ 308 introduced in the handler clause. 308 introduced in the handler clause. If the condition is true, then the handler 309 309 matches. Otherwise, the exception search continues at the next appropriate kind 310 310 of handler clause in the try block. … … 359 359 the end of the block. This requirement ensures always continues as if the 360 360 finally clause is not present, \ie finally is for cleanup not changing control 361 flow. 362 is forbidden. 361 flow. Because of this requirement, local control flow out of the finally block 362 is forbidden. The compiler precludes any @break@, @continue@, @fallthru@ or 363 363 @return@ that causes control to leave the finally block. Other ways to leave 364 364 the finally block, such as a long jump or termination are much harder to check, … … 371 371 372 372 There is no special statement for starting a cancellation; instead the standard 373 library function @cancel_stack@ is called passing an exception. 373 library function @cancel_stack@ is called passing an exception. Unlike a 374 374 raise, this exception is not used in matching only to pass information about 375 375 the cause of the cancellation. … … 379 379 \item[Main Stack:] 380 380 The main stack is the one used by the program main at the start of execution, 381 and is the only stack in a sequential program. 381 and is the only stack in a sequential program. Hence, when cancellation is 382 382 forwarded to the main stack, there is no other forwarding stack, so after the 383 383 stack is unwound, there is a program-level abort. … … 385 385 \item[Thread Stack:] 386 386 A thread stack is created for a @thread@ object or object that satisfies the 387 @is_thread@ trait. 387 @is_thread@ trait. A thread only has two points of communication that must 388 388 happen: start and join. As the thread must be running to perform a 389 389 cancellation, it must occur after start and before join, so join is a 390 cancellation point. 390 cancellation point. After the stack is unwound, the thread halts and waits for 391 391 another thread to join with it. The joining thread, checks for a cancellation, 392 392 and if present, resumes exception @ThreadCancelled@. … … 408 408 409 409 \item[Coroutine Stack:] A coroutine stack is created for a @coroutine@ object 410 or object that satisfies the @is_coroutine@ trait. 411 two other coroutines, its starter and its last resumer. 412 the tightest coupling to the coroutine it activated. 410 or object that satisfies the @is_coroutine@ trait. A coroutine only knows of 411 two other coroutines, its starter and its last resumer. The last resumer has 412 the tightest coupling to the coroutine it activated. Hence, cancellation of 413 413 the active coroutine is forwarded to the last resumer after the stack is 414 414 unwound, as the last resumer has the most precise knowledge about the current -
doc/theses/andrew_beach_MMath/implement.tex
r85871478 r1c1c180 278 278 @_URC_END_OF_STACK@. 279 279 280 Second, when a handler is matched, raise exception continues onto the cleanup phase. 280 Second, when a handler is matched, raise exception continues onto the cleanup 281 phase. 281 282 Once again, it calls the personality functions of each stack frame from newest 282 283 to oldest. This pass stops at the stack frame containing the matching handler. -
doc/theses/andrew_beach_MMath/thesis-frontpgs.tex
r85871478 r1c1c180 36 36 37 37 A thesis \\ 38 presented to the University of Waterloo \\ 38 presented to the University of Waterloo \\ 39 39 in fulfillment of the \\ 40 40 thesis requirement for the degree of \\ … … 64 64 \cleardoublepage 65 65 66 66 67 67 %---------------------------------------------------------------------- 68 68 % EXAMINING COMMITTEE (Required for Ph.D. theses only) … … 71 71 \begin{center}\textbf{Examining Committee Membership}\end{center} 72 72 \noindent 73 The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. 74 \bigskip 75 76 \noindent 77 \begin{tabbing} 78 Internal-External Member: \= \kill % using longest text to define tab length 79 External Examiner: \> Bruce Bruce \\ 73 The following served on the Examining Committee for this thesis. The decision 74 of the Examining Committee is by majority vote. 75 \bigskip 76 77 \noindent 78 \begin{tabbing} 79 Internal-External Member: \= \kill % using longest text to define tab length 80 External Examiner: \> Bruce Bruce \\ 80 81 \> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\ 81 \end{tabbing} 82 \bigskip 83 82 \end{tabbing} 83 \bigskip 84 84 85 \noindent 85 86 \begin{tabbing} … … 91 92 \end{tabbing} 92 93 \bigskip 93 94 94 95 \noindent 95 96 \begin{tabbing} … … 99 100 \end{tabbing} 100 101 \bigskip 101 102 102 103 \noindent 103 104 \begin{tabbing} … … 107 108 \end{tabbing} 108 109 \bigskip 109 110 110 111 \noindent 111 112 \begin{tabbing} … … 123 124 % December 13th, 2006. It is designed for an electronic thesis. 124 125 \noindent 125 I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. 126 127 \bigskip 128 126 I hereby declare that I am the sole author of this thesis. This is a true copy 127 of the thesis, including any required final revisions, as accepted by my 128 examiners. 129 130 \bigskip 131 129 132 \noindent 130 133 I understand that my thesis may be made electronically available to the public. -
doc/theses/andrew_beach_MMath/thesis.tex
r85871478 r1c1c180 45 45 % FRONT MATERIAL 46 46 %---------------------------------------------------------------------- 47 \input{thesis-frontpgs} 47 \input{thesis-frontpgs} 48 48 49 49 %---------------------------------------------------------------------- … … 65 65 A \gls{computer} could compute $\pi$ all day long. In fact, subsets of digits 66 66 of $\pi$'s decimal approximation would make a good source for psuedo-random 67 vectors, \gls{rvec} . 67 vectors, \gls{rvec} . 68 68 69 69 %---------------------------------------------------------------------- … … 96 96 97 97 \begin{itemize} 98 \item A well-prepared PDF should be 98 \item A well-prepared PDF should be 99 99 \begin{enumerate} 100 100 \item Of reasonable size, {\it i.e.} photos cropped and compressed. 101 \item Scalable, to allow enlargment of text and drawings. 102 \end{enumerate} 101 \item Scalable, to allow enlargment of text and drawings. 102 \end{enumerate} 103 103 \item Photos must be bit maps, and so are not scaleable by definition. TIFF and 104 104 BMP are uncompressed formats, while JPEG is compressed. Most photos can be 105 105 compressed without losing their illustrative value. 106 \item Drawings that you make should be scalable vector graphics, \emph{not} 106 \item Drawings that you make should be scalable vector graphics, \emph{not} 107 107 bit maps. Some scalable vector file formats are: EPS, SVG, PNG, WMF. These can 108 all be converted into PNG or PDF, that pdflatex recognizes. Your drawing 109 package probably can export to one of these formats directly. Otherwise, a 110 common procedure is to print-to-file through a Postscript printer driver to 111 create a PS file, then convert that to EPS (encapsulated PS, which has a 112 bounding box to describe its exact size rather than a whole page). 108 all be converted into PNG or PDF, that pdflatex recognizes. Your drawing 109 package probably can export to one of these formats directly. Otherwise, a 110 common procedure is to print-to-file through a Postscript printer driver to 111 create a PS file, then convert that to EPS (encapsulated PS, which has a 112 bounding box to describe its exact size rather than a whole page). 113 113 Programs such as GSView (a Ghostscript GUI) can create both EPS and PDF from 114 114 PS files. Appendix~\ref{AppendixA} shows how to generate properly sized Matlab 115 115 plots and save them as PDF. 116 116 \item It's important to crop your photos and draw your figures to the size that 117 you want to appear in your thesis. Scaling photos with the 118 includegraphics command will cause loss of resolution. And scaling down 117 you want to appear in your thesis. Scaling photos with the 118 includegraphics command will cause loss of resolution. And scaling down 119 119 drawings may cause any text annotations to become too small. 120 120 \end{itemize} 121 121 122 122 For more information on \LaTeX\, see the uWaterloo Skills for the 123 Academic Workplace \href{https://uwaterloo.ca/information-systems-technology/services/electronic-thesis-preparation-and-submission-support/ethesis-guide/creating-pdf-version-your-thesis/creating-pdf-files-using-latex/latex-ethesis-and-large-documents}{course notes}. 123 Academic Workplace \href{https://uwaterloo.ca/information-systems-technology/services/electronic-thesis-preparation-and-submission-support/ethesis-guide/creating-pdf-version-your-thesis/creating-pdf-files-using-latex/latex-ethesis-and-large-documents}{course notes}. 124 124 \footnote{ 125 125 Note that while it is possible to include hyperlinks to external documents, 126 it is not wise to do so, since anything you can't control may change over time. 127 It \emph{would} be appropriate and necessary to provide external links to 128 additional resources for a multimedia ``enhanced'' thesis. 129 But also note that if the \package{hyperref} package is not included, 130 as for the print-optimized option in this thesis template, any \cmmd{href} 126 it is not wise to do so, since anything you can't control may change over time. 127 It \emph{would} be appropriate and necessary to provide external links to 128 additional resources for a multimedia ``enhanced'' thesis. 129 But also note that if the \package{hyperref} package is not included, 130 as for the print-optimized option in this thesis template, any \cmmd{href} 131 131 commands in your logical document are no longer defined. 132 132 A work-around employed by this thesis template is to define a dummy 133 \cmmd{href} command (which does nothing) in the preamble of the document, 134 before the \package{hyperref} package is included. 133 \cmmd{href} command (which does nothing) in the preamble of the document, 134 before the \package{hyperref} package is included. 135 135 The dummy definition is then redifined by the 136 136 \package{hyperref} package when it is included. … … 138 138 139 139 The classic book by Leslie Lamport \cite{lamport.book}, author of \LaTeX , is 140 worth a look too, and the many available add-on packages are described by 140 worth a look too, and the many available add-on packages are described by 141 141 Goossens \textit{et al} \cite{goossens.book}. 142 142 … … 180 180 Export Setup button in the figure Property Editor. 181 181 182 \section{From the Command Line} 182 \section{From the Command Line} 183 183 All figure properties can also be manipulated from the command line. Here's an 184 example: 184 example: 185 185 \begin{verbatim} 186 186 x=[0:0.1:pi]; -
doc/theses/andrew_beach_MMath/uw-ethesis-frontpgs.tex
r85871478 r1c1c180 30 30 \normalsize 31 31 A thesis \\ 32 presented to the University of Waterloo \\ 32 presented to the University of Waterloo \\ 33 33 in fulfillment of the \\ 34 34 thesis requirement for the degree of \\ … … 47 47 \end{titlepage} 48 48 49 % The rest of the front pages should contain no headers and be numbered using Roman numerals starting with `ii' 49 % The rest of the front pages should contain no headers and be numbered using 50 % Roman numerals starting with `ii'. 50 51 \pagestyle{plain} 51 52 \setcounter{page}{2} 52 53 53 \cleardoublepage % Ends the current page and causes all figures and tables that have so far appeared in the input to be printed. 54 % In a two-sided printing style, it also makes the next page a right-hand (odd-numbered) page, producing a blank page if necessary. 54 \cleardoublepage % Ends the current page and causes all figures and tables 55 % that have so far appeared in the input to be printed. In a two-sided 56 % printing style, it also makes the next page a right-hand (odd-numbered) 57 % page, producing a blank page if necessary. 55 58 56 \begin{comment} 59 \begin{comment} 57 60 % E X A M I N I N G C O M M I T T E E (Required for Ph.D. theses only) 58 61 % Remove or comment out the lines below to remove this page 59 62 \begin{center}\textbf{Examining Committee Membership}\end{center} 60 63 \noindent 61 The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. 64 The following served on the Examining Committee for this thesis. 65 The decision of the Examining Committee is by majority vote. 62 66 \bigskip 63 67 64 68 \noindent 65 69 \begin{tabbing} 66 70 Internal-External Member: \= \kill % using longest text to define tab length 67 External Examiner: \> Bruce Bruce \\ 71 External Examiner: \> Bruce Bruce \\ 68 72 \> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\ 69 \end{tabbing} 73 \end{tabbing} 70 74 \bigskip 71 75 72 76 \noindent 73 77 \begin{tabbing} … … 79 83 \end{tabbing} 80 84 \bigskip 81 85 82 86 \noindent 83 87 \begin{tabbing} … … 87 91 \end{tabbing} 88 92 \bigskip 89 93 90 94 \noindent 91 95 \begin{tabbing} … … 95 99 \end{tabbing} 96 100 \bigskip 97 101 98 102 \noindent 99 103 \begin{tabbing} … … 111 115 % December 13th, 2006. It is designed for an electronic thesis. 112 116 \begin{center}\textbf{Author's Declaration}\end{center} 113 117 114 118 \noindent 115 I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. 119 I hereby declare that I am the sole author of this thesis. This is a true copy 120 of the thesis, including any required final revisions, as accepted by my 121 examiners. 116 122 117 123 \bigskip 118 124 119 125 \noindent 120 126 I understand that my thesis may be made electronically available to the public. -
doc/theses/andrew_beach_MMath/uw-ethesis.tex
r85871478 r1c1c180 1 1 %====================================================================== 2 % University of Waterloo Thesis Template for LaTeX 3 % Last Updated November, 2020 4 % by Stephen Carr, IST Client Services, 2 % University of Waterloo Thesis Template for LaTeX 3 % Last Updated November, 2020 4 % by Stephen Carr, IST Client Services, 5 5 % University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada 6 6 % FOR ASSISTANCE, please send mail to request@uwaterloo.ca 7 7 8 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. 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. 12 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. 14 16 %====================================================================== 15 17 % Some important notes on using this template and making it your own... 16 18 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. 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. 24 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. 28 29 % Many faculties/departments also require one or more printed copies. 30 % This template attempts to satisfy both types of output. 28 31 % 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 32 % It is based on the standard "book" document class which provides all 33 % necessary sectioning structures and allows multi-part theses. 34 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: 42 35 43 % E.g. to process a thesis called "mythesis.tex" based on this template, run: 36 44 37 45 % pdflatex mythesis -- first pass of the pdflatex processor 38 46 % 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. 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. 51 66 % Tip: Photographs should be cropped and compressed so as not to be too large. 52 67 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 %====================================================================== 68 % To create a PDF output that is optimized for double-sided printing: 69 % 1) comment-out the \documentclass statement in the preamble below, and 70 % un-comment the second \documentclass line. 71 % 2) change the value assigned below to the boolean variable "PrintVersion" 72 % from " false" to "true". 73 74 % ====================================================================== 58 75 % D O C U M E N T P R E A M B L E 59 % Specify the document class, default style attributes, andpage dimensions, etc.76 % Specify the document class, default style attributes, page dimensions, etc. 60 77 % For hyperlinked PDF, suitable for viewing on a computer, use this: 61 78 \documentclass[letterpaper,12pt,titlepage,oneside,final]{book} 62 79 63 % For PDF, suitable for double-sided printing, change the PrintVersion variable below to "true" and use this \documentclass line instead of the one above: 80 % For PDF, suitable for double-sided printing, change the PrintVersion 81 % variable below to "true" and use this \documentclass line instead of the 82 % one above: 64 83 %\documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book} 65 84 66 85 % Some LaTeX commands I define for my own nomenclature. 67 % If you have to, it's easier to make changes to nomenclature once here than in a million places throughout your thesis! 86 % If you have to, it's easier to make changes to nomenclature once here than 87 % in a million places throughout your thesis! 68 88 \newcommand{\package}[1]{\textbf{#1}} % package names in bold text 69 \newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font 70 \newcommand{\href}[1]{#1} % does nothing, but defines the command so the print-optimized version will ignore \href tags (redefined by hyperref pkg). 89 \newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font 90 \newcommand{\href}[1]{#1} % does nothing, but defines the command so the 91 % print-optimized version will ignore \href tags (redefined by hyperref pkg). 71 92 %\newcommand{\texorpdfstring}[2]{#1} % does nothing, but defines the command 72 93 % Anything defined here may be redefined by packages added below... … … 76 97 \newboolean{PrintVersion} 77 98 \setboolean{PrintVersion}{false} 78 % CHANGE THIS VALUE TO "true" as necessary, to improve printed results for hard copies by overriding some options of the hyperref package, called below. 99 % CHANGE THIS VALUE TO "true" as necessary, to improve printed results for 100 % hard copies by overriding some options of the hyperref package, called below. 79 101 80 102 %\usepackage{nomencl} % For a nomenclature (optional; available from ctan.org) 81 \usepackage{amsmath,amssymb,amstext} % Lots of math symbols and environments 82 \usepackage[pdftex]{graphicx} % For including graphics N.B. pdftex graphics driver 103 % Lots of math symbols and environments 104 \usepackage{amsmath,amssymb,amstext} 105 % For including graphics N.B. pdftex graphics driver 106 \usepackage[pdftex]{graphicx} 83 107 84 108 % Hyperlinks make it very easy to navigate an electronic document. 85 % In addition, this is where you should specify the thesis title and author as they appear in the properties of the PDF document. 109 % In addition, this is where you should specify the thesis title and author as 110 % they appear in the properties of the PDF document. 86 111 % Use the "hyperref" package 87 112 % N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE 88 113 \usepackage[pdftex,pagebackref=true]{hyperref} % with basic options 89 114 %\usepackage[pdftex,pagebackref=true]{hyperref} 90 % N.B. pagebackref=true provides links back from the References to the body text. This can cause trouble for printing. 115 % N.B. pagebackref=true provides links back from the References to the body 116 % text. This can cause trouble for printing. 91 117 \hypersetup{ 92 118 plainpages=false, % needed if Roman numbers in frontpages … … 96 122 pdffitwindow=false, % window fit to page when opened 97 123 pdfstartview={FitH}, % fits the width of the page to the window 98 % pdftitle={uWaterloo\ LaTeX\ Thesis\ Template}, 124 % pdftitle={uWaterloo\ LaTeX\ Thesis\ Template}, % title: CHANGE THIS TEXT! 99 125 % pdfauthor={Author}, % author: CHANGE THIS TEXT! and uncomment this line 100 126 % pdfsubject={Subject}, % subject: CHANGE THIS TEXT! and uncomment this line 101 % pdfkeywords={keyword1} {key2} {key3}, % list of keywords, and uncomment this line if desired127 % pdfkeywords={keyword1} {key2} {key3}, % optional list of keywords 102 128 pdfnewwindow=true, % links in new window 103 129 colorlinks=true, % false: boxed links; true: colored links … … 107 133 urlcolor=cyan % color of external links 108 134 } 109 \ifthenelse{\boolean{PrintVersion}}{ % for improved print quality, change some hyperref options 135 % for improved print quality, change some hyperref options 136 \ifthenelse{\boolean{PrintVersion}}{ 110 137 \hypersetup{ % override some previously defined hyperref options 111 138 % colorlinks,% … … 116 143 }{} % end of ifthenelse (no else) 117 144 118 \usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package 119 % If glossaries-extra is not in your LaTeX distribution, get it from CTAN (http://ctan.org/pkg/glossaries-extra), 120 % although it's supposed to be in both the TeX Live and MikTeX distributions. There are also documentation and 121 % installation instructions there. 145 % Exception to the rule of hyperref being the last add-on package 146 \usepackage[automake,toc,abbreviations]{glossaries-extra} 147 % If glossaries-extra is not in your LaTeX distribution, get it from CTAN 148 % (http://ctan.org/pkg/glossaries-extra), although it's supposed to be in 149 % both the TeX Live and MikTeX distributions. There are also documentation 150 % and installation instructions there. 122 151 123 152 % Setting up the page margins... 124 \setlength{\textheight}{9in}\setlength{\topmargin}{-0.45in}\setlength{\headsep}{0.25in} 125 % uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at the 126 % top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin (on binding side). 127 % 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. 128 % Set margins to minimum permitted by uWaterloo thesis regulations: 153 \setlength{\textheight}{9in} 154 \setlength{\topmargin}{-0.45in} 155 \setlength{\headsep}{0.25in} 156 % uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at 157 % the top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin 158 % (on binding side). While this is not an issue for electronic viewing, a PDF 159 % may be printed, and so we have the same page layout for both printed and 160 % electronic versions, we leave the gutter margin in. Set margins to minimum 161 % permitted by uWaterloo thesis regulations: 129 162 \setlength{\marginparwidth}{0pt} % width of margin notes 130 163 % N.B. If margin notes are used, you must adjust \textwidth, \marginparwidth 131 164 % and \marginparsep so that the space left between the margin notes and page 132 165 % edge is less than 15 mm (0.6 in.) 133 \setlength{\marginparsep}{0pt} % width of space between body text and margin notes 134 \setlength{\evensidemargin}{0.125in} % Adds 1/8 in. to binding side of all 166 % width of space between body text and margin notes 167 \setlength{\marginparsep}{0pt} 168 % Adds 1/8 in. to binding side of all 135 169 % even-numbered pages when the "twoside" printing option is selected 136 \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 137 \setlength{\textwidth}{6.375in} % assuming US letter paper (8.5 in. x 11 in.) and side margins as above 170 \setlength{\evensidemargin}{0.125in} 171 % Adds 1/8 in. to the left of all pages when "oneside" printing is selected, 172 % and to the left of all odd-numbered pages when "twoside" printing is selected 173 \setlength{\oddsidemargin}{0.125in} 174 % assuming US letter paper (8.5 in. x 11 in.) and side margins as above 175 \setlength{\textwidth}{6.375in} 138 176 \raggedbottom 139 177 140 % The following statement specifies the amount of space between paragraphs. Other reasonable specifications are \bigskipamount and \smallskipamount. 178 % The following statement specifies the amount of space between paragraphs. 179 % Other reasonable specifications are \bigskipamount and \smallskipamount. 141 180 \setlength{\parskip}{\medskipamount} 142 181 143 % The following statement controls the line spacing. 144 % The default spacing corresponds to good typographic conventions and only slight changes (e.g., perhaps "1.2"), if any, should be made. 182 % The following statement controls the line spacing. 183 % The default spacing corresponds to good typographic conventions and only 184 % slight changes (e.g., perhaps "1.2"), if any, should be made. 145 185 \renewcommand{\baselinestretch}{1} % this is the default line space setting 146 186 147 187 % By default, each chapter will start on a recto (right-hand side) page. 148 % We also force each section of the front pages to start on a recto page by inserting \cleardoublepage commands. 149 % 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. 150 % The following statements ensure a page number is not printed on an otherwise blank verso page. 188 % We also force each section of the front pages to start on a recto page by 189 % inserting \cleardoublepage commands. In many cases, this will require that 190 % the verso (left-hand) page be blank, and while it should be counted, a page 191 % number should not be printed. The following statements ensure a page number 192 % is not printed on an otherwise blank verso page. 151 193 \let\origdoublepage\cleardoublepage 152 194 \newcommand{\clearemptydoublepage}{% … … 154 196 \let\cleardoublepage\clearemptydoublepage 155 197 156 % Define Glossary terms (This is properly done here, in the preamble and could also be \input{} from a separate file...) 198 % Define Glossary terms (This is properly done here, in the preamble and 199 % could also be \input{} from a separate file...) 157 200 \input{glossaries} 158 201 \makeglossaries … … 169 212 % L O G I C A L D O C U M E N T 170 213 % The logical document contains the main content of your thesis. 171 % 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. 214 % Being a large document, it is a good idea to divide your thesis into several 215 % files, each one containing one chapter or other significant chunk of content, 216 % so you can easily shuffle things around later if desired. 172 217 %====================================================================== 173 218 \begin{document} … … 176 221 % FRONT MATERIAL 177 222 % title page,declaration, borrowers' page, abstract, acknowledgements, 178 % dedication, table of contents, list of tables, list of figures, nomenclature, etc. 179 %---------------------------------------------------------------------- 180 \input{uw-ethesis-frontpgs} 223 % dedication, table of contents, list of tables, list of figures, 224 % nomenclature, etc. 225 %---------------------------------------------------------------------- 226 \input{uw-ethesis-frontpgs} 181 227 182 228 %---------------------------------------------------------------------- 183 229 % MAIN BODY 184 230 % We suggest using a separate file for each chapter of your thesis. 185 % Start each chapter file with the \chapter command. 186 % Only use \documentclass or\begin{document} and \end{document} commands in this master document.231 % Start each chapter file with the \chapter command. Only use \documentclass, 232 % \begin{document} and \end{document} commands in this master document. 187 233 % Tip: Putting each sentence on a new line is a way to simplify later editing. 188 234 %---------------------------------------------------------------------- … … 200 246 % Bibliography 201 247 202 % The following statement selects the style to use for references. 203 % It controls the sort order of the entries in the bibliography and also the formatting for the in-text labels. 248 % The following statement selects the style to use for references. 249 % It controls the sort order of the entries in the bibliography and also the 250 % formatting for the in-text labels. 204 251 \bibliographystyle{plain} 205 % This specifies the location of the file containing the bibliographic information. 206 % It assumes you're using BibTeX to manage your references (if not, why not?). 207 \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. 208 % Use \clearpage instead if the document class uses the "oneside" argument 209 \phantomsection % With hyperref package, enables hyperlinking from the table of contents to bibliography 210 % The following statement causes the title "References" to be used for the bibliography section: 252 % This specifies the location of the file containing the bibliographic 253 % information. It assumes you're using BibTeX to manage your references (if 254 % not, why not?). 255 \cleardoublepage % This is needed if the "book" document class is used, to 256 % place the anchor in the correct page, because the bibliography will start 257 % on its own page. 258 % Use \clearpage instead if the document class uses the "oneside" argument. 259 \phantomsection % With hyperref package, enables hyperlinking from the table 260 % of contents to bibliography. 261 % The following statement causes the title "References" to be used for the 262 % bibliography section: 211 263 \renewcommand*{\bibname}{References} 212 264 … … 215 267 216 268 \bibliography{uw-ethesis,pl} 217 % Tip: You can create multiple .bib files to organize your references. 218 % Just list them all in the \bibliogaphy command, separated by commas (no spaces). 219 220 % The following statement causes the specified references to be added to the bibliography even if they were not cited in the text. 221 % The asterisk is a wildcard that causes all entries in the bibliographic database to be included (optional). 269 % Tip: You can create multiple .bib files to organize your references. Just 270 % list them all in the \bibliogaphy command, separated by commas (no spaces). 271 272 % The following statement causes the specified references to be added to the 273 % bibliography even if they were not cited in the text. The asterisk is a 274 % wildcard that causes all entries in the bibliographic database to be 275 % included (optional). 222 276 % \nocite{*} 223 277 %---------------------------------------------------------------------- … … 227 281 % The \appendix statement indicates the beginning of the appendices. 228 282 \appendix 229 % Add an un-numbered title page before the appendices and a line in the Table of Contents 283 % Add an un-numbered title page before the appendices and a line in the Table 284 % of Contents 230 285 % \chapter*{APPENDICES} 231 286 % \addcontentsline{toc}{chapter}{APPENDICES} 232 % Appendices are just more chapters, with different labeling (letters instead of numbers). 287 % Appendices are just more chapters, with different labeling (letters instead 288 % of numbers). 233 289 % \input{appendix-matlab_plots.tex} 234 290 235 % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package) 291 % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. 292 % provided by the glossaries-extra package) 236 293 % ----------------------------- 237 294 \printglossaries
Note: See TracChangeset
for help on using the changeset viewer.