Have you ever been to Frankfurt? I’ve had the pleasure of visiting Frankfurt a few times, albeit usually just through the airport. It’s the first city where I stayed in a Doppelzimmer mit Frühstück (double room with breakfast). Frankfurt is also the name of a popular theme in the LaTeX document class Beamer, which is used for making presentations (not coincidentally, Beamer is the German word for projector).
Beamer has a nice selection of themes with different layouts, but one downside is that the themes don’t offer many choices in terms of color. There’s dark blue, light blue … the yellow one … some red. But mostly blue. This can get tiring after watching three talks in a row by presenters who made their slides the night before and went with a default color scheme.
Some institutions are fortunate to have their own (un)official Beamer theme with the institution’s colors. UBC’s ECE department did not, so my quest for color began last year to replace a default Beamer blue with … UBC blue (believe me, it’s a different blue). I didn’t want to tinker too much with the underpinnings of Beamer, but I found that the generally excellent official documentation lacked some direction about what color options I could change (beyond the basics). So, a colleague and I went exploring. This post explains two ways to change Beamer colors by setting up your own custom color scheme. The first method is very quick with usecolortheme
. The second method takes a little bit of tinkering with setbeamercolor
, but ultimately gives you much more control.
Picking Beamer Colors
The first decision is to pick a color(s). I suggest defining two colors for variety, where one is your primary and one is your secondary. However, only one color is needed for the usecolortheme
method. There are two ways to pick colors:
- Choose from the list of known Beamer colors. By default, Beamer uses the
xcolor
package, so you can immediately use any ofxcolor
‘s pre-defined colors. As of this writing, these colors are listed in Section 2.4 of the officialxcolor
documentation. For example, the list includes blue, red, green, yellow, etc. A list of 68 colors is available if you loadxcolor
with thedvipsnames
option when you load Beamer (documentclass[xcolor=dvipsnames]{beamer}
). - Define your own custom colors. Use the
definecolor
command to assign a custom name and then define the parameters for your color (such as RGB values). This is handy if you want to use a very specific color, as I did.
Change Beamer Colors Method 1: usecolortheme
The command usecolortheme
can be used to load any of the default Beamer color themes (as displayed here). But this post is about not using the default color themes. You can use usecolortheme
with any color you want by applying the color to the structure
of the presentation.
usecolortheme[named=UBCblue]{structure}
Here is a minimal example. I’ve chosen to use the Madrid theme (sorry Frankfurt) with the miniframes
outer theme (to add a header) and the circles
inner theme (to replace the shiny default circles).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[xcolor=dvipsnames]{beamer} % dvipsnames gives more built-in colors | |
\usetheme{Madrid} | |
\useoutertheme{miniframes} % Alternatively: miniframes, infolines, split | |
\useinnertheme{circles} | |
\definecolor{UBCblue}{rgb}{0.04706, 0.13725, 0.26667} % UBC Blue (primary) | |
\usecolortheme[named=UBCblue]{structure} | |
%\usecolortheme[named=Mahogany]{structure} % Sample dvipsnames color | |
\title[Title Without Rambling]{My Rambling Presentation Title} | |
\date{\today} | |
\author[R.A.]{Rambling Academic} | |
\institute[RamblingAcademic.com]{RamblingAcademic.com\\Nuts and Bolts of Research. Plus Some Rambling} | |
\begin{document} | |
\begin{frame} | |
\titlepage | |
\end{frame} | |
\section{Rambling Section} | |
\subsection{First Subsection} | |
\begin{frame} | |
Here is some rambling text | |
\begin{enumerate} | |
\item List item 1 | |
\item List item 2 | |
\end{enumerate} | |
\end{frame} | |
\end{document} |
Here is how the PDF looks:


