Beamer Template Theme

Update: This project is now located on Github. You can find my repo here.

The Beamer Class

XeTeX is a document preparation system for the TeX typesetting language originally written by computer science legend Don Knuth. The Beamer class provides functionality for creating elegant presentations in XeLaTeX. This post is about my recent experience with learning to make a custom Beamer theme for a professional presentation.

Using Beamer to craft presentations provides a number of advantages over using something like Microsoft PowerPoint. Beamer is free, endlessly customizable, and uses text files rather than a propriety file format. Beamer files can be placed under version control systems like git and can be manipulated with your favorite text editor like Vim or Emacs. Beamer provides many additional advantages, but the most compelling reason to switch to making presentations in Beamer is for automation. Literal programming tools like Sweave and Pweave automatically embed R or Python code inside Beamer slides, which is run when the LaTeX source code is compiled. Additionally, custom tools can easily be written to manipulate LaTeX/Beamer. For example, I've created my own Python module to generate Beamer slides embedded with tables and graphs from native Python data types.

Although Beamer is extremely powerful, many people immediately turn away from Beamer because the stock themes that ship with it are aesthetically unappealing. The TeX community is composed of technical professionals who care deeply about aesthetics and typography, so I'm surprised that the stock Beamer themes are not more impressive.1 Even more surprisingly, I've found very few custom Beamer themes that are attractive and for which the source code is available.2 For these reasons, I decided to create my own theme. What follows are some basic things I learned in the process of creating my own Beamer theme. Here is an example of the custom Beamer theme I created:

The title page image seems odd, but it has relevance to my professional work.

I am no TeX expert, but I was able to assemble a basic theme without much difficulty. To create a custom theme, I recommend starting by examining the Beamer documentation. This seems obvious, but take the time to read this; the Beamer class is fairly complex and the docs explain a lot. It is also helpful to find an example theme that can be used as a frame work to help with template design.3 Starting by customizing one of the stock themes is a good option.

Specifying element styling such as slide titles is controlled through templates that are defined in two separate inner and outer theme files. Styling of elements like the block, enumerate, and itemize environments are controlled through the inner theme, while the outer theme controls more global elements like infolines and frame titles.

If you don't have a background in creative design, it's best to follow a few general rules when designing a theme:

  • Learn some color theory and use no more than three colors.
  • Use a sans-serif font.
  • Select no more than two typefaces and avoid complex ligature.
  • Avoid excessive embellishments, styling, and text; when in doubt, leave it out.

Creating a custom Beamer theme requires little effort and provides a polished tool to help make your talks unique. I would be remiss if I didn't mention three excellent resources that can improve your presentation:

I've placed my Beamer template theme on GitHub, please consider forking the project. You can find my theme template here.

  1. Here is a link to the stock Beamer themes so you can see what I'm talking about. ↩

  2. Cameron Bracken has created a very nice custom theme. ↩

  3. Special thanks to Tore Birkeland, Raymond Nepstad, and Till Tantau for sharing some Beamer code with me. ↩

  4. JB Deaton recently had a nice review of The Elements of Typographic Style. ↩