LaTeX is a “document preparation system.” It’s used to create presentable documents. More specifically, LaTeX is a “What You See Is What You Mean” interface; instead of focusing on how the content should look when everything’s done, you declare what you intend for the final document to contain, and these annotations are compiled into a final version. For comparison, Microsoft Word and other word processors are dubbed “What You See Is What You Get” (WYSIWYG, pronounced “whizy-whig”), because what’s displayed on the screen is how the document actually looks.

LaTeX works with plain text files (generally ending in .tex). You format your document with a special syntax, then use either a command line tool (like pdflatex) or a graphical interface (like TeXShop or ShareLaTeX) to compile the plain text into a PDF or some other graphical format.

People enjoy LaTeX for a number of reasons. First, LaTeX is particularly useful for typesetting mathematical equations, as we’ll see. It’s also easy to focus on just writing the content. Instead of fiddling with fonts and changing the appearance of the document, you can focus on its content. One final reason is that because LaTeX is plain text, you can use your favorite text editor (i.e. Vim) to edit content written in LaTeX.

Most computer science classes which posses some aspect of theory to them as well as many upper-level math classes expect their documents to be submitted as PDFs in LaTeX. Moreover, writing in LaTeX is very common practice for submitting papers in academia and industry.



Quick Start Guide

  • How to LaTeX
    • An excellent intro to LaTeX guide by Adam Blank, a former student, TA, and CS instructor at CMU.

Handy Tools

  • Detexify
    • A tool for figuring out the command for typesetting a symbol in LaTeX. Just draw it with your mouse!
  • Online LaTeX Equation Editor
    • A tool for typesetting equations online. Also contains a bunch of handy buttons for commonly used symbols, similar to many LaTeX GUIs. Useful in combination with an editor like Vim which doesn’t have these features built in.
  • Finite State Machine Designer
    • Tool that simplifies drawing finite state machines, which come up in theoretical computer science classes.

Curl up with a cup of tea and just keep reading


As it turns out, most LaTeX documents are pretty similar in nature. Using a template for the repetitive parts of LaTeX is pretty common. Below is a list of some LaTeX templates that you might like to use for typesetting homework assignments. There are also a number of sites online which have collections of free LaTeX templates.

  • CMU LaTeX Homework Template
    • This template has been distributed by a number of classes at CMU, including 15-251 and 15-451. It’s fairly straightforward, but it does the job.
  • LaTeX Homework Class
    • This project lets you just do \documentclass{homework} to gain access to a load of helpful commands for typesetting your homework.
  • LaTeX Homework Template
    • This is another LaTeX template. It was based off the CMU template above, with some convenience features added on top of it, and restyled a bit.
  • Comprehensive Preamble
    • This is a huge LaTeX preamble that contains useful macros for commonly used math symbols.
Copyright © 2014, Great Practical Ideas in Computer Science.