Pro: One line of LaTeX code and you’re done.
Con: The shading of the color is automatically modified for different parts of the presentation (i.e., lighter or darker), so you don’t have full control over how the color appears. In my case, some elements are dark enough to appear black.
Change Beamer Colors Method 2: setbeamercolor
If you just want a break from the default color themes, then usecolortheme
is sufficient. If you want to define exactly what colors are used, then a little more work is required (but not much). My goal was to use UBC’s official colors, so a better solution was needed.
A key find was Thierry Masson’s Beamer appearance cheat sheet. This document lists many of the properties that you can manipulate. Page 1 of the sheet lists things that you can color using setbeamercolor
. You can play around with it, but here is a quick method to color your entire presentation:
- Set the background color of ALL FOUR palettes to your primary color. Set the foreground color of each palette to your desired text color (most likely black or white).
- Set the color of elements that are not defined by the palettes. You can use your primary or secondary color. This might be the hardest step and could take some trial and error to catch everything. The most important one is
structure
(for bullets and numbers in lists). If you have a table of contents, then you will also want to setsection in toc
. Anything you don’t catch will appear in the default colour theme. - (optional) Select some palette elements where you would like to see the secondary color and set the color for just those elements. For example, setting
subsection in head/foot
to the secondary color has a nice clean appearance in themes that use a header or footer. Why not set a whole palette to the secondary color? You can, but I’ve found that you can end up with some undesirable results in headers.
Here is the same example as above but now using setbeamercolor
:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[xcolor=dvipsnames]{beamer} | |
\usetheme{Madrid} | |
\useoutertheme{miniframes} % Alternatively: miniframes, infolines, split | |
\useinnertheme{circles} | |
\definecolor{UBCblue}{rgb}{0.04706, 0.13725, 0.26667} % UBC Blue (primary) | |
\definecolor{UBCgrey}{rgb}{0.3686, 0.5255, 0.6235} % UBC Grey (secondary) | |
\setbeamercolor{palette primary}{bg=UBCblue,fg=white} | |
\setbeamercolor{palette secondary}{bg=UBCblue,fg=white} | |
\setbeamercolor{palette tertiary}{bg=UBCblue,fg=white} | |
\setbeamercolor{palette quaternary}{bg=UBCblue,fg=white} | |
\setbeamercolor{structure}{fg=UBCblue} % itemize, enumerate, etc | |
\setbeamercolor{section in toc}{fg=UBCblue} % TOC sections | |
% Override palette coloring with secondary | |
\setbeamercolor{subsection in head/foot}{bg=UBCgrey,fg=white} | |
\title[Title Without Rambling]{My Rambling Presentation Title} | |
\date{\today} | |
\author[R.A.] | |
{Rambling Academic} | |
\institute[RamblingAcademic.com]{RamblingAcademic.com\\Nuts and Bolts of Research. Plus Some Rambling.} | |
\begin{document} | |
\begin{frame} | |
\titlepage | |
\end{frame} | |
\begin{frame} | |
\tableofcontents | |
\end{frame} | |
\section{Rambling Section} | |
\subsection{First Subsection} | |
\begin{frame} | |
Here is some rambling text | |
\begin{enumerate} | |
\item List item 1 | |
\item List item 2 | |
\end{enumerate} | |
\end{frame} | |
\end{document} |
And here is how the PDF looks:


Pro: Much more control over how your colors are used, and can be accomplished with less than 10 added lines of code (depending on how much you want to use your secondary color).
Con: Trial and error to catch elements that still use the default color scheme. One way to speed this up visually is to call usecolortheme
first to set everything to a color that has a strong contrast with the colors you want to use.
Summary
I recommend using these two methods to change Beamer colors as follows:
- If your presentation starts in 10 minutes and you don’t want to look like you just finished your slides, use
usecolortheme[named=colorname]{structure}
. - If you want to consistently display a desired color, whether for branding or any other reason, then use
setbeamercolor
.
Thank you for the tutorial, this was really useful!
LikeLike
Vow, What an explanation….I like your style very much..
LikeLike
Really it is very useful for me.
Thank you very much dear.
LikeLike
Thank you. Worked perfectly.
LikeLike
Thanks, sir, really it is very useful, working perfectly.
LikeLike
Thank you, this was an excellent writeup. There’s bound to be some other gems of information in your other posts on LaTeX, MATLAB, etc. Bookmarked. Please keep rambling on. Regards from your alma mater, Ray
LikeLike