summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mugsthesis
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/mugsthesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/mugsthesis')
-rw-r--r--macros/latex/contrib/mugsthesis/README31
-rw-r--r--macros/latex/contrib/mugsthesis/mugsthesis.dtx623
-rw-r--r--macros/latex/contrib/mugsthesis/mugsthesis.ins56
-rw-r--r--macros/latex/contrib/mugsthesis/mugsthesis.pdfbin0 -> 278678 bytes
-rw-r--r--macros/latex/contrib/mugsthesis/sample/abstract.tex39
-rw-r--r--macros/latex/contrib/mugsthesis/sample/acknowledgments.tex6
-rw-r--r--macros/latex/contrib/mugsthesis/sample/appendix1.tex37
-rw-r--r--macros/latex/contrib/mugsthesis/sample/ch01.tex34
-rw-r--r--macros/latex/contrib/mugsthesis/sample/ch02.tex22
-rw-r--r--macros/latex/contrib/mugsthesis/sample/dedication.tex5
-rw-r--r--macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.pdfbin0 -> 100948 bytes
-rw-r--r--macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.tex61
-rw-r--r--macros/latex/contrib/mugsthesis/sample/refs.bib22
13 files changed, 936 insertions, 0 deletions
diff --git a/macros/latex/contrib/mugsthesis/README b/macros/latex/contrib/mugsthesis/README
new file mode 100644
index 0000000000..2e1a179dce
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/README
@@ -0,0 +1,31 @@
+Marquette University Graduate School (MUGS) Thesis Class, mugsthesis v1.0 2014/08/07
+
+Copyright (C) 2014 Paul D. Gessler <pdgessler@gmail.com>
+
+This is a document class to be used for typesetting MUGS theses.
+The mugsthesis class is based on the memoir document class and
+meets the MUGS Thesis Directives requirements.
+
+The sample folder contains a sample thesis for testing/review.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 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.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This package has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this package is Paul D. Gessler.
+
+This work consists of the source files mugsthesis.dtx and mugsthesis.ins,
+the derived (generated) file mugsthesis.cls, the documentation file
+mugsthesis.pdf, and test/sample files abstract.tex, acknowledgments.tex,
+appendix1.tex, ch01.tex, ch02.tex, dedication.tex, mugsthesis_sample.pdf,
+mugsthesis_sample.tex, and refs.bib.
+
+Use at your own risk! Class author is not responsible for denied
+thesis submissionts. Report issues and enhancement requests on
+GitHub at https://github.com/pdgessler/mugsthesis
diff --git a/macros/latex/contrib/mugsthesis/mugsthesis.dtx b/macros/latex/contrib/mugsthesis/mugsthesis.dtx
new file mode 100644
index 0000000000..205b64927b
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/mugsthesis.dtx
@@ -0,0 +1,623 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2014 by Paul D. Gessler
+% ---------------------------------------------------------------------------
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Paul D. Gessler <pdgessler@gmail.com>.
+%
+% This work consists of the files mugsthesis.dtx and mugsthesis.ins
+% and the derived file mugsthesis.cls.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{mugsthesis.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<class>\ProvidesClass{mugsthesis}
+%<*class>
+ [2014/08/07 v1.0 Marquette University Graduate School Thesis Class]
+%</class>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{microtype}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{mugsthesis.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{376}
+%
+% \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}{2014/08/07}{Initial public release}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
+% \DoNotIndex{\@ne,\@ifstar,\@title}
+% \DoNotIndex{\advance,\addcontentsline,\addtolength,\aftergroup}
+% \DoNotIndex{\AtBeginEnvironment,\AtEndPreamble}
+% \DoNotIndex{\baselineskip,\begin,\begingroup,\bfseries,\boolfalse,\booltrue}
+% \DoNotIndex{\catcode,\centering,\closein,\closeout}
+% \DoNotIndex{\day,\def,\edef,\else,\empty,\end,\endgroup,\ifbool,\let}
+% \DoNotIndex{\newbool,\newlength,\noexpand,\normalfont,\onelineskip}
+% \DoNotIndex{\par,\parbox,\pretocmd,\protect,\providecommand}
+% \DoNotIndex{\renewcommand,\renewenvironment,\RequirePackage}
+% \DoNotIndex{\setcounter,\setlength,\small,\texorpdfstring,\unskip,\vfill,\vskip,\vspace}
+%
+% \providecommand*{\url}{\texttt}
+% \newcommand{\pkg}[1]{\textsf{#1}}
+% \newcommand{\cls}[1]{\textsf{#1}}
+% \newcommand{\opt}[1]{\texttt{#1}}
+% \newcommand{\optd}[1]{\opt{#1}~(default)}
+% \GetFileInfo{mugsthesis.dtx}
+% \title{The \cls{mugsthesis} class}
+% \author{Paul D. Gessler \\ \url{<pdgessler@gmail.com>}}
+% \date{\fileversion,~dated \filedate}
+%
+% \maketitle
+% \begin{abstract}
+% \cls{mugsthesis} is a document class to be used for typesetting Marquette University Graduate School (MUGS) theses.
+% It is based on the \cls{memoir} class, and meets the basic requirements contained
+% in the MUGS \emph{Thesis Directives}.\footnotemark The class provides a minimal
+% set of changes to the \cls{memoir} class to meet the university's specifications.
+% As such, it should be compatible with any other packages that are compatible with
+% the widely used \cls{memoir} class.
+% \end{abstract}
+% \footnotetext{\cls{mugsthesis} \fileversion\ is compatible with MUGS \emph{Thesis Directives} dated 2014, available at \url{http://www.marquette.edu/grad/documents/ThesisDirectives2014.pdf}}
+%
+% \section{Introduction}
+%
+% The \cls{mugsthesis} document class is designed to allow straightforward preparation of MUGS theses
+% using the \LaTeX\ document preparation system. It complies with the MUGS \emph{Thesis Directives}
+% while maintaining compatibility with other packages used to extend the functionality of \LaTeX.
+%
+% Development of the document class is currently hosted on GitHub\footnote{\url{https://github.com/pdgessler/mugsthesis}}.
+% You are welcome to follow development, submit any issues you discover, or suggest improvements/enhancements
+% using the web interface there.
+%
+% The easiest way to start using the \cls{mugsthesis} document class is to take a look at the sample
+% document provided, |mugsthesis_sample.tex|, along with its associated included files.
+% You can take this as the basis for your own thesis.
+%
+% \section{Package Options}
+% The class supports several options for configuring the appearance of the thesis.
+% Apart from the options below, \cls{memoir} is loaded with options \opt{letterpaper} and \opt{oneside}
+% as specified in the \emph{Thesis Directives}.
+%
+% \subsection{Font Size}
+% The base font size of the document is adjusted through use of the options \opt{10pt}, \opt{11pt}, and \optd{12pt}.
+% The font size options are mutually exclusive; if more than one is specified, the default will be used.
+%
+% \subsection{Other Options}
+% The options \optd{final} and \opt{draft} configure the output document: \opt{final} produces a camera-ready copy of the thesis,
+% while \opt{draft} marks overfull lines with black rules in the margins, and may have interaction with other packages.
+% The most common interaction is that \pkg{graphicx} will place empty boxes instead of the actual graphics when the \opt{draft}
+% option is set. These options are mutually exclusive.
+%
+% The options \optd{indentfirsttrue} and \opt{indentfirstfalse} configure the indentation of the first paragraph following a heading.
+% The \emph{Thesis Directives} show indentation of the initial paragraphs and specify that ``new paragraphs should be indented 0.5\,in''.
+% Centuries of typographers contend that the purpose of indentation is to mark the beginning of a new paragraph, and the heading itself
+% serves that purpose for the first paragraph under a heading. So the \opt{indentfirstfalse} option is provided if you agree with this contention.
+% These options are mutually exclusive.
+%
+% \subsection{Unsupported \cls{memoir} Options}
+% The \cls{memoir} class has many other options.
+% Traditionally, an author can specify a base class option and the derived class will pass that option to the base class.
+% However, many of these options would cause non-compliance with the MUGS \emph{Thesis Directives}.
+% For this reason, all unsupported options are reported to the log file and otherwise ignored.
+%
+% \section{Usage}
+%
+% A number of commands (macros) and environments are defined by \cls{mugsthesis} for use
+% in the preparation of theses. In-context examples of their use may be found in |mugsthesis_sample.tex|.
+%
+% \DescribeMacro{\title}
+% The |\title|\marg{title} macro takes a single mandatory argument, which is the title of the thesis.
+% Ensure that it is less than 120 characters long, and that it is entered with line breaks chosen
+% to produce the requested inverted pyramid format. An example from the \emph{Thesis Directives}:
+% \begin{verbatim}
+% \title{
+% A STUDY OF THE SOCIOLOGICAL IMPACT OF THE\\
+% 1984 OLYMPICS ON THE POVERTY\\
+% LEVEL OF CITIZENS OF\\
+% LOS ANGELES
+% }\end{verbatim}
+% The capitalization here is not strictly necessary; all letters are converted to upper case internally.
+%
+% \DescribeMacro{\author}
+% The macro |\author|\marg{author} accepts a single mandatory argument, which should contain the author's name and credentials.
+% Using the \emph{Thesis Directives} example once again:
+% \begin{verbatim}
+% \author{John J. Smith, B.A.}\end{verbatim}
+%
+% \DescribeMacro{\degree}
+% The |\degree|\marg{degree} macro takes a single mandatory argument, the degree pursued by the author. An example from
+% the directives, as ever:
+% \begin{verbatim}
+% \degree{Master of Science}\end{verbatim}
+%
+% \DescribeMacro{\degreemo}
+% \DescribeMacro{\degreeyr}
+% The macros |\degreemo|\marg{month} and |\degreeyr|\marg{year} each accept a single argument,
+% which is the month and year, respectively, during which the degree is to be conferred. The value
+% of \meta{month} must be one of May, August, or December:
+% \begin{verbatim}
+% \degreemo{December}
+% \degreeyr{2013}\end{verbatim}
+%
+% \DescribeMacro{\maketitle}
+% The |\maketitle| command typesets the title page with all the previously-declared metadata, and should be used immediately at the beginning of the |document| environment.
+%
+% \DescribeEnv{abstract}
+% \DescribeEnv{acknowledgments}
+% \DescribeEnv{dedication}
+% The environments |abstract| (mandatory), |acknowledgments| (optional), and |dedication| (optional)
+% should be used for the respective content, if included. The |abstract| environment must immediately follow |\maketitle|,
+% and the |acknowledgments| and |dedication| environments, if used, should follow |abstract|.
+%
+% \DescribeMacro{\tableofcontents}
+% \DescribeMacro{\listoftables}
+% \DescribeMacro{\listoffigures}
+% The Graduate School requires a table of contents to appear in every thesis. Additionally, lists of tables and lists of figures may be used.
+% The commands |\tableofcontents|, |\listoftables|, and |\listoffigures| should be used to generate these lists with the appropriate formatting.
+% |\tableofcontents| should follow the abstract and any optional environments used in the front matter.
+% |\listoftables| or |\listoffigures| should be used after |\tableofcontents|.
+% If both are used, |\listoftables| should precede |\listoffigures|.
+%
+% \DescribeMacro{\frontmatter}
+% \DescribeMacro{\mainmatter}
+% \DescribeMacro{\appendix}
+% The switch commands |\frontmatter|, |\mainmatter|, and |\appendix| set the page and chapter numbering styles for the appropriate parts of the thesis.
+% They should immediately precede the abstract, first main body chapter, and first appendix (if any), respectively.
+%
+% \DescribeMacro{\bibname}
+% The |\bibname| command contains the name text for the bibliography (default: BIBLIOGRAPHY). If the chosen
+% citation/reference style specifies a different name (for example: REFERENCES), it can be changed with:
+% \begin{verbatim}
+% \renewcommand{\bibname}{REFERENCES}\end{verbatim}
+%
+% Many other commands and environments are defined by the \cls{memoir} class for document elements
+% including (sub)figures, (sub)tables, associated captions, quotations, and more.
+% Consult the \cls{memoir} documentation\footnote{\url{http://texdoc.net/pkg/memoir}} for complete details.
+% If these or customizations from other packages are used, it is ultimately the author's responsibility to verify that
+% compliance with the \emph{Thesis Directives} is maintained.
+%
+% \StopEventually{\PrintChanges \PrintIndex}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% First, load \pkg{etoolbox} for patching existing commands.
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+% \end{macrocode}
+% Declare a new boolean to control indentation of initial paragraphs.
+% \begin{macrocode}
+\newbool{indentfirst}
+% \end{macrocode}
+% Declare class options, pass them to the base class if applicable,
+% and discard any unsupported options, warning the user they have been ignored.
+% \begin{macrocode}
+\DeclareOption{10pt}{\PassOptionsToClass{10pt}{memoir}}
+\DeclareOption{11pt}{\PassOptionsToClass{11pt}{memoir}}
+\DeclareOption{12pt}{\PassOptionsToClass{12pt}{memoir}}
+\DeclareOption{final}{\PassOptionsToClass{final}{memoir}}
+\DeclareOption{draft}{\PassOptionsToClass{draft}{memoir}}
+\DeclareOption{indentfirsttrue}{\booltrue{indentfirst}}
+\DeclareOption{indentfirstfalse}{\boolfalse{indentfirst}}
+\DeclareOption*{%
+ \ClassWarning{mugsthesis}{Unknown option `\CurrentOption' ignored}%
+}
+% \end{macrocode}
+% Execute default options \opt{12pt}, \opt{final}, and \opt{indentfirsttrue},
+% and process the author-specified options.
+% \begin{macrocode}
+\ExecuteOptions{12pt,final,indentfirsttrue}
+\ProcessOptions\relax
+% \end{macrocode}
+% Use the \pkg{indentfirst} package if \opt{indentfirsttrue} is set.
+% \begin{macrocode}
+\ifbool{indentfirst}{\RequirePackage{indentfirst}}{}
+% \end{macrocode}
+% Load the base \cls{memoir} class with options \opt{letterpaper} and \opt{oneside}.
+% \begin{macrocode}
+\LoadClass[letterpaper,oneside]{memoir}
+% \end{macrocode}
+%
+% Set the line spacing and justification according to the MUGS \emph{Thesis Directives}.
+% Additionally set |\raggedbottom| to avoid underfull |\hbox|es with rigid skip lengths.
+% \begin{macrocode}
+\DoubleSpacing
+\raggedright
+\raggedbottom
+% \end{macrocode}
+% Set the page layout.
+% \begin{macrocode}
+\setlrmarginsandblock{1.5in}{1.0in}{*} % left and right margins
+\setulmarginsandblock{1.0in}{1.0in}{*} % top and bottom margins
+\setheaderspaces{0.5in}{*}{*} % header 0.5in from edge
+\marginparmargin{left} % use the wider (left) margin for notes
+\setmarginnotes{0.125in}{1.25in}{\baselineskip} % type area for notes
+\checkandfixthelayout[lines] % check the layout; TODO check algorithm selection
+% \end{macrocode}
+% Set the paragraph indentation.
+% \begin{macrocode}
+\setlength\parindent{0.5in}
+% \end{macrocode}
+% Define and use the |mugs| pagestyle for page numbering throughout the thesis.
+% \begin{macrocode}
+\makepagestyle{mugs}
+\makeevenhead{mugs}{}{}{\thepage}
+\makeoddhead{mugs}{}{}{\thepage}
+% \end{macrocode}
+% Alias the |chapter| pagestyle to |mugs| so the chapter opening pages
+% have numbering identical to the rest of the pages, and set the page style for the document.
+% \begin{macrocode}
+\aliaspagestyle{chapter}{mugs}
+\pagestyle{mugs}
+% \end{macrocode}
+%
+% \begin{macro}{\degree}
+% \begin{macro}{\degreemo}
+% \begin{macro}{\degreeyr}
+% Define |\degree|\marg{degree} to set the degree name for the title page.
+% \begin{macrocode}
+\newcommand{\degree}[1]{\def\mugsdegree{#1}}
+% \end{macrocode}
+% Similarly, define |\degreemo|\marg{month} and |\degreeyr|\marg{year} to set the
+% date of conferral for the title and abstract pages.
+% \begin{macrocode}
+\newcommand{\degreemo}[1]{\def\mugsdegreemo{#1}}
+\newcommand{\degreeyr}[1]{\def\mugsdegreeyr{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\title}
+% Redefine |\title| to use full upper case.
+% \begin{macrocode}
+\renewcommand{\title}[1]{\def\@title{\uppercase{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% Redefine |\maketitle| to produce the appropriate title page, using all author metadata.
+% \begin{macrocode}
+\renewcommand{\maketitle}{{%
+ \cleardoublepage
+ \pagenumbering{Alph}
+ \SingleSpace
+ \thispagestyle{empty}
+ \centering
+ \@title
+ \vfill
+ by
+ \vskip \onelineskip
+ \@author
+ \vfill
+ A Thesis submitted to the Faculty of the Graduate School,\\
+ Marquette University,\\
+ in Partial Fulfillment of the Requirements for\\
+ the Degree of \mugsdegree{}
+ \vfill
+ Milwaukee, Wisconsin
+ \vskip \onelineskip
+ \mugsdegreemo~\mugsdegreeyr
+ \clearpage
+}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{environment}{abstract}
+% Redefine the |abstract| environment for typesetting according to the directives.
+% \begin{macrocode}
+\renewenvironment{abstract}{%
+ \thispagestyle{empty}
+ \begin{SingleSpace}
+ \begin{center}
+ ABSTRACT\\
+ \@title
+ \vskip 2\onelineskip
+ \@author
+ \vskip \onelineskip
+ Marquette University, \mugsdegreeyr
+ \vskip 2\baselineskip
+ \end{center}
+ \@afterindentfalse\@afterheading % makes indentfirst work with custom envs
+}{
+ \end{SingleSpace}\setcounter{page}{0}
+}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \begin{environment}{acknowledgments}
+% Define the optional |acknowledgments| environment.
+% \begin{macrocode}
+\newenvironment{acknowledgments}{%
+ \addcontentsline{toc}{chapter}{ACKNOWLEDGMENTS}
+ \chapter*{Acknowledgments}
+ \begin{SingleSpace}
+ \begin{center}
+ \unskip
+ \@author
+ \vskip 2\onelineskip
+ \end{center}
+ \@afterindentfalse\@afterheading
+}{\end{SingleSpace}}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \begin{environment}{dedication}
+% Define the optional |dedication| environment.
+% \begin{macrocode}
+\newenvironment{dedication}{%
+ \addcontentsline{toc}{chapter}{DEDICATION}
+ \chapter*{Dedication}
+ \begin{SingleSpace}\vskip\onelineskip
+ \@afterindentfalse\@afterheading
+}{\end{SingleSpace}}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% Declare subfloats using \cls{memoir} facilities.\footnote{These are not needed by all users; consider an option to enable? Maximum depth required?}
+% Ensure any subfloats are listed in the list of figures and list of tables.
+% \begin{macrocode}
+\newsubfloat{figure}
+\newsubfloat{table}
+\setcounter{lofdepth}{2}
+\setcounter{lotdepth}{2}
+% \end{macrocode}
+% Define and use the MUGS chapter style throughout the thesis.
+% \begin{macrocode}
+\makechapterstyle{mugs}{%
+ \setlength{\midchapskip}{0pt}
+ \setlength{\afterchapskip}{0pt}
+ \renewcommand*{\chapterheadstart}{}
+ \renewcommand*{\chaptitlefont}{\bfseries}
+ \renewcommand*{\printchaptername}{\centering \MakeTextUppercase{\@chapapp}}
+ \renewcommand*{\printchapternum}{\thechapter}
+ \renewcommand*{\printchaptertitle}[1]{%
+ \SingleSpacing \protect\parbox{\textwidth}{%
+ \centering \chaptitlefont \MakeTextUppercase{##1}
+ }
+ }
+}% end{mugs}
+\chapterstyle{mugs}
+% \end{macrocode}
+% Put the LoT and LoF on their own pages by patching their definitions.
+% \begin{macrocode}
+\pretocmd{\listoftables}{\clearforchapter}{}{%
+ \ClassWarning{mugsthesis}{Patching `\noexpand\listoftables' failed}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\pretocmd{\listoffigures}{\clearforchapter}{}{%
+ \ClassWarning{mugsthesis}{Patching `\noexpand\listoffigures' failed}
+}
+% \end{macrocode}
+%
+% \begin{macro}{\contentsname}
+% \begin{macro}{\listtablename}
+% \begin{macro}{\listfigurename}
+% \begin{macro}{\bibname}
+% Style the ToC, LoT, LoF, and Bibliography headings.
+% \begin{macrocode}
+\renewcommand*{\contentsname}{TABLE OF CONTENTS}
+\renewcommand*{\listtablename}{LIST OF TABLES}
+\renewcommand*{\listfigurename}{LIST OF FIGURES}
+\renewcommand*{\bibname}{BIBLIOGRAPHY}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% Specify one line skip between bibliography entries.
+% \begin{macrocode}
+\setlength{\bibitemsep}{\onelineskip}
+% \end{macrocode}
+%
+% \begin{macro}{\prebibhook}
+% Redefine |\prebibhook| to set single spacing in the bibliography and proper spacing after the heading.
+% \begin{macrocode}
+\renewcommand*{\prebibhook}{\SingleSpacing\vskip\onelineskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\biblistextra}
+% Redefine |\biblistextra| to set item separation and indentation.
+% \begin{macrocode}
+\renewcommand*{\biblistextra}{%
+ \setlength{\itemsep}{\bibitemsep}
+ \setlength{\leftmargin}{0.375in}% hanging indent
+ \setlength{\itemindent}{\labelwidth}%
+ \addtolength{\itemindent}{\labelsep}
+ \addtolength{\itemindent}{-\leftmargin}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tableofcontents}
+% Do not place an entry for the ToC within the ToC itself.
+% \begin{macrocode}
+\renewcommand{\tableofcontents}{%
+ \@ifstar{\mem@tableofcontents{01}}
+ {\mem@tableofcontents{01}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Set the indentation for the ToC, LoT, and LoF (0.5\,in additional per level).
+% \begin{macrocode}
+\setlength{ \cftchapterindent}{0.0in}
+\setlength{ \cftsectionindent}{0.5in}
+\setlength{ \cftsubsectionindent}{1.0in}
+\setlength{\cftsubsubsectionindent}{1.5in}
+\setlength{ \cftparagraphindent}{2.0in}
+\setlength{ \cftsubparagraphindent}{2.5in}
+\setlength{ \cfttableindent}{0.0in}
+\setlength{ \cftsubtableindent}{0.5in}
+\setlength{ \cftfigureindent}{0.0in}
+\setlength{ \cftsubfigureindent}{0.5in}
+% \end{macrocode}
+% Ragged right within and one line skip between ToC, LoT, and LoF entries.
+% \begin{macrocode}
+\setrmarg{3.55em plus 1fil}
+\setlength{\cftbeforechapterskip}{\onelineskip}
+\setlength{\cftbeforesectionskip}{\onelineskip}
+\setlength{\cftbeforesubsectionskip}{\onelineskip}
+\setlength{\cftbeforesubsubsectionskip}{\onelineskip}
+\setlength{\cftbeforeparagraphskip}{\onelineskip}
+\setlength{\cftbeforesubparagraphskip}{\onelineskip}
+\setlength{\cftbeforetableskip}{\onelineskip}
+\setlength{\cftbeforesubtableskip}{\onelineskip}
+\setlength{\cftbeforefigureskip}{\onelineskip}
+\setlength{\cftbeforesubfigureskip}{\onelineskip}
+% \end{macrocode}
+%
+% \begin{macro}{\insertchapterspace}
+% No extra space between chapters.
+% \begin{macrocode}
+\renewcommand{\insertchapterspace}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\aftertoctitle}
+% \begin{macro}{\afterlottitle}
+% \begin{macro}{\afterloftitle}
+% Switch to single spacing in the ToC, LoT, and LoF.
+% \begin{macrocode}
+\renewcommand{\aftertoctitle}{\vspace{-\onelineskip}\aftergroup\SingleSpacing}
+\renewcommand{\afterlottitle}{\vspace{-\onelineskip}\aftergroup\SingleSpacing}
+\renewcommand{\afterloftitle}{\vspace{-\onelineskip}\aftergroup\SingleSpacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\cftchapterfont}
+% \begin{macro}{\cftchapterleader}
+% \begin{macro}{\cftchapterpagefont}
+% Style the ToC chapter headings.
+% \begin{macrocode}
+\renewcommand{\cftchapterfont}{\normalfont}
+\renewcommand{\cftchapterleader}{\cftsectionleader}
+\renewcommand{\cftchapterpagefont}{\normalfont}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\f@rtoc}
+% For \pkg{hyperref} bookmarking functionality (if present).
+% \begin{macrocode}
+\AtEndPreamble{\providecommand{\texorpdfstring}[2]{#1}}
+\settocpreprocessor{chapter}{%
+\let\tempf@rtoc\f@rtoc%
+\def\f@rtoc{%
+ \texorpdfstring{\MakeTextUppercase{\tempf@rtoc}}{\tempf@rtoc}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Set spacing in quote and quotation environments.
+% \begin{macrocode}
+\AtBeginEnvironment{quote}{\par\SingleSpacing}
+\AtBeginEnvironment{quotation}{\par\SingleSpacing}
+% \end{macrocode}
+% Set sectional unit numbering levels and ToC depth.
+% \begin{macrocode}
+\maxsecnumdepth{subsection}
+\settocdepth{subsection}
+% \end{macrocode}
+% Style the lower-level headings.
+% \begin{macrocode}
+\newlength{\preheadskip}\setlength{\preheadskip}{1sp plus 1sp minus 1sp}
+\newlength{\postheadskip}\setlength{\postheadskip}{\onelineskip}
+\setsecheadstyle{\bfseries\SingleSpacing}
+\setbeforesecskip{\preheadskip}
+\setaftersecskip{\postheadskip}
+\setsubsecheadstyle{\bfseries\SingleSpacing}
+\setbeforesubsecskip{\preheadskip}
+\setaftersubsecskip{\postheadskip}
+\setsubsubsecheadstyle{\bfseries\SingleSpacing}
+\setbeforesubsubsecskip{\preheadskip}
+\setaftersubsubsecskip{\postheadskip}
+% \end{macrocode}
+% Set the list and table spacings.
+% \begin{macrocode}
+\tightlists
+\AtBeginEnvironment{tabular}{\SingleSpacing}
+% \end{macrocode}
+% Set the caption styles and spacing.
+% \begin{macrocode}
+\captionstyle[\centering]{\raggedright}
+\subcaptionsize{\small}
+\setlength{\abovecaptionskip}{\parsep}
+\setlength{\belowcaptionskip}{-\parsep}
+% \end{macrocode}
+% Avoid orphans, widows, and other detritus.
+% \begin{macrocode}
+\clubpenalty=10000
+\widowpenalty=9996
+\brokenpenalty=4991
+\predisplaypenalty=10000
+\postdisplaypenalty=1549
+\displaywidowpenalty=1602
+% \end{macrocode}
+% Set the spacing between floats and surrounding elements.
+% \begin{macrocode}
+\setlength{\floatsep}{3\onelineskip}
+\setlength{\intextsep}{2\onelineskip}
+\setlength{\textfloatsep}{2\onelineskip}
+\setlength{\dblfloatsep}{2\onelineskip}
+\setlength{\dbltextfloatsep}{2\onelineskip}
+% \end{macrocode}
+
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/mugsthesis/mugsthesis.ins b/macros/latex/contrib/mugsthesis/mugsthesis.ins
new file mode 100644
index 0000000000..b42d2587e2
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/mugsthesis.ins
@@ -0,0 +1,56 @@
+%%
+%% Copyright (C) 2014 by Paul D. Gessler
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.23 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.3 or later is part of all distributions of
+%% LaTeX version 1999/12/01 or later.
+%%
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/mugsthesis}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2014 by Paul D. Gessler
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 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.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Paul D. Gessler <pdgessler@gmail.com>.
+
+This work consists of the files mugsthesis.dtx and mugsthesis.ins
+and the derived file mugsthesis.cls.
+
+\endpreamble
+
+\generate{\file{mugsthesis.cls}{\from{mugsthesis.dtx}{class}}}
+
+\Msg{**********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space mugsthesis.cls}
+\Msg{*}
+\Msg{* To produce the documentation run the file mugsthesis.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy thesis writing!}
+\Msg{**********************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/mugsthesis/mugsthesis.pdf b/macros/latex/contrib/mugsthesis/mugsthesis.pdf
new file mode 100644
index 0000000000..f46a633d6a
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/mugsthesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/mugsthesis/sample/abstract.tex b/macros/latex/contrib/mugsthesis/sample/abstract.tex
new file mode 100644
index 0000000000..f5a269da1c
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/abstract.tex
@@ -0,0 +1,39 @@
+\begin{abstract}
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ This is a sample of formatting for a thesis abstract.
+ Ten more words to go and I won't exceed 350.
+\end{abstract}
diff --git a/macros/latex/contrib/mugsthesis/sample/acknowledgments.tex b/macros/latex/contrib/mugsthesis/sample/acknowledgments.tex
new file mode 100644
index 0000000000..4932a4d2e8
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/acknowledgments.tex
@@ -0,0 +1,6 @@
+\begin{acknowledgments}
+ In no particular order, I would like to thank my mother, my father, my sister, and my
+ brother. I would like to thank my husband, my wife, my children, and God. I would like
+ to thank my teachers, my faculty, my committee, and my director. I would like to thank
+ the Graduate School and all of the Marquette University administration.
+\end{acknowledgments}
diff --git a/macros/latex/contrib/mugsthesis/sample/appendix1.tex b/macros/latex/contrib/mugsthesis/sample/appendix1.tex
new file mode 100644
index 0000000000..efa417f8c6
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/appendix1.tex
@@ -0,0 +1,37 @@
+\chapter{Test Appendix with a very long title in order to test spacing behavior} \label{app:test}
+\lipsum[2]
+
+A convenient form for representing substantial numerical or textual data is a table.
+Table~\ref{tab:test} shows an example of this functionality in \LaTeX.
+\begin{table}
+ \centering
+ \caption{Test table. With an extra-long caption to test spacing functionality for table captions. And inline mathematics.}
+ \begin{tabular}{lrr}
+ \toprule
+ Heading 1 ($u_x$) & Head 2 & Head 3 \\
+ \midrule
+ Analytical & 1.000 & 1.000 \\
+ Forward Difference & 0.973 & 0.976 \\
+ \bottomrule
+ \end{tabular}
+ \label{tab:test}
+\end{table}
+Diagrams, plots, and other graphics should be placed in figures.
+Figure~\ref{fig:test} shows an example of such an environment.
+The command \verb+\includegraphics+ from the \verb+graphicx+ package may be used to include external graphics in a wide variety of formats.
+\begin{figure}
+ \centering
+ \includegraphics[width=1in]{example-image-b}
+ \caption{This test figure tests captions and Table of Contents
+ behavior for lengthy captions.}
+ \label{fig:test}
+\end{figure}
+
+\section{This is a Very Long Heading to Test the Table of Contents Behavior for Very Long Section Headings}
+Sample text. Sample text.
+
+\subsection{This is an Extremely Long Subsection Heading to Test Spacing Behavior for Subsections}
+\lipsum[3]
+
+\subsubsection{This is an Extremely Long Subsubsection Heading to Test Spacing Behavior for Subsubsections}
+\lipsum[4-5]
diff --git a/macros/latex/contrib/mugsthesis/sample/ch01.tex b/macros/latex/contrib/mugsthesis/sample/ch01.tex
new file mode 100644
index 0000000000..46df31ba8c
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/ch01.tex
@@ -0,0 +1,34 @@
+\chapter{Introduction} \label{cha:intro}
+Here is some introductory text regarding the thesis.
+Ideally, the introduction should be longer than one page.
+This way, the reader will have some vague idea of what it is that you'll be presenting.
+
+I have added liberal blind text here to extend this chapter onto a second page.
+We can then check the pagination and other important things.
+This chapter should be introducing the topic of your thesis and providing motivation to your work.
+
+Figure~\ref{fig:test2} shows a sample figure. More details are discussed in Appendix~\ref{app:test}.
+\begin{figure}
+ \centering
+ \includegraphics[width=1in]{example-image-a}
+ \caption{This test figure tests captions and Table of Contents
+ behavior for very lengthy captions.}
+ \label{fig:test2}
+\end{figure}
+
+\section{Background}
+Test sectioning commands. We can also have \verb+subsection+, \verb+subsubsection+,
+\verb+paragraph+, and \verb+subparagraph+. Let's try a few:
+
+\subsection{Test Subsection}
+\lipsum[1]
+
+\subsection{Another Subsection}
+Testing display mathematics:
+\begin{equation}
+e = mc^2,
+\end{equation}
+where $e$ is the energy, $m$ is the mass, and the constant $c$ represents the speed of light in a vacuum.
+
+\subsubsection{Subheading}
+\lipsum[3-5]
diff --git a/macros/latex/contrib/mugsthesis/sample/ch02.tex b/macros/latex/contrib/mugsthesis/sample/ch02.tex
new file mode 100644
index 0000000000..b1113bf30a
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/ch02.tex
@@ -0,0 +1,22 @@
+\chapter{Literature Review} \label{cha:litreview}
+As you can see here, the author has performed an exhaustive literature review to provide
+a solid foundation on which the remainder of this thesis is built.
+\begin{quote}
+This is a test of the \verb+quote+ environment. We should be in single-spaced mode and with some additional indentation to set this off from the rest of the text.
+\end{quote}
+Now we should have returned to double-spaced mode and regular indentation/margins.
+Let's add some more text here to fill the page and check the glue settings.
+We need more text on this page for testing purposes.
+
+Now let's test the \verb+quotation+ environment:
+\begin{quotation}
+This is a test of the \verb+quotation+ environment. We should be in single-spaced mode and with some additional indentation to set this off from the rest of the text.
+\end{quotation}
+Here we return%
+\footnote{
+ This is a test footnote extending over more than one line.
+ This should be in single-spaced mode according to the MUGS Thesis Directives.
+}
+to normal text mode.
+
+\lipsum \ No newline at end of file
diff --git a/macros/latex/contrib/mugsthesis/sample/dedication.tex b/macros/latex/contrib/mugsthesis/sample/dedication.tex
new file mode 100644
index 0000000000..9d75150a81
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/dedication.tex
@@ -0,0 +1,5 @@
+\begin{dedication}
+ I would like to dedicate this work to my ever-supporting family and friends.
+ \\[2em]
+ \centerline{Thank You}
+\end{dedication}
diff --git a/macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.pdf b/macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.pdf
new file mode 100644
index 0000000000..22920411c2
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.tex b/macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.tex
new file mode 100644
index 0000000000..29d224f657
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/mugsthesis_sample.tex
@@ -0,0 +1,61 @@
+\documentclass[10pt,10pt,10pt]{mugsthesis} % type size may be between 10-12 pt; default 12pt
+
+% load any additional packages you require
+\usepackage{mathpazo} % fonts; many alternatives here
+\usepackage{lipsum} % for blind sample text (testing only)
+\usepackage{graphicx} % for including graphics
+
+% input macros (for example, write your own personal macros in a
+% file called 'mymacros.tex' and uncomment the next line)
+%\include{mymacros}
+
+% place your title here, using `\\' to break the lines
+% of the title into the requested inverted pyramid layout
+% the title must not exceed 120 characters
+\title{ % thesis title in inverted pyramid layout
+ A STUDY OF THE SOCIOLOGICAL IMPACT OF THE\\
+ 1984 OLYMPICS ON THE POVERTY\\
+ LEVEL OF CITIZENS OF\\
+ LOS ANGELES
+} % note: \\ are line breaks in the title
+
+\author{John J. Smith, B.A.} % your name and credentials
+\degree{Master of Science} % the degree
+\degreemo{December} % the degree month (always May, August, or December)
+\degreeyr{2013} % the degree year
+
+% set the smallest sectional units that are numbered and appear in the contents
+%\maxsecnumdepth{subsubsection} % default: subsection
+%\settocdepth{subsubsection} % default: subsection
+
+% end the preamble and begin the document
+\begin{document}
+
+\maketitle % create a title page from the preamble info
+
+\frontmatter
+\include{abstract} % include the abstract.tex file; not to exceed 350 words
+\include{acknowledgments} % include an acknowledgments.tex file, OPTIONAL
+\include{dedication} % include a dedication.tex file, OPTIONAL
+
+\tableofcontents % generate and include a table of contents
+\listoftables % use this if you have tables
+\listoffigures % use this if you have figures (AFTER LoT if you have both)
+
+\mainmatter
+% include .tex files containing the text of each individual chapter
+\include{ch01}
+\include{ch02}
+\nocite{*} % dump all references for testing purposes
+
+% uncomment next line to change bibliography name to references (depends on style guide used)
+%\renewcommand{\bibname}{REFERENCES}
+\bibliography{refs} % use a bibtex bibliography file refs.bib
+\bibliographystyle{plain} % use the plain bibliography style (many options here)
+
+% switch to appendix chapter numbering and include appendices
+\appendix
+\include{appendix1}
+
+\end{document}
+
diff --git a/macros/latex/contrib/mugsthesis/sample/refs.bib b/macros/latex/contrib/mugsthesis/sample/refs.bib
new file mode 100644
index 0000000000..9494ecd147
--- /dev/null
+++ b/macros/latex/contrib/mugsthesis/sample/refs.bib
@@ -0,0 +1,22 @@
+@STRING(PRL="Phys. Rev. Lett.")
+@STRING(RMP="Rev. Mod. Phys.")
+
+@ARTICLE{klitzing:qhe,
+ AUTHOR="K. von Klitzing and G. Dorda and M. Pepper",
+ TITLE="New method for high accuracy determination of fine structure
+ constant based on quantised hall resistance",
+ JOURNAL=PRL,
+ VOLUME=45,
+ PAGES=494,
+ YEAR=1980
+}
+
+@ARTICLE{klitzing:nobel,
+ AUTHOR="Klaus von Klitzing",
+ TITLE="The Quantised Hall Effect",
+ JOURNAL=RMP,
+ VOLUME=58,
+ PAGES=519,
+ YEAR=1986
+}
+