# The MIT thesis template

John H. Lienhard

Department of Mechanical Engineering

Massachusetts Institute of Technology

23 September 2023

## The MIT THESIS TEMPLATE

This template is suitable for MIT theses of all types and at all levels. The title and abstract pages are automatically laid out from information provided by the user. The template includes options to use a variety of fonts, and it is compatible with either pdfTeX or unicode engines such as luaLaTeX. When using LaTeX formats dated November 2022 or later, the resulting pdf file meets the PDF/A-2b archivability standard. A standard TEX Live installation includes all other packages required by the template.

### Background

The original LaTeX 2.09 template was written by Stephen Gildea in the late 1980s (in CTAN, here). That template was edited by many later students.

LaTeX has changed greatly since the original MIT thesis template was written. LaTeX 2.09 was replaced by LaTeX2e in 1994. New engines were developed, particularly pdfTeX during the 1990s and Unicode-aware engines in the decades that followed. Many packages and fonts were developed to accompany the original platform, particularly after 2000; and major updates to the LaTeX kernel began in 2018. Over the years, the MIT Libraries have changed the required format several times, especially as electronic thesis submission has become the norm. The original template served MIT well; but by the early 2020s, it was substantially out of date. That situation motivated the creation of a new template.

This new MIT thesis template was developed in 2023 at the request of the MIT Libraries. The title and abstract pages strictly follow the current requirements of the Libraries. The underlying code is entirely new, with extensive use of exp13 syntax.

### System requirements

The new mitthesis class uses the features of LaTeX as of 2022, with limited backward compatibility. An up-to-date LaTeX system is therefore necessary when using this template.

