Loading repository data…
Loading repository data…
fmilthaler / repository
This is a generic LaTeX template for dissertations (layout according to Imperial College London).
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This template aims at students of any degree (Bachelor, Master, PhD) who start writing up their thesis in LaTeX.
The overall layout is pleasant, stylish yet classic and fulfills the layout regulations at Imperial College London. It is quite generic, thus it is useful for dissertations at any University with minor adjustments to the layout to conform with your University's layout regulations.
Knowledge of how to use LaTeX is a prerequisite, while knowledge of Makefiles is optional.
.bib files in one file references/references.tex, that way you can organise and split your references across several .bib files without keeping track of them (without manually updating \bibliography{...} in your .tex file)latexmk and they even go beyond. This template stands out from others due to the customised Makefiles. These automate many processes with several checks in place so that no time is wasted on recompiling your document if it is not needed. They allow for (please find a more detailled description of the Makefile's targets and how to use it further below):
images subdirectories of the chapter directories, the Makefile hierachy in place automatically finds and compiles those for you,.tex files,.tex files (in all subdirectories) to quickly find a certain pattern,make fullthesis on the command-line (for Linux/Mac OS X users, Windows users are required to compile the files manually, sorry). fullthesis will not only compile your document, but will also compile some standalone TikZ graphics that are then included in your document/thesis.thesis.pdf with a PDF reader of your choice, e.g. evince../preamble/myinformation.tex and ./thesis.tex, e.g. set your name, university, title etc.make (or make thesis) on the command-line. This will not compile the aforementioned graphics in subdirectories, but will only recompile your main document/thesis thesis.tex../preamble/preamble.tex, below the definition of the documentclass.As mentioned above, one of the main features of this template is the comprehensive use of recursive Makefiles.
Each target is executed on the command-line with make <target-name>.
The most frequently used - and the ones you should definitely know about - targets are:
thesis: this target compiles your main document thesis.tex, it also runs through BibTeX to sort out your bibliography. Moreover, it automatically detects changes in references/labels/citations and recompiles your target if required in order to resolve those changes. It does expect all images included in the document to be present (see target imagedirs below). Finally, it automatically detects a nomenclature, and if so, it also detects if changes were made to it. If both criteria are satisfied, the document is automatically updated to reflect the changes in the nomenclature.fullthesis: in case of you separating the compilation of some plots/graphics from your main document (in order to save compile time), those TikZ graphics/PGFPlots need to be compiled (before you run make thesis and obviously every time you make changes to those graphics/plots. fullthesis invokes another target called imagedirs that takes care of thos graphics/plots. It compiles all standalone texfiles resulting in .pdf files in subdirectories images. Those pdf files can then be included in the main document. After that step, fullthesis invokes thesis to compile the main document.For those who want to know more, and might want to make some changes to the Makefile, here is a more detailled and technical description of all targets:
ref: executes the target references in ./references/Makefile, which in turn executes the bash script ./references/create_bib_list.sh which collects the names of all .bib files in ./references/ and includes them in a newly created file ./references/references.tex. This can be included in your main LaTeX file (here: thesis.tex); example: imagine you have A.bib, B.bib, C.bib in the directory ./references/, make ref creates ./references/references.tex which has the following LaTeX command in it: \bibliography{references/A,references/B,references/C}. Note: Do not manually edit references/references.tex as it is automatically overwritten by the script every time you compile your thesis.run: runs LaTeX (by default: pdflatex) on thesis.tex; all required files, such as image files are required/expected to be in place, otherwise this operation will fail.bib: first executes ref, then: if thesis.aux does not exist, it executes run, followed by BibTeX (bibtex thesis)index: executes makeindex ${THESIS}.nlo -s nomencl.ist -o ${THESIS}.nls, required for building a nomenclature.thesis: first it executes run, bib and nomtest in that order; then the logfile thesis.log is scanned for references of missing/changed citations, multiple/changed labels, and rerun suggestions, and executes run at each check of the logfile; finally, after having finished the checks and reruns, it prints out the warnings LaTeX provides in its logfile by executing make warnings (see below)imagedirs: executes the target all in each subdirectory defined in IMAGEDIRS (this variable is defined in this Makefile); this is useful if some images are done with TikZ/PGFPlots, thus you can create standalone pdf files (which are vector graphics) of your TikZ/PGFPlots graphics that you then include in your main LaTeX document. This target imagedirs allows you to compile all of these graphics to be compiled on the fly. Note: This step is beneficial if you are using PGFPlots to read in lots of data points from data files to create a beautiful plot of your results. This process can take some time, hence you do not want this to be processed every time you change the text in your thesis. As the standalone .pdf graphic is a vector graphic, you do not loose quality.fullthesis: executes allclean, imagedirs, ref, thesis in that order; basically it removes all previous output files (in this and subdirectories) and builds your thesis from scratch (including graphics, e.g. TikZ/PGFPlots graphics as explained above)nomtest: checking if there were changes made on the nomenclature the last time the main document was compiled. If so, it executes make nomupdate. Note: this target ensures a minimal number of LaTeX compilation neccessary to build/update the nomenclature.nomupdate: executes index and run in that order. Gets triggered when nomtest found changes in the nomenclature and makes sure the changes are updated in the document.warnings: scans the LaTeX logfile thesis.log for warnings and prints out the warnings on the command-line, certain keywords are printed in red for better visibility.spellcheck: uses the command-line tool Gnu Aspell (aspell) to spellcheck all .tex files in the subdirectories defined in TEXDIRS (this variable is defined in this Makefile); just make sure you keep TEXDIRS up to date when you add more subdirectories with .tex files, and it will find them; by default, the language is set to English (GB), if you need to adjust this, find the option in the file ./common.mktexcount: uses the command-line tool TeXcount (texcount) as well as ps2ascii (ps2ascii) followed by a simple wc -w to determine the word count in your document. Note: both are not very accurate.search: searches for a user defined pattern in all .tex files in all subdirectories defined in TEXDIRS (this variable is defined in this Makefile); usage: make search SEARCH=<pattern>.clean: removes all output files from the main directory (except for .pdf file(s))allclean: first executes clean, then: removes all output files (also .pdf files) from all subdirectories defined in IMAGEDIRS (this variable is defined in this Makefile);See a list and short description of directories and files in this repository to understand how the files are organised and where to find what.
Makefile (main Makefile which targets are explained below)common.mk (some variable definitions that are used in Makefiles)thesis.tex (main .tex file of your document that you run through pdflatex/lualatex, this file consists mainly of \input{<filename>} commands to include the content of your thesis).preamble/ (files that set up the layout of your thesis and include LaTeX packages are in here)