A LaTeX document class that conforms to the Computer Laboratory's PhD thesis formatting guidelines.
Pull request Compare This branch is 94 commits behind cambridge:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Quick start

Copy all files from this directory (where you found this readme file) to your desired location.

Now you can start writing your thesis using the thesis.tex file.

How will it look like?

Your thesis document will look something like this:

The template also supports DVI and PS formats. All three formats are generated by the provided Makefile.

Producing PDF, DVI and PS documents

Build your thesis

To build your thesis, run:


This should build thesis.dvi, thesis.ps and thesis.pdf documents.

Clean unwanted files

To clean unwanted clutter (all LaTeX auto-generated files), run:

make clean

To clean absolutely all files produced by make, run:

make distclean

For other build options, refer to the Makefile file itself.

Usage details

Class options

cam-thesis supports all the options of the standard report class (on which it is based).

It also supports some custom options.

  • techreport: formats the document as a technical report. Here is a list of formatting points in which the technical report differs from a normal thesis (see guidelines for more information):

    • different margins (left and right margins are 25mm, top and bottom margins are 20mm),
    • normal line spacing (instead of one-half spacing),
    • no custom title page,
    • no declaration,
    • page count starts with 3,
    • if the hyperref package is used, the option pdfpagelabels=false will be passed to it.
  • notimes: tells the class not to use the times font. This option is implied by the nopackages.

  • nopackages: tells the class not to use any non-essential packages (this option implies the notimes option).

    Note: If this option is not specified, then the class will use the following non-essential packages:

    • times (can also be excluded by using the notimes option),
    • amsmath
    • amssymb
    • amsthm


Q1: I found a bug in the template. Where do I report bugs?

You can report issues through our GitHub repository.

You can also mail the maintainers directly.

Q2: Where can I find the thesis formatting guidelines this class is based on?

The University of Cambridge guidelines:


The Computer Laboratory guidelines:


Q3: Can I use my own Makefile?

By all means. Here is a very nice (and smart) Makefile built specifically for LaTeX:


Q4: But what if I don't want the template files in my thesis directory?

Put the files and folders listed below into a directory where LaTeX can find them (for more info see [1]):


[1] You can put these files either into the standard LaTeX directory for classes [2], or a directory listed in your TEXINPUTS environment variable.

[2] The location of the standard LaTeX class directory depends on which LaTeX installation and operating system you use. For example, for TeX Live on Fedora 14 it is /usr/share/texmf/tex/latex/base.

In any case, after this, LaTeX will still not be able find your class. You will have to rebuild the package index. This procedure also depends on your installation specifics, but for TeX Live you have to run the texhash command.

For more comprehensive information refer to LaTeX Wikibooks.

Q5: Where can I find newer versions of the University of Cambridge logo?

The university updates its logo every now and then. You can find up-to-date logos on this page (subject to change without notice).

Download and exchange the new logos with CUni.eps and/or CUni.pdf.

Q6: My college's shield/coat of arms/crest is not included. Why u no include it?

The shields are being added on the go (when somebody, who uses them, provides them).

If you find a distributable vector-based image of your college's shield you can report it as an issue or mail it to contributors directly (refer to question Q1 above).

TODO list

  • Fill PDF's meta tags (e.g.: author, title, keywords etc.).
  • It is debatable which packages are non-essential. We could reclassify this.