Tutorial: MIT Thesis LaTeX Template with VS Code
Published:
Let’s set up the MIT thesis LaTeX template locally!

Generated by GPT-4o. Prompt: A playful illustration showing a happy MIT student proudly holding a printed MIT thesis in one hand and a laptop showing VS Code with LaTeX code in the other. In the background, icons representing LaTeX, PDF documents, and MIT’s iconic Great Dome subtly float around. The student stands triumphantly on top of a stack of neatly bound theses. The style is colorful, lighthearted, and cartoonish.
MIT’s libraries require theses to be deposited electronically using a strict format. To simplify formatting, the MIT thesis LaTeX template provides a class (mitthesis.cls) and a set of sample files that implement these requirements.
Many thanks to Prof. John H. Lienhard for maintaining mitthesis and for generously answering questions from students like me.
Update July 2026: this post now targets mitthesis v1.23, dated June 5, 2026. If you used an earlier version of this post, some screenshots or comments you remember came from the v1.20-v1.22 transition period, when class-file location, committee-page behavior, and LGO cover-page workarounds were still moving.
This tutorial blog builds on top of my previous “Tutorial: Use LaTeX Locally with VS Code”. By following that tutorial, you should already have:
- Visual Studio Code with LaTeX Workshop installed. The extension provides core LaTeX features such as auto‑building to PDF, an integrated PDF viewer, SyncTeX navigation, IntelliSense, and log parsing. It automatically runs the sequence of tools needed to build your document and highlights errors in the editor.
- TeX Live 2022 or newer. The MIT thesis class requires a recent LaTeX distribution; CTAN lists v1.23 as requiring TeX Live 2022 or later. A full TeX Live installation includes
lualatex,pdflatex, biber and other programs needed by the template. I recommend LuaLaTeX for the current template, especially if you care about modern PDF metadata or accessibility workflows. - Biber for bibliography management. The template defaults to using biblatex with the biber backend. Biber is part of TeX Live and will run automatically if configured in LaTeX Workshop.
1. Acquire the template
Download it here: https://mirrors.ctan.org/macros/latex/contrib/mitthesis.zip.
Comprehensive TeX Archive Network (CTAN) is a network of websites that serve as the central repository for TeX-related materials and software; it’s legit and referenced by the official MIT thesis LaTeX template website.
Extract (i.e., “unzip”) the archive to a convenient location—ideally the folder where you plan to write your thesis.

Understand the contents
It’s always recommended to read the included README.md. This file lists the archive contents, notably a class file and a MIT-thesis-template folder containing everything you need to start writing:
| File/Folder | Purpose |
|---|---|
mitthesis.cls | Core LaTeX class implementing MIT formatting |
MIT-thesis-template/MIT-Thesis.tex | Main LaTeX file for your thesis |
abstract.tex, acknowledgments.tex, biography.tex | Files where you insert your abstract, acknowledgments and optional biographical sketch |
chapter1.tex, chapter... | Sample chapters to use as templates |
\Reader{...} commands / committee_members.tex | In v1.21 and newer, \Reader{...} commands automatically generate the thesis committee page; if you omit all readers, you can still insert your own optional committee_members.tex page before the abstract |
appendixa.tex, appendixb.tex | Sample appendices showing code listing and long tables |
mitthesis-sample.bib | Sample bibliography file with many entries |
mitthesis-style.css | Optional CSS embedded when tagged PDF is in use |
mydesign.tex | Optional file where you can load packages to customise colours, margins or caption styles |
fontsets/ | Subdirectory containing optional font definitions |
Recent CTAN downloads include MIT-Thesis.pdf in the outer mitthesis folder as a sample document. If your download does not show it, not a big deal because we will be able to create it later.
Additionally, the mitthesis-doc directory contains detailed PDF documentation, and the examples directory provides sample theses showcasing different font options.
After extraction, keep the directory structure intact; LaTeX will look for chapter files relative to the main file. You can rename the outer folder to reflect your project’s name.
Class file location update
Update July 2026: the current mitthesis package listing shows mitthesis v1.23 dated June 5, 2026. The archive still puts mitthesis.cls in the outer mitthesis folder, while MIT-thesis-template is the folder with the files you edit. The official documentation says to copy MIT-thesis-template onto your system; if the current mitthesis.cls is already installed in TeX Live, you are all set, and if not, copy mitthesis.cls into your working directory.
In practice, with VS Code + LaTeX Workshop, the least surprising setup is:
- Open
MIT-thesis-templateas the VS Code workspace. - Copy
../mitthesis.clsintoMIT-thesis-templateif your local TeX Live has an older installed class, or if you need a small local LGO adjustment described below. - Rebuild.
This matters because TeX Live may already resolve \documentclass{mitthesis} to an older installed mitthesis.cls. For example, a TeX Live 2025 installation can still have mitthesis v1.20 while the current CTAN zip is v1.23. Mixing template files and class files from different versions can trigger confusing errors; Undefined control sequence \CiteNolink is one example. Copying the outer class file into MIT-thesis-template makes the project use the class version that came with the files you just downloaded.
2. Opening the project in VS Code
Launch VS Code, then choose File → Open Folder… and select the MIT-thesis-template folder (not the outer mitthesis folder!).
VS Code will treat this folder as the workspace.
Open the MIT-Thesis.tex file as it is the root document.

