Download: Thesis (with comments) | Submission (without comments)
Requires TeX Live 2025 (or any distribution with latexmk and minted 3),
Python 3, and latexminted's cwd-config support:
bash ./tools/create_latexminted_config.sh # once, writes ~/.latexminted_config
make # thesis.pdf
make submission # thesis-submission.pdf
make both # both of the abovemake regenerates .latexminted_config (the SHA256 of the custom Lean 4
lexer under tools/lexers/) before compiling; if a code listing suddenly fails
to highlight, make clean refreshes those hashes.
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's a sample). 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
hyperrefpackage is used, the optionpdfpagelabels=falsewill be passed to it.
-
firstyr: formats the document as a first-year report (here's a sample). This option removes some unneeded elements and modifies the submission note. Here is a list of formatting points in which the first year report differs from a normal thesis:- an appropraite subtitle is added,
- the submission note is changed appropriately,
- no standalone abstract,
- no declaration,
- no acknowledgements.
-
secondyr: formats the document as a second-year report (here's a sample). Similarly tofirstyr, this style modifies the submission note and removes unneeded elements. Specially, an abstract is retained (as for this report, research is often in a more "stable" state). Here is a list of formatting points in which the second year report differs from a normal thesis:- an appropraite subtitle is added,
- the submission note is changed appropriately,
- no declaration,
- no acknowledgements.
-
times: tells the class to use the times font. -
glossary: puts the glossary after the TOC. The glossary contains a list of abbreviations, their explanations etc. Describe your abbreviations and add them to the glossary immediately after you introduce them in the body of your thesis. You can use the following command for this:\newglossaryentry{computer} { name=computer, description={is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format} }After that, you can reference particular glossary entries like this:
\gls{computer}You can also change the glossary style. For example, try putting this on the very top of the preamble (even before you define the document class with
\documentclass[glossary]{cam-thesis}):\PassOptionsToPackage{style=altlong4colheader}{glossaries}Further instructions can be found on LaTeX Wikibooks or the user manual at CTAN.
Note:
glossariesis the package used to create the glossary. -
withindex: build the index, which you can put at the and of the thesis with the following command (it will create a new unnumbered chapter):\printthesisindexInstructions on how to use the index can be found here.
Note: the package
makeidxis used to create the index. -
backrefs: Add back references in the References section (here's a sample). In other words, for each reference, it adds the page(s) where it is cited.Note: the package
backrefis used to create the back references.
The University of Cambridge submission guidelines:
The University of Cambridge final submission guidelines:
The Computer Laboratory guidelines:
The Computer Laboratory guidelines for technical reports:
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.
There is a page on the Computer Lab's web site. They recommend using this command:
ps2ascii thesis.pdf | wc -w
In thesis.tex use \collegeshield{CollegeShields/<college>} with <college> as your your desired college name, as found in CollegeShields.
Alternatively, \collegeshield{CollegeShields/CUniNoText} can be used to display the University of Cambridge shield design.