summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ucalgmthesis
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/ucalgmthesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/ucalgmthesis')
-rw-r--r--macros/latex/contrib/ucalgmthesis/LICENSE21
-rw-r--r--macros/latex/contrib/ucalgmthesis/README.md201
-rw-r--r--macros/latex/contrib/ucalgmthesis/appendix.tex31
-rw-r--r--macros/latex/contrib/ucalgmthesis/backmatter.tex5
-rw-r--r--macros/latex/contrib/ucalgmthesis/chapter1.tex41
-rw-r--r--macros/latex/contrib/ucalgmthesis/chapter2.tex34
-rw-r--r--macros/latex/contrib/ucalgmthesis/frontmatter.tex77
-rw-r--r--macros/latex/contrib/ucalgmthesis/sample-thesis.bib21
-rw-r--r--macros/latex/contrib/ucalgmthesis/sample-thesis.pdfbin0 -> 117697 bytes
-rw-r--r--macros/latex/contrib/ucalgmthesis/sample-thesis.tex163
-rw-r--r--macros/latex/contrib/ucalgmthesis/titlepage.tex4
-rw-r--r--macros/latex/contrib/ucalgmthesis/ucalgmthesis.cls203
12 files changed, 801 insertions, 0 deletions
diff --git a/macros/latex/contrib/ucalgmthesis/LICENSE b/macros/latex/contrib/ucalgmthesis/LICENSE
new file mode 100644
index 0000000000..5d1e510788
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Richard Zach
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/ucalgmthesis/README.md b/macros/latex/contrib/ucalgmthesis/README.md
new file mode 100644
index 0000000000..918cd6e6ba
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/README.md
@@ -0,0 +1,201 @@
+ucalgmthesis
+============
+
+`ucalgmthesis.cls` is a LaTeX class file that produces documents
+according to the thesis guidelines of the [University of Calgary
+Faculty of Graduate
+Studies](http://www.grad.ucalgary.ca/current/thesis/guidelines). It
+uses the [`memoir`](https://ctan.org/pkg/memoir?lang=en) class, which
+provides very powerful and flexible mechanisms for book design and
+layout. All `memoir` commands for changing chapter and section
+headings, page layout, fancy foot- and endnotes, typesetting poems,
+etc., can be used. (Memoir is meant as a replacement for the standard
+LaTeX classes, so all standard LaTeX commands such as `\chapter`,
+`\section`, etc., still work.) Likewise, any of `memoir`'s class
+options can be passed as options to `ucalgmthesis`, in particular
+`12pt` to select 12 point type (11 point is the default).
+
+License
+-------
+
+The files in this directory are provided under the terms of the MIT
+License. `natbib-oup.bst` is provided under the terms of the LaTeX
+Project Public License.
+
+Usage
+-----
+
+Consult the file `sample-thesis.tex` for an example thesis setup
+with parts `\include`'d from separate files. Here's a minimal file:
+```
+\documentclass{ucalgmthesis}
+
+\author{...}
+\title{...}
+\prog{...}
+\degree{...}
+\thesisyear{...}
+\monthname{...}
+
+\begin{document}
+
+\frontmatter
+
+\makethesistitle
+
+\chapter{Abstract}
+
+...
+
+\tableofcontents
+
+\mainmatter
+
+...
+
+\backmatter
+
+....
+\end{document}
+```
+
+Commands
+--------
+
+The class provides a number of commands to facilitate the production
+of the thesis.
+
+- `\makethesistitle` to produce the title page
+
+- `\degree`, `\prog`, `\monthname`, `\thesisyear` are used to provide
+ the names of the degree and graduate program, and the month and year
+ of the thesis. (These are compatible with the legacy `ucalgthes1` class.)
+
+- `\dedication` produces a dedication centered on its own page
+
+- `\fullpagethesis` sets up the type block to have 1" margins on all
+ sides. `\manuscriptthesis` sets up the typeblock to have a line
+ length of about 72 characters and 25 lines per page. The package
+ options `fullpage` and `manuscript` use these at the appropriate
+ time, but you can use them after you set up your own fonts in the
+ preamble.
+
+Otherwise, all the class does is change `memoir`'s defaults to comply
+with FGS thesis guidelines. Specifically:
+
+- All page numbers appear in the same place (centered in footer).
+- All pages except title page are numbered.
+- Front matter is numbered in roman numerals, main matter in arabic.
+- Abstract, preface, acknowledgments, dedication are included in table
+ of contents.
+- The table of contents is called "Table of Contents".
+
+Class options
+-------------
+
+The class takes a number of options:
+
+- `singlespaced`, `onehalfspaced`, `doublespaced` sets up the line
+ spacing (`onehalfspaced` is the default).
+
+- `palatino`, `times`, `garamond`, `utopia`, `libertine` offer some nice
+ alternative typefaces (i.e., fonts) to the default Computer Modern.
+
+- `headers` produces running heads. Per the guidelines, must not be
+ the thesis title or author's name, and must be separated from the
+ main text by a line. The class uses the chapter number and title and
+ places it flush right in the header.
+
+- `fullpage` calls `\fullpagethesis`, so produces a thesis with 1"
+ margins all around. This produces very long lines and is not
+ recommended for review or submission, but if you have to pay by the
+ page for printing you may want to use it.
+
+- `manuscript` sets the type size to 12 points, double spaces the
+ text, and calls `\manuscriptthesis` to set the textblock to be about
+ 72 characters wide and 25 lines high. That makes a page longer than
+ a standard manuscript page (60 characters by 25 lines, or about 250
+ words), but produces reasonably readable lines and plenty of space
+ between lines and in the margins for remarks, corrections, and
+ annotations. Recommended for the version you submit for
+ examination. You might remove the option for the final version
+ submitted to the Vault.
+
+A sample thesis file is also provided. The various parts of the thesis
+are included from subsidiary files to enable generating PDFs of the
+title page and individual chapters separately.
+
+Switching from `ucalgthes1`
+---------------------------
+
+If you are already using the `ucalgthes1` class, you don't have to do
+much to switch to `ucalgmthesis`:
+
+- Change `ucalgthes1` to `ucalgmthesis` in the `\documentclass` command.
+
+- The thesis template provided with `ucalgthes1` then uses the
+ `geometry` package to set the margins to 1" on all sides. This
+ produces atrocious results and you should remove that line. If you
+ really want the same narrow margins, use the `fullpage` class
+ option, i.e.,
+ `\documentclass[12pt,doublespaced,fullpage]{ucalgmthesis}`. A
+ better option for reading and reviewing the thesis is the
+ `manuscript` class option (see above).
+
+- The template also loads the `mathptmx` package to set the typeface
+ to Times New Roman. Times is a good typeface for newspapers, but not
+ for dissertations or books. Pick a different one! But if you do want
+ Times, use the `times` class option instead and delete this
+ line. (The class option loads the newer
+ [`newtx`](https://ctan.org/pkg/newtx?lang=en) packages.)
+
+- Delete all the lines from the template that say `\pagenumbering`,
+ `\newpage`, `\clearpage`, `\phantomsection`, `\setcounter`,
+ `\begin{singlespace}`, `\end{singlespace}`.
+
+- Abstract and Acknowledgments just start with `\chapter{Abstract}`
+ and `\chapter{Acknowledgments}`.
+
+- Insert `\frontmatter` at the very beginning, `\mainmatter` before
+ your first real chapter, and `\endmatter` after the last real
+ chapter and before the bibliography, etc.
+
+Note that the `ucalgmthesis` class sets much wider margins even with
+the `manuscript` option than the `ucalgthes1` template. Lines are
+shorter than the excessively long lines resulting from just setting
+left and right margins to 1 inch. This will change the number of pages
+in the PDF and may result in some displayed formulas and tables not
+fitting into the type block anymore. So be sure to check the result
+for such problems.
+
+Troubleshooting and Known Issues
+--------------------------------
+
+- The font options may interact badly with other packages you
+ load. Try compiling without the font option to see if that's the
+ problem.
+
+- `times`, `palatino`, and `libertine` options load the `newtxmath` or
+ `newpxmath` packages. These have to be loaded after `amsthm`, so the
+ class loads `amsthm` before it sets up these fonts. If you don't
+ want that, leave out the font option, load the font in your main
+ document preamble, then call `\manuscriptthesis` or
+ `\fullpagethesis` to set the right page dimensions based on the new
+ font.
+
+- `garamond` and `utopia` use the `mathdesign` package, which has a buggy
+ `\hrulefill` command. The package tries to correct this.
+
+- The guidelines require that the official filed thesis is laid out
+ for one-sided printing (equal left and right margins). You may want
+ to print the thesis two-sided, however, e.g., to give a nice bound
+ copy to your supervisor or your mom. You can produce a version for
+ two-sided printing using the `twoside` class option of `memoir`. The
+ page layout will be altered to have spine and edge margins in the
+ golden ratio, and alternating on rectos and versos. This will
+ produce a nicer-looking page spread. However, both
+ `\makethesistitle` and `\mainmatter` clear to a recto (odd) page
+ even with the `openany` option, and so `twoside` will produce
+ additional blank pages in the front matter. The main text, however,
+ should have the same pagination as the "official" one-sided version,
+ as the size of the typeblock is the same. \ No newline at end of file
diff --git a/macros/latex/contrib/ucalgmthesis/appendix.tex b/macros/latex/contrib/ucalgmthesis/appendix.tex
new file mode 100644
index 0000000000..f5700956db
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/appendix.tex
@@ -0,0 +1,31 @@
+% Sample University of Calgary Thesis
+% This file contains the APPENDIX
+
+% If there is just one appendix, it must be called ``Appendix.'' For
+% multiple appendices, use \chapter and a descriptive title,
+% e.g., \chapter{Questionnaires}
+
+\chapter*{Appendix}\label{appendix}
+
+% \chapter* doesn't include it in the TOC, so we have to do that by
+% hand. If you have multiple chapters, use \chapter instead and
+% remove the following line.
+
+\addcontentsline{toc}{chapter}{Appendix}
+
+An appendix is a way to include important information that would
+otherwise clutter up your thesis. It should be included when there is
+additional relevant information that won't fit in the body of your
+thesis. Any Appendix must also be mentioned in the body of your thesis
+(e.g., ``For a full list of interview questions used, please see the
+\hyperref[appendix]{Appendix}''). If your thesis only has one appendix, it
+must be titled ``Appendix.'' If your thesis has more than one appendix,
+add alphabetized letters, starting with ``Appendix~A.'' The following
+are examples of things you might include in appendices:
+\begin{enumerate}
+ \item Copyright permissions with signatures removed
+ \item Additional details of methodology and/or data
+ \item Diagrams of equipment that you developed
+ \item Digital files and/or artwork digital models
+ \item Blank copies of questionnaires or surveys used in your research
+\end{enumerate}
diff --git a/macros/latex/contrib/ucalgmthesis/backmatter.tex b/macros/latex/contrib/ucalgmthesis/backmatter.tex
new file mode 100644
index 0000000000..624d3e9d8c
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/backmatter.tex
@@ -0,0 +1,5 @@
+
+\printpagenotes
+
+\bibliography{sample-thesis}
+
diff --git a/macros/latex/contrib/ucalgmthesis/chapter1.tex b/macros/latex/contrib/ucalgmthesis/chapter1.tex
new file mode 100644
index 0000000000..1abd289807
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/chapter1.tex
@@ -0,0 +1,41 @@
+% Sample University of Calgary Thesis
+% This file contains CHAPTER ONE
+
+\chapter{Introduction}
+
+\epigraph{Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit.}{Anonymous}
+
+The text above is an \emph{epigraph}. In this typeface, you can have
+text in \textbf{boldface}, \emph{italics}, \textbf{\emph{bold
+ italics}}, \textsl{slanted}, and \textsc{Small Caps}.
+
+\section{Literature Review}
+
+\blindtext\pagenote{\blindtext}
+
+\blindtext[2]
+
+\begin{defn}
+A group~$G$ is said to be \emph{abelian} (or \emph{commutative}) if
+for every $a, b \in G$, $a \cdot b = b \cdot a$.
+\end{defn}
+
+\blindtext[2]
+
+\section{Contributions of the Thesis}
+
+\blindtext[3]
+
+\begin{table}
+ \begin{center}
+ \begin{tabular}{c|c}
+ A & B \\
+ \hline
+ 1 & 2
+ \end{tabular}
+ \end{center}
+ \caption{Letters and numbers}
+\end{table}
+
+\blindtext[3]
diff --git a/macros/latex/contrib/ucalgmthesis/chapter2.tex b/macros/latex/contrib/ucalgmthesis/chapter2.tex
new file mode 100644
index 0000000000..615c1ca6ac
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/chapter2.tex
@@ -0,0 +1,34 @@
+% Sample University of Calgary Thesis
+% This file contains CHAPTER TWO
+
+\chapter{Important Results}
+
+\section{The first result}
+
+\begin{thm}[Residue Theorem]
+Let $f$ be analytic in the region $G$ except for the isolated
+singularities $a_1,a_2,\dots,a_m$. If $\gamma$ is a closed
+rectifiable curve in $G$ which does not pass through any of the
+points $a_k$ and if $\gamma\approx 0$ in $G$, then
+\[
+ \frac{1}{2\pi i}\int_\gamma\! f = \sum_{k=1}^m
+ n(\gamma;a_k)\mathop{\mathrm{Res}}(f;a_k)\,.
+\]
+\end{thm}
+
+\blindtext\footnote{\blindtext}
+
+\begin{figure}
+ \[ \circ \to \circ \]
+ \caption{Circles and arrows}
+\end{figure}
+
+\section{The second result}
+
+\subsection{The first half}
+
+\blindtext\pagenote{\blindtext}
+
+\subsection{The second half}
+
+\blindtext
diff --git a/macros/latex/contrib/ucalgmthesis/frontmatter.tex b/macros/latex/contrib/ucalgmthesis/frontmatter.tex
new file mode 100644
index 0000000000..6fe9381c6e
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/frontmatter.tex
@@ -0,0 +1,77 @@
+% Sample University of Calgary Thesis
+% This file contains the FRONT MATTER other thna the title page
+
+\chapter{Abstract}
+
+The abstract is a concise and accurate summary of the research
+contained in your thesis. It gives the reader a snapshot of your
+research by highlighting key points. It includes the problem, method of
+study, and general conclusion; relevant key words that will help
+people find your research. It must be no longer than 350 words (Note:
+hyphenated words or words separated by a slash are counted as two
+words). It must be double-spaced or one-half spaced, and not contain
+graphs, tables, or illustrations.
+
+\chapter{Preface}
+
+The preface gives a statement of where the information included in
+your thesis came from. It gives credit to the authors who informed
+your work. A manuscript-based thesis must include an explanation of
+which parts of your thesis were already published and details of the
+publication. For example:
+\begin{quote}
+Portions of the introductory text of Chapter~1 are used with
+permission from Smith et al. (2015) of which I am an author. Table~1.1
+is modified from Supplementary Table~3 in Smith et
+al. (2014). Chapter~2 of this thesis has been published as J.~Smith
+and J.~Doe, ``Title of Article''. Journal Name, vol.~1, issue~1.
+\end{quote}
+For a traditional thesis requiring ethics approval, include the name
+of the board that approved the research project, the title of the
+project, and the number of the approval certificate. For example:
+\begin{quote}
+This thesis is original, unpublished, independent work by the author,
+J. Doe. The experiments reported in Chapters 2--4 were covered by
+Ethics Certificate number 007, issued by the University of Calgary
+Conjoint Health Ethics Board for the project ``Project Title'' on
+December 15, 2016.
+\end{quote}
+For a traditional thesis with no ethics approval required, simply
+state something along the lines of:
+\begin{quote}
+This thesis is original, unpublished, independent work by the author,
+Jane M. Doe.
+\end{quote}
+
+\chapter{Acknowledgments}
+
+The acknowledgments are a place for you to thank/recognize academics
+or organizations that supported you (remember you cannot make changes
+once your thesis is submitted, so be thoughtful!) You should include
+this when you want to acknowledge people who may or may not be
+formally recognized in your thesis elsewhere. People usually
+mentioned in the acknowledgments include your supervisor and
+committee, grant support, helpful fellow students, lab mates, or
+family members.
+
+Since we're using \LaTeX{} and the \verb|memoir| package, we should
+thank Don Knuth, Leslie Lamport, and Peter Wilson.\footnote{These are
+the authors of \citet{Knuth1986,Lamport1986,Wilson2016}.}
+
+\dedication{To mom.}
+
+\tableofcontents
+
+% If you have no tables, delete the next line
+
+\listoftables
+
+% If you have no figures, delete the next line
+
+\listoffigures
+
+% Consult Ch 9 of the memoir class manual on how to set up other
+% content lists. Note that memoir does not automatically clear the
+% page for these. ucalgmthesis fixes this for the default table of
+% contents and lists of tables and figures, but not for anything you
+% define
diff --git a/macros/latex/contrib/ucalgmthesis/sample-thesis.bib b/macros/latex/contrib/ucalgmthesis/sample-thesis.bib
new file mode 100644
index 0000000000..9d3a8a6877
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/sample-thesis.bib
@@ -0,0 +1,21 @@
+@Book{Lamport1986,
+ author = {Leslie Lamport},
+ title = {LaTeX: A Document Preparation System},
+ publisher = {Addison-Wesley},
+ year = 1986,
+ address = {Reading, Mass.}}
+
+
+@Book{Knuth1986,
+ author = {Donald E. Knuth},
+ title = {The TeXbook},
+ publisher = {Addison-Wesley},
+ year = 1986,
+ address = {Boston}}
+
+@booklet{Wilson2016,
+ author = {Peter Wilson},
+ title = {The Memoir Class for Configurable Typesetting},
+ url = {https://ctan.org/pkg/memoir?lang=en},
+ year = 2016
+} \ No newline at end of file
diff --git a/macros/latex/contrib/ucalgmthesis/sample-thesis.pdf b/macros/latex/contrib/ucalgmthesis/sample-thesis.pdf
new file mode 100644
index 0000000000..79e876a302
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/sample-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/ucalgmthesis/sample-thesis.tex b/macros/latex/contrib/ucalgmthesis/sample-thesis.tex
new file mode 100644
index 0000000000..610fe03987
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/sample-thesis.tex
@@ -0,0 +1,163 @@
+% A Sample Thesis for the University of Calgary
+% =============================================
+
+% Load the UCalgary Memoir Thesis class. By default (without options),
+% this produces a 1-1/2 spaced thesis in 11 point font without running
+% heads. Use package options singlespaced or doublespaced for single
+% or double line spacing. The default font is LaTeX's Computer
+% Modern. Use package options times, palatino, libertine, garamond, or
+% utopia for other nice typefaces. (You may need to install the
+% relevant packages to get these to work.) Use package option headers
+% if you want running heads. Use option fullpage if you want the text
+% to occupy all allowable space (1 inch margins all around), or option
+% manuscript if you want a page layout suitable for reviewing and
+% proof reading. Option manuscript selects 12 pt type, doublespaced,
+% approx. 25 lines per page, with approx. 72 characters per line. You
+% may want to remove the option for the version you file in the Vault;
+% it looks nicer and is a bit more compact. You can also use any
+% options that the memoir class recognizes, such as 10pt for 10 point
+% font, 11pt for 11 point font, 12pt for 12 point type,
+% etc. Documentation of the memoir package can be found at
+% https://ctan.org/pkg/memoir?lang=en
+
+\documentclass[utopia,headers,manuscript]{ucalgmthesis}
+
+% Using LaTeX? Then you're probably using math, and so you want to use
+% the AMS math commands and define some theorem environments! But you
+% can take these out or use your own favorite theorem package.
+
+\usepackage{amsmath,amsthm}
+
+\newtheorem{thm}{Theorem}
+\theoremstyle{definition}
+\newtheorem{defn}[thm]{Definition} % please number all of them together!
+
+% microtype makes everything look better
+
+\usepackage{microtype}
+
+% We'll need some colored links, so we load xcolor and hyperref. But
+% you can take that out if you don't want links at all or are happy
+% with the standard garish colored boxes.
+
+\usepackage[dvipsnames]{xcolor}
+
+% You can turn off the boxes around links made by hyperref. Then links
+% will appear in a different color, and per guidelines, all links must
+% be blue or black. For blue links say
+
+\usepackage[colorlinks,allcolors=MidnightBlue]{hyperref}
+
+% For black links,
+% \usepackage[hidelinks]{hyperref}
+
+% If you prefer hyperref's boxes around links (which don't print), you
+% can also change their color. With boxes around links, you probably
+% don't want everything in the table of contents to be a link, so we
+% only make the page numbers links.
+%
+% \usepackage[allbordercolors=Periwinkle,linktocpage]{hyperref}
+
+% The table of contents in your PDF reader's sidebar is just titles by
+% default, but it's nice to also have chapter and section numbers for
+% easy navigation.
+
+\usepackage[numbered]{bookmark}
+
+% For author-year references, you probably want to use natbib with a
+% bibliography style appropriate for your discipline; or check out
+% latexbib!
+
+\usepackage[round]{natbib}
+\bibliographystyle{plainnat}
+
+% The blindtext package produces the ``lorem ipsum''
+% texts in this sample and can safely be removed.
+
+\usepackage{blindtext}
+
+% Now we put in the information for the thesis title page.
+
+% Full Name
+
+\author{Jane Mary Doe}
+
+% Full Title
+
+\title{An Important Contribution to the Literature}
+
+% Official name of the degree
+
+\degree{Doctor of Philosophy}
+
+% The name of the graduate program (not the department!)
+
+\prog{Graduate Program in Philosophy}
+
+% The month (for the final version: when you file, not when you defended)
+
+\monthname{May}
+
+% The year
+
+\thesisyear{2018}
+
+% Tell hyperref to put author and title into the PDF metadata
+
+\hypersetup{pdfinfo={Title={\thetitle},Author={\theauthor}}}
+
+% If you want memoir to produce endnotes, turn them on here
+
+\makepagenote
+
+% Often you only want to output a single chapter so you can send it to
+% your supervisor. Use includeonly and make sure everything you don't
+% always want compiled to PDF is include'd from a separate file. For
+% instance, to produce a PDF only of chapter 1, endnotes and
+% bibliography, say
+
+% \includeonly{chapter1,backmatter}
+
+% To compile only the title page, which you need when submitting your
+% thesis, say
+
+% \includeonly{titlepage}
+
+\begin{document}
+
+\frontmatter
+
+% titlepage.tex just makes the titlepage; it's in its own file so you
+% can typeset it alone using includeonly.
+
+\include{titlepage}
+
+% frontmatter.tex contains the abstract, preface, acknowledgments, and
+% the commands to produce the table of contents, list of tables, etc.
+
+\include{frontmatter}
+
+% The main matter of the thesis contains the actual content, separated
+% into chapters.
+
+\mainmatter
+
+\include{chapter1}
+
+\include{chapter2}
+
+% The back matter includes commands to produce endnotes, index,
+% glossary, bibiliography, and the like.
+
+\backmatter
+
+\include{backmatter}
+
+% The appendix contains material that would clutter up the main
+% text. Remove it if you don't have an appendix.
+
+\appendix
+
+\include{appendix}
+
+\end{document}
diff --git a/macros/latex/contrib/ucalgmthesis/titlepage.tex b/macros/latex/contrib/ucalgmthesis/titlepage.tex
new file mode 100644
index 0000000000..fcb85dff45
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/titlepage.tex
@@ -0,0 +1,4 @@
+% Sample University of Calgary Thesis
+% This file contains the TITLE PAGE
+
+\makethesistitle
diff --git a/macros/latex/contrib/ucalgmthesis/ucalgmthesis.cls b/macros/latex/contrib/ucalgmthesis/ucalgmthesis.cls
new file mode 100644
index 0000000000..23cd021b0d
--- /dev/null
+++ b/macros/latex/contrib/ucalgmthesis/ucalgmthesis.cls
@@ -0,0 +1,203 @@
+% ucalgmthesis class
+% ==================
+% A LaTeX class for producing thesis documents conforming to the
+% University of Calgary Faculty of Graduate Study formatting rules.
+%
+% Richard Zach
+%
+% The latest version of the class is available at
+% https://github.com/rzach/ucalgmthesis
+%
+% Distributed under the terms of the MIT License
+% https://opensource.org/licenses/MIT
+
+\ProvidesClass{ucalgmthesis}[2019/04/02
+ University of Calgary Memoir Thesis Class]
+
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+
+%% Options for spacing (default is 1.5 spacing)
+
+% All pages must be double or one-and-one-half spaced (Note: this
+% includes your Abstract, Acknowledgments, Dedications, etc.). You
+% can use single-line spacing if you have a long Table of Contents,
+% List of Tables, List of Figures, or for long quotes in the body of
+% your thesis). Use \verb|memoir|'s \verb|SingleSpace| environment to
+% typeset, e.g., a quotation single spaced.
+
+\DeclareOption{singlespaced}{\AtEndOfClass{\SingleSpacing}}
+\DeclareOption{onehalfspaced}{\AtEndOfClass{\OnehalfSpacing}}
+\DeclareOption{doublespaced}{\AtEndOfClass{\DoubleSpacing}}
+
+% Options for typefaces
+
+\DeclareOption{palatino}
+ {\AtEndOfClass{\usepackage[T1]{fontenc}
+ \usepackage{amsthm} % load amsthm before newpxmath
+ \usepackage{newpxtext,newpxmath}}}
+\DeclareOption{times}
+ {\AtEndOfClass{\usepackage[T1]{fontenc}
+ \usepackage{amsthm} % load amsthm before newtxmath
+ \usepackage{newtxtext,newtxmath}}}
+\DeclareOption{garamond}
+ {\AtEndOfClass{\usepackage[T1]{fontenc}
+ \usepackage[garamond]{mathdesign}
+ \usepackage[osf]{garamondx}
+ \fixmdhrulefill}}
+\DeclareOption{utopia}
+ {\AtEndOfClass{\usepackage[T1]{fontenc}
+ \usepackage[utopia]{mathdesign}
+ \fixmdhrulefill}}
+\DeclareOption{libertine}
+ {\AtEndOfClass{\usepackage[T1]{fontenc}
+ \usepackage{amsthm} % load amsthm before newtxmath
+ \usepackage{libertine}
+ \usepackage[libertine]{newtxmath}}}
+
+% options for headings
+
+\DeclareOption{plain}{\AtBeginDocument{\pagestyle{plain}}}
+\DeclareOption{headers}{\AtBeginDocument{\pagestyle{ucalgaryruled}}}
+
+% options for the typeblock
+
+% fullpage uses the entire space available: 1 in on all sides, set the
+% typeblock to fill to the margins. We do this when the class is loaded
+% so it takes into account any changes to the fonts and type
+% size made using the class options, but not anything done later
+% after the class is called. Since memoir will set the line
+% width to \textwidth when it first computes the default type block
+% size, we have to reset that after we change the type block.
+
+\DeclareOption{fullpage}{
+ \AtEndOfClass{\fullpagethesis}}
+
+% manuscript sets the typeblock to approximately 72 characters by 25
+% lines at 12pt and using double line spacing and sets left and right
+% margins evenly.
+
+\DeclareOption{manuscript}{
+ \PassOptionsToClass{12pt}{memoir}
+ \ExecuteOptions{doublespaced}
+ \AtEndOfClass{\manuscriptthesis}}
+
+% All other options are passed to the base class directly.
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}}
+
+% By default, typeset with one half spacing, no running heads, 11 pt
+
+\ExecuteOptions{onehalfspaced,plain}
+
+% Tell memoir the document has to be one-sided (i.e., don't switch
+% margins, etc.) and don't add empty pages before new chapters
+
+\PassOptionsToClass{openany,oneside,11pt}{memoir}
+\ProcessOptions
+
+% now load memoir
+
+\LoadClass{memoir}
+
+% Commands to set up type block and margins based on selected typeface
+% and size. These are called after the class loads, but before the
+% rest of the preamble.
+
+% fullpagethesis sets the margins to 1in on all sides, so maximum
+% allowed space is used.
+
+\newcommand{\fullpagethesis}{%
+ \settypeblocksize{9in}{6.5in}{*}%
+ \setlrmarginsandblock{1in}{*}{*}%
+ \setulmarginsandblock{1in}{*}{*}%
+ \checkandfixthelayout}
+
+% \manuscriptthesis sets the typeblock to 25 lines per 72 characters
+% (approx.) per line, and vertically centers the page. Left and right
+% margins are left to memoir: equal margins for onesided (default),
+% wider outside margins for twosided.
+
+\newcommand{\manuscriptthesis}{%
+ \setlxvchars
+ \settypeblocksize{25\baselineskip}{1.1\lxvchars}{*}%
+ \setulmargins{*}{*}{*}%
+ \checkandfixthelayout}
+
+% fix a bug in mathdesign
+
+\newcommand*{\fixmdhrulefill}{\def\hrulefill{\leavevmode\leaders \hrule height \rulethickness \hfill\kern\z@}}
+
+% \makethesistitle formats the title page
+
+\newcommand{\makethesistitle}{
+ \begin{titlingpage*}
+ \begin{center}\begin{DoubleSpace}
+ UNIVERSITY OF CALGARY \\
+ \vfill
+ {\@title \par}
+ \vfill
+ by \\
+ \vfill
+ {\@author \par}
+ \vfill
+ {A \@thesis} \par
+ SUBMITTED TO THE FACULTY OF GRADUATE STUDIES \par
+ IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE \par
+ {DEGREE OF \@degree}
+ \vfill
+ \@dept \par
+ \vfill
+ {CALGARY, ALBERTA \par}
+ {{\@monthname}, {\@gradyear} \par}
+ \vfill
+ {\copyright\ {\@author}~{\@gradyear} \par}
+ \end{DoubleSpace}\end{center}
+ \end{titlingpage*}
+}
+
+\newcommand{\dedication}[1]{%
+ {\clearpage\thispagestyle{plain}\mbox{}\vfill
+ \phantomsection
+ \addcontentsline{toc}{chapter}{Dedication}%
+ \centering #1 \par\vfill\clearpage}}
+
+% Commands for the thesis title page
+
+\def\dept#1{\gdef\@dept{\uppercase{#1}}}
+\let\prog\dept % compatibility with ucalgthes class
+\def\degree#1{\gdef\@degree{\uppercase{#1}}}
+\def\monthname#1{\gdef\@monthname{#1}}
+\def\gradyear#1{\gdef\@gradyear{#1}}
+\let\thesisyear\gradyear
+\def\thesis#1{\gdef\@thesis{\uppercase{#1}}}
+\thesis{Thesis}
+
+% Ruled pagestyle according to rules: folio centered in footer,
+% headers with a rule. Chapter number and title flush right. Also
+% works twosided, in which case the verso headers hold the chapter
+% title and the recto headers the section title.
+
+\copypagestyle{ucalgaryruled}{ruled}
+\if@twoside
+ \makeevenhead{ucalgaryruled}{\leftmark}{}{}
+ \makeoddhead{ucalgaryruled}{}{}{\rightmark}
+\else
+ \makeoddhead{ucalgaryruled}{}{}{\leftmark}
+\fi
+
+\makeoddfoot{ucalgaryruled}{}{\thepage}{}
+\makeevenfoot{ucalgaryruled}{}{\thepage}{}
+
+% Since the TOC must include everything in the front matter, the
+% default TOC style looks odd. We reduce the space between chapter
+% entries and add dotted leaders also to chapters.
+
+\setlength{\cftbeforechapterskip}{3pt plus 0pt}
+\renewcommand{\cftchapterleader}{\normalfont\cftdotfill{\cftsectiondotsep}}
+\renewcommand{\contentsname}{Table of Contents}
+
+% we need toc, lof, lot to begin on a new page
+
+\def\tocheadstart{\clearpage}
+\def\lofheadstart{\clearpage}
+\def\lotheadstart{\clearpage}