3. Trigger the build
You should see a “TEX” badge from the LaTeX Workshop extension appearing in the leftmost panel of your window.
Trigger a file save using standard shortcuts:
- macOS:
command+S - Windows:
Ctrl+S
As explained in the previous tutorial, saving the file automatically triggers the LaTeX Workshop build process. You’ll notice a spinning “🔄 Build” icon in the bottom-left corner, indicating compilation in progress. This may take a minute.
During compilation, local setup variations can cause errors. If you encounter an issue, please let me know so I can include quick fixes here. I also recommend troubleshooting with your preferred GenAI tool—my go-to choice is GitHub Copilot.

Scroll through the generated PDF file, MIT-Thesis.pdf; it should closely match the official example PDF.
Congratulations, your MIT Thesis LaTeX template is now ready to use.
4. Familiarize yourself with the template
The best way to get comfortable is to explore its structure – no shortcuts here.
Please read the official documentation – again, no shortcut.
One quick tip: skim through MIT-Thesis.tex. Notice the multiple \input{} statements pulling in separate files for different thesis sections, such as abstract.tex and chapter1.tex. Edit these files slightly, rebuild the PDF, and observe the results – action learning at its finest!
If you are a student in MIT’s Leaders for Global Operations (LGO) dual-degree program, continue to the next section. Otherwise, you’re all set.
5. LGO Thesis tweaks
The official package includes a useful dual-degree example: One_author_two_degrees.tex. The LGO-specific version below follows the current v1.23 interface, with one LGO cover-page addition.
Before the mechanics: thank you to Prof. John H. Lienhard for maintaining mitthesis and for the generous email exchange behind this update. He responded to my questions promptly, pointed me to the cleaner \\ & pattern for multi-department lines, and even wrote the tentative \LGO hook after I asked about native support for the LGO cover-page phrase. As of July 2026, he has not activated that command in the release while MIT Libraries discusses general policy for modifying the title page. My practical read: LGO theses from prior years have used this line and have been accepted by MIT Libraries, so the hook is useful, but use it at your own risk and have the compiled cover page reviewed by LGO staff and your department reviewer before final submission.
- In your
MIT-Thesis.tex, locate:\begin{document} %%% edit the following commands to match your thesis %%%%%%%%%% - Replace the content from
\title{...}to\ThesisDate{...}(inclusive) with this:\title{Simplify and Accelerate: An Awesome Dual-Degree Thesis Title} % \Author{Author full name}{Author department}[Author's first PREVIOUS degree][Author's second PREVIOUS degree][... % Note that third, fourth, fifth, and sixth arguments are optional [] and may be omitted \Author{LGO Student Name}{MIT Sloan School of Management and \\ & Department of Electrical Engineering and Computer Science}[B.S. Previous Degree, Previous College, 2018] % Use once for each degree fulfilled by thesis % For two degrees from one department, leave the department argument blank for the second degree {}. \Degree{Master of Business Administration}{MIT Sloan School of Management} \Degree{Master of Science in Electrical Engineering and Computer Science}{Department of Electrical Engineering and Computer Science} % If there is more than one supervisor, use the \Supervisor command for each. % The optional [department] field is used on the automatically generated thesis committee page. \Supervisor{Sloan Advisor Name}{Professor of Operations Management}[MIT Sloan School of Management] \Supervisor{Engineering Advisor Name}{Professor of Electrical Engineering and Computer Science}[Department of Electrical Engineering and Computer Science] % Professor who formally accepts theses for your department (e.g., the Graduate Officer, Professor Sméagol,...) % If you need to reduce vertical space, put the acceptor title in the second argument and leave the third blank {}. \Acceptor{Engineering Acceptor Name}{Professor of Electrical Engineering and Computer Science}{Graduate Officer, Department of Electrical Engineering and Computer Science} \Acceptor{Sloan Acceptor Name}{Assistant Dean}{MBA Program, Sloan School of Management} % Keep the signature block at normal size unless the title page itself needs more vertical space. \SignatureBlockSize{\normalsize} \AuthorNameSize{\normalsize} \Tighten % Usage: \DegreeDate{Month}{year} \DegreeDate{May}{2026} % Date that final thesis is submitted to department \ThesisDate{May 8, 2026}
The important part for long department names is the \\ & line break inside the second argument to \Author. The current documentation uses this pattern for multiple departments and titles. An earlier version of this blog (probably referred to by my Class of 2026 classmates) recommended \shortstack[l]{...\\...}; that worked visually, but the \\ & style now matches the template’s own examples better.
Per “Thesis Review and Submission Process”, LGO Handbook (accessed on August 3, 2025), we also need to include:
“IN CONJUNCTION WITH THE LEADERS FOR GLOBAL OPERATIONS PROGRAM AT THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY”.
With v1.23, do not manually insert that line into the middle of the title-page code unless you are stuck on an older mitthesis.cls file. The current mitthesis.cls contains tentative LGO hook code near the title-page block, but Prof. Lienhard clarified in July 2026 that the command is not activated in the release while MIT Libraries reviews the title-page policy question. For now, choose one of these two local activation paths; option B is the simplest because it leaves mitthesis.cls untouched.
Option A: uncomment the class hook. Make sure the current mitthesis.cls is the class file your project is using. If in doubt, copy the outer ../mitthesis.cls into MIT-thesis-template. Then open your copied mitthesis.cls, search for LGO, and uncomment this line:
\NewDocumentCommand\LGO{}{ \bool_gset_true:N \g__mitthesis_LGO_bool }
Then add \LGO after \begin{document} and before \maketitle in MIT-Thesis.tex:
\LGO
\maketitle
Option B: define the hook in your thesis preamble. This is simpler for now because it avoids editing the class file. In MIT-Thesis.tex, add this block in the preamble before \begin{document}:
\ExplSyntaxOn
\NewDocumentCommand\LGO{}{ \bool_gset_true:N \g__mitthesis_LGO_bool }
\ExplSyntaxOff
\LGO
With option B, leave the normal \maketitle line where it already is. If a future mitthesis release activates \LGO officially, remove the preamble block above and use the normal command before \maketitle instead:
\LGO
\maketitle
Do not use option A and option B at the same time; defining \LGO twice will create a LaTeX error.
Breadcrumb for my Class of 2026 classmates: the old version of this post told you to copy mitthesis.cls and insert the LGO line manually between the degree block and at~the\par. That workaround was useful before Prof. Lienhard added the tentative hook code, but it is no longer the first thing I would do. If you already submitted with that older hot fix, there is nothing to revisit; this update is for people starting or rebuilding from the current package.
Rebuild your LaTeX project and you should see a cover page like this:

Note that this tutorial uses May 2026 for the LGO Class of 2026 cover page. MIT supports February, May, June, and September as degree months in the template, so future students should confirm the exact degree date with their department or LGO staff before submitting.
Good luck with your thesis! Good luck to me too…
