summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/utexasthesis
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/utexasthesis
Initial commit
Diffstat (limited to 'macros/latex/contrib/utexasthesis')
-rw-r--r--macros/latex/contrib/utexasthesis/README.md116
-rw-r--r--macros/latex/contrib/utexasthesis/utexasthesis.cls343
2 files changed, 459 insertions, 0 deletions
diff --git a/macros/latex/contrib/utexasthesis/README.md b/macros/latex/contrib/utexasthesis/README.md
new file mode 100644
index 0000000000..6f3a65a166
--- /dev/null
+++ b/macros/latex/contrib/utexasthesis/README.md
@@ -0,0 +1,116 @@
+## University of Texas at Austin graduate thesis LaTeX style
+
+The [Digital Submission Requirement](https://gradschool.utexas.edu/academics/theses-and-dissertations/digital-submission-requirement) page describes the requirements for Masters and Ph.D. thesis submissions.
+Most `utexas.edu` URLs are fragile; if that link is dead, try searching for [utexas graduate thesis style](https://www.google.com/search?q=utexas+graduate+thesis+style).
+
+
+### Instructions
+
+1. Download the [`utexasthesis.cls`](https://raw.githubusercontent.com/linguistics/utexas-latex/master/utexasthesis.cls) (right click and "Save As...") file into your working directory
+2. Replace your initial `\documentclass{...}` call with `\documentclass{utexasthesis}`
+3. Fill in the required personal information by calling the following commands in your preamble (i.e., somewhere before `\begin{document}`):
+ - `\title{The Title of Your Dissertation or Treatise}`
+ - `\author{Full Official Name}`
+ + This should match the "Name of Doctoral Candidate" field on your official "Request For Final Oral Examination" form.
+ - `\graduationdate{May}{2017}`
+ - `\supervisor{Supervisor Name}`
+ - `\cosupervisor{Cosupervisor Name}`
+ + `% \cosupervisor{}` is optional, unless you use the `masters` option (described [below](#options)),
+ in which case it's required and `\othercommitteemembers{}` is ignored.
+ - `\othercommitteemembers{Member's Name, Member's Name, Member's Name}`
+4. Supply `\maketitle` and the other commands and environments in the proper order.
+5. Use `\maketableofcontents` instead of `\tableofcontents`
+6. Use `\makebibliography{yourbib}` instead of `\bibliography{yourbib}`
+ (and be sure to specify a style with `\bibliographystyle{...}`).
+
+Alternatively, you can use the [`basic.tex`](https://raw.githubusercontent.com/linguistics/utexas-latex/master/template/basic.tex) (right click and "Save As...") example as a starting point, replacing the placeholder text with your own information.
+View the `pdflatex` render of `basic.tex` on GitHub at [`basic.pdf`](https://github.com/linguistics/utexas-latex/blob/master/template/basic.pdf), or [download](https://raw.githubusercontent.com/linguistics/utexas-latex/master/template/basic.pdf).
+
+
+### Customizations
+
+The formatting guide doesn't specify a required font face.
+The `utexasthesis` class doesn't set one, which leaves "Computer Modern Roman" as the default font family.
+
+You can use any font supported by your LaTeX distribution; e.g., to use the Palatino font, as in the formatting guideline's examples:
+
+ \usepackage{palatino}
+
+Or to use Times, along with a teletype font (which is used in URLs) that's more compact than Courier:
+
+ \usepackage{times}
+ \renewcommand*\ttdefault{cmvtt}
+
+
+### Options
+
+The `utexasthesis` class can be customized with several optional arguments,
+which are supplied in the `\documentclass{}` call, e.g., `\documentclass[masters]{utexasthesis}`.
+
+- **`masters`**: switch format to Masters thesis, which has the following effects:
+ + The document type is set to "Thesis" instead of "Dissertation".
+ + The degree is set to "Master of Arts" (M.A.) instead of "Doctor of Philosophy" (Ph.D.).
+ + The signatures page is styled differently.
+- **`copyright`**: adds a copyright page at the beginning of your thesis.
+- Line spacing (defaults to `onehalfspacing` if omitted):
+ + **`singlespacing`**: Use single-spacing throughout the document,
+ which is prohibited by the formatting guidelines.
+ + **`onehalfspacing`**: Use 1.5-spacing throughout the document.
+ + **`doublespacing`**: Use double-spacing throughout the document.
+- Font sizes (defaults to `12pt` if omitted):
+ + **`10pt`**: Use 10 point font,
+ which is not recommended by the formatting guidelines.
+ + **`11pt`**: Use 11 point font,
+ which is not recommended by the formatting guidelines.
+ + **`12pt`**: Use 12 point font.
+- **`draft`**: renders a compact version of your thesis.
+ The layout does not comply with the graduate school requirements,
+ but may be useful to print out drafts for review.
+ + This option applies the usual `draft` class options to the underlying `report` class.
+ + The copyright page is omitted even if the `copyright` option is used.
+ + The signatures page is omitted.
+ + The main title page is omitted.
+ + Chapters do not trigger a page break.
+
+All of these can be used in combination, separated by commas.
+The few options that have overlapping effects will give priority to the last-listed argument(s) in the listings above.
+E.g., `\documentclass[masters,12pt,draft,11pt]{utexasthesis}` will render the Masters thesis format in 12 point font,
+even though `11pt` comes after `12pt` in the list of options.
+
+
+### Packages
+
+The following packages are imported by `utexasthesis`:
+
+* `geometry` (to set paper size, layout dimensions, and margins)
+* `fontenc`
+* `setspace` (configurable via `singlespacing` / `onehalfspacing` / `doublespacing` option)
+* `indentfirst` (to indent every paragraph, even at the beginning of chapters and sections)
+* `natbib`
+* `tocloft`
+* `tocbibind`
+* `url`
+* `hyperref`
+* `doi` (to hyperlink DOIs in bibliography)
+
+
+### F.A.Q.
+
+- **Q**: How do I number subsubsections?
+ E.g., <code><i>Chap</i>.<i>Sec</i>.<i>Subsec</i>.<i>Subsubsec</i></code>
+
+ **A**: Set the `secnumdepth` and `tocdepth` counters:
+ ```latex
+ % number subsubsections
+ \setcounter{secnumdepth}{3} % default: 2 (which only numbers up to subsections)
+ % include subsubsections in table of contents
+ \setcounter{tocdepth}{3} % default: 2
+ ```
+ See [How to show subsections and subsubsections in TOC?](https://tex.stackexchange.com/a/17879) for details.
+
+
+## License
+
+The `utexasthesis` document class and related materials are [CC0](https://creativecommons.org/publicdomain/zero/1.0/)-licensed.
+This is similar to the [Unlicense](http://unlicense.org) and [WTFPL](http://wtfpl.net).
+This means I (Christopher Brown), have waived all copyright rights to this work, to the extent allowed by law.
diff --git a/macros/latex/contrib/utexasthesis/utexasthesis.cls b/macros/latex/contrib/utexasthesis/utexasthesis.cls
new file mode 100644
index 0000000000..18e3c69a09
--- /dev/null
+++ b/macros/latex/contrib/utexasthesis/utexasthesis.cls
@@ -0,0 +1,343 @@
+% UT Austin graduate thesis style. https://github.com/linguistics/utexas-latex
+% License: CC0 (https://creativecommons.org/publicdomain/zero/1.0/)
+\NeedsTeXFormat{LaTeX2e}%[1994/06/01]
+\ProvidesClass{utexasthesis}[2018/08/21 v1.0 University of Texas at Austin graduate thesis style]
+
+% prepare boolean variables and set defaults
+\newif\if@masters\@mastersfalse
+\newif\if@copyright\@copyrightfalse
+\newif\if@draft\@draftfalse
+% handle optional arguments
+\DeclareOption{masters}{\@masterstrue}
+\DeclareOption{copyright}{\@copyrighttrue}
+\DeclareOption{draft}{\@drafttrue\PassOptionsToClass{draft}{report}}
+% capture the basic setspace package options for passing into setspace later
+\def\@setspaceoption{onehalfspacing}
+\DeclareOption{singlespacing}{\gdef\@setspaceoption{singlespacing}}
+\DeclareOption{onehalfspacing}{\gdef\@setspaceoption{onehalfspacing}}
+\DeclareOption{doublespacing}{\gdef\@setspaceoption{doublespacing}}
+% handle font size, warning for 10pt and 11pt, defaulting to 12pt
+\def\@sizeoption{12pt}
+\newcommand{\@sizeoption@warning}{%
+ \ClassWarningNoLine{utexasthesis}{The formatting guidelines recommend using 12pt}}
+\DeclareOption{10pt}{\gdef\@sizeoption{10pt}\@sizeoption@warning}
+\DeclareOption{11pt}{\gdef\@sizeoption{11pt}\@sizeoption@warning}
+\DeclareOption{12pt}{\gdef\@sizeoption{12pt}}
+% cascade any other options into the \LoadClass[...]{report} call
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+% process options and load report.cls
+\ProcessOptions\relax
+\LoadClass[\@sizeoption]{report}
+
+% 1.25 inch margins except for the page number, which should be 1in from the bottom
+\RequirePackage[letterpaper,hmargin=1.25in,top=1.25in,bottom=1in,includefoot]{geometry}
+\RequirePackage[T1]{fontenc}
+\RequirePackage[\@setspaceoption]{setspace}
+% The indentfirst package ensures that every paragraph is indented,
+% even those at the beginning of chapters/sections
+\RequirePackage{indentfirst}
+% > Paragraph indentions may be five to ten spaces.
+% The width of a space for the normal font is 3pt, making the legal range 15pt to 30pt.
+% The official Word template uses .5 inch (≈36pt)
+% LaTeX's default \parindent is 1.5em (=18pt), which falls within the legal range.
+% \setlength{\parindent}{1.5em}
+
+\RequirePackage{natbib}
+\setcitestyle{round,comma,yysep={;}}
+
+% table of contents configuration
+\RequirePackage[nottoc]{tocbibind}
+\RequirePackage{tocloft}
+\renewcommand{\contentsname}{Table of Contents} % default: Contents
+\renewcommand{\cftdotsep}{0.25} % default: 4.5
+% Prefix chapter numbers with "Chapter " and add space as needed
+\renewcommand{\cftchappresnum}{\@chapapp\ }
+\newlength{\cftchappresnum@width}
+\settowidth{\cftchappresnum@width}{\cftchappresnum}
+\addtolength{\cftchapnumwidth}{\cftchappresnum@width}
+
+\RequirePackage[hyphens]{url}
+\RequirePackage[pdfusetitle]{hyperref}
+% hyperlink DOIs in bibliography (for BibTeX entries with doi fields)
+\RequirePackage{doi}
+
+% > Headings may be bolded and no more than 2 points larger than the rest of the text.
+% When the 12pt option is used, \large is actually 14.4pt, but, close enough?
+\newcommand{\headingsize}{\large}
+\renewcommand{\Large}{\headingsize}
+\renewcommand{\LARGE}{\headingsize}
+\renewcommand{\huge}{\headingsize}
+\renewcommand{\Huge}{\headingsize}
+
+% chapter heading configuration
+% simplified version of the original from report.cls
+\def\@makechapterhead#1{{%
+ \centering\headingsize
+ % print "Chapter N"
+ \@chapapp\space\thechapter
+ \par\nobreak
+ \vskip.25\baselineskip
+ \@makeschapterhead{#1}
+}}
+% star-chapter variation
+\def\@makeschapterhead#1{{
+ \centering\headingsize
+ % prevent page break between following lines at all costs
+ \interlinepenalty=10000
+ \bfseries #1\par\nobreak
+ \vskip\baselineskip
+}}
+
+% toc/lot/lof heading configuration
+\setlength{\cftbeforetoctitleskip}{\z@}
+\setlength{\cftaftertoctitleskip}{.25\baselineskip}
+\renewcommand{\cfttoctitlefont}{\headingsize\bfseries\hspace*{\fill}}
+\renewcommand{\cftaftertoctitle}{\hspace*{\fill}}
+% copy toc to lot
+\setlength{\cftbeforelottitleskip}{\cftbeforetoctitleskip}
+\setlength{\cftafterlottitleskip}{\cftaftertoctitleskip}
+\renewcommand{\cftlottitlefont}{\cfttoctitlefont}
+\renewcommand{\cftafterlottitle}{\cftaftertoctitle}
+% copy toc to lof
+\setlength{\cftbeforeloftitleskip}{\cftbeforetoctitleskip}
+\setlength{\cftafterloftitleskip}{\cftaftertoctitleskip}
+\renewcommand{\cftloftitlefont}{\cfttoctitlefont}
+\renewcommand{\cftafterloftitle}{\cftaftertoctitle}
+
+% Set up default values and setters
+\def\@university{University of Texas at Austin}
+\newcommand{\graduationdate}[2]{\gdef\@graduationmonth{#1}\gdef\@graduationyear{#2}}
+\newcommand{\supervisor}[1]{\gdef\@supervisor{#1}}
+\newcommand{\cosupervisor}[1]{\gdef\@cosupervisor{#1}}
+\def\@othercommitteemembers{}
+\newcommand{\othercommitteemembers}[1]{\gdef\@othercommitteemembers{#1}}
+
+% handle PhD vs. masters based on optional masters argument, which defaults to false
+\if@masters
+ \gdef\@doctype{Thesis}
+ \gdef\@degree{Master of Arts}
+ \gdef\@degreeabbr{M.A.}
+\else
+ \gdef\@doctype{Dissertation}
+ \gdef\@degree{Doctor of Philosophy}
+ \gdef\@degreeabbr{Ph.D.}
+\fi
+
+\newenvironment{middlecenter}{\vspace*{\fill}\begin{center}}%
+ {\end{center}\vspace*{\fill}}
+
+\newcommand{\@signature}[1]{%
+ \vskip2\baselineskip\par\rule{\textwidth}{.7pt}%
+ \vskip-4.4pt\par#1}
+% this question is one of the best and only sources on \@for I could find: https://tex.stackexchange.com/q/2933
+\newcommand{\@makesignatures}{%
+ \@signature{\@supervisor, Supervisor}
+ \@ifundefined{@cosupervisor}{}{%
+ \@signature{\@cosupervisor, Co-Supervisor}}
+ \@for\@i:=\@othercommitteemembers\do{\@signature{\@i}}%
+}
+
+\renewcommand{\maketitle}{%
+ % The copyright, signature, title and dedication pages are counted but not numbered,
+ % and so they all get the empty pagestyle
+ % Generate the copyright page if specified as an option
+ \if@copyright
+ \clearpage\thispagestyle{empty}
+ \begin{middlecenter}
+ \begin{spacing}{4}
+ \bfseries
+ Copyright
+
+ by
+
+ \@author
+
+ \@graduationyear
+ \end{spacing}
+ \end{middlecenter}
+ \fi
+
+ % generate signature page, which differs between Masters and Dissertation
+ \clearpage\thispagestyle{empty}
+ \if@masters
+ \begin{center}
+ \begin{doublespace}
+ \textbf{\small The \@doctype{} committee for \@author{} certifies that this is the approved
+ version of the following \MakeLowercase\@doctype:}
+
+ \hbox
+
+ \hbox
+
+ \textbf{\headingsize\@title}
+
+ \hbox
+
+ \hbox
+ \end{doublespace}
+ \end{center}
+ \hspace{.5\textwidth}\begin{minipage}{.5\textwidth}
+ \begin{doublespace}
+ \textbf{APPROVED BY}
+
+ \textbf{SUPERVISING COMMITTEE:}
+
+ \@makesignatures
+ \end{doublespace}
+ \end{minipage}
+ \else
+ \begin{center}
+ \begin{singlespace}
+ The \@doctype{} Committee for \@author{} certifies that this is the approved
+ version of the following \MakeLowercase\@doctype:
+
+ \hbox
+ \end{singlespace}
+ \begin{doublespace}
+ \textbf{\headingsize\@title}
+ \end{doublespace}
+ \end{center}
+ \hspace{.5\textwidth}\begin{minipage}{.5\textwidth}
+ \begin{singlespace}
+ \textbf{Committee:}
+ \vskip1.5\baselineskip
+
+ \@makesignatures
+ \end{singlespace}
+ \end{minipage}
+ \fi
+
+ % generate the actual title page
+ \clearpage\thispagestyle{empty}
+ \begin{center}
+ \begin{doublespace}
+ \textbf{\headingsize\@title}
+
+ \hbox
+
+ by
+
+ \hbox
+
+ \textbf{\@author}
+
+ \hbox
+
+ \textbf{\@doctype}
+
+ \hbox
+
+ Presented to the Faculty of the Graduate School
+
+ of the \@university
+
+ in Partial Fulfillment
+
+ of the Requirements
+
+ for the Degree of
+
+ \hbox
+
+ \textbf{\@degree}
+
+ \hbox
+
+ The \@university
+
+ \@graduationmonth{} \@graduationyear{}
+ \end{doublespace}
+ \end{center}
+ \clearpage
+}
+
+% Optional dedication page is triggered by using the dedication environment in the right place
+\newenvironment{dedication}{\thispagestyle{empty}\begin{middlecenter}}{\end{middlecenter}}
+
+% Optional acknowledgments page is triggered by using the acknowledgments environment in the right place
+\newenvironment{acknowledgments}{%
+ \chapter*{Acknowledgments}
+}{}
+
+% Required abstract page is triggered by using the abstract environment in the right place
+\renewenvironment{abstract}{%
+ \clearpage
+ \begin{center}
+ \begin{doublespace}
+ {\headingsize\textbf{Abstract}}
+
+ \hbox
+
+ {\headingsize\textbf{\@title}}
+
+ \hbox
+
+ by
+
+ \hbox
+
+ \@author, \@degreeabbr
+
+ The \@university, \@graduationyear
+
+ \@ifundefined{@cosupervisor}{
+ Supervisor: \@supervisor{}
+ }{
+ Supervisors: \@supervisor{} and \@cosupervisor{}
+ }
+ \end{doublespace}
+ \end{center}
+
+ \indent\ignorespaces%
+}{}
+
+\pagenumbering{roman}
+
+\newcommand{\maketableofcontents}{%
+ \clearpage
+ \tableofcontents
+ \clearpage
+ \listoftables
+ \clearpage
+ \listoffigures
+ \clearpage\pagenumbering{arabic}
+}
+
+\newcommand{\makeappendix}{%
+ \appendix
+ % ensure that the TOC picks up the redefined value of \@chapapp
+ \addtocontents{toc}{\protect\renewcommand\protect\cftchappresnum{\@chapapp\ }}
+}
+
+\newcommand{\makebibliography}[1]{%
+ \clearpage%
+ \bibliography{#1}
+}
+
+% Optional vita page is triggered by using the vita environment in the right place
+\newenvironment{vita}{%
+ \clearpage%
+ \addcontentsline{toc}{chapter}{Vita}%
+ \chapter*{Vita}
+ \noindent\ignorespaces%
+}{}
+
+\newenvironment{address}{%
+ \setlength{\parskip}{1\baselineskip}\par\noindent%
+ \makebox[1in][l]{Address:}%
+ \begin{minipage}[t]{5in}%
+}{\end{minipage}}
+
+\newcommand{\declaretypist}[1]{\setlength{\parskip}{1.7\baselineskip}\par\noindent%
+ This \MakeLowercase\@doctype{} was typed by #1.}
+
+% overrides in draft mode:
+\if@draft
+ \renewcommand{\maketitle}{}
+ \renewcommand{\maketableofcontents}{%
+ % Just like \maketableofcontents but without the \tableofcontents
+ \clearpage\pagenumbering{arabic}
+ }
+ % instead of clearing the page, just insert a bit of space
+ \renewcommand{\chapter}{\vskip\baselineskip\thispagestyle{plain}\secdef\@chapter\@schapter}
+\fi