summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mitthesis/mitthesis-doc/mitthesis-doc.tex
blob: cbf62939fd7b4a4d517eb43f8ae01285ac1969a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
% !TEX TS-program = lualatex
% !TEX encoding = UTF-8 Unicode

% Version date: 17 June 2023

\DocumentMetadata 
{
	pdfstandard = a-2b,%a-3u,%a-4,%
	pdfversion  = 1.7, %2.0,
	lang		= en-US,
%	debug		= {xmp-export}, % note that subject entries are all fine in dc format of outputted xmpi file.
}

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

\documentclass[11pt]{article}

\usepackage[letterpaper,margin=1in,footskip=0.5in]{geometry} 
\usepackage{metalogo}
\usepackage{hologo}
\newcommand*\pdfTeX{\hologo{pdfTeX}}

\usepackage[x11names,svgnames,dvipsnames,table]{xcolor}
\usepackage{luacolor} % load AFTER xcolor

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

\usepackage{booktabs}

%%% Create an optional argument for unnumbered sections and set pdf bookmark (thru \addcontentsline).
%%% The optional argument will manually set the pdf bookmark for that section; can be used to avoid hyperref 
%%%     errors when macros are in section titles.
\let\svsection\section
\RenewDocumentCommand{\section}{s o m}{%
	    \IfBooleanTF {#1}
		{\svsection*{#3}\phantomsection%
					{\IfNoValueTF {#2}
					{\addcontentsline{toc}{section}{#3}}
					{\addcontentsline{toc}{section}{#2}}% removed trailing space 2020/02/28
					}%
		}%
		{\IfNoValueTF {#2}
			{\svsection{#3}}
			{\svsection[#2]{#3}}%
		}%
}

%%% Create an optional argument for unnumbered SUBsections and set pdf bookmark (thru \addcontentsline).
%%% The optional argument will manually set the pdf bookmark for that section; can be used to avoid hyperref 
%%%     errors when macros are in section titles.
\let\svsubsection\subsection
\RenewDocumentCommand{\subsection}{s o m}{%
	    \IfBooleanTF {#1}
		{\svsubsection*{#3}\phantomsection%
					{\IfNoValueTF {#2}
					{\addcontentsline{toc}{subsection}{#3}}
					{\addcontentsline{toc}{subsection}{#2}}
					}%
		}%
		{\IfNoValueTF {#2}
			{\svsubsection{#3}}
			{\svssubection[#2]{#3}}%
		}%
}

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

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

\setmainfont{texgyreheros}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
	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}[% Presumes these are system fonts! Available at: http://www.gust.org.pl/projects/e-foundry/tex-gyre
	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}[% This otf font ships with the LaTeX Inconsolata package (it's in TeX Live)
    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}[% nice glyphs, but kerning requires fixes %% https://github.com/stipub/stixfonts.
	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{%
    unicode,%
%	pdftex,%
	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}}, %{\xmpquote{John H. Lienhard\xmpcomma\  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.  
\RequirePackage{bookmark}% improves handling of pdf bookmarks

%\providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code


%%%%%%%  A nomenclature environment, if needed  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

\makeatletter
\NewDocumentCommand\entry{m m}{%
	\ifblank{#2}{%
		\ClassWarning{\ClassName}{The command \protect\entry requires two arguments. To obtain a subheading, use \protect\EntryHeading}
 		\itemsep3\p@ plus 1\p@ minus 1\p@%
        \goodbreak\item[\itshape#1\hfill]\setlength\itemsep\savitemsep\@itempenalty=1000%
         }{%
         \item[#1\hfill]#2%
         \@itempenalty=-\@lowpenalty%
	}%
}
% A separate command command for nomenclature subheadings 
\NewDocumentCommand\EntryHeading{m}{%
	\itemsep3\p@ plus 1\p@ minus 1\p@%
    \goodbreak\item[\itshape#1\hfill]\setlength\itemsep\savitemsep\@itempenalty=1000%
}
\makeatother
%
%   Increase first optional argument to a dimension > 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.
\NewDocumentEnvironment{nomenclature}{O{2em} O{\nomname} O{section}}{%
    \setlength\columnsep{2em} 
    \setlength{\nomenwidth}{#1}
    \csname #3\endcsname *{#2}% this level will probably vary amongst users! add to toc, as well.
%	\phantomsection\addcontentsline{toc}{#3}{#2}% removed for this example.
    \raggedright
    \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}\ignorespacesafterend}


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


\title{The \textit{new} MIT thesis template}
\author{John H. Lienhard \\ Department of Mechanical Engineering \\ Massachusetts Institute of Technology}
\date{\daymonthyeardate}

\begin{document}

\maketitle

\section*{The MIT thesis template}

\LaTeX\ has changed tremendously since the original MIT thesis template was written in the 1980s. \LaTeX\ 2.09 was replaced by \LaTeX2e\ in the 1994. Many packages and fonts were developed to accompany the original platform, particularly after 2000; and major updates to the \LaTeX\ kernel began in 2018.   Further, 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 2020's, it was substantially out of date.  

This \textit{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.


\subsection*{System requirements}
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 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 (\href{http://ctan.org}{ctan.org}). 


\subsection*{\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 \texttt{.tex} file.


\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, and optional appendices.

\section*{Information you need to complete}
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 comments follow.

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

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: \verb|\SignatureBlockSize{\small}|.

The remaining commands are listed below.
\begin{itemize}
\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 thesis

\item \verb|\Supervisor{supervisor name}{supervisor department}|. Use once for each supervisor.

\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, June, or September).  

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

\end{itemize}

\subsection*{Copyright license}
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,
 
\vskip 5pt
\noindent\quad\verb|\CClicense{CC BY-NC-ND 4.0}{https://creativecommons.org/licenses/by-nc-nd/4.0/}|.


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


\begin{table}[ht]
\caption{Options to the document class\label{tab:1}}
\smallskip\setlength\extrarowheight{3pt}%
\centering{%
\small
\begin{tabular}{>{\ttfamily}l<{} >{\raggedright\arraybackslash}p{42em} }
\toprule
\textrm{Package option} & Effect \\
\midrule
fontset 	& is a keyvalue, \texttt{fontset = <\textit{name}>}, which selects the set of fonts used for the thesis. See description below. \\
lineno 		& this option loads  the \texttt{\hrefurl{https://ctan.org/pkg/lineno}{lineno}} package, which provides line numbers, as for editing. The \texttt{\hrefurl{https://ctan.org/pkg/lineno}{lineno}} package  provides additional commands to control line numbering. \\
mydesign 	& this option loads the file \texttt{mydesign.tex}, which in turn loads the packages \texttt{\hrefurl{https://ctan.org/pkg/xcolor}{xcolor}}, \texttt{\hrefurl{https://ctan.org/pkg/titlesec}{titlesec}}, \texttt{\hrefurl{https://ctan.org/pkg/enumitem}{enumitem}}, \texttt{\hrefurl{https://ctan.org/pkg/caption}{caption}}, \texttt{\hrefurl{https://ctan.org/pkg/subcaption}{subcaption}}, and anything else that affects document design. You may edit \texttt{mydesign.tex} 
as you prefer.\\
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\ fonts, computer modern (\pdfTeX) or latin modern  (unicode engines).  By using the key value \texttt{fontset=$\cdots$} in the \verb|\documentclass| command, you can select a different set of fonts.  

Ten fontsets are predefined, including the default set (see Table~\ref{tab: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.

Among these 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 19\textsuperscript{th} 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 write your own fontset file, say \texttt{Myfontset.tex}, and then load it with

\vskip10pt
\hfill\verb|\documentclass[fontset=Myfontset]{mitthesis}|\hfill\hbox{}

\begin{table}[tbh]
\caption{Predefined font sets\label{tab:2}}
\smallskip
\centering{%
\small
\begin{tabular}{>{\ttfamily}l<{}l l p{3em} p{3em} >{\raggedright\arraybackslash}p{22em} }
\toprule
fontset & \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 \\
libertine 		& yes 	& yes 	& serif & serif & in \TeX\ Live for \pdfTeX. For unicode, OpenType text fonts freely available here 
\linebreak \url{https://sourceforge.net/projects/linuxlibertine/}\linebreak and the math font here
\linebreak \url{https://github.com/alerque/libertinus} \\
lucida 			& yes	& yes 	& serif	& serif & the lucida fonts are available from the \TeX\ User's Group, 
\url{https://tug.org/store/lucida} \\[2em]
heros-stix2  	& no 	& yes 	& sans 	& serif & \url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} \linebreak\url{https://github.com/stipub/stixfonts} \linebreak  both fonts are free \\
stix2			& no	& yes	& serif	& serif	& \url{https://github.com/stipub/stixfonts}, fonts are free\\
termes			& no	& yes	& serif	& serif	& \url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} fonts are free\\
termes-stix2	& no 	& yes	& serif & serif & \url{http://www.gust.org.pl/projects/e-foundry/tex-gyre} \linebreak\url{https://github.com/stipub/stixfonts}\linebreak both fonts are free\\
\midrule
\multicolumn{5}{l}{Typewriter (monospaced) fonts are also loaded for unicode} & Inconsolata (sans serif): \url{https://ctan.org/tex-archive/fonts/inconsolata} Cursor (serif): \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 edit the file \texttt{mydesign.tex}.  \textit{If you are happy with the default styles, you do not need to edit this file!}

With \texttt{mydesign.tex}, you can set options for packages that manage color, e.g.\ \texttt{\hrefurl{https://ctan.org/pkg/xcolor}{xcolor}}, that change the margins, or that change the design of titles, captions, and lists: \texttt{\hrefurl{https://ctan.org/pkg/titlesec}{titlesec}}, \texttt{\hrefurl{https://ctan.org/pkg/caption}{caption}}, or \texttt{\hrefurl{https://ctan.org/pkg/enumitem}{enumitem}}. You can also load other packages.  The \texttt{mitthesis} class will insert these commands at the appropriate point (prior to loading  \texttt{\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.

\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 the \texttt{mydesign.tex} file if necessary.

\section*{PDF/A compatibility}
PDF/A-2b compliance will be automatic if the \verb|\DocumentMetadata{..}| command is issued before the \verb|\documentclass{..}| command and \textit{provided that your graphics are also compliant}. This command was added to \LaTeX\ in June 2022. For older versions of \LaTeX, the \texttt{mitthesis} class will fall back to loading \texttt{hyperxmp} 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.


\section*{Packages loaded by the class and by the user}
See Table~\ref{tab:3}.  The documentation for these packages is available at 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}.

\begin{table}[t]
\caption{Packages called. For documentation, visit CTAN, \url{https://ctan.org}.\label{tab:3}}
\vskip5pt
\centering{\small%
\setlength\extrarowheight{3pt}
\begin{tabular}{>{\ttfamily}l<{}p{18em} p{18em} }
\toprule
Package & Class & User \\
\midrule
bookmarks& is loaded automatically under the new pdf-management system & --- \\
doi		 & support for hyperlinking DOIs		&  hyperlink a doi number: \verb|\doi{..}| \\
etoolbox & extend or modify other macros  		&  can use in preamble if needed \\
iftex	 & check which \LaTeX\ engine is running&  macros to check engine \\
ifthen   & streamlined conditionals 			&  can use in preamble if needed \\
geometry & set page size and margins			&  ---\\
graphicsx& support for inserting images			&  use to include graphics\\
hyperref & support for hyperlinks and metadata  &  must complete setup in preamble\\
hyperxmp & fallback if no \verb|\DocumentMetadata{..}|&  ---\\
kvoptions& key values for systems pre 2022/11/01 & ---\\
mathtools& loads and extends \texttt{amsmath} 	&  \textbf{many useful math macros available}.  See documentation for \texttt{amsmath} and \texttt{mathtools} \\
xparse	 & for systems older than 2020/10/01 & macros to define new commands\\[0.7em]
\midrule
lineno	 & option for the class					& keyvalue \texttt{lineno} will give line numbers; \texttt{lineno} package has additional commands that control line numbering\\[3em]
\midrule
caption  & loaded by \texttt{mydesign.tex} 		& support for caption styling \\
subcaption & loaded by \texttt{mydesign.tex} 	& support for subfigures within figures \\
titlesec & loaded by \texttt{mydesign.tex} 		& support for styling section headings \\
xcolor	 & loaded by \texttt{mydesign.tex} 		& support for colors, including colored fonts \\[0.7em]
\midrule
babel	 & --- & if you use multiple languages, load \texttt{babel} in a fontset file before loading fonts \\
biblatex & --- & sample template uses this bibliography tool. Change to \texttt{natbib} if you prefer\\
fontenc	 & --- & load this in a fontset file if you use \pdfTeX\\
fontspec & --- & load this in a fontset file if you are using a unicode engine (note that \texttt{unicode-math} loads \texttt{fontspec} by default)\\
lipsum   & --- & create filler text (see sample template, Chapter~1) \\
listings & --- & to list computer code (see sample template, Appendix~A) \\
mhchem   & --- & to format chemical formul\ae\ (see sample template, Chapter~1) \\
setspace & --- & can change the default line spacing with the commands of this package\\
unicode-math & --- & load in a fontset file if you are using a unicode engine\\
\bottomrule
\end{tabular}}%
\end{table}

\section*{Packages for math, chemistry, code listings, 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 \texttt{\hrefurl{https://ctan.org/pkg/mhchem}{mhchem}} to set chemical equations and the package \texttt{\hrefurl{https://ctan.org/pkg/listings}{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.

\section*{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 ``section'' or ``chapter'' depending on whether you
have one nomenclature list for whole thesis or one for each chapter. 

For example, the following code 
\begin{center}
\begin{minipage}{0.8\textwidth}
\begin{verbatim}
\begin{nomenclature}[2em][Nomenclature for Chapter 1][section]
\EntryHeading{Roman letters}
\entry{$A$}{the letter A}
\entry{$\mathbf{r}$}{material position}
\entry{$\mathbf{u}$}{velocity}
\EntryHeading{Greek letters}
\entry{$\Gamma$}{circulation}
\entry{$\rho$}{mass density}
\end{nomenclature}
\end{verbatim}
\end{minipage}
\end{center}
produces the nomenclature list below
\begin{center}
\begin{minipage}{0.8\textwidth}
\begin{nomenclature}[2em][Nomenclature for Chapter 1][section]
\EntryHeading{Roman letters}
\entry{$A$}{the letter A}
\entry{$\mathbf{r}$}{material position}
\entry{$\mathbf{u}$}{velocity}
\EntryHeading{Greek letters}
\entry{$\Gamma$}{circulation}
\entry{$\rho$}{mass density}
\end{nomenclature}
\end{minipage}
\end{center}
\section*{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, from the \TeX\ User's Group. 
\item[\TeX\ Stack-Exchange.]\ \url{https://tex.stackexchange.com/}. More than 250,000 answered questions, and you can ask your own!
\end{description}

\end{document}