Authors: Christophe Cauet (christophe@cauet.de) & Florian Kruse (pa@floriankru.se)
This work is released under the MIT License.
How to work with this template
This thesis template is based on a private/common layout, i.e. large parts are shared between collaborators (config, definitions, references) while the main content is stored elsewhere. To work with this template, you should create a file hierarchy with the following minimal structure and create a symlink named private
pointing there.
.
βββ content
Β Β βββ content.tex
In case you want to include private configurations, definitions, a title page, or an appendix, the minimal template can be extended.
.
βββ config
βΒ Β βββ config.tex
βββ content
βΒ Β βββ appendices
βΒ Β βΒ Β βββ appendices.tex
βΒ Β βββ content.tex
βΒ Β βββ titlepage
βΒ Β βββ titlepage.tex
βββ definitions
Β Β βββ abbreviations
Β Β βΒ Β βββ abbreviations.tex
Β Β βββ acronyms
Β Β βΒ Β βββ acronyms.tex
Β Β βββ definitions.tex
To make use of %!TEX root = ..
in your editor, create a second symlink called common
in your private file hierarchy.
git-annex
User guides for all used packages can be found in doc/ using git-annex.
Useful fonts can be found in fonts/ using git-annex.
The directory common/config/fonts/ contains sets of matching fonts that can be activated with a simple include in your own private/config/
setup.
To speed up compilation, rapid mode can be enabled by defining rapidmode as true in the private/config/
setup:
\rapidmode
This currently has the following effects:
- Tikz externalize library is used to avoid unnecessary recompilation of Tikz figures
- Todonotes are disabled (not compatible with Tikz externalize)
Other speed-up features might be added in the future.
Compilation with latexmk
in SublimeText/LaTeXTools does not work with externalize as the -shell-escape
option is not propagated to lualatex
. To fix this add the following to your LaTeXTools user settings:
{
β¦
"builder_settings" : {
// General settings:
// See README or third-party documentation
"program": "lualatex",
"command": ["latexmk", "-cd", "-e", "$pdflatex = '%E -shell-escape -interaction=nonstopmode -synctex=1 %S %O'", "-f", "-pdf"],
// (built-ins): true shows the log of each command in the output panel
"display_log" : false,
// Platform-specific settings:
"osx" : {
// See README or third-party documentation
},
"windows" : {
// See README or third-party documentation
},
"linux" : {
// See README or third-party documentation
}
},
β¦
}
Todos can be defined with the following macros:
\todo{Do something}
\important{Do something ASAP!}
\info{A rather informational todo note.}
\missing{Add section about interesting study}
\addref{Note for a missing reference.}
\replace{this}{by that}
\redo{Recreate this ugly looking plot and make it nice!}
All todos can be disabled by adding
\presetkeys{todonotes}{disable}{}
to the private config files.
To make todos inline by default:
\presetkeys{todonotes}{inline}{}
wordcount.py
Create word count for all files in private/content/ and write log file including timestamp to private/.
Dependencies: texcount and the python modules: os, pexpect, fnmatch, datetime, pytz
It is possible to automatically append the current word count to the log file each time a commit to the private repository is made. To do so, just add a pre-commit hook to the private repository. Go to private/.git/hooks
and create a file pre-commit
, then add:
#!/bin/sh
./common/wordcount.py --silent --exclude-appendix
git add wordcount.txt
common/scripts/plot_wordcount.py
Script to parse and plot the word count log file. Dependencies: argparse, numpy, matplotlib, datetime
common/scripts/prettify_pgfplots.py
Utility to "prettify" tikz-based plots from ROOT. Based on a python dictionary with regexps (if not specified, this is common/scripts/prettify_dictionary.py
) patterns will be replaced by proper TeX code (e.g. broken particle names by proper symbols).
Dependencies: Python modules: fileinput, re, sys, imp, os
common/scripts/prettify_all.py
Prettify all tikz-based plots. Will be run via make.
Dependencies: Python modules: os, pexpect, fnmatch, datetime, pytz
Special LHCb content can be found in definitions/acronyms/lhcb.tex
and references/lhcb.bib
. The acronyms can be added to the private configuration by adding the line:
\input{common/definitions/acronyms/lhcb}
or for the LHCb-centric bibliography:
\addbibresource{common/references/lhcb.bib}