Bibliography style

The 'thesis' template defaults to using the biblatex package (ieee style) and the Biber engine to generate bibliographies and citations.

The following resources may help with the biblatex configuration:

To change the bibliography style, just redefine the style in the document header:




Preview of the default (ieee) bibliography style:




For example, to use the alphabetic style, replace the code with:




Preview of the alphabetic bibliography style:




For more advanced configuration, the relevant biblatex configuration entries can be found in the utuftthesis.cls file:

%% bibliography, new engine

Extra packages

The LaTeX ecosystem provides a variety of extra packages that are not available in the basic distribution of 'thesis'. Should a required package be missing, see Consultation of the manuals of these packages is strongly encouraged.

The TexLive distribution used by the 'thesis' projects provides a package manager of its own. The recommended approach for installing these packages is to either use a local TeX installation or to create a custom Docker image, then to configure the CI/CD script to use this new image.

❗ Installing packages in the GitLab CI/CD script is not recommended as the script is run after after each commit. This can generates extra traffic to CTAN servers and the repositories may even block access to fight the bandwidth costs. ❗

Local installation

Assuming a local LaTeX distribution has been set up, the tlmgr command can be used to install more packages:

$ tlmgr update --self
$ tlmgr install MYPACKAGE1 MYPACKAGE2

If the document will be recompiled multiple times and/or one needs to experiment with new packages, the local installation is probably the most efficient approach.

R and LaTeX

Knitr can be used for embedding R code in TeX files. Knitr supports caching of the generated figures to improve performance. A previously installed R distribution is required to use Knitr.

One can begin with this simple example.Rnw:

You can type R commands in your \LaTeX{} document and they will be 
properly run and the output printed in the document.
X = 2:10


First, process the embedded R code with R & Knitr:

$ Rscript -e "library(knitr); knit('example.Rnw')"

The script generates all the figures, and produces a normal .tex file with the textual content pre-rendered inline:

You can type R commands in your \LaTeX{} document and they will be 
properly run and the output printed in the document.
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\hlstd{X} \hlkwb{=} \hlnum{2}\hlopt{:}\hlnum{10}
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       2       4       6       6       8      10


The generated file can be compiled with LaTeX:

$ latexmk -pdf -shell-escape example.tex


Tools for benchmarking