Tutorial: MIT Thesis LaTeX Template with VS Code

8 minute read

Published:

Let’s setup 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; the README suggests November 2022 or later and is compatible back to 2020. 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
committee_members.texOptional page listing your thesis committee
appendixa.tex, appendixb.texSample appendices showing code listing and long tables
mitthesis-sample.bibSample bibliography file with many entries
mydesign.texOptional file where you can load packages to customise colours, margins or caption styles
fontsets/Subdirectory containing optional font definitions

Interestingly, README.md mentions a MIT-Thesis.pdf sample document, but I couldn’t find it in the unzipped folder. 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.

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}{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.
     \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}
    
     % If your title page is overflowing (from too many names, degrees, etc.), you can scale 
     %    down the Signature block at the bottom with this command, or use another creative solution...
     \SignatureBlockSize{\footnotesize}
     \AuthorNameSize{\normalsize}
    
     % Usage: \DegreeDate{Month}{year}
     % Valid degree months are September, February, or June.  
     \DegreeDate{June}{2026}
    
     % Date that final thesis is submitted to department
     \ThesisDate{May 8, 2026}
    

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. It should appear right after a line that goes \__degree_block:
  3. Insert the following line in between \__degree_block: 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. So we end up with something like:
     \__degree_block:
     in~conjunction~with~the~Leaders~for~Global~Operations~program\par
     at~the\par
    

    (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

Known issues

  • \SignatureBlockSize{\footnotesize} in my example is to avoid a long department name like “Electrical Engineering and Computer Science” causing overflow; particularly, under “Authored by:”, the line that shows both Sloan and EECS is too long and only \footnotesize could tame this loong (dragon).
    • I am searching for a solution that could add a line break and avoid such a small font size…

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


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