If you're looking for help with converting your document to PDF/A, see this README in the PDF/A branch of this repo.
The pdf is built with ./build.sh which uses latexmk, lualatex, and biber, which may be available to you if you have latex installed on your system. If not, I recommend installing full TeX Live. On Ubuntu systems, you will be able to do this with
sudo apt install texlive-full
or on Fedora
sudo dnf install texlive-scheme-full
and I trust you can figure this out if you are on a different operating system. The full TeX Live installation is probably excessive but is the easiest way to ensure you have all the tools and packages you need.
The initial build will take rather long because there are many tikz diagrams (mostly Feynman diagrams) that need to be drawn.
Subsequent builds are much quicker because I use the tikz library external which creates pdfs for the diagrams in tikz/ which are reused in future builds of the thesis. If you change the diagram in its corresponding .tex file, it should recreate the diagram.
To students who are writing their thesis and are here for inspiration, I highly recommend using vscode and the LaTeX and LaTeX Workshop extensions. You'll probably also want a spell-check tool such as LTeX. Note that spell checking is often not perfect when writing in LaTeX so do be careful.
If you do use the LaTeX Workshop extension, it can build the thesis for you instead of you running ./build.sh. You can trigger this manually, or it automatically attempts this when saving a .tex file. The build 'recipe' is set by the first line in thesis.tex.
We have to define the recipe via the recipes settings for the extension (see docs). Some of the default recipes look like this
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
and we have to add this extra recipe:
{
"name": "lualatexmk -> biber -> lualatexmk",
"tools": [
"lualatexmk",
"biber",
"lualatexmk",
]
},
We also have to tell the extension what is meant by lualatexmk and biber. This is done via the tools setting (see docs). You will need to insert the following tools
{
"name": "lualatexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex",
"-outdir=%OUTDIR%",
"--shell-escape",
"%DOC%"
],
"env": {}
},
{
"name": "biber",
"command": "biber",
"args": [
"%DOCFILE%"
],
"env": {}
}
where the lualatexmk entry may already exist but you should overwrite it. The default tool definition does not include --shell-escape which is needed for the tikz externalize library.