Mitthesis
Mitthesis
Mitthesis
John H. Lienhard
Department of Mechanical Engineering
Massachusetts Institute of Technology
2 November 2023
Background
The original MIT Thesis template was written LATEX 2.09 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 LTEX 2𝜀 in 1994. New engines were developed, particularly pdfTeX during the 1990s and Unicode-aware
A
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 expl3 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/), 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).
1
LATEX engine
The template works with either pdfTEX or unicode engines such as LuaLATEX. With the latter, fonts that you
install in your operating system can be configured for use in your thesis. LuaLATEX also enables the direct
use of lua code in your .tex file.
File structure
The new MIT thesis template consists of: mitthesis.cls; a root file MIT-Thesis.tex; a file to load the
abstract, abstract.tex; a file for design options, mydesign.tex; and an optional file to change the fonts
(see the subdirectory, fontset). You should change the name of the root file to something more descriptive
of your own work (e.g., JohnsThesis.tex, MagnumOpusScientiae.tex,…). In addition, files must be
loaded for acknowledgments, an optional biosketch, chapters, optional appendices, and bibliography.
Bibliography
You may generate your bibliography using either biblatex/biber or natbib/bibtex. The template is
set up for biblatex by default, rather than the older, less flexible natbib.
PDF/A compatibility
PDF/A-2b compliance will be automatic if the \DocumentMetadata{..} command is issued before the
\documentclass{..} command and provided that your graphics are also compliant. This command was
added to LATEX in June 2022. For older versions of LATEX, the mitthesis class will fall back to loading
the hyperxmp package to support pdf metadata, but PDF/A compliance will require post-processing (for
example, by using the PreFlight function of Adobe Acrobat). An up-to-date LATEX installation is preferred.
Current LATEX development (ca. 2023) is working toward fully accessible PDF/A out of the box (e.g.,
PDF/A-2a). Unicode compliance (e.g., PDF/A-2u) depends greatly on your fonts and figures.
2
• \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 the thesis. If the thesis satisfies two degrees from one department, leave the department argument
blank for the second degree: \Degree{2nd degree name}{}
Copyright license
If you wish to make your thesis available under a Creative Commons License, issue the following com-
mand 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/}.
1. Reduce the 12pt and 18pt skips between the various blocks of text to 6pt with this command:
\Tighten
2. Reduce the font size in the signature block with this command:
\SignatureBlockSize{\small}
3. Put the acceptor name and title onto two lines, rather than three, by putting the acceptor’s position
into the 2nd argument and leaving the 3rd argument blank:
4. Reduce the font size of the the author name[s] from \large to \normalsize with this command:
\AuthorNameSize{\normalsize}
5. Omit previous degrees from the title page, instead mentioning them in the biographical sketch.
Also, if you prefer to keep the text toward the top of the page with most white space at the bottom, you
can use this command to squash the vertical glue (TEX’s stretchy space):
\Squash
This command is useful when the text has not already reach the bottom of the page, since the glue gets
squashed automatically when the page is too full.
3
PACKAGE OPTIONS
Package options may be specified for \documentclass[..]{mitthesis}. These options are described
in Table 1 and the subsections that follow.
Font loading
By default, mitthesis.cls will load the traditional LATEX fonts, Computer Modern (for pdfTEX) or Latin
Modern (for unicode engines). By using the key value fontset=⋯ 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 LATEX
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}
Design options
The thesis will follow the default styles of the LATEX report class for sections headings, captions, and lists. If
you prefer different styles you can use the class option [mydesign] which loads the file mydesign.tex.
With mydesign.tex, you can set options for packages that manage color, e.g. xcolor, that change the
margins, or that change the design of titles, captions, and lists: titlesec, caption, or enumitem. You
can also load other packages. The mitthesis class will insert these commands at the appropriate point
(prior to loading babel, fonts, or hyperref). You should not need to edit the class file.
fontset is a keyvalue, fontset = <name>, 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.
4
Table 2: Predefined font sets
fontset pdfTEX unicode text math details
font font
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 CM & LM fonts are included in TEX Live
libertine yes yes serif serif in TEX Live for pdfTEX. For unicode, OpenType
text fonts freely available here
https://sourceforge.net/projects/linuxlibertine/
and the math font here
https://github.com/alerque/libertinus
lucida yes yes serif serif the lucida fonts are available from the TEX User’s
Group, https://tug.org/store/lucida
heros-stix2 no yes sans serif http://www.gust.org.pl/projects/e-foundry/tex-gyre
https://github.com/stipub/stixfonts
fonts are free
stix2 no yes serif serif https://github.com/stipub/stixfonts, fonts are free
termes no yes serif serif http://www.gust.org.pl/projects/e-foundry/tex-gyre
fonts are free
termes-stix2 no yes serif serif http://www.gust.org.pl/projects/e-foundry/tex-gyre
https://github.com/stipub/stixfonts
fonts are free
Typewriter (monospaced) fonts are also loaded for unicode Inconsolata (sans serif):
https://ctan.org/tex-archive/fonts/inconsolata
Cursor (serif):
http://www.gust.org.pl/projects/e-foundry/tex-gyre
Hyperlink colors and pdf bookmark or viewing options from the hyperref package can be changed
by using \hypersetup{ .. } in the preamble or using \AtBeginDocument{ \hypersetup{ .. } } in
the mydesign.tex file.
Additional commands
The class also provides \DegreeYear, \DegreeMonth, and \CopyrightAuthor. The latter combines all
author names into a single token list, e.g., “Joseph O. Hirschfelder, Charles F. Curtiss and R. Byron Bird”; a
period at the end of the final name (e.g., as in “John F. Nash Jr.”) is removed.
5
Nomenclature
An optional nomenclature environment is provided by the class. This environment can support either chapter-
by-chapter nomenclature (at the section level) or a single nomenclature for the entire thesis (at the chapter
level). The environment has three optional arguments: [1] adjust space between symbol and definition; [2]
name (heading) of the nomenclature list; and [3] level, which can be “chapter” or “section” depending on
whether you have one nomenclature list for whole thesis or one for each chapter (the default is section).
For example, the following code
\begin{nomenclature}[2em][Nomenclature for Chapter 1][section]
\EntryHeading{Roman letters}
\entry{$\mathcal{C}$}{material curve}
\EntryHeading{Greek letters}
\entry{$\Gamma$}{circulation [m$^2$ s$^{-1}$]}
\end{nomenclature}
produces the nomenclature list below
• Use \Institution{Your Institution} to change MIT to your own institution on the title page.
• Use \maketitle* (in place of \maketitle) to drop the MIT copyright permission statement
6
• If your institution issues degrees in months other than February, May, June, or September, you can
still put those months into the \DegreeDate command. To suppress the resulting error message, put
\SuppressMonthError before \maketitle*.
• Omitting \Acceptor commands will drop the “Accepted by:” field. To suppress the resultant error
message, put \SuppressAcceptorError before \maketitle*.
Please do not remove the license/copyright text from the sources files — this code took me some time write!
TEX Stack-Exchange. 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 LATEX-related questions and write acceptable LATEX and expl3 code.
7
Table 3: External packages used. For documentation, visit CTAN, https://ctan.org. Alternatively, if you have
TEX Live installed, you can open a terminal window and type % texdoc package-name.
bm defines commands to access bold math with pdfTEX, the command \bm{..} produces a
symbols (loaded for default fonts) bold math symbol
bookmarks is loaded automatically under the new customize pdf bookmarks
pdf-management system
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 LATEX engine is running macros to check which engine, e.g., \ifpdftex
geometry set page size and margins can use \newgeometry in mydesign.tex
graphicsx support for inserting images use to include graphics
hyperref support for hyperlinks and metadata must complete setup in preamble
mathtools loads and extends amsmath many useful math macros available. See docu-
mentation for amsmath and mathtools
lineno loaded if class option is given keyvalue lineno will give line numbers; lineno
package has additional commands that control line
numbering