LaTeX is a free, open source system. The entire system is distributed through the TeX Live platform ([https://www.tug.org/texlive/](https://www.tug.org/texlive/)), including the basic format, packages, and user interfaces. The system operates on Windows, MacOS, and Unix/Linux. TeX Live is formally updated each year in the spring, and the associated utility package allows users download the most current codes more frequently if they desire. (At the time of this writing, the commercial platform Overleaf.com provides similar functionality.)

If you are missing a package or documentation, you may obtain it at no cost from CTAN (ctan.org).


* \Author{author full name}{author department}[1st PREVIOUS degree][2nd... Note that third, fourth, fifth, and sixth arguments are optional [..] and may be omitted. Use once for each author.
* \Degree{name of degree}{department giving degree}. Use once for each degree fulfilled by thesis. If the thesis satisfies two degrees from one department, leave the department argument blank for the _second_ degree: \Degree{2nd degree name}{}
* \Supervisor{supervisor name}{supervisor title}. Use once for each supervisor.
* \Acceptor{acceptor name}{acceptor title}{thesis related position}. Professor who accepts theses for your department (e.g., the Graduate Officer). Use once for each department.
* \DegreeDate{Month}{year}. Date degree is awarded (February, May, June, or September).
* \ThesisDate{date}. Date that your final thesis is submitted to the department.

Overflowing title page.If your title page overflows (from too many authors, degrees, etc.), you can scale down the signature block at the bottom by issuing this command: \SignatureBlockSize{\small}. You may also compress the acceptor fields by putting the position into the \(2^{\text{nd}}\) argument and leaving the \(3^{\text{rd}}\) argument blank:\Acceptor{acceptor name}{acceptor title and thesis related position}{}.

#### Copyright license

If you wish to make your thesis available under a Creative Commons License, issue the following command between \begin{document} and \maketitle: \CClicense{license type}{license url}. For example,

\CClicense{CC BY-NC-ND 4.0}{[https://creativecommons.org/licenses/by-nc-nd/4.0/](https://creativecommons.org/licenses/by-nc-nd/4.0/)}.

## PACKAGE OPTIONS

Package options may be specified for \documentclass[..]{mitthesis}. These options are described in Table 1 and the subsections that follow.

\begin{table}
\begin{tabular}{l l} \hline \hline Package option & Effect \\ \hline fontset & is a keyvalue, fontset = \textless{}name\textgreater{}, which selects the set of fonts used for the thesis. See description below. \\ Lineno & this option loads the lineno package, which provides line numbers, as for editing. The Lineno package provides additional commands to control line numbering. \\ mydesign & this option loads the file mydesign.tex, which in turn loads the packages xcolor, titlesec, enumitem, caption, subcaption, and anything else that affects document design. You may edit mydesign.tex as you prefer. \\ twoside & gives facing-page behavior for two-sided printing; omitting it will eliminate the even-numbered blank pages. \\ \hline \hline \end{tabular}
\end{table}
Table 1: Options to the document class 

### Font loading

By default, mitthesis.cls will load the traditional lsfEX fonts, Computer Modern (for pdfTEX) or Latin Modern (for unicode engines). By using the key value fontset=\(\cdots\) in the \documentclass command, you can select a different set of fonts.

Ten fontsets are predefined, including the default set (see Table 2). Three work only with pdfTEX, four work only with unicode engines, and three work with either. These options include a mixture of serif or sans serif text and math fonts, as shown in the table. To access the predefined font sets, you _must_ have the directory fontsets as a subdirectory of your working directory, including its files as named.

Among the predefined fonts, Termes and NewTX are serifed fonts similar to the digital font Times New Roman. STIX Two is more similar to the original metal-type Times font. Linux Libertine is a serif font inspired by 19th century book type. Lucida is a serifed font designed for high legibility at small size or on low resolution devices. This font is excellent for mathematics and includes a complete bold-face math font, but it is not free. Heros and NewTX-sans are sans-serif text fonts similar to Helvetica. NewTXsf is a sans-serif math font which draws upon glyphs from the STIX font. Fira is a humanist sans-serif text font designed in association with the Firefox browser. Finally, Computer Modern (and its extension Latin Modern)--the traditional lsfEX font--is a Didone font, with high contrast between thick and thin elements.

You may also place your own fontset file, say Myfontset.tex, in your working directory, and load it with

\documentclass[fontset=Myfontset]{mitthesis}

\begin{table}
\begin{tabular}{l l l l l l} \hline \hline fontset & pdfTEX & unicode & text & math & details \\  & & & font & font & \\ \hline fira-newtxsf & yes & no & sans & sans & included in TEX Live \\ newtx & yes & no & serif & serif & included in TEX Live \\ newtx-sans-text & yes & no & sans & serif & included in TEX Live \\ default & yes & yes & serif & serif & \\ Libertine & yes & yes & serif & serif & in TEX Live for pdfTEX. For unicode, OpenType & text fonts freely available here \\  & & & & & & [https://sourceforge.net/projects/linuxlibertine/](https://sourceforge.net/projects/linuxlibertine/) and the math font here \\  & & & & & & [https://github.com/alerque/libertinus](https://github.com/alerque/libertinus) \\  & & & & & the lucida fonts are available from the TEX User’s & Group, [https://tug.org/store/lucida](https://tug.org/store/lucida) \\ heros-stix2 & no & yes & sans & serif & [http://www.gust.org.pl/projects/e-foundry/tex-gyre](http://www.gust.org.pl/projects/e-foundry/tex-gyre) \\  & & & & & [https://github.com/stipub/stixfonts](https://github.com/stipub/stixfonts) \\ stix2 & no & yes & serif & serif & [https://github.com/stipub/stixfonts](https://github.com/stipub/stixfonts), fonts are free \\ termes & no & yes & serif & serif & [http://www.gust.org.pl/projects/e-foundry/tex-gyre](http://www.gust.org.pl/projects/e-foundry/tex-gyre) \\ termes-stix2 & no & yes & serif & serif & [https://github.com/stipub/stixfonts](https://github.com/stipub/stixfonts) \\  & & & & & fonts are free \\ \hline \hline \end{tabular}
\end{table}
Table 2: Predefined font sets


## PACKAGES FOR MATH, CHEMISTRY, CODE LISTINGS, AND MORE

The mitthesis class loads the amsmath package and its extension mathttools. These packages provide many useful macros for typesetting equations and symbols, such as: environments for aligning and splitting equations or groups of equations; tools for matrices; a wide variety of operators and symbols; tools to define new math operators and paired delimiters; and much, much more. If you are including equations, look at the documentation for these packages: [https://ctan.org/pkg/amsmath](https://ctan.org/pkg/amsmath) and [https://ctan.org/pkg/mathtools](https://ctan.org/pkg/mathtools).

Specialized packages for many disciplines can be found in CTAN. These include subjects like chemistry, linguistics, and physics. As examples of such packages, the sample thesis template uses the package mhchem to set chemical equations and the package Listings to list computer code.

When selecting a package to use, check that it is currently maintained (with relatively recent updates), and compare it to other packages that perform similar functions. Some packages are better than others, and some obsolete packages remain online.

The packages called by mitthesis are listed in Table 3 on page 3.

## USE OUTSIDE MIT

If you wish to adapt this template for use at a different institution, you can put the following commands in your preamble.

* Use \(\verb|Institution|{Your Institution}|\) to change MIT to your own institution on the title page. _New with v1.06._
* Use \(\verb|Vmaketitle|*(in place of \verb|Vmaketitle|) to drop the MIT copyright permission statement
* Omitting \(\verb|Acceptor commands will drop the "Accepted by:" field. To suppress the resultant error message, put \(\verb|SuppressAcceptorError|\) before \verb|Vmaketitle|*.

_New with v1.06._

Please do not remove the license/copyright text from the sources files -- this code took me some time write!

## RESOURCES FOR LTEX

\(\verb|ETEX|\) documentation is easy to find online. A few useful resources, among many, are these:

\(\verb|ETEX|\) **Wikibook.**: [https://en.wikibooks.org/wiki/LaTeX](https://en.wikibooks.org/wiki/LaTeX). An online tutorial book.

\(\verb|ETEX|\) **An unofficial reference manual.**: [https://latexref.xyz/dev/latex2e.html](https://latexref.xyz/dev/latex2e.html). A comprehensive explanation of each \(\verb|ETEX|\) command, from the TeX User's Group.
**TeX Stack-Exchange.**: [https://tex.stackexchange.com/](https://tex.stackexchange.com/). More than 250,000 answered questions, and you can ask your own!
**ChatGPT.**: At the time of this writing, ChatGPT, a chatbot based on a large language model, could both answer some \(\verb|ETEX|\)-related questions and write acceptable \(\verb|ETEX|\) and \(\verb|expl3\) code.

_Good luck with your thesis and your thesis defense!_

\begin{table}
\begin{tabular}{l l l} \hline \hline Package & Class & User \\ \hline bm & defines commands to access bold math symbols (loaded for default fonts) & with pdfTeX, the command \mathbf{..} produces a bold math symbol \\ bookmarks & is loaded automatically under the new pdf-management system & customize pdf bookmarks \\ doi & support for hyperlinking DOIs & hyperlink a doi number: \doi{..} \\ etoolbox & extend or modify other macros & can use in preamble if needed \\ iftex & check which \textbackslash{}TeX engine is running & macros to check which engine, e.g., \textbackslash{}ifpdftex \\ geometry & set page size and margins & can use \textbackslash{}newgeometry in mydesign.tex \\ graphicsx & support for inserting images & use to include graphics \\ hyperref & support for hyperlinks and metadata & must complete setup in preamble \\ hyperxmp & fallback if no \textbackslash{}DocumentMetadata{..} & — \\ kvoptions & key values for systems pre 2022/11/01 & — \\ mathtools & loads and extends amsmath & **many useful math macros available**. See documentation for amsmath and mathtools \\ xparse & for systems older than 2020/10/01 & macros to define new commands \\ \hline lineno & loaded if class option is given & keyvalue Lineno will give line numbers; Lineno package has additional commands that control line numbering \\ \hline caption & also loaded by mydesign.tex & support for caption styling \\ subcaption & also loaded by mydesign.tex & support for subfigures within figures \\ titlesec & also loaded by mydesign.tex & support for styling section headings \\ xcolor & also loaded by mydesign.tex & support for colors, including colored fonts \\ \hline babel & — & if you use multiple languages, load babel in a fontset file before loading fonts \\ biblatex & — & sample template uses this bibliography tool. Change to natbib if you prefer \\ fontenc & — & load this in a fontset file if using pdfTeX \\ fontspec & — & load this in a fontset file if using a unicode engine (unicode-math loads fontspec by default) \\ lipsum & — & create filler text (see sample template, Chapter 1) \\ listings & — & for listing computer code (see sample template, Appendix A) \\ mhchem & — & to format chemical formulae (see sample template, Chapter 1) \\ setspace & — & can be loaded to change the default line spacing, if desired (e.g., for “double-spacing”) \\ unicode-math & — & load in a fontset file if using a unicode engine \\ \hline \hline \end{tabular}
\end{table}
Table 3: External packages used. For documentation, visit CTAN, [https://ctan.org](https://ctan.org). Alternatively, if you have TeX Live installed, you can open a terminal window and type % texdoc package-name.