% !TEX TS-program = lualatex
% !TEX encoding = UTF-8 Unicode

% Version date: 2026/06/05

\DocumentMetadata 
{
	lang = en-US,
	pdfstandard = { ua-2, a-4f },
	tagging = on % this doc uses tagging commands, tagging must be on
}

%%%%%%%%%%%%%%%

\documentclass[11pt]{article}

\usepackage[letterpaper,margin=1in,footskip=0.5in]{geometry} 
\usepackage[x11names,svgnames,dvipsnames,table]{xcolor}
\usepackage{luacolor} % load AFTER xcolor
\usepackage{mathtools}

\usepackage[en-US]{datetime2} %% change default date format
\makeatletter
\newcommand{\daymonthyeardate}{%
  \DTMenglishordinal{\@dtm@day}\space\DTMenglishmonthname{\@dtm@month} \@dtm@year
}
\makeatother

\usepackage{booktabs}
\usepackage{multicol} % for the two-column nomenclature example

\usepackage{etoolbox} % tag abstractname as strong for html conversion
\patchcmd{\abstract}
  {\bfseries \abstractname}%
  {\bfseries 
  			 \leavevmode
			 \tagstructbegin { tag=Strong }%
             \tagmcbegin     { tag=Strong }%
             \abstractname
             \tagmcend
             \tagstructend
             }{}{}

\tagpdfsetup
	{
  	css-list-add = { mitthesis-style.css } % attach CSS file
	}

\newcommand*\pdfTeX{pdf\TeX}
\newcommand*\LuaLaTeX{Lua\LaTeX}


%%%%%%%%%  Set up text and math fonts  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage[warnings-off={mathtools-colon,mathtools-overbracket},mathbf=sym,mathsf=sym]{unicode-math}
% unicode math loads the fontspec package

\setmainfont{texgyreheros}[
	WordSpace = {1,1.4,1},
	Extension = .otf,
	UprightFont = *-regular,
	ItalicFont = *-italic,
	BoldFont = *-bold,
	BoldItalicFont = *-bolditalic,
	Numbers = Lining,
	Scale=0.91,% same as for newtx
			]        
\setsansfont{texgyreheros}[
	WordSpace = {1,1.4,1},
	Extension = .otf,
	UprightFont = *-regular,
	ItalicFont = *-italic,
	BoldFont = *-bold,
	BoldItalicFont = *-bolditalic,
	Numbers = Lining,
	Scale=0.91,% same as for newtx
			]        
\setmonofont{Inconsolatazi4}[
    Scale=1.05,%
    Extension = .otf,
    UprightFont = *-Regular,
    ItalicFont = *-Regular,% has no italic face
    BoldFont = *-Bold, 
	BoldItalicFont = *-Bold,% has no bold italic face
    RawFeature = {+ss01,+ss02,+ss03},
    ]             
\setmathfont{STIXTwoMath-Regular}[
	Scale=MatchUppercase,
	Extension = .otf,
%    Color=NavyBlue, 
	RawFeature = {+ss01, -ss02, -ss08},
]% ss01 -- switch calligraphic to script; +ss02 -- variants of g, u, v, w, z; +ss08 -- upright integrals

\setmathfontface\mathbf{STIXTwoText-Bold.otf}% to not get text font's sans bold ... could change other text-math faces, if desired


%%%%%%%%%%%   Hyperref related   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage[psdextra]{hyperref}

