Tutorial: MIT Thesis LaTeX Template with VS Code

10 minute read

Published:

Let’s set up the MIT thesis LaTeX template locally!

Cover Photo by ChatGPT

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.

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; as of the CTAN v1.22 release dated January 31, 2026, formats before June 2022 are no longer supported. A full TeX Live installation includes pdflatex, biber and other programs needed by the template.
  • 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.

Example view of the unzipped `mitthesis`

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/FolderPurpose
mitthesis.clsCore LaTeX class implementing MIT formatting
MIT-thesis-template/MIT-Thesis.texMain LaTeX file for your thesis
abstract.tex, acknowledgments.tex, biosketch.texFiles where you insert your abstract, acknowledgments and optional biosketch
chapter1.tex, chapter...Sample chapters to use as templates
\Reader{...} commands / committee_members.texIn v1.21 and newer, \Reader{...} commands automatically generate the thesis committee page; older packages may include a separate committee_members.tex sample
appendixa.tex, appendixb.texSample appendices showing code listing and long tables
mitthesis-sample.bibSample bibliography file with many entries
mitthesis-style.cssOptional CSS embedded when tagged PDF is in use
mydesign.texOptional 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 on May 4, 2026: the current CTAN package listing shows 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:

  1. Open MIT-thesis-template as the VS Code workspace.
  2. If the first build fails, copy ../mitthesis.cls into MIT-thesis-template.
  3. Rebuild.

This matters because TeX Live may already have an older mitthesis.cls installed. For example, a TeX Live 2025 installation can still have mitthesis v1.20, while the current CTAN zip is v1.22. Mixing v1.22 template files with a v1.20 installed class can trigger errors such as Undefined control sequence \CiteNolink. Copying the outer class file into MIT-thesis-template makes the project use the matching class version.

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.

MIT-thesis-template folder opened in VS Code

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.

Default MIT-Thesis compiled with resulting PDF displayed

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 an example relevant for an LGO thesis: One_author_two_degrees.tex. I’ve adapted this example to simplify things.

  1. In your MIT-Thesis.tex, locate:
     \begin{document}
     %%% edit the following commands to match your thesis %%%%%%%%%%
    
  2. 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}
     {\shortstack[l]{MIT Sloan School of Management and\\
     Department of Electrical Engineering \& 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.
     \Supervisor{Sloan Advisor Name}{Professor of Operation Management}
     \Supervisor{Engineering Advisor Name}{Professor 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}
    
     % 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 \shortstack[l]{...\\...} wrapper around the second argument to \Author. It forces the affiliation to appear on two left-aligned lines, avoiding awkward automatic wrapping while keeping the title-page signature block at normal size.

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”.

To achieve this, we have to have our own version of the mitthesis.cls (remember it from the “outer” directory?)

  1. Copy the mitthesis.cls file to your project workspace (i.e. same folder as your MIT-Thesis.tex)
  2. In your copied mitthesis.cls file, find the line that goes at~the\par. In earlier versions, it appears right after \__degree_block:. In v1.21 and newer, it appears right after \__mitthesis_degree_block:.
  3. Insert the following line between the degree-block line and at~the\par:
     in~conjunction~with~the~Leaders~for~Global~Operations~program\par
    

    Remember to maintain the same leading indentation as the two reference lines.

  4. On newer versions, we end up with something like:
     \__mitthesis_degree_block:
     in~conjunction~with~the~Leaders~for~Global~Operations~program\par
     at~the\par
    

    On older versions, the first line may instead be \__degree_block:. Leading indentation omitted to save some spaces here.

By doing so, our LaTeX project build should pick up our copied and edited mitthesis.cls file instead of the default mitthesis.cls provided by the template package.

This is a hot fix. When the official template package is updated and we thought we’ve pulled the latest updates from CTAN, those new changes won’t show up in our thesis workspace unless we merge the new version of mitthesis.cls into our local copy of mitthesis.cls while keeping the “in conjunction…” line inserted. My take: this risk is minimal since your thesis work is short-term and static after submission.

Rebuild your LaTeX project and you should see a cover page like this:

An example of LGO thesis cover page rendered Note that the degree date should be May at least for the year 2026. Please confirm with your department staff (whoever reviews cover page) each year.

Update: long department names

Update on May 3, 2026: previously I used \SignatureBlockSize{\footnotesize} to tame the long Sloan + EECS affiliation line. A cleaner fix is to wrap the department argument itself with \shortstack[l]{...\\...}, which inserts the break exactly between the two departments.

If you find other required tweaks, please let me know!


Good luck with your thesis! Good luck to me too…