The university formerly known as NUI Galway (and before that, UCG) rebranded as University of Galway last year.

This post outlines how you can make beamer slides to match the university branding. The theme is called Gaillimh after the name of the city in the Irish language.

The theme should compile if you use pdflatex. However, full implementation requires you to use xelatex. This is because the official University branding is very clear that the font of preference is Spectral. This is a lovely font, freely available from Google Fonts, and you can even download it HERE, but pdflatex won’t let you use your own fonts. So if you want to use be very consistent with the branding and use Spectral, you will need to compile your document with xelatex.

An example PDF of the Gaillimh theme is viewable HERE. I include a couple of screenshots below.

You can download all the files you need to install and use the theme in one zip-file HERE.


University College Dublin has an excellent, professionally-crafted visual identity. Credit where it’s due, the branding is distinctive and coherent.

But there isn’t a beamer theme. UCD Marketing have Powerpoints to beat the band, but I (and at least a dozen other people worldwide) prefer generating slidedecks in TeX.

So I have made a beamer theme to replicate the official UCD branding. There is a norm of naming beamer themes after university locations such as AnnArbor or Berkeley. The UCD beamer theme is thus named Belfield. Though the UCD brand is very well known on our island, this little bit of research infrastructure can help you represent the university internationally.

An example PDF of the Belfield theme is viewable HERE. I include a couple of screenshots below.

You can download all the files you need to install and use the theme in one zip-file HERE.

Alternatively you can download them individually. Instructions are available from the README.txt. Don’t skip the readme file, it helps with the installation. 


It is occasionally useful to create maps where each geographic unit is given equal visual prominence. This is particularly true in economics/political science, where land area can be poorly correlated with the information you’re really trying to depict. For example South Dakota has about twice the land area of Kentucky, but has fewer than one-fifth of the population.

One way to deal with this is a hexagonal tile grid map, and NPR gives good examples of their application to U.S. states. I’ve adapted code to facilitate something similar for Ireland’s 32 counties in Stata. (I was working with 1800s population data, before Northern Ireland existed, so the code is based on the 32 counties.) The images are generated by spmap and maptile, and you can use their in-built options to change the appearance. The map is implemented as what maptile calls a “geography”, and I’ve named this geography eirtile.

The first requirement is installation of both spmap and maptile, both of which are available from the SSC.

Next, click this link to download the eirtile database and coordinate files. These need to be unzipped into the maptile geographies folder, located within your Stata ado folder. For me that’s C:\ado\personal\maptile_geographies though it might be different for you. You may also want to download this 1841 Census population file to replicate the example.

An important requirement is that you have a variable named countyid to link your data to the database coordinates. The ordering is alphabetic, so Antrim is countyid=1 and Wicklow is countyid=32. The code will still run if observations are missing, so it’s not the end of the world if you don’t have data from the six NI counties.

The code below generates the 1840 population image.

insheet using "1841pops.csv", clear names
destring pop, replace ignore(",")
gen pop_per_thousand = round(pop/1000)
sort County
gen countyid = _n
maptile pop_per_thousand, geog(eirtile) geoid(countyid) twopt(title("Population of Irish counties ('000s), 1841")) nq(7)

The first three lines open and clean the data. Lines 4 and 5 generate the necessary countyid variable, which serves as the link between your data and the mapping software. The last line calls maptile, tells it to map the population variable of interest, use eirtile as the geography, and that countyid is the identifier variable. The latter options (twopt and nq) are maptile-specific commands and you should consult that program’s help file for details. This help file also shows you how to change the colours, label the missing data, etc.


I’ve posted before about problems with line widths when exporting tables from Stata. Here is one trick to solve having an excessively wide addnote at the bottom of the table.

Ensuring you have pre-loaded the booktabs package, add the following line to the header of your LaTeX file:

