This template is a general template for scientific theses. Currently, it is the unofficial LaTeX template for Master, Bachelor, Diploma, and Student Theses at following institutions:
The template will be extended to support theses from different institutions.
For architectural decision records see docs/adr.
scientific-thesis-template-main.zip to the directory you want to work. E.g., c:\users\user\documents\thesis.main-english.texmain-german.texmain-minted-german.tex (see below)See overleaf.
main-english.tex is the main documentlatexmk main-english / make in the command linelatexmklatexmk is a very smart tool for latex compilation.
It executes the latex tools as often as needed to get the final PDF.
(More information about why latexmk is great can be found at https://tex.stackexchange.com/a/249243/9075.)
To build the whole document, execute following command. Note that this requires a working perl installation.
latexmk main-english
To enable latexmk, please move _latexmkrc to latexmkrc.
If you want automatic compilation use following command:
latexmk -pvc main-english
This will also open a Sumatra PDF and only works with the supplied configuration.
This repository ships a .latexmkrc which is read by latexmk.
In case there is a _latexmkrc file, you need to rename it to .latexmkrc.
It is configured for Windows and especially sets Sumatra PDF as default PDF viewer.
You can make this local configuration a global configuration, when you put it at the right place.
If you want to add more packages, configure it there.
For instance, for support of makeglossaries see http://tex.stackexchange.com/questions/1226/how-to-make-latexmk-use-makeglossaries.
In case something goes wrong, you can instruct the LaTeX compiler to stop at the first error:
lualatex --synctex=1 --shell-escape main-english
Run biber main-english to get the bibliography rendered (execute lualatex afterwards).
On the command line, there are additional features:
latexmk -C or make clean for cleaning upmake format to reformat the .tex files (one sentence per line and indent)make aspell for interactive spell checkingmake stand: Creates a new PDF with the current status of the thesis.make view: Opens the configured viewermake mrproper: Cleans up and removes also editor backup files.Following features are enabled in this template:
minted provides better output than listings, but requires latexminted to be installed.glyphtounicode, which encodes ligatures (such as fl) using unicode characters.\powerset command..bib file:
Unicode (UTF-8) is fully supported and commands such as \citeauthor{...} work out of the box. See also https://tex.stackexchange.com/q/8411/9075.Following features were not activated for this template. You can run the latex template generator to enable the features.
Congratulations. You chose to use all available features.
sudo tlmgr update --all if you encounter issues with biblatexSee docs/latex-setup for refined installation instructions.
mintedTo have minted running properly, you have to do following steps on Windows:
choco install python - that uses chocolatey to install Pythonpip instal latexminted - that uses the Python package manager to install the minted library-shell-escape: pdflatex -shell-escape main-english.
You can also just execute latexmk main-english.Currently, following extensions are recommended:
Then, change the setting of LaTeX Workshop to use biber:
Press Shift+Ctrl+P to open the command palette.
Then type “JSON” and select “Preferences: Open Settings (JSON)” to open settings.json.
Update the following lines in VS Code’s settings.json to contain:
"latex-workshop.latex.recipes": [
{
"name": "lualatex ➞ biblatex ➞ lualatex × 2 🔃",
"tools": [
"lualatex",
"biblatex",
"lualatex",
"lualatex"
]
},
],
"latex-workshop.latex.tools": [
// ...
{
"name": "biblatex",
"command": "biblatex",
"args": [
"%DOCFILE%"
],
"env": {}
},
// ...
],
The following settings are additionally recommended:
{
"editor.wordWrap": "on", // enable soft line breaks
"latex-workshop.view.pdf.viewer": "tab", // display the generaded PDF in a separate tab
"latex-workshop.view.pdf.backgroundColor": "#cccccc", // use a darker background in de PDF viewer to lift of the pages from it
"latex-workshop.latex.autoBuild.run": "never", // never automatically build; alternative: "onSave" (on saving .tex files)
"editor.renderWhitespace": "all", // display all whitespaces
}
Alternatively, just copy and paste the contents of the vscode.settings.json file to your VS Code settings file.
You can manually trigger compilation by hitting the green button in the extension or using other methods provided by LaTeX Workshop.
Please remove the magic comments (% !TeX program ...) at the top of the main-....tex file.
Although LaTeX-Workshop supports magic comments, it currently does not work reliably.
Without the magic comments, compilation works.
LTeX+ is an offline grammar and spell checker with support for LaTeX and Markdown.
Add a magic comment to your files to tell LTeX+ which language to use:
% LTeX: language=de-DE
If you want to use different languages in the text, use the \foreignlanguage{language}{text} command.
LTeX+ will detect these elements and automatically switch the spell checker’s language.
For example:
\foreignlanguage{english}{Therefore, our proposed approach will change the world.}
The generated Dockerfile is based on the Dockerfile by the Island of TeX.
docker run --rm -v "c:\users\example\latex-document:/workdir" ltg latexmk
Following one-time setup is required:
docker build -t ltg .
main-english.tex - The main .tex file loading all LaTeX packages and their configurations.
Following additional files are included, which do not need to be adapted:
git remote add template https://github.com/latextemplates/{template}.gittemplate/main into your main branch: git merge template/main.After that you can use and push the main branch as usual.
Notes on syncing with the upstream repository are available from GitHub.
! pdfTeX error (font expansion): auto expansion is only possible with scalable fonts.Install the cm-super package using the MiKTeX package manager. Then, run initexmf --mkmaps on the command line. (Long description: https://tex.stackexchange.com/a/324972/9075)
Package csquotes Error: Unbalanced groups or invalid nesting. What can I do?A: You have activated \MakeOuterQuote{"} and used some special babel command to allow hyphenation at other places as a dash. One example is writing application"=specific.
Now, you have to decide whether you want keep using plain quotes to enquote a word or use the special hyphenation command.
In other words: Do you want "quote" and app\-lication\-specific or \enquote{quote} and application"=specific?
Note that this should not happen when the template is generated as the setting tweakouterquote ensures that these two options are mutually exclusive.
The most simple solution to get more space is to exchange the font.
.tex files?Execute latexindent -l -s -sl -w main-english.tex
Alternatively, execute make format.
See “How can I reformat my .tex files?”
You can re-generate the template and choose minted as listings environment.
Moreover, ensure that python and latexminted are installed properly:
choco install pythonpip install latexmintedFor instance, on gets following output:
! Package minted Error: minted v3+ executable is not installed, is not added to
PATH, or is not permitted with restricted shell escape; or MiKTeX is being use
d with -aux-directory or -output-directory without setting a TEXMF_OUTPUT_DIREC
TORY environment variable.
Try out following command to update latexminted.
See minted#425 for details.
python3 -m pip install --force-reinstall latexminted
Yes. You can regenerate the template and choose “German” as language.
This template uses the alphabetic style. That style is explained at the biblatex documentation on page 60:
The alphabetic labels resemble a compact author-year style to some extent, but the way they are employed is similar to a numeric citation scheme. For example, instead of “Jones 1995” this style would use the label “[Jon95]”. “Jones and Williams 1986” would be rendered as “[JW86]”.
We are aware that the University of Stuttgart recommends to use the Hardvard style. However, this style is not common in natural sciences and information science.
ngerman-x-latest is reported missingInstall the package dehyph-exptl.
! I can't find file `clmr28t10+20'.You seem to use latexmk locally.
Please move _latexmkrc to latexmkrc to get latexmk working.
If you don’t do this, latexmk tries to execute latex, which tries to produce a DVI file (and not a PDF file).
Font "LatinModernMath-Regular" not found.. What can I do?Error message:
luaotfload | db : Reload initiated (formats: otf,ttf,ttc); reason: Font "LatinModernMath-Regular" not found.
luaotfload | resolve : sequence of 3 lookups yielded nothing appropriate.
! Package fontspec Error: The font "LatinModernMath-Regular" cannot be found.
Install the package lm-math manually.
File `ushyphex.tex' not found.Install package tugboat.
! Package fontspec Error: The font "LinuxLibertineO" cannot be found.. What can I do?Install the package libertine manually.
! Package fontspec Error: The font "TeXGyreTermes" cannot be found.. What can I do?Install the package tex-gyre and tex-gyre-math manually.
! error: (type 1): cannot find encoding file 'ntx-ot1-tlf.enc' for reading. What can I do?See https://tex.stackexchange.com/a/240850/9075: Install the packages newpx and newtxsf manually.
! TeX capacity exceeded, sorry [main memory size=3000000].. What can I do?Follow the steps at https://tex.stackexchange.com/a/548335/9075
Try with following command
lualatex -shell-escape --extra-mem-top=10000000 --synctex=1 main-english.tex
See https://tex.stackexchange.com/a/124206/9075 for details.
See installation hints of how to update them at different systems.
.sty files.Use the MiKTeX console to refresh the package index. Then, automatic installation should work again.
-shell-escape warning.Please ensure that your compilation command includes -shell-escape.
E.g., lualatex -shell-escape -synctex=1 main-minted-german.tex.
When compiling main-minted-german.tex with TeXStudio, you will see a dialog warning about overriding the compilation command.
Just answer “(a) allow for this document” and it will work.
pdfcrop chart.pdf chart_cropped.pdf (install via MikTeX first, if not available; check via pdfcrop --version).\includegraphics{chart_cropped.pdf}.Look for % Code for my fancy chapters. in your main .tex file and play around with parameters.
Sure. The Hagenberg Thesis Document Collection seems to be the most promising. However, they currently do not support microtype and not the cover of the University of Stuttgart.
We are collecting alternatives at the issue #25 and plan to add a comparison to each other template.
\largepage and \shortpage, single lines at the bottom or at the top of the page can be manually fixed.\usepackage{todonotes} in your main .tex file.lualatex at least three times and that there are no “undefined references”.main-minted-german.tex does not compile: File `main-minted-german-plantuml.latex' not found. \end{plantuml}. What can I do?You did not setup the plantuml package correctly. Please head to https://koppor.github.io/plantuml/ for installation instructions.
The license of this work is 0BSD which corresponds to “public domain”. Any derived work can freely be relicensed and can omit original copyright and license information.