Certificates with LaTeX

At my institute, events like refresher courses and workshops are conducted on a regular basis with certificates distributed to the participants. As I have an obsession with LaTeX, and despite the fact that there are dedicated softwares for the purpose and almost all of my colleagues use something else, my certificates are always prepared using LaTeX.

In this post, I’ll make a humble attempt to outline how I go about creating such a certificate, explaining which tools to use and what packages can be helpful.

##How to do it?##

The preparation of certificates can be realized by the following work flow diagram:

The broad categories are:

  1. Page layout
  2. Background
  3. Static content
  4. Running content

###The Layout###

The page layout of the the certificate is subjective. Hence, there can be several possible opinions and formats. It is up to the individual to decide on a particular design. A sample layout used here will look like:

To start with, it is important to choose a suitable class like scrartcl which offers different font sizes keeping in view that, in a certificate, one usually wants somewhat bigger fonts than usual. To get a desired page layout, packages like

  1. geometry — to adjust borders, page orientation etc.
  2. pdflscape/lscape – for orientation of the page

and environments like minipage, parbox prove to be handy. Also some effort should be made to incorporate a nice font (again subjective).

Once the layout is designed we can start filling the contents.

What do you put behind?

The beauty of a certificate is enhanced by a good-looking background. This background may be an image or simply some pleasant color. Putting a background can be done with the help of the background or wallpaper packages. Some beautiful paper backgrounds can be found at

Indeed, a simple Google search of paper background will direct you to numerous websites providing free paper background images.
(Note that you should always check that the licence allows you to use the images in public documents.)

Additionally one may prefer to draw some nice looking borders. The tools available for this job include TkZ, smartdraw etc. The


package from Alain Matthes and psvectorian package can be interesting tools for drawing some beautiful borders. Some examples of nice looking borders can be found in

at TeX.SX.


A certificate will have static and running content. Static content stays the same for all certificates while the running content (such as the name of participant, his/her institute etc) will be different for different certificates. Obviously static content is easy to handle compared to running content. To typeset the running content, one can use the datatool package and exploit its mail merging feature. First, a .csv (comma separated variable) file containing names, institute etc has to be prepared. This file will be later used in the main .tex file.

A long journey through all these steps will get us to a certificate like this:

How to save some money

Usually, it will be economic to print two certificates on A3 paper instead of printing each of them separately (At least, that is the situation at my institute). My workaround for this is to use the pdfpages package. After putting two certificates (each of A4 size) on a single A3 paper, we get:

The code

The complete code along with some background images can be found at https://github.com/harishkumarholla/Certificate. (Thanks to Paulo Cereda for his duck! ). Some interesting versions of certificates using latex can be found at TeX.SX.




5 thoughts

  1. Smashing work mate. I’ve always wondered what could be done with LaTex and this would make for a great reason to show it of at my hackerspace.

Leave a Reply

Your email address will not be published. Required fields are marked *