\hypersetup{
	pdfborder={0 0 0},
	bookmarksnumbered=true,
	bookmarksopen=true,
	bookmarksopenlevel=2,
	colorlinks=true,
	linkcolor=blue,
	citecolor=blue,
	urlcolor=violet,
	filecolor=red, 
	anchorcolor=yellow,% not all pdf viewers recognize this field (Firefox does)
%	colorscheme=phelype,% overrides link, cite, url, file colors with a preset scheme, through \DocumentMetadata
	pdfpagelayout=SinglePage,
	pdfdisplaydoctitle=true,
	pdfstartview=Fit,
	pdfmetalang={en},
	pdftitle={Documentation for the MIT thesis template},
	pdfkeywords={John Lienhard, Massachusetts Institute of Technology, MIT, thesis, dissertation, template, latex},
	pdfnewwindow=true,
	pdfauthor={John H. Lienhard},
	pdfauthortitle={Professor of Mechanical Engineering},
	pdfcaptionwriter={{John H. Lienhard,  V}}, 
	pdfurl={https://lienhard.mit.edu},
	pdfcontactemail={lienhard@mit.edu},
	pdfcontactaddress={77 Massachusetts Avenue, Room 3-166},
    pdfcontactcity={Cambridge, MA},
    pdfcontactpostcode={02139},
    pdfcontactcountry={USA},
    pdfcontacturl={https://lienhard.mit.edu},
    pdfcopyright={Copyright © \the\year\ by John H. Lienhard. Reuse under the MIT license},
	pdfsubject={Documentation for the MIT thesis class and template},
	pdflicenseurl={https://ctan.org/license/mit},
	}

% Directly add the xmp property that shows work is copyrighted. See l3pdfmeta.pdf. 
% This is not automatic with \DocumentMetadata. "True" must be capitalized. 
\ExplSyntaxOn
	  \cs_if_exist:NTF \pdfmeta_xmp_add:n {\pdfmeta_xmp_add:n{<xmpRights:Marked>True</xmpRights:Marked>}}{}
\ExplSyntaxOff
	
\urlstyle{same}% this changes font for \url to the current text font, but it is not recognized by \href.  


%%%%%%%%%%  A nomenclature environment  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\providecommand{\nomname}{Nomenclature}  
\newlength\nomenwidth
\newlength\savitemsep

\makeatletter
% nomenclature entries
\NewDocumentCommand\entry{m m}{%
    \item[#1\hfill]#2%
    \@itempenalty=-\@lowpenalty
}
\ExplSyntaxOn
\tagpdfsetup { role/new-tag = { Nomenclature_list/Div  } }
\tagpdfsetup { role/new-tag = { Nomenclature_entry_heading/Span  } }
\tagpdfsetup { role/new-tag = { MinWidSpan/Span  } }

% nomenclature subheadings 
\NewDocumentCommand\EntryHeading{m}{%
	\itemsep3\p@ plus 1\p@ minus 1\p@
    \goodbreak\item[\tagstructbegin{tag=Nomenclature_entry_heading}\emph{#1}\tagstructend\hfill]\mbox{}% mbox added for tagged pdf 2023/10/11; 2025/09/23 replace \itshape by \emph for css
    \setlength{\itemsep}{\savitemsep}\@itempenalty=10000 % increased to 10000, 2025/04/20
}
\makeatother
%
%   Increase first optional argument to > 2em if wide entries cause undesired misalignment of columns. 
%   Second optional argument can be used to rename the environment, e.g., to List of Symbols.
%   Third optional argument selects section-level or chapter-level style for the nomenclature list.
%   Fourth option argument selects the style of the toc entry (by default, same as #3); the values
%		frontmatter or backmatter can be used when nomenclature is located with front or back matter. 2025/01/17
\NewDocumentEnvironment{nomenclature}{O{2em} O{\nomname} O{section} O{#3}}{%
    \setlength\columnsep{2em}% 
    \setlength{\nomenwidth}{#1}%
    \MakeLinkTarget*{nomenclature}\csname #3\endcsname *{#2}\addcontentsline{toc}{#4}{#2}%
    \raggedright
    \tagstructbegin{tag=Nomenclature_list}
    \begin{list}{}{%
         \setlength{\itemsep}{0pt}%
         \setlength{\parsep}{\itemsep}%
         \setlength{\labelsep}{1em}%
         \setlength{\labelwidth}{\nomenwidth}%
         \setlength{\leftmargin}{\labelwidth}%
         \addtolength{\leftmargin}{\labelsep}%
		 \setlength{\savitemsep}{\itemsep}%
    }%
}{\end{list}%
  \tagstructend
  \ignorespacesafterend}

%	The *-version, nomenclature*, sets the nomenclature in a two-column format.
%   The user must load the multicol package!
%	The loading is done *inside* the environment and *before* the list starts so that:
%	i) the nomenclature heading is not in two-column; ii) the list margins are correct.
%
\NewDocumentEnvironment{nomenclature*}{ O{2em} O{\nomname} O{section} O{#3} }{%
    \setlength\columnsep{2em}% 
    \setlength{\nomenwidth}{#1}%
    \MakeLinkTarget*{nomenclature}\csname #3\endcsname *{#2}\addcontentsline{toc}{#4}{#2}%
    \vspace{-\multicolsep}% don't to add to the vertical space already provided by the heading
	\begin{multicols}{2}%
    \raggedright
    \tagstructbegin{tag=Nomenclature_list}
    \begin{list}{}{%
         \setlength{\itemsep}{0pt}%
         \setlength{\parsep}{\itemsep}%
         \setlength{\labelsep}{1em}%
         \setlength{\labelwidth}{\nomenwidth}%
         \setlength{\leftmargin}{\labelwidth}%
         \addtolength{\leftmargin}{\labelsep}%
		 \setlength{\savitemsep}{\itemsep}%
    }%
}{\end{list}\tagstructend\end{multicols}\ignorespacesafterend}
\ExplSyntaxOff

%%%%%%%%%%%%%   End preamble   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\renewcommand\abstractname{SUMMARY}

\begin{document}

\begingroup  
    \centering
	\ExplSyntaxOn
        \tag_struct_begin:n { tag=Title, title=Title }
        \leavevmode
        \tag_struct_begin:n { tag=Strong }
        \tag_mc_begin:n { tag=Strong }
        \LARGE The~MIT~thesis~template
        \\[1em]
        \tag_mc_end:
        \tag_struct_end:
        \tag_struct_end:
	\ExplSyntaxOff
	\leavevmode\large 
	\tagstructbegin{tag=Strong}\tagmcbegin{tag=Strong}John H. Lienhard\tagmcend\tagstructend \\ 
	Department of Mechanical Engineering \\ Massachusetts Institute of Technology
	\\[1em]
	\daymonthyeardate\\[1em]
\endgroup

\phantomsection\pdfbookmark[1]{\abstractname}{summary}
\begin{abstract}
This \LaTeX{} class formats theses according to the requirements of the MIT Libraries. The 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 typefaces, and it is compatible with either pdfTeX or unicode engines such as LuaLaTeX. When using LaTeX formats dated November 2022 or later, with \LuaLaTeX, the resulting pdf file meets the PDF/A archivability standard. A standard \href{https://www.tug.org/texlive/}{\TeX{} Live} installation includes all other packages required by the template.  This document provides instructions for installation and use of the template.
\end{abstract}

\tableofcontents

\section{BACKGROUND}

The original MIT Thesis template was written \LaTeX{} 2.09 by Stephen Gildea in the late 1980s (in CTAN, \href{https://mirrors.ctan.org/obsolete/macros/latex209/contrib/mitthesis/mitthesis.sty}{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 \LaTeXe\ 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 changed the required format several times, especially as electronic thesis submission became 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 \href{https://libraries.mit.edu/distinctive-collections/thesis-specs/}{requirements of the Libraries}. The underlying code is entirely new, with extensive use of  \texttt{expl3} syntax.

\section{SYSTEM REQUIREMENTS AND INSTALLATION}
The new \texttt{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 (\url{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 to download the most current codes more frequently if they desire. (At the time of this writing, the commercial platform Overleaf.com provides a similar functionality.)

If you are missing a package or documentation, you may obtain it at no cost from CTAN (\href{http://ctan.org}{ctan.org}). 

\subsection{Downloading the template}
The files needed for preparing your thesis are in the CTAN repository: \url{https://ctan.org/pkg/mitthesis}. Copy the subdirectory \texttt{MIT-thesis-template} onto your system. That directory contains files you can modify into your own thesis. 

If the most current version of \texttt{mitthesis.cls} is installed in your system (e.g., if you use an up-to-date version of \TeX{} Live), you are all set.  If not, copy the file \texttt{mitthesis.cls} into your working directory. If you plan to use fonts other than the default fonts, ensure that the subdirectory \texttt{fontsets} is present in your working directory.

\subsection{File structure}
The new MIT thesis template consists of: \texttt{mitthesis.cls}; a root file \texttt{MIT-Thesis.tex}; a file to load the abstract, \texttt{abstract.tex}; a file for design options, \texttt{mydesign.tex}; and an optional file to change the fonts (see the subdirectory, \texttt{fontset}). You should change the name of the root file to something more descriptive of your own work (e.g., \texttt{JohnsThesis.tex}, \texttt{MagnumOpusScientiae.tex},\ldots). In addition, files must be loaded for acknowledgments, an optional biosketch, chapters, optional appendices, and bibliography.

\subsection{\LaTeX{} engine}
The template works with either \pdfTeX{} or the unicode engine \LuaLaTeX.  With the latter, unicode fonts can be used in your thesis. \LuaLaTeX{} also enables the direct use of Lua code in your \texttt{.tex} file. With Lua code, you can automate plotting, table generation, and other numerical computations. \LuaLaTeX{} will become the primary \LaTeX{} engine over time, and it is necessary for producing tagged PDF documents with \texttt{mitthesis.cls}.

\subsection{PDF/A compliance and PDF accessibility}
PDF/A-2b compliance is automatic if \verb|\DocumentMetadata{pdfstandard = a-2b, pdfversion=1.7}| is issued before the \verb|\documentclass{..}| command. 

Recent \LaTeX{} formats (e.g., November 2025) have implemented \emph{accessible} PDF/A. Depending upon the packages loaded, the MIT Thesis template run with the \LuaLaTeX{} engine can produce ``well-tagged pdf'': PDF/UA-2 or PDF/A-4F.  In this case, use: 
\begin{quote}
	\verb|\DocumentMetadata{ pdfstandard = { ua-2 , a-4f }, tagging = on }|
\end{quote}
(\LaTeX{} now provides PDF version 2.0 by default.)
PDF/A compliance can depend on your fonts and figures, e.g., PDF figures must also be compliant. Not all \LaTeX{} packages have been upgraded for compliance. In particular, the \texttt{listings} package, used in \texttt{appendixa.tex}, is not compatible as of Oct.\ 2025; and it can cause a compilation error if tagging is on.

Accessible PDF files can be rendered accurately as HTML files.  See, for example, \hrefurl{https://ngpdf.com}{ngpdf.com}. As of v1.21, a CSS style sheet can be embedded in the MIT Thesis pdf to control web styling.  See \texttt{mitthesis-style.css}. 

PDF/A compliance can be tested at \hrefurl{https://demo.verapdf.org}{demo.verapdf.org}. Most of the files in the \hrefurl{https://ctan.org/tex-archive/macros/latex/contrib/mitthesis/examples}{examples} directory are PDF/UA-2 compliant (the ones that aren't were generated with \pdfTeX{} owing to font limitations).

\section{SETTING UP TITLE PAGE, ABSTRACT, AND BIBLIOGRAPHY}
Various fields and commands must be changed to your own information in the preamble of \texttt{MIT-Thesis.tex} and immediately after the \verb|\begin{document}| command. This information includes the title, author, degree and other essential information.  With the comments in \texttt{MIT-Thesis.tex}, this step should be self-explanatory. Nevertheless, some explanation follows.


\begin{enumerate}
\item In the \verb|\hypersetup{..}| command, change the sample file to match your own information (e.g., keywords, subject, etc.). These commands generate metadata that are incorporated into the pdf file.  

\item \verb|\title{the title of your thesis}|

\item \verb|\Author{author full name}{author department}[1st PREVIOUS degree][2nd...| \linebreak
Note that third, fourth, fifth, and sixth arguments are optional [..] and may be omitted.  Use once for each author.

\item \verb|\Degree{name of degree}{department giving degree}|. Use once for each degree fulfilled by the thesis. 

If two departments jointly issue a single degree, leave the degree name blank for the \emph{second} degree: 
\verb|\Degree{}{2nd department name}|.  
If the thesis satisfies two degrees from one department, leave the department argument blank for 
the \emph{second} degree: \verb|\Degree{2nd degree name}{}|. 

If you wish to cause a line break in a very long degree name, you can insert \verb|\\| at an appropriate point.
Department names should not break across lines.  For example:
\begin{quote}
\verb|\Degree{Doctor of Philosophy \\ in \\ Electrical Engineering and Computer|\linebreak
\hbox{}\qquad\verb|Science}{Department of Electrical Engineering and Computer Science}|
\end{quote}

\item \verb|\Supervisor{supervisor name}{supervisor title}[supervisor department]|. Use once for each supervisor.  The optional supervisor department is required when generating the thesis committee page. See \S\ref{sec:6.3} if your supervisor has more than one title or sits in more than one department.

\item \verb|\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. 

\item \verb|\DegreeDate{Month}{year}|. Date degree is awarded (February, May, June, or September).  

\item \verb|\ThesisDate{date}|. Date that your final thesis is submitted to the department.

\item \verb|\Reader{acceptor name}{reader title}{reader department}|. For thesis committee members other than the supervisor. Using this once will cause the generation of a thesis committee page between the title and abstract pages. See \S\ref{sec:6.3} if a reader has more than one title or sits in more than one department.

\end{enumerate}

\subsection{Copyright license}
By default, the thesis template reserves all rights to the author, with a carve-out for MIT.  If you wish to make your thesis available under a Creative Commons License, issue the following command between
\verb|\begin{document}| and \verb|\maketitle|: \verb|\CClicense{license type}{license url}|.  For example,

\begin{verbatim}
 \CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}
\end{verbatim}
\noindent MIT thesis copyright options and policies and Creative Commons licenses are discussed on these links:
\begin{itemize}[para-vspace=0em,item-vspace=0pt,begin-vspace=5pt]% see latex-lab/blocks-doc.pdf
\item\url{https://libraries.mit.edu/distinctive-collections/thesis-specs/#owner}
\item\url{https://creativecommons.org/share-your-work/cclicenses/}
\end{itemize}

\subsection{Bibliography}
You may generate your bibliography using either \texttt{biblatex/biber} or \texttt{natbib/bibtex}.  The template is set up for \texttt{biblatex} by default, rather than the older, less flexible \texttt{natbib}.  The \texttt{biblatex} package is very powerful, and you can customize most aspects the reference list and citations to suit your needs. See the documentation for details: \hrefurl{https://ctan.org/pkg/biblatex}{ctan.org/pkg/biblatex}.

The style of citations and references can be set in your \texttt{.tex} file. For numerical citations of references (e.g., [1]), you can do
\begin{verbatim}
\usepackage[style=ext-numeric-comp,giveninits=true,sorting=none,
     \verb|language=american]{biblatex}
\end{verbatim}
\noindent For IEEE style citations and references, you might do
\vskip 5pt
\verb| \usepackage[style=ieee,maxbibnames=10,sorting=none]{biblatex}|
\vskip 5pt
\noindent For author/year style (Smith, 2024), you might do
\vskip 5pt
\verb| \usepackage[style=authoryear, maxbibnames=10]{biblatex} |
\vskip 5pt
\noindent In the author/year style, \verb|\cite{..}| commands do not automatically produce parentheses. Instead, you can do
\verb|\parencite{..}| to get ``(Author, year).''

\section{CLASS OPTIONS}
Class options may be specified for \verb|\documentclass[..]{mitthesis}|. These options are described in Table~\ref{tab:1} and the subsections that follow.

\tagpdfsetup{table/header-rows={1}}
\begin{table}
\caption{Options to the document class\label{tab:1}}
\smallskip\setlength\extrarowheight{3pt}%
\centering{%
\small
\begin{tabular}{>{\ttfamily\raggedright}l<{} >{\raggedright\arraybackslash}p{42em} }
\toprule
\tagstructbegin{tag=MinWidSpan}\tagmcbegin{tag=MinWidSpan}\textrm{Class option}\tagmcend\tagstructend & Effect \\
\midrule
fontset 	& is a keyvalue, \texttt{fontset = <\emph{name}>}, which selects the set of fonts used for the thesis. See description below. \\
lineno 		& loads  the \texttt{\hrefurl{https://ctan.org/pkg/lineno}{lineno}} package, which provides line numbers, as for editing. The \hrefurl{https://ctan.org/pkg/lineno}{lineno} package  provides additional commands to control line numbering. \\
mydesign 	& loads the file \texttt{mydesign.tex}, which in turn loads code or packages that change the style of titles, headings, captions, margins, lists, and so on. You may edit \texttt{mydesign.tex} as you prefer or use the option as a key value to load a different file, \texttt{[mydesign=some-file]}\\
twoside 	& gives facing-page behavior for two-sided printing; omitting it will eliminate the even-numbered blank pages.\\[\jot]
\bottomrule
\end{tabular}}%
\end{table}

\subsection{Font loading}
By default, \texttt{mitthesis.cls} will load the traditional \LaTeX{} typeface, Computer Modern (for \pdfTeX) or Latin Modern (for unicode engines).  By using the key value \texttt{fontset=$\cdots$} in the \verb|\documentclass| command, you can select a different set of fonts.  

Eleven font sets are predefined, including the default set (see Table~\ref{tab:2}).  Three work only with \pdfTeX, four work only with unicode engines, and four 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 \emph{must} have the directory \texttt{fontsets} as a subdirectory of your working directory, including its files as named. The relevant fonts must also be on your computer; but all (except Lucida) are included in TeX Live and will be present in a complete \LaTeX{} installation.

Among the predefined font sets, Termes and NewTX are serifed typefaces similar to the digital typeface Times New Roman.  STIX Two is more similar to the original metal-type Times typeface. Libertinus (a fork of Linux Libertine) is a serif typeface inspired by 19th century book type. Lucida is a serifed typeface designed for high legibility at small size or on low resolution devices. Lucida 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 typefaces similar to Helvetica. NewTXsf is a sans-serif math font which draws upon glyphs from the STIX fonts. Fira is a humanist sans-serif text typeface designed in conjunction with the Firefox operating system. Finally, Computer Modern (and its extension Latin Modern)---the traditional \LaTeX{} typeface---is a Didone typeface, with high contrast between thick and thin elements.  The \texttt{lmodern} fontset replaces Computer Modern by Latin Modern when running \pdfTeX.
% STIX Two, Termes, and LMR do not include a separate bold math font.

You may also place your own font-set file, say \texttt{Myfontset.tex}, in your working directory, and load it with:
\verb|\documentclass[fontset=Myfontset]{mitthesis}|.

\begin{table}[t]
\caption{Predefined font sets\label{tab:2}}
\vspace{0.5em}
\centering{%
\small
\tagpdfsetup{table/header-rows={1}}
\begin{tabular}{>{\ttfamily}l<{}l l p{3em} p{3em} >{\raggedright\arraybackslash}p{22em} }
\toprule
\tagstructbegin{tag=MinWidSpan}\tagmcbegin{tag=MinWidSpan}fontset\tagmcend\tagstructend & \pdfTeX & unicode & text font & math font & details \\
\midrule
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 \\[1em]
default		 	& yes 	& yes 	& serif & serif & CM \& LM fonts are included in \TeX{} Live \\
libertinus 		& yes 	& yes 	& serif & serif & included in \TeX{} Live \\
%in \TeX{} Live for \pdfTeX. For unicode, OpenType text fonts freely available here 
%\linebreak \url{https://github.com/alerque/libertinus/releases} \\
lmodern 		& yes	& yes 	& serif	& serif & included in \TeX{} Live \\
lucida 			& yes	& yes 	& serif	& serif & the Lucida fonts are available from the \TeX{} Users Group, 
\url{https://tug.org/store/lucida} \\[2em]
heros-stix2  	& no 	& yes 	& sans 	& serif & included in \TeX{} Live \\ 
%\url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} \linebreak\url{https://github.com/stipub/stixfonts} \linebreak  fonts are free \\
stix2			& no	& yes	& serif	& serif	& included in \TeX{} Live \\ 
%\url{https://github.com/stipub/stixfonts}, fonts are free\\
termes			& no	& yes	& serif	& serif	& included in \TeX{} Live \\ 
%\url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} fonts are free\\
termes-stix2	& no 	& yes	& serif & serif & included in \TeX{} Live \\
%\url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} \linebreak\url{https://github.com/stipub/stixfonts}\linebreak fonts are free\\
\midrule
\multicolumn{5}{l}{Typewriter (monospaced) fonts are also loaded for unicode} & Inconsolata (sans serif): included in \TeX{} Live 
%\url{https://ctan.org/tex-archive/fonts/inconsolata} 
Cursor (serif): included in \TeX{} Live \\
%\url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} \\
\bottomrule
\end{tabular}}%
\end{table}

\subsection{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 \texttt{mydesign.tex}. The \texttt{mitthesis} class will insert the content of \texttt{mydesign.tex} at the appropriate point (prior to loading  \hrefurl{https://ctan.org/pkg/babel}{babel}, fonts, or \texttt{\hrefurl{https://ctan.org/pkg/hyperref}{hyperref}}). You should not need to edit the class file.

With \texttt{mydesign.tex}, you can set options for a package that manages color, such as \texttt{\hrefurl{https://ctan.org/pkg/xcolor}{xcolor}}. You can change the margins with \verb|\newgeometry{..}| from the \texttt{\hrefurl{https://ctan.org/pkg/geometry}{geometry}} package, say, to create a binding margin for two-sided printing. You can insert any other code to change the design, for instance, you can renew the definition of \verb+\section+ to change fonts, font color, or font features (using commands from the \texttt{fontspec} package with \LuaLaTeX). You can also load other packages.

As distributed, \texttt{mydesign.tex} will set caption labels in bold face type. For example, ``Figure 1.1:'' is made bold. 
If your \LaTeX{} format is dated 2025/11/01 or later, the code uses \LaTeX's socket and plug mechanism to change the label.
 If your format is older, the \texttt{\hrefurl{https://ctan.org/pkg/caption}{caption}} package is loaded to change the label.\footnote{As of version 1.22, \texttt{mitthesis.cls} includes its own implementation of \texttt{\textbackslash subfigure} and \texttt{\textbackslash subcaption}, without loading the \texttt{\hrefurl{https://ctan.org/pkg/subcaption}{subcaption}} package.} \LaTeX's hook mechanism can change the style of the caption \textit{text} for recent formats and the \texttt{caption} package can do so for older formats (see \texttt{mydesign.tex}).
 
The class option \texttt{[mydesign]} can also be used as a key value, in the form \texttt{[mydesign=some-file]}, where \texttt{some-file.tex} will be loaded if it is in your working directory. Two examples of design files are in the \texttt{examples} directory. One, \verb+mydesign_redsans_headings+, puts chapter headings, section headings, and caption labels in dark red, sans-serif type. This option pairs well with fontsets like \texttt{newtx} and \texttt{heros-stix2}. The second, \verb+mydesign_libertinus_headings+, uses stylistic alternate characters and ligatures in chapter titles and section headings, and it puts caption labels in bold type. This style only runs with the \texttt{libertinus} fontset; by editing this file, you can limit the use of alternates to chapter titles to provide a more restrained design.  These are simply examples, not official MIT styles.

Hyperlink colors and pdf bookmark or viewing options from the \texttt{hyperref} package can be changed by using \verb|\hypersetup{ .. }| in the preamble or using \verb|\AtBeginDocument{ \hypersetup{ .. } }| in the \texttt{mydesign.tex} file.

\subsection{Single-sided vs.\ double-sided layout}
The sample template uses the option \texttt{[twosided]}, which starts major sections (abstract, table of contents, chapters, etc.) on odd-numbered pages.  This arrangement is suitable for two-sided printing, but can lead to empty even-numbered pages. If you do not wish to have this behavior, omit that option.  By default, even and odd page margins are the same; this can be changed in \texttt{mydesign.tex} if necessary.

\subsection{Additional commands}
The class also provides \verb|\DegreeYear|, \verb|\DegreeMonth|, and \verb|\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.

\subsection{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 four optional arguments: [1] adjust space between symbol and definition (default is 2 em); [2] title of the nomenclature list (default is ``Nomenclature''); [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); and [4] the style of the entry in the table of contents, which can be given as ``frontmatter'' or ``backmatter'' if you are using a single nomenclature for the whole thesis (default is to match [3]).  

A single-column nomenclature list is produced by \verb|\begin{nomenclature}|. A two-column nomenclature list is produced by \verb|\begin{nomenclature*}|, provided that \verb|\usepackage{multicol}| is added to your preamble.

For example, with \verb+\usepackage{multicol}+ in the preamble, the following code 
{\small
\begin{center}
\begin{minipage}{0.85\textwidth}
\begin{verbatim}
\begin{nomenclature*}[2em][Nomenclature for Chapter 1][section]
\EntryHeading{Roman letters}
\entry{$\symcal{C}$}{material curve}
\entry{$\symbfup{r}$}{material position [m]}
\entry{$\symbfup{u}$}{velocity [m $\cramped{\textsf{s}^{-1}}$]}
\EntryHeading{Greek letters}
\entry{$\Gamma$}{circulation [$\cramped{\textsf{m}^2}$ $\cramped{\textsf{s}^{-1}}$]}
\entry{$\rho$}{mass density [kg $\cramped{\textsf{m}^{-3}}$]}
\entry{$\symbfup{\omega}$}{vorticity $[\cramped{\textsf{s}^{-1}}$]}
\end{nomenclature*}
\end{verbatim}
\end{minipage}
\end{center}
}
produces the two-column nomenclature list below:\footnote{The command \texttt{\textbackslash cramped} is from the \texttt{mathtools} package; it sets the superscript slightly lower. The command \texttt{\textbackslash symbfup} is from the \texttt{unicode-math} package, which is automatically loaded when running LuaLaTeX; in pdfTeX, use \texttt{\textbackslash bm\{\textbackslash omega\}} instead.}

\begin{nomenclature*}[2em][Nomenclature for Chapter 1][section]
\EntryHeading{Roman letters}
\entry{$\symcal{C}$}{material curve}
\entry{$\symbfup{r}$}{material position [m]}
\entry{$\symbfup{u}$}{velocity [m $\cramped{\textsf{s}^{-1}}$]}
\EntryHeading{Greek letters}
\entry{$\Gamma$}{circulation [$\cramped{\textsf{m}^2}$ $\cramped{\textsf{s}^{-1}}$]}
\entry{$\rho$}{mass density [kg $\cramped{\textsf{m}^{-3}}$]}
\entry{$\symbfup{\omega}$}{vorticity $[\cramped{\textsf{s}^{-1}}$]}
\end{nomenclature*}


\section{PACKAGES FOR MATH, CHEMISTRY, CODE, TABLES, AND MORE}
The \texttt{mitthesis} class loads the \texttt{amsmath} package and its extension \texttt{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: \url{https://ctan.org/pkg/amsmath} and \url{https://ctan.org/pkg/mathtools}.\looseness=1

Specialized packages for many disciplines can be found in \hrefurl{https://ctan.org}{CTAN}.  These include subjects like \hrefurl{https://ctan.org/topic/chemistry}{chemistry}, \hrefurl{https://ctan.org/topic/linguistic}{linguistics}, and \hrefurl{https://ctan.org/topic/physics}{physics}.  As examples of such packages, the sample thesis template uses the package \hrefurl{https://ctan.org/pkg/mhchem}{mhchem} to set chemical equations and the package \hrefurl{https://ctan.org/pkg/listings}{listings} to list computer code.

Several packages focus on table and tabular environments.  The \hrefurl{https://ctan.org/pkg/booktabs}{\texttt{booktabs}} package, used in the sample thesis template, produces better quality horizontal lines (called \emph{rules}) for separating material in tables.  The \hrefurl{https://ctan.org/pkg/array}{array} package (also used) provides additional options for column formats in tabular environments, the \hrefurl{https://ctan.org/pkg/dcolumn}{dcolumn} package (also used) aligns columns of numbers on the decimal separator, and the \hrefurl{https://ctan.org/pkg/longtable}{longtable} package (also used) formats multipage tables with automatic page breaking.

When selecting a package, 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 \texttt{mitthesis} are listed in Table~\ref{tab:3} on page~\pageref{tab:3}.

\begin{table}
\caption{External packages used. For documentation, visit CTAN, \url{https://ctan.org}.  Alternatively, if you have \hrefurl{https://www.tug.org/texlive/}{\TeX{} Live} installed, you can open a terminal window and type \texttt{\%\  texdoc package-name}.\label{tab:3}}\vspace{1em}
\centering{\small%
\setlength\extrarowheight{3pt}
\tagpdfsetup{table/header-rows={1}}
\begin{tabular*}{\textwidth}{>{\ttfamily}l<{}@{\extracolsep{\fill}}p{18em} p{22em} }
\toprule
\tagstructbegin{tag=MinWidSpan}\tagmcbegin{tag=MinWidSpan}Package\tagmcend\tagstructend & Purpose in class file & How it can be used\\
\midrule
bm		 & defines commands to access bold math symbols (loaded for default fonts) & with \pdfTeX, the command \verb|\bm{..}| produces a bold math symbol \\
bookmark & is loaded automatically by \newline \verb+\DocumentMetadata+ & customize pdf bookmarks \\
doi		 & support for hyperlinking DOIs		&  hyperlink a doi number: \verb|\doi{..}| \\
etoolbox & extend or modify other macros  		&  can use in preamble to modify macros, if needed \\
geometry & set page size and margins			&  can use \verb|\newgeometry| in \texttt{mydesign.tex}\\
graphicsx& support for inserting images			&  use to include graphics\\
hyperref & support for hyperlinks and metadata  &  must complete metadata setup in preamble\\
mathtools& loads and extends \texttt{amsmath} 	&  \textbf{many useful math macros available}.  See documentation for \texttt{amsmath} and \texttt{mathtools} \\
\midrule
% hyperxmp & fallback if no \verb|\DocumentMetadata{..}|&  ---\\
kvoptions&  key value fallback for systems older than 2022/11/01 & ---\\
% xparse	 & for systems older than 2020/10/01 & macros to define new commands\\
\midrule
lineno	 & class option to add line numbers	& keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package adds commands to control numbering\\
\midrule
% caption    & could also be loaded in \texttt{mydesign.tex} 		& support for caption styling \\
% subcaption & could also be loaded in \texttt{mydesign.tex}		& support for subfigures within figures \\
xcolor	   & could also be loaded in \texttt{mydesign.tex} 		& support for colors, including colored fonts \\[0.7em]
array	   & --- & additional options for formatting table columns \\
booktabs   & --- & better quality tables, with additional commands \\
dcolumn    & --- & align number columns on selectable separators \\
longtable  & --- & multipage tables with automatic page breaking \\
microtype  & --- & typographical refinements: character protrusion, font expansion, letter spacing (tracking), etc. \\
\midrule
babel	 & --- & if you use multiple languages, load \texttt{babel} in a fontset file before loading fonts \\
biblatex & --- & sample template uses this bibliography tool. \newline Change to \texttt{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 (\texttt{unicode-math} loads \texttt{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 formul\ae\ (see sample template, Chapter~1) \\
multicol & --- & used in two-column nomenclature list \\
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\\
\bottomrule
\end{tabular*}}%
\end{table}

\section{TROUBLESHOOTING AND MODIFICATIONS}

\subsection{Listing thesis committee members or using a signature page}
Listing committee members (with or without signatures) is not required under MIT's thesis specifications. Only the thesis supervisor should appear on the title page, not a list of committee members.  However, some departments may require a separate committee or signature page.  That page can be inserted by the author between the title and abstract pages.  Check with your department about this page and any associated formatting requirements. 

\subsection{Dealing with multiple titles in the signature block}\label{sec:6.3}
When a student is in multiple departments or a thesis supervisor or reader has multiple titles, you can obtain a line break with proper horizontal spacing by doing
	\vskip 5pt
	\quad\verb|\Author{name}{first department and \\ & second department}|
	
	\quad\verb|\Supervisor{name}{first title and \\ & second title}|
	\vskip 5pt
\noindent The same trick works in the \verb|\Acceptor| command and for permutations of these multiplicities.
\textbf{\TeX hackers note:} The signature block is typeset as a \LaTeX{} \texttt{tabular} environment as of version 1.18.

\subsection{Overflowing title page: managing space} If your title page overflows the vertical space (from too many authors, degrees, previous degrees, etc.), you can use some or all of the following techniques. The commands must be given before \verb|\maketitle|.
\begin{enumerate}
 \item Reduce the 12 pt and 18 pt skips between the various blocks of text to 6 pt with this command:
	\vskip 5pt
	\noindent\verb|\Tighten|
 \item Reduce the font size in the signature block with this command:
	\vskip 5pt
	\noindent\verb|\SignatureBlockSize{\small}| 
 \item Put the acceptor name and title onto two lines, rather than three, by putting the acceptor's position into the second argument and leaving the third argument blank:
	\vskip 5pt
	{\small\noindent\verb|\Acceptor{Tertius Castor}{Professor and Graduate Officer, Department of Research}{}|}
 \item Reduce the font size of the the author name[s] from \verb|\large| to \verb|\normalsize| with this command:
	\vskip 5pt
	\noindent\verb|\AuthorNameSize{\normalsize}|
 \item Omit previous degrees from the title page, instead mentioning them in the biographical sketch.
\end{enumerate}

\subsection{Push title page text toward top} 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):
	\vskip 5pt
	\quad\verb|\Squash| 
	\vskip 5pt
\noindent 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. This command must be given before \verb|\maketitle|.

\subsection{Overflowing thesis committee members page: managing space}
Reduce the 56 pt skips at top to 32 pt with this command:
	\vskip 5pt
	\verb|\CMPShortenTop|
	\vskip 5pt
	
\noindent This command must be given before \verb|\maketitle|.

\subsection{Changing paragraph separation}
If you prefer to denote paragraph breaks by vertical space rather than indentation, you can try the \texttt{parskip} package: \hrefurl{https://ctan.org/pkg/parskip}{ctan.org/pkg/parskip}. See that package's documentation for details.

\subsection{Non-standard usage}
To adapt this template for use at a different institution, or for specific departmental needs, you can put the following commands in your preamble.  
\begin{itemize}
\item Use \verb|\Institution{Your Institution}| to change MIT to your own institution on the title page.

\item Use \verb|\maketitle*| (in place of \verb|\maketitle|) to drop the MIT copyright permission statement.

\item If your institution issues degrees in months other than February, May, June, or September, you can still put those months into the 
\verb|\DegreeDate| command. To suppress the resulting error message, put \verb|\SuppressMonthError| before \verb|\maketitle*|. 

\item Omitting \verb|\Acceptor| commands will drop the ``Accepted by:'' field. To suppress the resultant error message, put \verb|\SuppressAcceptorError| before \verb|\maketitle*|.

\item To change ``Thesis Supervisor'' to something else, use \verb|\SupervisorDesignation{..}|.
\item To change ``Thesis Committee''  to something else, use \verb|\ThesisCommitteeName{..}|.
\item To change ``Committee member''  to something else, use \verb|\ThesisReaderName{..}|.

\end{itemize}
\emph{Please do not remove the license/copyright text from the sources files --- this code took me some time write!}

\section[RESOURCES FOR LATEX]{RESOURCES FOR \LaTeX}
\LaTeX{} documentation is easy to find online. A few useful resources, among many, are these:
\begin{description}
\item[\LaTeX{} Wikibook.] \url{https://en.wikibooks.org/wiki/LaTeX}. An online tutorial book.
\item[\LaTeX 2e: An unofficial reference manual.] \url{https://latexref.xyz/dev/latex2e.html}. A comprehensive explanation of each \LaTeX{} command by Karl Berry. 
\item[\TeX{} Stack-Exchange.]\ \url{https://tex.stackexchange.com/}. More than 250,000 answered questions, and you can ask your own!
\item[ChatGPT.] At the time of this writing, large language models could sometimes accurately answer \LaTeX-related questions or write acceptable \LaTeX{} and expl3 code. But only sometimes.
\end{description}

\vskip 30pt

\centering{\textcolor{Red3}{\Large\textbf{\emph{Good luck with your thesis and your thesis defense!}}}}

\end{document}