summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ryethesis
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ryethesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/ryethesis')
-rw-r--r--macros/latex/contrib/ryethesis/Makefile73
-rw-r--r--macros/latex/contrib/ryethesis/README52
-rw-r--r--macros/latex/contrib/ryethesis/figure1.pdfbin0 -> 19274 bytes
-rw-r--r--macros/latex/contrib/ryethesis/ryesample.bib32
-rw-r--r--macros/latex/contrib/ryethesis/ryesample.pdfbin0 -> 216922 bytes
-rw-r--r--macros/latex/contrib/ryethesis/ryesample.tex274
-rw-r--r--macros/latex/contrib/ryethesis/ryethesis.dtx1056
-rw-r--r--macros/latex/contrib/ryethesis/ryethesis.ins55
-rw-r--r--macros/latex/contrib/ryethesis/ryethesis.pdfbin0 -> 224977 bytes
9 files changed, 1542 insertions, 0 deletions
diff --git a/macros/latex/contrib/ryethesis/Makefile b/macros/latex/contrib/ryethesis/Makefile
new file mode 100644
index 0000000000..6993fc56b9
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/Makefile
@@ -0,0 +1,73 @@
+FILEROOT=ryesample
+
+SHELL=/bin/sh
+
+VERSION=$(shell grep changes ryethesis.dtx | perl -wlne 'print $$1 if /v([0-9]+\.[0-9]+)/' | sort -n | tail -1)
+
+LATEX=pdflatex
+
+TEXFILES=ryesample.tex
+BIBFILES=ryesample.bib
+FIGS=figure1.pdf
+FILES=README ryethesis.ins ryethesis.dtx ryethesis.pdf ryesample.pdf Makefile
+EXTRACLEAN=*.aux *.lof *.lot *.loa *.log *.bbl *.blg *.ind *.ilg *.toc *.idx *.gls *.glo *.out *~ *.nls *.nlo *.ist *.toa *.glg *.acn *.acr *.alg *.fdb_latexmk *.synctex.gz *.dvi auto ryethesis-*.zip
+
+TEXMFFLAGS=-file-line-error -halt-on-error #-interaction=batchmode
+
+TARGETS=ryethesis.cls ryethesis.pdf ryesample.pdf ryethesis-$(VERSION).zip
+
+all: $(TARGETS)
+
+.PHONY: again.and.again once bibtex glossary index nomenclature
+
+once:
+ @$(LATEX) $(TEXMFFLAGS) $(FILEROOT) || (rm -f $(FILEROOT).pdf; exit 2);
+
+bibtex:
+ @bibtex -terse $(FILEROOT)
+
+glossary:
+ @if [ -f $(FILEROOT).ist ]; then makeglossaries -q $(FILEROOT) ; fi
+
+index:
+ @if [ -f $(FILEROOT).idx ]; then makeindex -q $(FILEROOT) ; fi
+
+nomenclature:
+ @if [ -f $(FILEROOT).nlo ]; then makeindex -q $(FILEROOT).nlo -s nomencl.ist -o $(FILEROOT).nls; fi
+
+again.and.again:
+ @if [ $(MAKELEVEL) = 4 ]; then \
+ echo "Too many nesting levels of make!"; exit 1; \
+ fi
+ $(MAKE) once
+ @if `grep -q -e "There were undefined references" -e "There were multiply-defined labels" -e "Label(s) may have changed. Rerun to get cross-references right" $(FILEROOT).log`; \
+ then $(MAKE) again.and.again; \
+ fi
+
+clean:
+ @rm -rf $(EXTRACLEAN)
+
+clean-all:
+ @make clean;
+ @rm -rf $(TARGETS)
+
+$(FILEROOT).pdf: Makefile ryethesis.cls ${TEXFILES} ${BIBFILES} ${FIGS}
+ @$(MAKE) once
+ @$(MAKE) bibtex
+ @$(MAKE) glossary
+ @$(MAKE) index
+ @$(MAKE) nomenclature
+ @$(MAKE) again.and.again
+
+ryethesis.pdf: Makefile ryethesis.dtx
+ echo "Making "$@
+ @$(LATEX) $(TEXMFFLAGS) ryethesis.dtx || ( cat ryethesis.log; exit 1 )
+ @$(LATEX) $(TEXMFFLAGS) ryethesis.dtx || ( cat ryethesis.log; exit 2 )
+
+ryethesis.cls: Makefile ryethesis.ins ryethesis.dtx
+ echo "Making "$@
+ @$(LATEX) $(TEXMFFLAGS) ryethesis.ins || ( cat ryethesis.log; exit 1 )
+
+ryethesis-$(VERSION).zip: ${FILES} ${TEXFILES} ${BIBFILES} ${FIGS}
+ @rm -f ryethesis-*.zip; rm -rf ./ryethesis; mkdir ryethesis; cp $^ ryethesis; zip $@ ryethesis/*; rm -rf ./ryethesis;
+
diff --git a/macros/latex/contrib/ryethesis/README b/macros/latex/contrib/ryethesis/README
new file mode 100644
index 0000000000..8ca78266f7
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/README
@@ -0,0 +1,52 @@
+ Ryerson University Thesis Class
+
+ Copyright (C) 2009 by J.V. Lassaline <jvl@ryerson.ca>
+ -------------------------------------------------------
+
+ This file may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either version 1.3c
+ of this license or (at your option) any later version.
+ The latest version of this license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+ and version 1.3c or later is part of all distributions of LaTeX
+ version 2008/05/04 or later.
+
+This is a class definition for formatting a thesis, dissertation or
+project subject to Ryerson University School of Graduate Studies
+policy. The following files are provided:
+
+ README
+ ryethesis.ins
+ ryethesis.dtx
+ ryethesis.pdf
+ ryesample.tex
+ ryesample.bib
+ ryesample.pdf
+ figure1.pdf
+
+To create the class file 'ryethesis.cls',
+run LaTeX on the install file 'ryethesis.ins'.
+
+To re-create the class and usage documentation 'ryethesis.pdf',
+run LaTeX on the file 'ryethesis.dtx'.
+
+For a sample thesis using most of the available options, see
+'ryesample.tex'. This LaTeX file will include a figure 'figure1.pdf',
+which requires that you use pdflatex, xelatex, or similar. Run BiBTeX
+to process the cited references from the file 'ryesample.bib'. You
+will also need to recreate the nomenclature, glossary, and index. See
+'ryesample.tex' for details or examine the output log messages. Using
+pdflatex, the sequence of commands is:
+
+pdflatex ryesample
+bibtex ryesample
+makeindex -s nomencl.ist -o ryesample.nls ryesample.nlo
+makeindex ryesample
+makeglossaries ryesample
+pdflatex ryesample
+pdflatex ryesample
+
+Feel free to send bug reports to the author above.
+
diff --git a/macros/latex/contrib/ryethesis/figure1.pdf b/macros/latex/contrib/ryethesis/figure1.pdf
new file mode 100644
index 0000000000..2fa45a04f1
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/figure1.pdf
Binary files differ
diff --git a/macros/latex/contrib/ryethesis/ryesample.bib b/macros/latex/contrib/ryethesis/ryesample.bib
new file mode 100644
index 0000000000..f899fb56ce
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/ryesample.bib
@@ -0,0 +1,32 @@
+%% This BibTeX bibliography file was created using BibDesk.
+%% http://bibdesk.sourceforge.net/
+
+
+%% Created for Jason Lassaline at 2011-02-04 10:44:24 -0500
+
+
+%% Saved with string encoding Unicode (UTF-8)
+
+
+
+@book{Ryerson:v1,
+ Author = {E Ryerson},
+ Publisher = {William Briggs, James Cambell \& Son, and Willing \& Williamson.},
+ Title = {The Loyalists of America and Their Times, Vol. 1 of 2. From 1620-1816},
+ Volume = {1},
+ Year = {1880}}
+
+@book{Ryerson:v2,
+ Author = {E Ryerson},
+ Publisher = {William Briggs, James Cambell \& Son, and Willing \& Williamson.},
+ Title = {The Loyalists of America and Their Times, Vol. 2 of 2. From 1620-1816},
+ Volume = {2},
+ Year = {1880}}
+
+@book{Ryerson:bio,
+ Author = {E Ryerson},
+ Date-Modified = {2011-02-04 10:43:25 -0500},
+ Publisher = {William Briggs},
+ Title = {The Story of My Life},
+ Url = {http://books.google.ca/books?id=i94BAAAAMAAJ&ots=vgfHDksYH8&dq=egerton%20ryerson&lr&pg=PR9#v=onepage&q&f=false},
+ Year = {1884}}
diff --git a/macros/latex/contrib/ryethesis/ryesample.pdf b/macros/latex/contrib/ryethesis/ryesample.pdf
new file mode 100644
index 0000000000..4c100b8bd9
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/ryesample.pdf
Binary files differ
diff --git a/macros/latex/contrib/ryethesis/ryesample.tex b/macros/latex/contrib/ryethesis/ryesample.tex
new file mode 100644
index 0000000000..39a808ea69
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/ryesample.tex
@@ -0,0 +1,274 @@
+\documentclass[final,los,index,glossary,loa]{ryethesis}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{amsthm}
+%
+% Note that this usage example is not an introduction to using LaTeX. You are highly recommended to check out Leslie Lamport's "LaTeX: A Document Preparation System". Please read through this file to get started using the ryethesis document class, including all comments!
+%
+% This sample includes packages which are part of the current TeX Live distribution. The TeX Live
+% distribution is the easiest way to get up and running with TeX. See http://tug.org/texlive
+
+% Available options to ryethesis class:
+% draft - Produce a one-sided, double-spaced draft (figures replaced by placeholders).
+% review - Produce a one-sided, 1.5-spaced version for review by examiners.
+% final (default) - Produce a two-sided, 1.5-spaced final version
+% lof (default) | nolof - Enable | disable a list of figures
+% lop | nolop (default) - Enable | disable a list of plates
+% loi | noloi (default) - Enable | disable a list of illustrations
+% lot (default) | nolot - Enable | disable a list of tables
+% loa (default) | noloa - Enable | disable a list of appendices (separate from TOC)
+% los | nolos (default) - Enable | disable a list of symbols (nomenclature)
+% glossary | noglossary (default) - Enable | disable a glossary of terms
+% index | noindex (default) - Enable | disable an index
+% nohyperref - Disable the loading of hyperref
+
+% List of Symbols / Nomenclature
+%=====================
+% Note that current SGS policy does not specify a requirement for a nomenclature list. In keeping with the "List of ..." model, the nomenclature is presented as a "List of Symbols". The List of Symbols currently appears as the last item in the front matter.
+%
+% The nomenclature must be processed using the 'makeindex' command, similar to the creation of an index. For example:
+% makeindex ryesample.nlo -s nomencl.ist -o ryesample.nls
+%
+% Symbols can be defined with the \nomenclature command in the body of the text (see below for examples).
+
+% Some of the class options can be toggled in the preamble. The following commands are available (function should be obvious by name):
+% \includelistoftables
+% \nolistoftables
+% \includelistoffigures
+% \nolistoffigures
+% \includelistofplates
+% \nolistofplates
+% \includelistofillustrations
+% \nolistofillustrations
+% \includelistofappendices
+% \nolistofappendices
+% \includenomenclature
+% \nonomenclature
+% \includeglossary
+% \noglossary
+% \includeindex
+% \noindex
+
+% If you wish to include pictures, I recommend the graphics package. This is not
+% loaded by the ryethesis class.
+\usepackage{color}
+\usepackage{graphicx}
+
+% Add any other packages you wish to load here in the preamble.
+% \usepackage{somecoolpackage}
+
+% This sample uses a modified version of the Chicago Manual of Style bibtex style,
+% which requires the inclusion of chicago.sty.
+%\usepackage{chicago}
+
+% In the pre-amble, define some of necessary information for the document frontmatter.
+
+% Specify the author (required):
+% \author{Your Full Name}
+\author{Adolphus Egerton Ryerson}
+
+% Specify the title of the document (required):
+% \title{The Title of Your Thesis or Dissertation}
+\title{De Finibus Bonorum et Malorem}
+
+% The document type can be specified with the following commands. Each document type will
+% have a slightly different title page.
+% \thesis - (default) Specify that the document type is a thesis
+% \dissertation - Specify that this is a dissertation.
+% \MRP - Specify that this is a masters research project (e.g. MEng project)
+
+% Specify the type of degree (e.g. Masters of Applied Science, Doctor of Philosophy). Do not use
+% abbreviations.
+% \degreeName{Full Degree Name}
+\degreeName{Doctor of Philosophy}
+
+% Specify the year of the degree:
+% \degreeYear{####}
+\degreeYear{1847}
+
+% Specify the program:
+% \program{Program Name}
+\program{Education}
+
+% Specify any previous degrees (A through D)
+% \prevDegreeA{Degree Name}{University}{Year}
+% \prevDegreeB{Degree Name}{University}{Year}
+% \prevDegreeC{Degree Name}{University}{Year}
+% \prevDegreeD{Degree Name}{University}{Year}
+% Previous degrees will be listed with degree A first.
+\prevDegreeA{Masters of Education}{Ryerson}{1845}
+\prevDegreeB{Masters of Business Administration}{Ryerson}{1843}
+\prevDegreeC{Masters of Something Else}{Ryerson}{1841}
+\prevDegreeD{Bachelor of Arts}{Ryerson}{1839}
+
+% If the degree is offered in partnership with another university, specify the university
+% with the \partnerUniversity command
+% \partnerUniversity{Other University}
+\partnerUniversity{Hogwarts University}
+
+% Much of the front matter and back matter is automatically inserted in the correct location.
+% Use the following commands to insert the necessary content.
+
+% The abstract. Current SGS requirement is the same as the UMI requirements: double-spaced, maximum 350 words for a PhD, 150 words otherwise. Use the \abstract command to specify the content of the abstract. The name, title, etc will be generated automatically.
+%
+% This abstract uses the optional acronyms defined in the glossary. The first occurance of a new
+% acronym will be written out in full followed by the acronym in brackets. This feature is reset at the
+% beginning of the main body of the text.
+
+\abstract{% A 350 word abstract. This will likely take 2 pages
+\Gls{LI} dolor sit amet, consectetur adipiscing elit. Aliquam tempus ultrices dolor, quis convallis est tempor id. Nam semper rhoncus diam, nec dapibus est tristique sed. Praesent non ligula eu metus laoreet ultrices. Praesent sagittis accumsan nibh, in adipiscing dui pretium vel. Nunc justo quam, tincidunt non adipiscing eu, facilisis eu risus. Etiam vitae ipsum felis, non sodales massa. Cras volutpat ultrices dolor, in aliquet felis ullamcorper quis. Vivamus feugiat auctor diam. Curabitur lectus lorem, ultrices eget ultrices non, scelerisque quis diam. Integer eget neque sed diam vehicula consequat. Phasellus aliquam elementum velit, eget suscipit enim mattis sed. Sed consequat commodo condimentum. Sed orci eros, posuere vitae consectetur et, faucibus ultricies justo. Phasellus vitae magna justo.
+
+Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis eget enim in magna sodales condimentum. Mauris aliquam dolor in risus aliquet pharetra. Ut accumsan faucibus dui vel vehicula. Sed justo diam, laoreet vel imperdiet sit amet, porta sit amet leo. Donec ac quam massa. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam convallis quam vel lorem viverra nec lacinia metus consectetur. Aliquam erat volutpat. Mauris consequat ullamcorper consectetur. Aenean urna risus, iaculis porta sodales at, egestas a odio. In sed ultricies dui. Sed tincidunt sem et lectus convallis nec posuere purus condimentum.
+
+In purus ipsum, euismod ac dictum non, luctus ut ligula. Nullam neque elit, faucibus non elementum vitae, sodales ac turpis. Sed sit amet mauris at purus facilisis interdum. Nunc nisl eros, faucibus in viverra in, fringilla ac velit. Praesent nec quam sed augue adipiscing dictum in et nibh. Sed non lectus in mi ultrices rutrum ac non ligula. Etiam ac neque et sapien semper imperdiet ornare vitae felis. Etiam dignissim purus id sem ultrices malesuada. Phasellus ut leo nec quam semper blandit ac quis urna. Fusce egestas turpis at tortor imperdiet pretium. Nam id enim enim. Quisque felis metus, iaculis id pretium et, pharetra ac augue. Morbi tempus sollicitudin ligula a condimentum. Sed ultricies purus in eros laoreet mollis. Nullam tempus dolor sit amet lectus molestie aliquam. Morbi nisi diam, auctor.
+}
+
+% The acknowledgements. Similar to the abstract, specify the content of the acknowledgments section using the \acknowledgement command. Acknowledgements are optional.
+
+\acknowledgements{
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent non sem justo, ut laoreet lorem. Maecenas sit amet hendrerit risus. Vivamus vitae neque dolor. Curabitur ultrices nisi quis arcu dapibus interdum. Integer id nunc velit, eget egestas nisi. Aenean at metus eget arcu fermentum ullamcorper et vel mauris. In lacinia ultrices eros eu mollis. Fusce tincidunt quam non nunc tristique pulvinar. Duis quis justo elit, et adipiscing metus. Sed in faucibus magna. Nulla ut posuere diam. Morbi pharetra condimentum nunc, at consequat risus faucibus quis. Donec odio purus, eleifend vitae volutpat ac, lacinia non ligula. Class aptent taciti sociosqu ad.}
+
+% The dedication. Similar to \acknowledgements command, the dedication is optional.
+\dedication{
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer pulvinar cursus dolor venenatis mollis. Quisque eleifend elementum varius. Nulla rhoncus eros neque, in rhoncus urna. Phasellus in purus et nisi hendrerit venenatis. In felis tortor, venenatis eu auctor nec, fermentum sed sem. Duis nisi tellus, mattis in accumsan sit amet.}
+
+% Bibliography/References/End Notes
+% The following commands should be used along with BibTeX input files. Use the \cite commands as needed throughout the main matter.
+%
+% Specify your desired BibTeX bibliographic style.
+% This sample includes a modified version of chicago.bst which includes URL support, created with the urlbst utility. You can enable it as follows but you will need to install the url package.
+%\bibliographystyle{chicagourl}
+% You are free to use what ever BibTeX style you wish. See the \bibliographystyle
+% command below.
+\bibliographystyle{plain}
+%
+%
+%
+% The \bibliography command is inserted automatically in the correct place (ahead of any glossary but after the appendix). Use the \addtoreferences command to add BibTeX .bib files to the input list. Note that this is not the usual way of doing this in LaTeX but works to fit the bibliography in the correct place. You can divide your references among multiple BibTeX .bib files, and include each one with a \addtoreferences command.
+%
+% \addtoreferences{bibfilename}
+\addtoreferences{ryesample}
+%
+% The default heading for a reference list is "References". To use "Bibliography" instead, use the \usebibliography command
+% \usebibliography
+% or to use "End Notes" use the \useendnotes command.
+% \useendnotes
+%
+
+% Glossaries are implemented using the `glossaries' package. Usage is optional but helpful for defining acronyms.
+
+\newglossaryentry{Lorem}{name={lorem},description={lorem ipsem dolor sit amet}}
+\newglossaryentry{Bonorum}{name={bonorum},description={Pellentesque tincidunt mauris id odio venenatis bibendum}}
+\newglossaryentry{Malorem}{name={malorem},description={Nam vestibulum libero et molestie mollis}}
+\newacronym{LI}{LI}{lorem ipsum}
+
+% Everything after the \begin{document}, excluding any \appendix command is considered to be the main matter of the document.
+%
+\begin{document}
+\chapter{Introduction}
+\textit{Please note that this sample is not a beginner's introduction on using \LaTeX{}. While it's not difficult to get started with \LaTeX{}, especially if using the \href{http://tug.org/texlive}{\TeX{} Live} distribution, please see Leslie Lamport's ``LaTeX: A Document Preparation System'' as a starting point for learning \LaTeX{}.}
+
+\textit{For the main matter of your thesis use the following sectional hierarchy: (part), chapter, section, subsection, paragraph, subparagraph. Each of these divisions can be indicated using the respective \LaTeX{} commands (e.g.\ \texttt{\textbackslash{chapter}} for a new chapter). Chapters will start on the right-hand page in two-sided mode with clear, empty pages inserted as needed in duplex mode. In draft mode, no empty pages will be inserted.}
+
+\textit{This \LaTeX{} sample document includes additional comments regarding usage in the source.}
+
+\section{Background}
+\Gls{Lorem} ipsum dolor sit amet, consectetur adipiscing elit. Praesent eu mauris tortor. Aliquam erat volutpat. Morbi gravida varius ornare. Duis vitae erat a odio pretium pharetra ornare sit amet urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla tempor lacinia augue, nec blandit lacus placerat nec. Phasellus non blandit dui. Donec lobortis eros id dolor semper consectetur. Mauris laoreet metus ut elit fringilla adipiscing posuere neque mattis. Aliquam turpis nibh, porta tristique elementum pellentesque, pharetra non neque. Cras dapibus ullamcorper dolor, ac tincidunt erat fermentum adipiscing. Fusce molestie, velit lobortis sollicitudin consectetur, ante metus tempus tortor, quis cursus lacus augue sit amet sem. Maecenas nibh urna, ullamcorper eget suscipit ac, fermentum ut ante.\footnote{Footnotes will be included on the same page whenever possible. Cras congue consectetur elit, ac lobortis tortor laoreet sit amet. Cras mauris est, feugiat vitae elementum eget, aliquam consequat urna. Aliquam ac vestibulum enim. Suspendisse.} Sed non lectus sapien. Suspendisse commodo sagittis massa, eget consectetur ipsum hendrerit sed. Sed condimentum tortor quis tortor facilisis aliquam. Ut tristique diam sit amet eros convallis ac eleifend felis imperdiet. Nam eros nunc, condimentum in blandit et, consectetur ac velit. Etiam sem purus, hendrerit id adipiscing et, viverra nec mi. Proin auctor, dolor at pretium facilisis, massa mauris blandit felis, ut vestibulum nibh purus non lectus.\footnote{Integer ornare vestibulum magna, in vestibulum lacus dapibus ac. Maecenas et enim et metus malesuada.}
+
+% Attribution to references are done using BibTeX.
+Suspendisse suscipit urna quis lacus egestas interdum. \Gls{LI} dolor sit amet, consectetur adipiscing elit \cite{Ryerson:bio}. Cras libero lacus, facilisis sit amet tempus at, condimentum vitae urna. Nam sit amet tortor ut risus commodo tincidunt. Nam sit amet sodales est. Curabitur tempus neque vitae portor porta gravida \cite{Ryerson:v1,Ryerson:v2}
+% Equations can be entered in the usual manner. The 'nomencl' package is loaded by the class by default. A nomenclature list can be created as well using the \nomenclature command with the 'nom' class option. To avoid odd spacing issues, use the \nomenclature command within an equation environment or as a separate paragraph. Do not embed within a paragraph.
+\begin{equation}
+a^2+b^2=c^2
+\nomenclature{a}{length of adjacent side}
+\nomenclature{b}{length of opposite side}
+\nomenclature{c}{length of hypotenuse}
+\end{equation}
+etiam dolor turpis, rhoncus nec adipiscing et, ullamcorper ut eros. Ut auctor pellentesque ante, ac ullamcorper lacus pharetra eu. In sodales euismod elementum. Phasellus urna erat, ornare ut vulputate vel, iaculis non elit. Vivamus faucibus ullamcorper consequat.
+
+\begin{table}
+\begin{center}
+\begin{tabular}{|c|c|c|}\hline
+& \gls{Bonorum} & \gls{Malorem} \\ \hline
+Lorem & X & \\\hline
+Ipsum & & X \\\hline
+\end{tabular}
+\caption[Lorem ipsum dolor sit amet, consectetur adipiscing elit.]{\textit{Tables should be handled as floats using the \texttt{table} environment.} \Gls{LI} dolor sit amet, consectetur adipiscing elit. Duis nibh.}\label{tab::1}
+\end{center}
+\end{table}
+
+\subsection{Bonorum}\index{Bonorum}
+Pellentesque tincidunt mauris id odio venenatis bibendum. Etiam porta, tellus nec consectetur laoreet, nisl orci mattis nisl, at aliquam nunc ante quis leo. Aliquam facilisis lectus eu justo laoreet dictum. Ut aliquam magna arcu. Sed convallis, tellus non elementum consequat, tellus erat molestie dui, id mattis arcu nisl et mi. Praesent ac interdum nibh. Nunc sed mi diam, sed hendrerit dolor. Cras sed orci ut lacus rutrum consequat. Donec tincidunt blandit feugiat. Nulla aliquet consectetur bibendum.
+
+Donec eget gravida ipsum. Vestibulum scelerisque sem eu purus varius bibendum. In fringilla cursus purus, et rutrum est porta sagittis. Quisque non massa ut velit lacinia aliquet ut non sapien. Duis accumsan viverra sem a condimentum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam lobortis diam sed enim pharetra egestas. Quisque non urna risus. Duis sodales sapien mauris, iaculis sagittis libero. Quisque tellus nisl, ullamcorper quis vehicula id, convallis quis libero. Suspendisse nec sem velit, nec rhoncus ipsum. Aliquam a ante dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus pharetra dolor arcu. Nunc egestas est sit amet sapien sollicitudin elementum.
+
+\subsection{Malorem}\index{Malorem}
+Nam vestibulum (Fig.~\ref{fig::1}), libero et molestie mollis, urna est posuere arcu, et ornare nisi ligula nec est. Mauris volutpat turpis id purus gravida dictum. Nulla non justo eget elit vehicula tempus. Vivamus quis nibh leo. Nullam metus nulla, aliquam scelerisque sodales sed, porta nec lectus. Mauris iaculis dignissim lacus in bibendum. Maecenas vel massa ut orci dignissim placerat ut sed ante. Morbi luctus lacus dolor (Table~\ref{tab::1}). Aliquam luctus, arcu quis laoreet ultricies, risus ligula fermentum leo, tempus porttitor nibh libero nec justo. Aliquam erat volutpat. Aliquam sagittis placerat ligula, a aliquam justo vulputate in.
+\begin{figure}
+\begin{center}
+\includegraphics[width=\textwidth,keepaspectratio=true]{figure1.pdf}
+\caption[Lorem ipsum dolor sit amet, consectetur adipiscing elit.]{\textit{Figures should be included using the \texttt{figure} float environment.} \Gls{LI} dolor sit amet, consectetur adipiscing elit. Duis nibh.}\label{fig::1}
+\end{center}
+\end{figure}
+\chapter{Lorem}
+\Gls{LI} dolor sit amet, consectetur adipiscing elit. Integer pretium aliquam elit ac sollicitudin. Curabitur sem urna, laoreet non fermentum id, rhoncus eget ante. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris elementum ante non eros consequat luctus. Suspendisse lobortis accumsan tempus. Nullam ut dolor vestibulum erat tempor ornare bibendum vitae nisl. Praesent ornare odio molestie ligula iaculis ac eleifend ante dignissim. Vestibulum nec elit sed tortor sollicitudin euismod. Nulla facilisi. Sed nec fermentum nisi. Morbi et porta lectus. Praesent vel urna quis mi ornare pellentesque id quis ligula. Aliquam eu feugiat augue. Nunc faucibus nulla orci, et ornare leo. In vestibulum pellentesque mi vitae posuere.
+
+\section{Sed Sed Elit}
+Sed sed elit et tortor volutpat mollis. Donec vel placerat orci. Vivamus condimentum dictum gravida. Pellentesque eleifend blandit lorem, vitae lacinia sapien ultrices et. Morbi dignissim, elit sit amet facilisis sodales, mi diam accumsan libero, porttitor tincidunt diam lectus et mi. Proin sollicitudin massa sed sapien porta a semper sem fringilla. Quisque nec odio ac augue aliquam tristique. Quisque volutpat pulvinar nisi et tempor. Quisque in tellus quis mauris ultrices lacinia id eget lorem. Nunc placerat rutrum mauris, id sollicitudin neque tincidunt eu. Proin sed diam mauris. Proin varius quam nec dolor egestas quis tempus mauris dignissim. Ut a sem risus. Proin ultrices, turpis ut viverra convallis, nulla mauris interdum enim, vel tincidunt ipsum libero id orci. Nullam cursus neque eget nisi commodo sit amet volutpat purus semper. Praesent lacus ante, facilisis in suscipit ut, cursus tempus tellus.
+
+Vestibulum ultrices vulputate justo, quis cursus lorem aliquet a. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis sagittis justo id ligula mollis varius a ut arcu. Morbi semper ante vitae leo rhoncus mattis. Suspendisse scelerisque feugiat dolor ut adipiscing. Maecenas et pretium diam. Aliquam dictum enim elit, a vehicula justo. Nullam euismod arcu in metus bibendum condimentum. Donec at nunc eu arcu semper iaculis ut at nisl. Donec nec libero in sem hendrerit porta. Aliquam vitae lorem vitae dui auctor lacinia. Vestibulum eu dolor ut turpis varius venenatis in quis augue.
+
+\section{Etiam}
+Etiam dictum auctor pharetra. Pellentesque quam leo, pretium sagittis vulputate a, lobortis et diam. Vestibulum rutrum massa et est porta luctus. In non risus ac magna posuere pulvinar. Morbi vitae libero vel erat blandit ultrices ac eget est. Suspendisse tellus turpis, sodales ut varius a, mattis eu massa. Donec ac purus eros. Integer vel varius justo. Sed suscipit sodales condimentum. Integer augue urna, euismod eget feugiat blandit, facilisis id lorem. \Gls{LI} dolor sit amet, consectetur adipiscing elit. Nulla eu lectus sem, ut tristique mauris. Maecenas tincidunt dui non ante lacinia et commodo massa adipiscing. Aenean hendrerit molestie tortor vitae malesuada. Nullam et scelerisque metus.
+
+Pellentesque mollis accumsan nisi, vel tristique turpis luctus non. Fusce tristique blandit scelerisque. Praesent interdum aliquam felis ac feugiat. Integer accumsan ornare lacus, eget vehicula ante tincidunt eu. Pellentesque mauris diam, consequat ut pharetra sed, faucibus nec risus. Sed vulputate porttitor mauris, quis mollis dui egestas et. Etiam cursus adipiscing cursus. Integer rhoncus consequat dapibus. Sed interdum, odio non fringilla volutpat, ante arcu adipiscing dui, a pellentesque lorem risus a nisi. Phasellus nisi odio, dignissim a feugiat eu, fermentum eu odio. Ut augue ante, tristique eget aliquam a, mollis sed nisi.
+
+% The back matter is inserted automatically in the correct SGS-required order, thus it is important that you define the content of the appendices within the \appendix command. This command can be defined in either the preamble or within the document environment. Use chapter and other section marks as normal. According to SGS policy, the appendices should appear in a List of Appendices instead of the regular Table of Contents. Note that figures, tables and other floats which appear in the appendix will be listed in the appropriate List of Figures, etc.
+
+\appendix{
+\chapter{Lorem Ipsum}
+\textit{The appendices are part of the back matter, with chapters being enumerated with letters instead of numbers. Page numbering is continuous with the main matter. Note that SGS policy states that appendices be listed in the List of Appendices rather than the Table of Contents.}
+\section{Lorem}
+\Gls{LI} dolor sit amet, consectetur adipiscing elit. Maecenas nulla lorem, venenatis et suscipit eu, ullamcorper tempor purus. Maecenas aliquet vestibulum libero, eu tempor diam ullamcorper eu. Pellentesque vel urna id nibh tempus blandit a tristique dui. Nunc sodales feugiat risus, ac varius lacus adipiscing a. Duis pulvinar euismod viverra. Maecenas ullamcorper aliquet lorem pellentesque gravida. Vivamus tincidunt massa eu turpis ultricies ac placerat erat molestie. Phasellus nec tellus neque. Praesent nec dapibus dui. \Gls{LI} dolor sit amet, consectetur adipiscing elit. Donec nec erat vitae libero tristique varius nec volutpat est. Nullam viverra, mi a tristique commodo, ante erat tincidunt erat, at vestibulum ipsum tellus in diam. Sed imperdiet mauris vel eros aliquam pellentesque a aliquam ipsum. Duis eget leo nibh. Mauris justo nisl, dictum a tempor sit amet, semper et enim. Mauris augue nisi, mattis vel pretium id, convallis laoreet orci. Sed vestibulum nisi sit amet enim sagittis porttitor. Duis ut nunc vel magna convallis vehicula eu eu turpis. In hac habitasse platea dictumst. Aenean condimentum fermentum risus, viverra ultricies nisl dapibus id.
+
+Donec arcu felis, vulputate fringilla vestibulum sed, interdum eu ipsum. Mauris egestas egestas libero, ut dictum enim tincidunt vel. Nunc sit amet arcu turpis, ac commodo ante. Aenean dictum urna urna, sed mattis tellus. Vivamus cursus condimentum ullamcorper. Nunc ut lorem enim. Morbi tempor vestibulum rhoncus. Phasellus nec neque urna. Aliquam sollicitudin scelerisque erat sit amet hendrerit. Quisque a libero felis. Pellentesque iaculis gravida massa nec tincidunt. Nulla facilisi.
+
+\begin{figure}
+\begin{center}
+\includegraphics[width=\textwidth,keepaspectratio=true]{figure1.pdf}
+\caption{Lorem ipsum dolor sit amet, consectetur adipiscing elit. In the Appendix.}\label{fig::A1}
+\end{center}
+\end{figure}
+
+In ornare turpis nec nunc venenatis ac tristique felis tempor. Fusce consectetur pulvinar nisi, id tincidunt tortor ultricies non. Praesent pulvinar mollis leo, ac posuere ipsum molestie at. Suspendisse in ligula massa. Proin interdum viverra neque, et bibendum nulla lobortis at. Nunc quis mollis libero. Morbi dolor diam, tristique nec tristique in, faucibus eu metus. Donec dapibus pulvinar ante, et pretium erat molestie eu. Donec hendrerit posuere metus eu interdum. Nam neque arcu, vestibulum in aliquam in, aliquet mollis nibh. Aenean nec augue in dui bibendum ultricies nec nec odio. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
+
+Phasellus et imperdiet justo. Pellentesque nec suscipit tortor. Aliquam ut nibh ac velit auctor congue quis at urna. Nulla convallis enim et nunc commodo varius. Sed elementum turpis ac purus sodales non luctus lacus dignissim. Cras id lorem id purus pulvinar convallis ac pulvinar elit. Morbi mattis, neque at condimentum lacinia, ipsum risus rutrum leo, non dignissim arcu eros a neque. Proin adipiscing, metus sed pulvinar suscipit, eros eros cursus velit, vel placerat turpis orci nec orci. Phasellus in dolor felis, id ultricies erat. Maecenas sollicitudin ultricies molestie.
+
+\subsection{Vivamus}
+\textcolor{red}{Vivamus dictum ligula vitae ante ornare hendrerit.} Quisque ac dolor nibh, eu ornare sem. Cras sit amet neque odio. Nulla bibendum bibendum turpis at congue. Nunc ultricies scelerisque sem, ut dapibus tellus dignissim sollicitudin. Curabitur sed sapien nibh, nec consectetur ante. Aliquam erat volutpat. Fusce tempor orci in ante venenatis nec pharetra diam aliquet. Nullam pretium elementum mauris, non commodo metus eleifend vel. Cras vel ante dolor. Suspendisse potenti. Quisque vel odio eget lorem posuere ultrices. Duis et volutpat diam. In sit amet pulvinar lacus. Vestibulum lacinia, turpis ut interdum venenatis, lorem sem eleifend diam, in hendrerit nisi tellus in lorem.
+}
+
+\typeout{**************************************************************************}
+\typeout{}
+\typeout{This sample file includes nomenclature (a List of Symbols). Please run:}
+\typeout{ makeindex ryesample.nlo -s nomencl.ist -o ryesample.nls}
+\typeout{}
+\typeout{}
+\typeout{This sample file includes a glossary. Please run:}
+\typeout{ makeglossaries ryesample}
+\typeout{}
+\typeout{}
+\typeout{This sample file includes an index. Please run:}
+\typeout{ makeindex ryesample}
+\typeout{}
+\typeout{}
+\typeout{This sample file includes a bibliography. Please run:}
+\typeout{ bibtex ryesample}
+\typeout{}
+\typeout{Reprocess the document using LaTeX again, two more times to include the}
+\typeout{above sections.}
+\typeout{}
+\typeout{**************************************************************************}
+
+
+\end{document}
diff --git a/macros/latex/contrib/ryethesis/ryethesis.dtx b/macros/latex/contrib/ryethesis/ryethesis.dtx
new file mode 100644
index 0000000000..93cf56077b
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/ryethesis.dtx
@@ -0,0 +1,1056 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2014 by J.V. Lassaline <jvl@ryerson.ca>
+% -------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{ryethesis.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<class>\ProvidesClass{ryethesis}
+%<*class>
+ [2014/05/09 v1.36 Ryerson University thesis class definition]
+%</class>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\newcommand{\DescribeOption}[2]{\mbox{}\marginpar{\raggedleft\textbf{\textit{#1}}\slash\textit{#2}}}
+\newcommand{\DescribeToggle}[4]{\mbox{}\marginpar{\raggedleft\textbf{\textit{#1}}\slash\textit{#2}\\\strut \MacroFont \string #3\ \\\strut \MacroFont \string #4\ }}
+\begin{document}
+ \DocInput{ryethesis.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{908}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2009/09/30}{Initial version}
+% \changes{v1.1}{2010/06/18}{Fixed bug with previous degrees. Added
+% xcolor package earlier in file.}
+% \changes{v1.2}{2010/07/05}{Changed \\degree to \\degreeName to avoid
+% conflict with package unitsdef.}
+% \changes{v1.3}{2010/07/08}{Removed xcolor. Include hyperref to avoid
+% problems for users with List of Appendices. Fixed \\cleardoublepage
+% for two-sided mode to insert empty page. Fixed draft mode to be
+% one-sided. }
+% \changes{v1.31}{2010/08/08}{Fixed small issues.}
+% \changes{v1.32}{2010/09/09}{Added 'review' option for producing
+% near-final version for examiners.}
+% \changes{v1.33}{2010/09/14}{Added front matter to TOC}
+% \changes{v1.34}{2014/01/04}{Replaced \\AtBeginDocument with etoolbox
+% package and \\AfterEndPreamble. Thanks to A. Penniston.}
+% \changes{v1.35}{2014/04/23}{Removed dependence on
+% makeidx.sty. Replaced with equivalent commands. Moved \\addcontents
+% redefinition to avoid conflict with siunitx.sty. Thanks to
+% A. Penniston. }
+% \changes{v1.36}{2014/05/09}{Updated author declaration to satisfy
+% SGS 2012 requirements. Changed document type of 'project' to SGS
+% designation of 'MRP'. (Hey SGS. Having an unexplained initialism on the
+% title page is dumb. Spell it out!) Thanks to A. Penniston.}
+%
+% \GetFileInfo{ryethesis.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%
+% \title{The \textsf{ryethesis} class\thanks{This document
+% corresponds to \textsf{ryethesis}~\fileversion, dated \filedate.}}
+% \author{Jason V. Lassaline \\ \texttt{jvl@ryerson.ca}}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% This class provides a document formatted to the Ryerson University School of
+% Graduate Studies policy on Thesis Requirements, as published at the
+% \href{http://www.ryerson.ca/graduate/policies}{Ryerson SGS policy Web site}. This class includes formatting for dissertations and reports (e.g.\ MEng reports), handles the formatting of all required front and back matter, and defines a number of commands for specifying content. Page numbering as per Ryerson SGS requirements is handled automatically as is the ordering of information. Some content (e.g.\ author declaration) are inserted automatically. Other commands (e.g.\ |\dedication|) are provided to define optional information. The intent of this class is to allow Ryerson students to focus on the content of the thesis or dissertation and have \LaTeX{} handle the minutia of formatting to SGS requirements. If you are aware of any deficiencies or errors, please contact the author or submit your own patches.
+%
+% This class file is largely built upon the existing |book| class and
+% thus inherits many options (e.g. |oneside|, |twoside|) from this class.
+% There are some specifications in Ryerson's thesis formatting regulations that differ from typical \LaTeX{} formatting (e.g.\ Appendices appear in a separate List of Appendices instead of within the Table of Contents). To better control the order in which content appears, the user should make use of the commands described in Section~\ref{sec::usage} to specify content (e.g.\ |\abstract| and |\appendix| commands). This deviates somewhat from typical \LaTeX{} usage where the author specifies front, main and back matter manually in the order in which they wish the material to appear.
+
+% \section{Usage}\label{sec::usage}
+%
+% Several macros are available for defining the various content within the thesis, dissertation or report. Please refer to the included sample, ryesample.tex, for additional examples of usage. In writing the thesis you should focus on inserting the main matter of the document within the |document| environment. Front and back matter content, such as the abstract and appendices should be defined using the respective commands listed below. Most of the following macros should be called in the preamble of the document (i.e.\ before the |\begin{document}| environment), with exceptions noted below.
+%
+% \DescribeMacro{\title}
+% This macro is used to define the title of the work, as in the base \LaTeX{}
+% classes. This title will appear on the title page and abstract page. \index{title|usage}
+% Capitalize your title as normal. The title on the title page will be
+% typeset using small caps.
+% \begin{flushleft}|\title| \marg{Your Document Title}\end{flushleft}
+%
+% \DescribeMacro{\author}
+% Your full name as it will appear on the title and abstract page. The usage is the same as with the |book| and other classes.
+% \begin{flushleft}|\author| \marg{Your Name}\end{flushleft}
+%
+% \DescribeMacro{\degreeName}
+% The full name of your degree (e.g.\ Doctor of Philosophy, Masters of Applied Science). Do not use abbreviations.
+% \begin{flushleft}|\degreeName| \marg{Full Degree Name}\end{flushleft}
+%
+% \DescribeMacro{\degreeYear}
+% The year that the degree will be awarded, typically the year of convocation.
+% \begin{flushleft}|\degreeYear| \marg{Year of Convocation}\end{flushleft}
+%
+% \DescribeMacro{\program}
+% The name of the graduate program (e.g.\ Aerospace Engineering).
+% \begin{flushleft}|\program| \marg{Program Name}\end{flushleft}
+%
+% \DescribeMacro{\prevDegreeA}
+% \DescribeMacro{\prevDegreeB}
+% \DescribeMacro{\prevDegreeC}
+% \DescribeMacro{\prevDegreeD}
+% The full name, location and year of any previous completed degrees, starting with the most recent (|\prevDegreeA|) through to the oldest (|\prevDegreeD|). Currently only a maximum of four previous degrees are implemented. The arguments to each |\prevDegree?| command is the same.
+% \begin{flushleft}|\prevDegreeA|\marg{Full Degree Name}\marg{University}\marg{Year of Degree}\end{flushleft}
+%
+% \DescribeMacro{\partnerUniversity}
+% The name of any partner University or school affiliated with the granting of this degree. As Ryerson has a full-fledged graduate program this command is optional and likely rarely used.
+% \begin{flushleft}|\partnerUniversity|\marg{University Name}\end{flushleft}
+%
+% \DescribeMacro{\abstract}
+% This macro defines the content of the abstract which should abide by SGS policy. Do not use equations and avoid symbols if possible. The header of the abstract will be formatted automatically using the content defined by the previous commands. The current Ryerson word limit on abstracts is 350 words for a PhD thesis, 150 words otherwise. If no abstract is defined a message regarding ``Abstract goes here'' will appear within your document. An abstract is mandatory for the final version of your thesis.
+% \begin{flushleft}|\abstract|\marg{The summary of your document, abiding by the word limit rules}\end{flushleft}
+%
+% \DescribeMacro{\acknowledgements}
+% \DescribeMacro{\dedication}
+% The acknowledgements and dedication sections are optional, but can be defined using these commands.
+% \begin{flushleft}|\acknowledgements|\marg{Any person(s) whose work or help you wish to acknowledge}\end{flushleft}
+% \begin{flushleft}|\dedication|\marg{Anyone to whom you wish to dedicate this work}\end{flushleft}
+%
+% \DescribeMacro{\addtoreferences}
+% As this class tightly controls the order of appearance of content within the document, it is necessary to provide a command for specifying \BibTeX{} input files. For each .bib file you wish to use, use a |\addtoreferences| command before the end of the |document| environment. Do not use the |\bibliography| command directly within the document. You do not need to specify the .bib extension to the filename. You should also use the |\bibliographystyle| command in your preamble to define the formatting style of your reference list. You'll need to process your document source with \BibTeX{} as normal.
+% \begin{flushleft}|\addreferences|\marg{.bib file name}\end{flushleft}
+%
+% \DescribeMacro{\usebibliography}
+% \DescribeMacro{\usereferences}
+% \DescribeMacro{\useendnotes}
+% The default header for the list of references is ``References''. Some document styles prefer the header read ``Bibliography'' or ``End Notes''. Use the commands |\usereferences|, |\usebibliography|, or |\useendnotes| anywhere before the end of the |document| environment.
+% \begin{flushleft}|\usebibliography|\\|\usereferencs|\\|\useendnotes|\end{flushleft}
+%
+% \DescribeMacro{\appendix}
+% The |book| class |\appendix| command has been redefined to take an argument to specify the appendices. Use the |\chapter|, |\section|, etc commands as normal within the argument to |\appendix| as normal to create each appendix and sub-sections. You can call this command in the preamble or anywhere before closing the document with the |\end{document}|.
+% \begin{flushleft}|\appendix|\marg{All sectioned content for the appendix.}\end{flushleft}
+%
+% \section{Class Options}
+% There are a number of class options defined in addtion to the default |book| class options. The default option |10pt| is applied but you can override this option using the |11pt| or |12pt| command, which is acceptable according to the current SGS policy. Most options appear in pairs which turn on or off various features. Most are complemented by a corresponding macro which can be used in the document preamble. These options and macros are described below, grouped by function. Options are indicated in the margin as default and opposite pairs as \textbf{\textit{default}}\slash\textit{option}.
+%
+% \DescribeOption{final}{draft}
+% Switch between a final and draft versions of the document. Draft versions do not include some content (e.g.\ declaration) and figures, if using the |graphics| package, will likely be marked using placeholders. The |draft| option will enable the |oneside| option, while the |final| option will enable the |twoside| option. Override this if you wish.
+%
+% \DescribeToggle{lof}{nolof}{\includelistoffigures}{\nolistoffigures}
+% Include a List of Figures. This list is generated by the use of |figure| floats as normally used in \LaTeX{}.
+%
+% \vspace{\baselineskip} \DescribeToggle{nolop}{lop}{\includelistofplates}{\nolistofplates}
+% The use of plates (as opposed to figures or illustrations) is optional. If a List of Plates is requested, a new float environment |plate| is defined. Behaviour is similar to another float environment.
+%
+% \vspace{\baselineskip}
+% \DescribeToggle{noloi}{loi}{\includelistofillustrations}{\nolistofillustrations}
+% The SGS formatting requirements specify the option of a List of Illustrations, although a List of Figures will likely suffice. A new |illustration| float environment is declared if this option is enabled.
+%
+% \vspace{\baselineskip}
+% \DescribeToggle{lot}{nolot}{\includelistoftables}{\nolistoftables}
+% A List of Tables is generated based upon the use of the |table| environment. As tables are commonly used in theses, this option is enabled by default.
+%
+% \vspace{\baselineskip}
+% \DescribeToggle{los}{nolos}{\includenomenclature}{\nonomenclature}
+% A List of Symbols is generated using the |nomenclature| package. As the SGS policy makes no reference to requirements for a nomenclature list, this list is inserted as the last item in the front matter. Nomenclatures are commonly used in math, science, and engineering theses. See the |nomenclature| package for available commands, but note that there is no need to issue the |\printnomenclature| command as it is handled automatically. You will need to do additional processing using the |makeindex| command.
+%
+% \DescribeToggle{loa}{noloa}{\includelistofappendices}{\nolistofappendices}
+% Typically, most documents which include an appendix list the appendices within the Table of Contents. SGS formatting policy indicates a separate List of Appendices. This switch is enabled by default, and any |\chapter| or lower sectioning will appear in a separate List of Appendices. You must use the |\appendix| command for the appendices to be numbered and inserted correctly. No List of Appendices will appear if you do not use the |\appendix| command.
+%
+% \DescribeToggle{glossary}{noglossary}{\includeglossary}{\noglossary}
+% Glossaries are supported using the |glossaries| package but are
+% optional. You will need to do additional processing using the
+% |makeglossaries| command to generate the glossary content. See the
+% |glossaries| package for more details. Include glossary commands for
+% identifying glossary items but do not issue the |\printglossary|
+% command as this is handled automatically if glossaries are
+% enabled. Acronyms can be defined in the glossary using the
+% |\newacronym| command and will be listed separately within the
+% glossary
+%
+% \vspace{\baselineskip}\DescribeToggle{index}{noindex}{\includeindex}{\noindex}
+% An optional index is supported using the |makeindex| command in the normal fashion. Indicate index items using the |\index| command but do not issue the |\printindex| command as this is handled automatically if indices enabled.
+%
+% \StopEventually{\PrintChanges\PrintIndex}
+%
+% \section{Implementation}
+% \textit{This information is provided to document the source code of this class definition. It can be safely ignored by the casual user.}
+%
+% This class is derived from the |book| class, with a number of commands
+% used to define the various sections of the document. The
+% class is responsible for inserting the content in the correct order according to SGS policy. Thus the focus of this class is to provide a set of commands for defining the content of the sections, rather than provide environments which delimit the sections and expecting the user to use them in the correct order.
+%
+% The class definition begins with the following package requirements.
+%
+% \begin{macrocode}
+% A minimal set of packages as required by the class
+\RequirePackage{ifthen}
+\RequirePackage{fancyhdr}
+\RequirePackage{setspace}
+% If using pdfpages, note that it does not appear to play
+% well with vmargin and XeTeX (inserted pdfs are not
+% anchored in the correct location).
+\RequirePackage{vmargin}
+% \end{macrocode}
+%
+% The class defines a number of options for enabling and disabling certain features. Note that SGS policy requires a separate List of Appendices instead of including appendices within the Table of Contents. No requirement for nomenclature is specified, thus a List of Symbols is inserted after all other lists.
+%
+% \begin{macrocode}
+% The following commands are based upon SGS policy effective Sept. 2009
+% Class options:
+% Font size must 10 to 12 pt. Default will be 10pt, aka '10pt' option
+% Alternate options: '11pt','12pt'
+%
+% Papersize must be US letter size (8.5"x11"), ie always 'letterpaper' option
+%
+% Booleans for option switches, with default states below.
+% These switches are modifiable by options to the class
+% and by toggle commands
+%
+\newboolean{@ryedraft} \setboolean{@ryedraft}{false} % not draft == final
+\newboolean{@ryelistoftables} \setboolean{@ryelistoftables}{true}
+%
+% The distinction between plates, illustrations and figures is subtle.
+% SGS policy indicates separate lists for each. Only LoF is enabled by default.
+%
+\newboolean{@ryelistofplates} \setboolean{@ryelistofplates}{false}
+\newboolean{@ryelistoffigures} \setboolean{@ryelistoffigures}{true}
+\newboolean{@ryelistofillustrations} \setboolean{@ryelistofillustrations}{false}
+%
+% Ryerson SGS policy specifies that appendices should be listed
+% in a separate list, and not within the ToC.
+%
+\newboolean{@ryelistofappendices} \setboolean{@ryelistofappendices}{true}
+% As the List of Appendices overrides the |\addtocontents| command,
+% hyperef is included by this class to avoid broken links when
+% including the table of contents or list of appendices.
+\newboolean{@ryehyperref} \setboolean{@ryehyperref}{true}
+%
+% Ryerson SGS policy does not specify anything about a list of
+% symbols or nomenclature, however in engineering, math, and
+% science, this is a common front matter feature. A List of Symbols
+% is inserted after all the previous lists and toc.
+%
+\newboolean{@ryenomenclature} \setboolean{@ryenomenclature}{false}
+% Glossaries and indices require extra processing. These are disabled by default as they are likely uncommon in a thesis or dissertation.
+\newboolean{@ryeglossary} \setboolean{@ryeglossary}{false}
+\newboolean{@ryeindex} \setboolean{@ryeindex}{false}
+%
+% This class is based upon the book class
+\DeclareOption*{%
+ \PassOptionsToClass{\CurrentOption}{book}
+}
+
+% Class options to control what appears in the document
+
+% Draft is equivalent to the book class sense of draft (figures
+% replaced with placeholders
+\DeclareOption{draft}{
+ \typeout{Ryerson-Thesis Class Option: `draft'}
+ \ExecuteOptions{10pt,oneside}
+ \PassOptionsToClass{draft,oneside}{book}
+ \setboolean{@ryedraft}{true}
+}
+
+% Review option is for producing a single-sided review copy for
+% examiners.
+\DeclareOption{review}{
+ \typeout{Ryerson-Thesis Class Option: `review'}
+ \ExecuteOptions{10pt,oneside}
+ \PassOptionsToClass{final,oneside}{book}
+ \setboolean{@ryedraft}{false}
+}
+
+% Final is the opposite of draft. This is the default mode.
+\DeclareOption{final}{
+ \typeout{Ryerson-Thesis Class Option: `final'}
+ \ExecuteOptions{10pt,twoside}
+ \PassOptionsToClass{final,twoside}{book}
+ \setboolean{@ryedraft}{false}
+}
+
+% Include a list of figures (on by default).
+\DeclareOption{lof}{
+ \typeout{Ryerson-Thesis Class Option: `lof' Enabling List of Figures}
+ \setboolean{@ryelistoffigures}{true}
+}
+
+% Do not include a list of figures
+\DeclareOption{nolof}{
+ \typeout{Ryerson-Thesis Class Option: `nolof' Disabling List of Figures}
+ \setboolean{@ryelistoffigures}{false}
+}
+
+% Include a list of plates
+\DeclareOption{lop}{
+ \typeout{Ryerson-Thesis Class Option: `lop' Enabling List of Plates}
+ \setboolean{@ryelistofplates}{true}
+}
+
+% Do not include a list of plates
+\DeclareOption{nolop}{
+ \typeout{Ryerson-Thesis Class Option: `nolop' Disabling List of Plates}
+ \setboolean{@ryelistofplates}{false}
+}
+
+% Include a list of illustrations
+\DeclareOption{loi}{
+ \typeout{Ryerson-Thesis Class Option: `loi' Enabling List of Illustrations}
+ \setboolean{@ryelistofillustrations}{true}
+}
+
+% Do not include a list of illustrations
+\DeclareOption{noloi}{
+ \typeout{Ryerson-Thesis Class Option: `noloi' Disabling List of Illustrations}
+ \setboolean{@ryelistofillustrations}{false}
+}
+
+% Include a list of tables (on by default)
+\DeclareOption{lot}{
+ \typeout{Ryerson-Thesis Class Option: `lot' Enabling List of Tables}
+ \setboolean{@ryelistoftables}{true}
+}
+
+% Do not include a list of tables.
+\DeclareOption{nolot}{
+ \typeout{Ryerson-Thesis Class Option: `nolot' Disabling List of Tables}
+ \setboolean{@ryelistoftables}{false}
+}
+
+% Include a list of appendices (on by default)
+\DeclareOption{loa}{
+ \typeout{Ryerson-Thesis Class Option: `loa' Enabling List of Appendices}
+ \setboolean{@ryelistofappendices}{true}
+}
+
+% Disable the list of appendices. Appendices will appear in the ToC as is normal for the book class.
+\DeclareOption{noloa}{
+ \typeout{Ryerson-Thesis Class Option: `noloa' Disabling List of Appendices}
+ \setboolean{@ryelistofappendices}{false}
+}
+
+% Do not include hyperref
+\DeclareOption{nohyperref}{
+ \typeout{Ryerson-Thesis Class Option: `nohyperref' Do not include hyperref}
+ \setboolean{@ryehyperref}{false}
+}
+
+
+% Include a list of symbols (i.e. a nomenclature). Requires additional processing of the document.
+\DeclareOption{los}{
+ \typeout{Ryerson-Thesis Class Option: `los' Enabling Nomenclature}
+ \typeout{*********************************************************************}
+ \typeout{}
+ \typeout{ Use: makeindex filename.nlo -s nomencl.ist -o filename.nls }
+ \typeout{ where filename is the root file name of the TeX source file.}
+ \typeout{}
+ \typeout{*********************************************************************}
+ \setboolean{@ryenomenclature}{true}
+}
+
+% Disable the list of symbols.
+\DeclareOption{nolos}{
+ \typeout{Ryerson-Thesis Class Option: `nolos' Disabling Nomenclature}
+ \setboolean{@ryenomenclature}{false}
+}
+
+% Enable the glossary. Requires additional processing.
+\DeclareOption{glossary}{
+ \typeout{Ryerson-Thesis Class Option: `glossary' Enabling Glossary}
+ \typeout{*********************************************************************}
+ \typeout{}
+ \typeout{ Use: makeglossaries filename }
+ \typeout{ where filename is the root file name of the TeX source file.}
+ \typeout{}
+ \typeout{*********************************************************************}
+ \setboolean{@ryeglossary}{true}
+}
+
+% Do not include a glossary (the default).
+\DeclareOption{noglossary}{
+ \typeout{Ryerson-Thesis Class Option: `noglossary' Disabling Glossary}
+ \setboolean{@ryeglossary}{false}
+}
+
+% Include an index. Requires additional processing
+\DeclareOption{index}{
+ \typeout{Ryerson-Thesis Class Option: `index' Enabling Index}
+ \typeout{*********************************************************************}
+ \typeout{}
+ \typeout{ Use: makeindex filename }
+ \typeout{ where filename is the root file name of the TeX source file.}
+ \typeout{}
+ \typeout{*********************************************************************}
+ \setboolean{@ryeindex}{true}
+}
+
+% Do not include an index (the default).
+\DeclareOption{noindex}{
+ \typeout{Ryerson-Thesis Class Option: `noindex' Disabling Index}
+ \setboolean{@ryeindex}{false}
+}
+
+% Execute options, including specifying the required US letter paper size and default 10pt font.
+\ExecuteOptions{letterpaper,10pt}
+\ProcessOptions\relax
+
+% Load the base book document class.
+\LoadClass{book}
+% \end{macrocode}
+%
+% Page size and margin as specified in the SGS policy, using the |vmargin| package.
+%
+% \begin{macrocode}
+
+% Always use 8.5"x11" paper.
+\setpapersize{USletter}
+% Set left, top, right, bottom margins
+% An extra 0.25in added to left margin (right margin on even pages) to allow for binding.
+\setmargrb{1.25in}{1in}{1in}{1in}
+% \end{macrocode}
+
+% The book class commands |\frontmatter|, |\mainmatter|, and |\backmatter| are redefined, based upon SGS policy effective Sept.\ 2009. Each use the following page styles:
+% \begin{description}
+% \item \textbf{Front matter} roman page numbering, plain page style (page number only)
+% \item \textbf{Main matter} arabic page numbering, fancy headers with alternating chapter and section
+% \item \textbf{Back matter} no format specified so keeping same style as main matter
+% \end{description}
+
+% \begin{macro}{\cleardoublepage}
+% Create a new page, set page style to empty (no footer or header), then issue a clear page if in |twoside| mode. Used before every ToC, list, or start of new chapter. This results in part (e.g.\ Table of Contents) starting on the right hand side (odd page number) in |twoside| mode.
+% \begin{macrocode}
+% based upon clearemptydoublepage from page 92 of
+% The LaTeX Companion, 1993.
+\renewcommand{\cleardoublepage}{\newpage{\pagestyle{empty}%
+\clearpage\if@twoside \ifodd\c@page\else%
+\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}}
+% An internal clearpage command
+\newcommand{\ryethesis@clearpage}
+{\if@openright\cleardoublepage\else\clearpage\fi}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\frontmatter}
+% Inserts all front matter content. This function is called by the class at the beginning of the document and does not need to be called by the user.
+% \begin{macrocode}
+\newif\if@ryethesismatchtoc \@ryethesismatchtocfalse
+\renewcommand\frontmatter{%
+ \@mainmatterfalse
+ \@ryethesismatchtocfalse
+ \pagenumbering{roman}
+ \pagestyle{plain}
+ \maketitle
+ \ryethesis@insertdeclaration
+ \ryethesis@insertabstract
+ \ryethesis@insertacknowledgements
+ \ryethesis@insertdedication
+ \ryethesis@inserttoc
+ \ryethesis@insertlot
+ \ryethesis@insertlop
+ \ryethesis@insertlof
+ \ryethesis@insertloi
+ \ryethesis@insertloa
+ \ryethesis@insertnom
+ \ryethesis@clearpage
+ \pagenumbering{arabic}
+ \pagestyle{fancy}
+ % If the acronym feature is used with the glossary of terms, \gls
+ % commands for acronyms will be expanded on first use if used in the
+ % front matter (e.g. in the abstract). Reset this usage so that the
+ % first use of a \gls acronym is expanded in the main matter as well.
+ \ifthenelse{\boolean{@ryeglossary}}{\glsresetall}{}
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\mainmatter}
+% Sets up page style of the main matter (i.e. the body) of the document. This function is called by the class after |\frontmatter| and does not need to be called by the end user.
+% \begin{macrocode}
+\renewcommand\mainmatter{%
+ \@mainmattertrue
+ \pagenumbering{arabic}
+ \pagestyle{fancy}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\backmatter}
+% Insert the back matter, beginning with the appendices, if any. This function is called by the class at the end of the document and does not need to be called by the end user. This means that the appendices and bibliography must be defined in a similar way as the front matter content is defined.
+% \begin{macrocode}
+\renewcommand\backmatter{%
+% Redirect toc entries to toa if a List of Appendices is used
+ \ifthenelse{\boolean{@ryelistofappendices}}{\@ryethesismatchtoctrue}{\@ryethesismatchtocfalse}
+ \ryethesis@insertappendix
+% Restore toc entries back to toc
+ \@ryethesismatchtocfalse
+ \ryethesis@insertreferences
+ \ryethesis@insertglossary
+ \ryethesis@insertindex
+ \@mainmatterfalse
+}
+% \end{macrocode}
+% \end{macro}
+% The |fancyhdr| package is used to define the |fancy| page style for main and back matter.
+% \begin{macrocode}
+\fancyhead{} % Clear all header fields
+\fancyhead[LE,RO]{\slshape \rightmark}
+\fancyhead[LO,RE]{\slshape \leftmark}
+\fancyfoot{} % Clear all footer fields
+\fancyfoot[C]{\thepage}
+% \end{macrocode}
+% Global variables are defined to hold a variety of content. These variables are used by the various |\ryethesis@insert| commands that appear below as well as the redefined |\titlepage| command.
+% \begin{macrocode}
+
+% Variables for storing degree, discipline, etc. Mostly related to the title page
+% Some values are taken from those defined by the book class, namely \@title, \@author
+
+% Initial values (most are blank)
+\global\def\ryethesis@documentType{thesis} % Alternate forms include 'dissertation' or 'project'
+\global\def\ryethesis@degree{}
+\global\def\ryethesis@prevDegreeA{}
+\global\def\ryethesis@prevDegreeB{}
+\global\def\ryethesis@prevDegreeC{}
+\global\def\ryethesis@prevDegreeD{}
+\global\def\ryethesis@prevLocationA{}
+\global\def\ryethesis@prevLocationB{}
+\global\def\ryethesis@prevLocationC{}
+\global\def\ryethesis@prevLocationD{}
+\global\def\ryethesis@prevYearA{}
+\global\def\ryethesis@prevYearB{}
+\global\def\ryethesis@prevYearC{}
+\global\def\ryethesis@prevYearD{}
+\global\def\ryethesis@program{}
+\global\def\ryethesis@degreeyear{}
+\global\def\ryethesis@partnerUniv{}
+\global\def\ryethesis@theabstract{}
+\global\def\ryethesis@theacknowledgements{}
+\global\def\ryethesis@thededication{}
+\global\def\ryethesis@listofbibfiles{}
+\global\def\ryethesis@theappendices{}
+% \end{macrocode}
+
+% The following commands are used to define the above variable content.
+
+% \begin{macro}{\title}
+% Override the default behaviour of |\title|
+% \begin{macrocode}
+\def\title#1{\gdef\@title{#1}\if@ryehyperref\hypersetup{pdftitle={#1}}\fi}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\author}
+% Override the default behaviour of |\author|
+% \begin{macrocode}
+\def\author#1{\gdef\@author{#1}\if@ryehyperref\hypersetup{pdfauthor={#1}}\fi}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\documentype}
+% Specify the document type (e.g. thesis, dissertation, or project. Users may use this command to override the currently defined options.
+% \begin{macrocode}
+\newcommand{\documenttype}[1]{\ifx\empty#1\else\gdef\ryethesis@documentType{#1}\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\thesis}
+% Use the ``thesis'' document type. This affects the content of the title page. This command may have more features at a later time.
+% \begin{macrocode}
+\newcommand{\thesis}{\documenttype{thesis}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dissertation}
+% Use the ``dissertation'' document type. This affects the content of the title page. This command may have more features at a later time.
+% \begin{macrocode}
+\newcommand{\dissertation}{\documenttype{dissertation}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\MRP}
+% Use the ``project'' document type. This affects the content of the title page. This command may have more features at a later time.
+% \begin{macrocode}
+\newcommand{\project}{\documenttype{MRP}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{degree}
+% Specify the name of the degree (e.g. ``Doctor of Philosophy'' or ``Masters of Applied Science''). This affects the content of the title and abstract page.
+% \begin{macrocode}
+% Was \degree but changed to the more specific \degreeName to avoid
+% conflict with other packages
+\newcommand{\degreeName}[1]{\gdef\ryethesis@degree{#1}\if@ryehyperref\hypersetup{pdfsubject={#1}}\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\degreeYear}
+% The official year of the degree. This affects the content of the title and abstract page.
+% \begin{macrocode}
+\newcommand{\degreeYear}[1]{\gdef\ryethesis@degreeYear{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\program}
+% The program or department which is awarding the degree. This affects the content of the title and abstract page.
+% \begin{macrocode}
+\newcommand{\program}[1]{\gdef\ryethesis@program{#1}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\prevDegreeA}
+% \begin{macro}{\prevDegreeB}
+% \begin{macro}{\prevDegreeC}
+% \begin{macro}{\prevDegreeD}
+% Up to four previous degrees can be specified by |\prevDegreeA| through |\prevDegreeD|, typically used with the most recent degree as degree A. A complete degree definition is the name, location, and year. This affects the title and abstract pages.
+% \begin{macrocode}
+\newcommand{\prevDegreeA}[3]{%
+\gdef\ryethesis@prevDegreeA{#1}\gdef\ryethesis@prevLocationA{#2}\gdef\ryethesis@prevYearA{#3}}
+\newcommand{\prevDegreeB}[3]{%
+\gdef\ryethesis@prevDegreeB{#1}\gdef\ryethesis@prevLocationB{#2}\gdef\ryethesis@prevYearB{#3}}
+\newcommand{\prevDegreeC}[3]{%
+\gdef\ryethesis@prevDegreeC{#1}\gdef\ryethesis@prevLocationC{#2}\gdef\ryethesis@prevYearC{#3}}
+\newcommand{\prevDegreeD}[3]{%
+\gdef\ryethesis@prevDegreeD{#1}\gdef\ryethesis@prevLocationD{#2}\gdef\ryethesis@prevYearD{#3}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\partnerUniversity}
+% Specify the partner university awarding the degree, if any. This affects the title and abstract pages.
+% \begin{macrocode}
+\newcommand{\partnerUniversity}[1]{\gdef\ryethesis@partnerUniv{#1}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\maketitle}
+% A redefinition of the |\maketitle| command, structured according to SGS policy. Some fields, if empty are ignored.
+% \begin{macrocode}
+\renewcommand{\maketitle}
+{\begin{titlepage}
+ %% Set the line spacing to 1 for the title page.
+ \begin{spacing}{2}
+ \begin{large}
+ \begin{center}
+ \vfill
+ {\LARGE\textsc{\@title}}\\
+ \vfill%\vspace{2\baselineskip}
+ by \\
+ \vfill%\vspace{\baselineskip}
+ {\@author}\\
+ {\ifx\empty\ryethesis@prevDegreeA\else{\ryethesis@prevDegreeA, \ryethesis@prevLocationA, \ryethesis@prevYearA}\\\fi}
+ {\ifx\empty\ryethesis@prevDegreeB\else{\ryethesis@prevDegreeB, \ryethesis@prevLocationB, \ryethesis@prevYearB}\\\fi}
+ {\ifx\empty\ryethesis@prevDegreeC\else{\ryethesis@prevDegreeC, \ryethesis@prevLocationC, \ryethesis@prevYearC}\\\fi}
+ {\ifx\empty\ryethesis@prevDegreeD\else{\ryethesis@prevDegreeD, \ryethesis@prevLocationD, \ryethesis@prevYearD}\\\fi}
+ \vfill%\vspace{3\baselineskip}
+ {A \ryethesis@documentType}\\
+ {presented to Ryerson University}\\
+ {\ifx\empty\ryethesis@partnerUniv\else{and \ryethesis@partnerUniv}\\\fi}
+ \vspace{\baselineskip}
+ {in partial fulfillment of the}\\
+ {requirements for the degree of}\\
+ {\ryethesis@degree}\\
+ {in the Program of}\\
+ {\ryethesis@program}\\
+ \vfill
+ {Toronto, Ontario, Canada, \ryethesis@degreeYear}\\
+ {\copyright\@author~\ryethesis@degreeYear}\\
+ \end{center}
+ \end{large}
+ \end{spacing}
+ \end{titlepage}
+
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\declaration}
+% \begin{macro}{\ryethesis@insertdeclaration}
+% The |\declaration| is used to define the authors declaration of sole
+% authorship and Ryerson's right to reproduction and distribution of
+% the document. Normally this will be inserted automatically by the
+% |\ryethesis@insertdeclaration| command.
+% \begin{macrocode}
+\newcommand{\declaration}{%
+% Author declaration and release per SGS policy 2012
+ \begin{flushleft}
+ \textbf{AUTHOR'S DECLARATION FOR ELECTRONIC SUBMISSION OF A \MakeUppercase{\ryethesis@documentType{}}}\\
+ \vspace{\baselineskip}
+ I hereby declare that I am the sole author of this
+ \ryethesis@documentType{}. This is a true copy of the thesis,
+ including any required final revisions, as accepted by my
+ examiners.\\
+ \vspace{\baselineskip}
+ I authorize Ryerson University to lend this
+ \ryethesis@documentType{} to other institutions or individuals for
+ the purpose of scholarly research.\\
+ \vspace{\baselineskip}
+ I further authorize Ryerson University to reproduce this \ryethesis@documentType{} by photocopying or by other means, in total or in part, at the request of other institutions or individuals for the purpose of scholarly research.\\
+ \vspace{0.75in}
+ I understand that my dissertation may be made electronically available to the public.
+\end{flushleft}
+}
+% If not in draft mode, insert the declaration on an new page.
+\newcommand{\ryethesis@insertdeclaration}{%
+\ifthenelse{\boolean{@ryedraft}}
+{}
+{
+\ryethesis@clearpage\phantomsection\label{declaration}\addcontentsline{toc}{section}{\textit{\mdseries{}Declaration}}\declaration
+}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\abstract}
+% \begin{macro}{\ryethesis@insertabstract}
+% This code will insert a UMI/ProQuest compatible abstract, double spaced as required. The |\abstract| command is redefined to set the content of the abstract variable |\ryethesis@theabstract|.
+% \begin{macrocode}
+\newcommand{\abstract}[1]{\ifx\empty#1\else\gdef\ryethesis@theabstract{\begin{center}\section*{Abstract}\end{center}#1}\fi}
+\newcommand{\ryethesis@insertabstract}{%
+\ryethesis@clearpage
+\phantomsection\label{abstract}\addcontentsline{toc}{section}{\textit{\mdseries{}Abstract}}
+% A UMI/ProQuest compatible abstract
+\begin{spacing}{2}
+\begin{center}
+\normalsize
+\@title\\
+\ryethesis@degree{} \ryethesis@degreeYear\\
+\@author\\
+\ryethesis@program\\
+Ryerson University{\ifx\empty\ryethesis@partnerUniv\else{ and
+ \ryethesis@partnerUniv}\fi}\\
+\end{center}
+%\begin{minipage}{\textwidth}
+{\ifx\empty\ryethesis@theabstract{\begin{center}\textit{Abstract goes here!}\end{center}}\else\ryethesis@theabstract\fi}
+%\end{minipage}
+\end{spacing}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\acknowledgements}
+% \begin{macro}{\dedication}
+% \begin{macro}{\ryethesis@insertacknowledgements}
+% \begin{macro}{\ryethesis@insertdedication}
+% The acknowledgements and dedication pages are both optional, and defined by the respective commands |\acknowledgements| and |\dedication|. Insertion of new pages for each, if not empty, is handled by the |\ryethesis@insertacknowledgements| and |\ryethesis@insertdedication| commands. None of the |\ryethesis@insert*| commands are intended to be called by the end user.
+% \begin{macrocode}
+
+\newcommand{\acknowledgements}[1]{\ifx\empty#1\else\gdef\ryethesis@theacknowledgements{#1}\fi}
+
+\newcommand{\ryethesis@insertacknowledgements}{%
+\ifx\empty\ryethesis@theacknowledgements\else{
+\ryethesis@clearpage
+\phantomsection\label{acknowledgements}\addcontentsline{toc}{section}{\textit{\mdseries{}Acknowledgements}}
+\begin{center}
+\section*{Acknowledgements}
+\end{center}
+\ryethesis@theacknowledgements
+}\fi
+}
+
+\newcommand{\dedication}[1]{\ifx\empty#1\else\gdef\ryethesis@thededication{#1}\fi}
+
+\newcommand{\ryethesis@insertdedication}{%
+\ifx\empty\ryethesis@thededication\else{
+\ryethesis@clearpage
+\phantomsection\label{dedication}\addcontentsline{toc}{section}{\textit{\mdseries{}Dedication}}
+\begin{center}
+\section*{Dedication}
+\end{center}
+\ryethesis@thededication
+}\fi
+}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\includelistoftables}
+% \begin{macro}{\nolistoftables}
+% \begin{macro}{\includelistoffigures}
+% \begin{macro}{\nolistoffigures}
+% \begin{macro}{\includelistofplates}
+% \begin{macro}{\nolistofplates}
+% \begin{macro}{\includelistofillustrations}
+% \begin{macro}{\nolistofillustrations}
+% \begin{macro}{\includelistofappendices}
+% \begin{macro}{\nolistofappendices}
+% \begin{macro}{\includenomenclature}
+% \begin{macro}{\nonomenclature}
+% \begin{macro}{\includeindex}
+% \begin{macro}{\noindex}
+% \begin{macro}{\includeglossary}
+% \begin{macro}{\noglossary}
+% The following |\include*| and |\no*| commands are intended to be called from the document preamble and toggle the same class options
+% \begin{macrocode}
+\newcommand{\includelistoftables}{\setboolean{@ryelistoftables}{true}}
+\newcommand{\nolistoftables}{\setboolean{@ryelistoftables}{false}}
+\newcommand{\includelistoffigures}{\setboolean{@ryelistoffigures}{true}}
+\newcommand{\nolistoffigures}{\setboolean{@ryelistoffigures}{false}}
+\newcommand{\includelistofplates}{\setboolean{@ryelistofplates}{true}}
+\newcommand{\nolistofplates}{\setboolean{@ryelistofplates}{false}}
+\newcommand{\includelistofillustrations}{\setboolean{@ryelistofillustrations}{true}}
+\newcommand{\nolistofillustrations}{\setboolean{@ryelistofillustrations}{false}}
+\newcommand{\includelistofappendices}{\setboolean{@ryelistofappendices}{true}}
+\newcommand{\nolistofappendices}{\setboolean{@ryelistofappendices}{false}}
+\newcommand{\includenomenclature}{\setboolean{@ryenomenclature}{true}}
+\newcommand{\nonomenclature}{\setboolean{@ryenomenclature}{false}}
+\newcommand{\includeindex}{\setboolean{@ryeindex}{true}}
+\newcommand{\noindex}{\setboolean{@ryeindex}{false}}
+\newcommand{\includeglossary}{\setboolean{@ryeglossary}{true}}
+\newcommand{\noglossary}{\setboolean{@ryeglossary}{false}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+% A number of |\ryethesis@insert*| commands follow. Each command has a similar function, creating a new page with the necessary content (e.g. List of Figures, Table of Contents, etc). None of these commands are intended to be called by the end user.
+% \begin{macrocode}
+\newcommand{\ryethesis@inserttoc}{
+\ryethesis@clearpage
+\tableofcontents
+}
+
+\newcommand{\ryethesis@insertlot}{
+\ifthenelse{\boolean{@ryelistoftables}}{\ryethesis@clearpage\phantomsection\label{listoftab}\addcontentsline{toc}{section}{\textit{\mdseries{}List
+ of Tables}}\listoftables}{}
+}
+
+\ifthenelse{\boolean{@ryelistofplates}}
+{\RequirePackage{float}\newfloat{plate}{h}{lop}}{}
+
+\newcommand{\ryethesis@insertlop}{
+\ifthenelse{\boolean{@ryelistofplates}}{\ryethesis@clearpage\phantomsection\label{listofplates}\addcontentsline{toc}{section}{\textit{\mdseries{}List
+ of Plates}}\listof{plate}{List of Plates}}{}
+}
+
+\newcommand{\ryethesis@insertlof}{
+\ifthenelse{\boolean{@ryelistoftables}}{\ryethesis@clearpage\phantomsection\label{listoffig}\addcontentsline{toc}{section}{\textit{\mdseries{}List
+ of Figures}}\listoffigures}{}
+}
+
+\ifthenelse{\boolean{@ryelistofillustrations}}
+{\RequirePackage{float}\newfloat{illustration}{h}{loi}}{}
+
+\newcommand{\ryethesis@insertloi}{
+\ifthenelse{\boolean{@ryelistofillustrations}}{\ryethesis@clearpage\phantomsection\label{listofillustrations}\addcontentsline{toc}{section}{\textit{\mdseries{}List
+ of Illustrations}}\listof{illustration}{List of Illustrations}}{}
+}
+
+\ifthenelse{\boolean{@ryelistofappendices}}
+{
+\newcommand{\nohyphens}{\hyphenpenalty=10000\exhyphenpenalty=10000\relax}
+\newcommand{\listofappendices}{\chapter*{List of Appendices}\@starttoc{toa}}
+}
+{}
+
+\newcommand{\ryethesis@insertloa}{%
+\ifthenelse{\boolean{@ryelistofappendices}}{\ryethesis@clearpage\phantomsection\label{listofapp}\addcontentsline{toc}{section}
+ {\textit{\mdseries{}List of Appendices}}\listofappendices}{}
+}
+
+\renewcommand{\appendix}[1]{\ifx\empty#1\else\gdef\ryethesis@theappendices{#1}\fi}
+
+\newcommand{\ryethesis@insertappendix}{%
+% If a list of appendices is requested, redirect the toc entries into a different file
+\ifx\empty\ryethesis@theappendices\else{
+\ryethesis@clearpage
+\renewcommand{\chaptername}{Appendix}
+\setcounter{chapter}{0}
+\ryethesis@theappendices
+}\fi
+}
+
+% Insert hyperref package, if not disabled by class option
+\if@ryehyperref
+\RequirePackage[pageanchor,hyperindex]{hyperref}
+\RequirePackage{bookmark}
+\fi
+
+\ifthenelse{\boolean{@ryeglossary}}
+{\RequirePackage[acronym,toc]{glossaries}\makeglossaries%
+ %Glossaries prints a confusing warning
+ \global\let\warn@noprintglossary\relax
+}{}
+
+\ifthenelse{\boolean{@ryeindex}}
+{
+% In case underlying class does not define these parameters
+\providecommand*\see[2]{\emph{\seename} #1}
+\providecommand*\seealso[2]{\emph{\alsoname} #1}
+\providecommand\printindex{\@input@{\jobname.ind}}
+\providecommand\seename{see}
+\providecommand*\alsoname{see also}
+\makeindex
+\RequirePackage{multicol}
+\renewenvironment{theindex}
+ {\begin{multicols}{2}[\@makeschapterhead{\indexname}\addcontentsline{toc}{chapter}{\indexname}%
+ \@mkboth{\MakeUppercase\indexname}%
+ {\MakeUppercase\indexname}]%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \columnseprule \z@
+ \columnsep 35\p@
+ \let\item\@idxitem}
+ {\end{multicols}\clearpage}
+}
+{}
+
+\ifthenelse{\boolean{@ryenomenclature}}{%
+\RequirePackage{nomencl}
+\renewcommand{\nomname}{List of Symbols}
+\makenomenclature
+}{}
+
+\newcommand{\ryethesis@insertnom}{%
+\ifthenelse{\boolean{@ryenomenclature}}{\ryethesis@clearpage\printnomenclature}{}
+}
+
+\newcommand{\ryethesis@insertreferences}{%
+\ifx\emtpy\ryethesis@listofbibfiles
+\else
+ \ryethesis@clearpage\bibliography{\ryethesis@listofbibfiles}
+ \addcontentsline{toc}{chapter}{\bibname}
+\fi
+}
+
+\newcommand{\ryethesis@insertglossary}{%
+\ifthenelse{\boolean{@ryeglossary}}
+{\ryethesis@clearpage%
+\printglossaries%glossaries.sty prints a false warning.
+\global\let\warn@noprintglossary\relax%
+}
+{}
+}
+
+\newcommand{\ryethesis@insertindex}{%
+\ifthenelse{\boolean{@ryeindex}}
+{\ryethesis@clearpage%
+\printindex
+}
+{}
+}
+
+% \end{macrocode}
+
+% \begin{macro}{\addtoreferences}
+% As the position of bibliographic data is now more tightly controlled, it is necessary to provide the user with a command for specifying the bib input files. Each call to |\addtoreferences| will append another bib input file to the list of files to load. The user can specify the bibliography style in the document preamble as is normal.
+% \begin{macrocode}
+\newcommand{\addtoreferences}[1]{%
+\ifx\empty\ryethesis@listofbibfiles\edef\ryethesis@listofbibfiles{#1}\else\edef\ryethesis@listofbibfiles{#1,\ryethesis@listofbibfiles}\fi
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\usebibliography}
+% \begin{macro}{\usereferences}
+% \begin{macro}{\useendnotes}
+% These commands provide the user with an easy way of altering the heading of the bibliographic data.
+% \begin{macrocode}
+\newcommand{\usebibliography}{\renewcommand{\bibname}{Bibliography}}
+\newcommand{\usereferences}{\renewcommand{\bibname}{References}}
+\newcommand{\useendnotes}{\renewcommand{\bibname}{End Notes}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+% Final commands to issue at the end of the class. In the case of
+% draft mode, the line spacing is set to double spacing. In final
+% mode, a line spacing of 1.5 is used, as required by SGS. The
+% |\usereferences| command is used to label the bibliographic section
+% as ``References'' by default.
+% \begin{macrocode}
+
+\AtEndOfClass{
+\ifthenelse{\boolean{@ryedraft}}
+{% Draft mode uses double spacing
+\doublespacing}
+{% Final mode uses 1.5 spacing as specified in SGS policy Sept. 2009.
+\onehalfspacing}
+\usereferences
+
+
+}
+% \end{macrocode}
+% The |\AtBeginDocument| and |\AtEndDocument| are used to insert the
+% front, main, and back matter in the correct place for the user. This
+% tightly controls the order of appearance of each type of
+% content. Note that the |\addcontents| command is redefined here to
+% redirect List of Appendices entries into a separate file if so
+% desired.
+% \begin{macrocode}
+% Insert front matter & mainmatter settings before user's material
+% Fix for use of color package
+\RequirePackage{etoolbox}
+\AfterEndPreamble{
+
+%Adjust |\addtocontents| to switch from toc to toa file if using List
+%of Appendices. This is processed at the end of the class to avoid
+%conflicts with packages such as siunitx.
+
+\newcommand{\Saved@addtocontents}{}
+\let\Saved@addtocontents\addtocontents
+\def\addtocontents#1#2{%
+\if@ryethesismatchtoc%
+{\ifthenelse{\equal{#1}{toc}}%
+{\Saved@addtocontents{toa}{#2}}
+{\Saved@addtocontents{#1}{#2}}}
+\else
+{\Saved@addtocontents{#1}{#2}}
+\fi}
+
+\frontmatter\mainmatter
+}
+% Insert back matter at the end
+\AtEndDocument{\backmatter}
+% \end{macrocode}
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/ryethesis/ryethesis.ins b/macros/latex/contrib/ryethesis/ryethesis.ins
new file mode 100644
index 0000000000..a85cb7ca0f
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/ryethesis.ins
@@ -0,0 +1,55 @@
+%%
+%% Copyright (C) 2009 by J.V. Lassaline <jvl@ryerson.ca>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/ryethesis}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2009 by Jason V. Lassaline <jvl@ryerson.ca>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.2 of this license
+or (at your option) any later version. The latest version of this
+license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.2 or later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{ryethesis.cls}{\from{ryethesis.dtx}{class}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* ryethesis.cls *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file ryethesis.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/ryethesis/ryethesis.pdf b/macros/latex/contrib/ryethesis/ryethesis.pdf
new file mode 100644
index 0000000000..130ab2e470
--- /dev/null
+++ b/macros/latex/contrib/ryethesis/ryethesis.pdf
Binary files differ