\newcommand{\tabnotes}[2]{\bottomrule \multicolumn{#1}{@{}p{0.70\linewidth}@{}}{\footnotesize #2 }\end{tabular}\end{table}}

This creates a new command (called tabnotes) that takes two arguments: a number of columns, and text. An example is \tabnotes{3}{Hi there} — this will add a note at the bottom of your table, spread over 3 columns of your table, and it will say “Hi there”. If your table has seven columns, change the first argument to 7 instead of 3. You can obviously change what the text says, too. The important thing is that the text will automatically wrap if it is wider than 70% of the width of your text. You can change to any percent you wish by altering the 0.7\linewidth portion of the code above.

An important fact is that you must include \tabnotes inside esttab’s postfoot() option. For example, your might use:

esttab myresult using tab.tex, booktabs replace postfoot("\tabnotes{3}{Hello there, I hope this helps you.}")

Please note that is all one line, your browser likely splits it over several lines.


1. The first recorded person with the name is Saint Enda, who lived on the Aran Islands off the coast of Galway c. 500 AD. Enda comes from Éanna, which means "bird-like".

2. In the year I was born, eighty-one babies in Ireland were named Enda. That put it comfortably in the Top 100 most popular (boys) names, ahead of Jamie but behind Seamus. The equivalently popular boys name in the US in 1987 was Ian. Despite its ancient origins, the popularity of the name is a recent phenomenon: the 1901 Census lists only person in Ireland named Enda. The resuscitation is likely linked to St Enda's School, founded in 1908.

3. Between 2011 and 2017 the Taoiseach (prime minister) of Ireland was named Enda Kenny. Since his rise to national prominence, the popularity of our name has sadly plummeted. Only three children were named Enda in 2016.

4. Discriminating against gay people is a bad thing. In the United States, Employment Non-Discrimination Acts are routinely called ENDAs. Scholarly work has shown that US states with Endas are more innovative.

5. I was once at a wedding with five Endas there. Had we taken a selfie, it would be called an endascope.


On any given day, I will usually be working on only one of several projects in Stata. These projects will often take several years. It should be easy to switch to the folders for these files. For example, to switch to my project on Stamp Duty the command go stamp would be handy.

I wrote a small bit of code to make that happen. You can download go.ado here. Download it, edit it with your own shortcuts, save it to your preferred ado folder, and make it easier to jump to different projects.


When exporting graphics from Stata or Matlab, it's better to select a lossless/vectorized format instead of a rasterized pic. This ensures your image is high-quality and not grainy/pixelated.

Grainy exports

Poor quality, grainy image

Better quality export

Unfortunately, Matlab does not allow lossless PDF exports of pictures with non-standard fonts. (I'm not the first person to notice this problem. I failed to implement Juan Guerrero's suggested solution.) Matlab will export the font in PNG no problem, but your image will appear grainy. If you try to export as a PDF, your fonts will be reverted to something weird. Obviously this doesn't matter if you're happy with the default fonts, but this bug does limit your ability to customize the output.

Thankfully, with the help of the nice people at Inkscape ( there is a workaround.

  1. Install Inkscape
  2. Generate your figure in Matlab
  3. In "Export Setup", change the Font to anything saved on your system. Export as Scalable Vector Graphic (SVG) file
  4. Open the SVG in Inkscape
  5. Save it a lossless PDF as, say, figure7.pdf
  6. Include in your LaTeX document with \includegraphics{figure7}



Usually my exams have a large blank space for students to write their names in.

If, instead, I wanted to generate individualised exams with their names printed in that space, this code will do that for you. It uses the pgffor package to loop over the list of names you provide.

\def\classlist{Enda Hargaden,
George Akerlof,
Joe Stiglitz,
Don Bruce}
\foreach \studentname in \classlist{

Econ 381 Problem Set: \studentname's Copy

\item What is OLS?
\item What's the square root of 25?
\item More questions yadda yadda



Over on Twitter, Gray Kimbrough suggests using colour to indicate statistical significance/p-values instead of the traditional stars. This was part of a broader argument for Powerpoint over Beamer.

I much prefer Beamer to Powerpoint, and I knew it would be very easy to implement coloured cells in regression tables directly from Stata into LaTeX/beamer.

I use the wonderful estout to produce regression tables (and have modified it in the past) so here's how to produce the table above with one extra line in your do-file.

sysuse auto

** This line generates a local named siggreen, defining significance with green opacity
local siggreen "star(\cellcolor{green!10} 0.10 \cellcolor{green!35} 0.05 \cellcolor{green!95} 0.01) nonotes"

** Run a few sample regressions
qui eststo: reg price foreign mpg weight
qui eststo: reg price foreign mpg weight turn
qui eststo: reg price foreign mpg weight turn gear_ratio displacement headroom

** Using esttab, produce the output with Enda's preferred options
esttab using myoutput.tex, replace booktabs nodepvars nomtitle se label ar2 `siggreen' title("Green Regression")

Then, to include that table into your TeX document:


If you want to include this tables in your Beamer slides, see this post.


I've discussed in the past how to indicate statistical significance with colour rather than stars. Another concern people have about using Beamer is that it can be hard to squish results into one slide. In my opinion, that is solved very easily with my tinytable command.


\newcommand{\tinytable}[1]{\textcolor{black}{\tiny \input{#1} }}


\frametitle{Still fascinating, but smaller}

This generates the following:

Scroll to Top