% Language \usepackage[american]{babel} % \usepackage[T1]{fontenc} % Silbentrennung bei Sonderzeichen % \usepackage[utf8]{inputenc} % Layout \usepackage[left=3.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry} % Typical margin \usepackage{titling} \usepackage{fancyhdr} \usepackage{setspace} % Line stretch % Bibliography \usepackage[backend=biber,urldate=iso,date=iso]{biblatex} \usepackage[nottoc,notlof,notlot]{tocbibind} % Include bibliography in ToC, nottoc disables the "Contents" entry for the ToC itself % Figures \usepackage{graphicx} % Required for inserting images \usepackage{subcaption} % Mehrere Figuren in einer \usepackage{float} % [H] floating/positioning von Figuren \usepackage[bottom]{footmisc} % Bottom not below footnote % Math % \usepackage{amsmath,amssymb,amsthm} % \usepackage{mathtools} % Extension of amsmath % \usepackage{upgreek} % For non italic greek (vectors/matrices) \usepackage{unicode-math} \usepackage{lualatex-math} % Tables \usepackage{tabularx} % \usepackage{tablefootnote} % \usepackage{makecell} % \usepackage{color,colortbl} % Code \usepackage{algorithm} \usepackage{algpseudocode} \usepackage{xcolor} \usepackage{tikz} \usepackage{listings} % For lstinputlisting ChkTeX \usepackage[minted]{tcolorbox} % Typography \usepackage[babel,final,protrusion=true,expansion=true,tracking=false,kerning=false,spacing=false]{microtype} \usepackage{fontspec} \usepackage{concmath-otf} \setmonofont{MonoLisa Alt}[Scale=MatchLowercase] % Various stuff \usepackage[page]{appendix} % [toc] \usepackage{lipsum} \usepackage[inkscapelatex=false]{svg} % Don't touch fonts \usepackage{comment} \usepackage{pdfpages} \usepackage{luatodonotes} \usepackage{siunitx} \usepackage[l2tabu,orthodox]{nag} \usepackage{etoolbox} % For \ifstrequal \usepackage[autostyle]{csquotes} % Correct quotation marks with \textquote{} \usepackage{silence} % Silence warnings \usepackage[intoc]{nomencl} % Nomenclature \usepackage[luatex,hidelinks]{hyperref} % Load late \usepackage[acronym,automake,nonumberlist,nogroupskip]{glossaries} % Load after hyperref, toc \usepackage{xurl} % xurl does url-line-breaks in contrast to url % Multi-file \usepackage{subfiles} % Load last % Settings \setstretch{1.25} \bibliography{references} \clubpenalty=10000 \widowpenalty=10000 \displaywidowpenalty=10000 % \floatstyle{boxed} % \restylefloat{figure} \sisetup{detect-all} \tcbuselibrary{skins} % breakable \usetikzlibrary{shadings, backgrounds} \setlength{\headheight}{14pt} % \mathtoolsset{showonlyrefs} % \usepackage{xpatch} % \makeatletter % \xpretocmd\HyRef@autoref{\noeqref{#2}}{}{} % showonlyrefs mit \autoref % \makeatother \makeatletter\newcommand{\tcb@cnt@codeblockautorefname}{Listing}\makeatother % Silence some warning spam % \WarningFilter{biblatex}{The following entry could not be found} % Those are duplicated at the actual \cite usage % \WarningFilter{latexfont}{Font shape `T1/zi4/m/it' undefined} % \WarningFilter{latexfont}{Font shape `TS1/zi4/m/it' undefined} % \WarningFilter{latexfont}{Some font shapes were not available} \fancypagestyle{plain}{% \fancyhf{} \renewcommand{\headrulewidth}{0pt} \fancyfoot[RO,LE]{\thepage} } \fancypagestyle{report}{% \fancyhf{} \renewcommand{\headrulewidth}{0.4pt} \fancyfoot[RO,LE]{\thepage} \fancyhead[LO,RE]{\slshape \leftmark\/} } % Macros \let\oldurl\url% \let\url\undefined% \newcommand{\url}[2][\PackageError{Thesis}{URL requires 2 arguments: \url[date]{address}, e.g.\ \url[07/27/2024]{https://github.com}}{}]{\oldurl{#2} (visited on #1)} \renewcommand{\author}[1]{\gdef\theauthor{#1}} \renewcommand{\title}[1]{\gdef\thetitle{#1}} \newcommand{\germantitle}[1]{\gdef\thegermantitle{#1}} \newcommand{\thesistype}[1]{\gdef\thethesistype{#1}} \newcommand{\thesisid}[1]{\gdef\thethesisid{#1}} \newcommand{\thesiscite}[1]{\gdef\thethesiscite{#1}} \newcommand{\birthday}[1]{\gdef\thebirthday{#1}} \newcommand{\birthplace}[1]{\gdef\thebirthplace{#1}} \newcommand{\thesisstart}[1]{\gdef\thethesisstart{#1}} \newcommand{\thesisend}[1]{\gdef\thethesisend{#1}} \newcommand{\advisors}[1]{\gdef\theadvisors{#1}} \newcommand{\dean}[1]{\gdef\thedean{#1}} % Default start and end for each subfile (the main.tex is also a subfile!) \AtBeginDocument{% % Capitalize all the section names (has to be placed after \begin{document}) \renewcommand{\chapterautorefname}{Chapter} \renewcommand{\sectionautorefname}{Section} \renewcommand{\subsectionautorefname}{Section} \renewcommand{\subsubsectionautorefname}{Section} \renewcommand{\paragraphautorefname}{Paragraph} \renewcommand{\figureautorefname}{Figure} \renewcommand{\tableautorefname}{Table} \renewcommand{\partautorefname}{Part} \renewcommand{\theoremautorefname}{Theorem} \renewcommand{\equationautorefname}{Equation} \renewcommand{\appendixautorefname}{Appendix} \newcommand{\algorithmautorefname}{Algorithm} \hypersetup{ pdfauthor={\@author}, pdftitle={\@title}, % pdfkeywords={\@thesiskeywords}, pdfproducer={LaTeX}, pdfcreator={LuaLaTeX} } % Macros % \renewcommand{\ref}[1]{\autoref{#1}} \let\oldref\ref% \let\ref\undefined% \newcommand{\ref}[1]{\PackageError{Thesis}{REF:\ Use \autoref{label} instead}{}} % Visualize "overfull-hbox" \overfullrule=2cm \pagestyle{empty} \pagenumbering{gobble} % Starting pages \input{titlepage} \cleardoublepage% \frontmatter% \pagestyle{plain} \pagenumbering{Roman} % \tableofcontents{\thispagestyle{plain}} \tableofcontents% \cleardoublepage% \pagestyle{report} \setacronymstyle{short-long} \printglossary[type=\acronymtype] \cleardoublepage% \printglossary% \mainmatter% \pagenumbering{arabic} } \AtEndDocument{% \pagestyle{empty} \pagenumbering{gobble} \let\url\undefined% \let\url\oldurl% \printbibliography[heading=bibintoc] \cleardoublepage% \listoffigures% \cleardoublepage% \listofalgorithms% % \addcontentsline{toc}{chapter}{List of Algorithms} \cleardoublepage% \tcblistof[\chapter*]{listings}{List of Listings} % \addcontentsline{toc}{chapter}{List of Listings} \cleardoublepage% \listoftables% \cleardoublepage% \includepdf[pages=-]{declaration.pdf} } % Colors \definecolor{tuCorporateGreen}{HTML}{639A00} \definecolor{tuCorporateOrange}{HTML}{CA7406} \colorlet{titlebg}{tuCorporateGreen} % Color mixing \colorlet{titlecolor}{gray!5!white} \colorlet{codebg}{white} \colorlet{languagebg}{tuCorporateGreen!30!white} \colorlet{linenumberbg}{gray!20!white} % Math Environments % \newtheorem*{theorem}{Theorem} % \newtheorem*{definition}{Definition} % Code Environment % This box surrounds the language name (e.g., C#) \newtcbox{\languagehighlight}{ nobeforeafter, boxrule=0pt, colback=languagebg, arc=2pt, boxsep=0pt, left=3pt, right=3pt, top=3pt, bottom=3pt, tcbox raise base } % This command is used in the codeblock box to quickly insert the languagehighlight box \newcommand{\codelang}[1]{\languagehighlight{\texttt{#1}}} % The main box for listings \newtcolorbox[auto counter,list inside=listings,number within=chapter]{codeblock}[3][] {% enhanced, % float, % floatplacement=bth, colbacktitle=titlebg, coltitle=titlecolor, colframe=titlebg, interior style={% top color=codebg, bottom color=codebg }, boxrule=0.5pt, % Border width arc=2pt, % Rounded corners width=\linewidth, fonttitle=\normalsize, adjusted title=\textbf{\texttt{\thetcbcounter}\hspace{0.75em}\texttt{#2}}, list entry=\thetcbcounter\quad\texttt{#2}, % List of listings list text={\hspace*{1ex}#2}, % Chapter - Caption spacing in list of listings after title={% Display used language \hfill\setlength{\fboxsep}{2pt} \codelang{#3} }, overlay={% Line number background \begin{tcbclipinterior}\fill[linenumberbg] (frame.south west) rectangle ([xshift=5mm]frame.north west); \end{tcbclipinterior} }, top=1mm, bottom=1mm, right=0mm, left=5mm, #1 % Extra args, e.g. a label } % Options for the listing itself, syntax highlighted using minted/pygmentize \setminted{ linenos, autogobble, breaklines=true, breaksymbol=, breakindent=4mm, breakbefore=., breakbeforesymbolpre=, breakbeforesymbolpost=, baselinestretch=0.8, % escapeinside=||, framesep=5mm, numbersep=7pt, fontsize=\small, } % A box surrounding inline code-type text \newtcbox{\codehighlight}{nobeforeafter,boxrule=.5pt,colback=black!5,colframe=black!35, arc=2pt,boxsep=0pt,left=2pt,right=2pt,top=2pt,bottom=2pt, tcbox raise base} % Quickly place inline codehighlight boxes \newcommand{\code}[1]{\codehighlight{\texttt{\small{#1}}}} % A box surrounding figures \tcolorboxenvironment{figure}{ enhanced, float=htb, arc=2pt, boxrule=0.5pt, colframe=black, colback=white, before skip=\intextsep, after skip=\intextsep, }