├── .gitignore ├── Verzeichnisse ├── Abkuerzungsverzeichnis.tex ├── Worttrennungen.tex ├── Symbolverzeichnis.tex ├── Glossar.tex └── Literaturverzeichnis.bib ├── Arbeit.pdf ├── Sektionen └── Einfuehrung.tex ├── Bilder └── Logo_HS_Coburg.png ├── framework ├── Logo_HS_Coburg.png ├── _Declaration_of_Honor.pdf ├── Setup.tex ├── Declaration_of_Honor.tex ├── Header.tex ├── Header_Practice_Report.tex ├── Packages.tex ├── Environments.tex └── Settings.tex ├── Arbeit.tex ├── Makefile └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .build/* 2 | -------------------------------------------------------------------------------- /Verzeichnisse/Abkuerzungsverzeichnis.tex: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Verzeichnisse/Worttrennungen.tex: -------------------------------------------------------------------------------- 1 | \hyphenation{} 2 | -------------------------------------------------------------------------------- /Arbeit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btoschek/hsc-template/HEAD/Arbeit.pdf -------------------------------------------------------------------------------- /Sektionen/Einfuehrung.tex: -------------------------------------------------------------------------------- 1 | \section{Einführung} 2 | 3 | Text ab hier \ldots 4 | -------------------------------------------------------------------------------- /Bilder/Logo_HS_Coburg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btoschek/hsc-template/HEAD/Bilder/Logo_HS_Coburg.png -------------------------------------------------------------------------------- /framework/Logo_HS_Coburg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btoschek/hsc-template/HEAD/framework/Logo_HS_Coburg.png -------------------------------------------------------------------------------- /framework/_Declaration_of_Honor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/btoschek/hsc-template/HEAD/framework/_Declaration_of_Honor.pdf -------------------------------------------------------------------------------- /Verzeichnisse/Symbolverzeichnis.tex: -------------------------------------------------------------------------------- 1 | \nomenclature[01]{\textbf{Symbol}}{\textbf{Bedeutung} \nomunit{\textbf{[phys. Einheit]}}} 2 | -------------------------------------------------------------------------------- /framework/Setup.tex: -------------------------------------------------------------------------------- 1 | \include{framework/Packages} 2 | \include{framework/Settings} 3 | 4 | % Preload custom user settings & packages 5 | \IfFileExists{./Custom.tex}{\include{Custom}}{} 6 | 7 | \include{framework/Environments} -------------------------------------------------------------------------------- /Verzeichnisse/Glossar.tex: -------------------------------------------------------------------------------- 1 | \newglossaryentry{Glossar} 2 | { 3 | name=Glossar, 4 | plural=Glossare, 5 | description={"selbstständig oder als Anhang eines bestimmten Textes erscheinendes Wörterverzeichnis" \cite{Duden}} 6 | } -------------------------------------------------------------------------------- /framework/Declaration_of_Honor.tex: -------------------------------------------------------------------------------- 1 | \thispagestyle{empty} 2 | 3 | \includepdf[ 4 | pages=-, 5 | pagecommand={}, 6 | picturecommand*={ 7 | \put(75,714){\large \Autorenname} 8 | \put(75,683){\large \Geburtsdatum} 9 | \put(75,652){\large \Studiengang} 10 | \put(75,622){\large \Matrikelnummer} 11 | \put(75,81.5){\large \Ort, den \today} 12 | } 13 | ]{framework/_Declaration_of_Honor.pdf} 14 | -------------------------------------------------------------------------------- /framework/Header.tex: -------------------------------------------------------------------------------- 1 | \centering 2 | \includegraphics[width=.8\textwidth]{framework/Logo_HS_Coburg} 3 | 4 | \begin{Large} 5 | Hochschule für angewandte Wissenschaften Coburg\\ 6 | Fakultät Elektrotechnik und Informatik\par 7 | \end{Large} 8 | \vspace{1.5cm} 9 | 10 | \Large{Studiengang: \Studiengang} 11 | \vspace{1.5cm} 12 | 13 | \Large{\DocumentType} 14 | \vspace{1cm} 15 | 16 | \Huge{\Titel} 17 | \vspace{2cm} 18 | 19 | \huge{\Autorenname} 20 | \vspace{2cm} 21 | 22 | \Large{Abgabe der Arbeit: \Abgabe} 23 | 24 | \Large{Betreut durch:} 25 | 26 | \Large{\Dozent, Hochschule Coburg} 27 | -------------------------------------------------------------------------------- /Verzeichnisse/Literaturverzeichnis.bib: -------------------------------------------------------------------------------- 1 | % Encoding: UTF-8 2 | 3 | @Misc{Duden, 4 | author = {Bibliographisches Institut GmbH Dudenverlag}, 5 | note = {(Zugriff: 18.04.2020)}, 6 | title = {Duden}, 7 | url = {https://www.duden.de}, 8 | } 9 | 10 | @book{Papula2006, 11 | author = {Papula, Lothar}, 12 | publisher = {Vieweg}, 13 | title = {{M}athematische {F}ormelsammlung für {I}ngenieure und {N}aturwissenschaftler : mit zahlreichen {R}echenbeispielen und einer ausführlichen {I}ntegraltafel}, 14 | year = {2006}, 15 | address = {Wiesbaden}, 16 | isbn = {9783834801562}, 17 | } 18 | 19 | @Comment{jabref-meta: databaseType:bibtex;} -------------------------------------------------------------------------------- /Arbeit.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper,12pt]{article} 2 | \input{framework/Setup} 3 | 4 | \def\Titel{Vorlage für verschiedene Dokumente der HS Coburg} 5 | \def\Dozent{} 6 | 7 | % Infos zum Autor 8 | \def\Autorenname{} 9 | \def\Geburtsdatum{} 10 | \def\Matrikelnummer{} 11 | \def\Studiengang{} 12 | 13 | % Infos zum Unternehmen 14 | \def\Unternehmen{} 15 | \def\Abteilung{} 16 | \def\Strasse{} 17 | \def\Ort{} 18 | 19 | % Infos zum Betreuer 20 | \def\Betreuer{} 21 | \def\Funktion{} 22 | \def\Telefon{} 23 | \def\Email{} 24 | 25 | % Daten 26 | \def\Beginn{} 27 | \def\Ende{} 28 | \def\Abgabe{\today} 29 | 30 | \begin{HSCDocument}[preset=Praxisbericht] 31 | 32 | \include{Sektionen/Einfuehrung} 33 | 34 | \end{HSCDocument} 35 | -------------------------------------------------------------------------------- /framework/Header_Practice_Report.tex: -------------------------------------------------------------------------------- 1 | \centering 2 | \includegraphics[width=.8\textwidth]{framework/Logo_HS_Coburg} 3 | 4 | \begin{Large} 5 | Hochschule für angewandte Wissenschaften Coburg\\ 6 | Fakultät Elektrotechnik und Informatik\par 7 | \end{Large} 8 | \vspace{1.5cm} 9 | 10 | \Large{Studiengang: \Studiengang} 11 | \vspace{1.5cm} 12 | 13 | \Large{Praxisbericht} 14 | \vspace{1cm} 15 | 16 | \huge{\Autorenname} 17 | \vspace{1.5cm} 18 | 19 | \begin{table}[H] 20 | \begin{tabular}{|L{3cm}|L{11cm}|} 21 | \hline 22 | Unternehmen & \Unternehmen \\ 23 | & \Abteilung \\ 24 | & \Strasse \\ 25 | & \Ort \\ 26 | \hline 27 | Zeitraum & \Beginn \ bis \Ende \\ 28 | \hline 29 | \end{tabular} 30 | \end{table} 31 | 32 | \large{Abgabe des Berichts: \Abgabe} 33 | 34 | \begin{table}[H] 35 | \begin{tabular}{|L{3cm}|L{6cm}|L{5cm}|} 36 | \multicolumn{3}{l}{Freigabe zur Vorlage des Praxisberichts an der HS Coburg:} \\ 37 | \hline 38 | Betreuer & \Betreuer & \\ 39 | \hline 40 | Funktion & \Funktion & \textbf{\textit{Ort, Datum}}\\ 41 | \hline 42 | Telefon & \Telefon & \\ 43 | \cline{1-2} 44 | Email & \Email & \\ 45 | \hline 46 | & & \textbf{\textit{Unterschrift Betreuer}}\\ 47 | \hline 48 | \end{tabular} 49 | \end{table} 50 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .DEFAULT_GOAL := all 2 | 3 | # Windows commands 4 | ifeq ($(OS),Windows_NT) 5 | COPY_COMMAND := copy 6 | RM_COMMAND := powershell -Command "Remove-Item -Recurse" 7 | MOVE_COMMAND := move /Y 8 | SEP := \\ 9 | # Unix-like commands 10 | else 11 | COPY_COMMAND := cp 12 | RM_COMMAND := rm -r 13 | MOVE_COMMAND := mv 14 | SEP := / 15 | endif 16 | 17 | # Source files 18 | ifeq ($(OS),Windows_NT) 19 | SOURCES := $(powershell -Command "Get-ChildItem -Recurse -Filter *.tex | Where-Object { $_.FullName -notlike '*\\Verzeichnisse\\*' } | ForEach-Object { $_.FullName }") # Document sources (Windows) 20 | INDICES := $(powershell -Command "Get-ChildItem -Recurse -Filter *.tex -Path .\Verzeichnisse | ForEach-Object { $_.FullName }") # Index files (Windows) 21 | else 22 | SOURCES := $(shell find . -name '*.tex' -not -path './Verzeichnisse/*') # Document sources (Unix-like) 23 | INDICES := $(shell find ./Verzeichnisse -name '*.tex') # Index files (Unix-like) 24 | endif 25 | BIBLIOGRAPHY := Verzeichnisse/Literaturverzeichnis.bib # Bibliography 26 | GLOSSARY := Verzeichnisse/Glossar.tex # Glossary 27 | 28 | NAME := Arbeit 29 | BUILD_DIR := .build 30 | ARGS_PDFLATEX := -output-directory=$(BUILD_DIR) 31 | 32 | # Generate build directory (including child directories) if non-existant 33 | $(BUILD_DIR): 34 | ifeq ($(OS),Windows_NT) 35 | powershell -Command "Get-ChildItem -Directory -Exclude '.*' | ForEach-Object { New-Item -ItemType Directory -Force -Path "${BUILD_DIR}" -Name $$_.Name }" 36 | else 37 | @for DIR in $(shell find . -maxdepth 1 -mindepth 1 -type d -not -name '.*' -exec basename '{}' \;); do \ 38 | mkdir -p ${BUILD_DIR}/$$DIR; \ 39 | done 40 | endif 41 | 42 | # Generate glossary entries file 43 | $(BUILD_DIR)/$(NAME).glo: $(BUILD_DIR) $(GLOSSARY) 44 | pdflatex $(ARGS_PDFLATEX) $(NAME) 45 | -cd $(BUILD_DIR) && makeglossaries $(NAME) 46 | 47 | # Generate index file 48 | $(BUILD_DIR)/$(NAME).nls: $(BUILD_DIR) $(INDICES) $(SOURCES) 49 | -cd $(BUILD_DIR) && makeindex $(NAME).nlo -s nomencl.ist -o $(NAME).nls 50 | 51 | # Generate bibliography index file 52 | $(BUILD_DIR)/$(NAME).bbl: $(BUILD_DIR) $(BIBLIOGRAPHY) 53 | pdflatex $(ARGS_PDFLATEX) $(NAME) 54 | $(COPY_COMMAND) $(BIBLIOGRAPHY) $(BUILD_DIR)$(SEP)$(BIBLIOGRAPHY) 55 | -cd $(BUILD_DIR) && bibtex $(NAME) 56 | 57 | # Compile document & link images / create list of figures etc. 58 | .PHONY: recompile_latex 59 | recompile_latex: $(BUILD_DIR) $(SOURCES) 60 | pdflatex $(ARGS_PDFLATEX) $(NAME) 61 | pdflatex $(ARGS_PDFLATEX) $(NAME) 62 | @$(MOVE_COMMAND) $(BUILD_DIR)$(SEP)$(NAME).pdf . 63 | 64 | .PHONY: clean 65 | clean: 66 | $(RM_COMMAND) $(BUILD_DIR) 67 | 68 | .PHONY: all 69 | all: $(BUILD_DIR)/$(NAME).glo $(BUILD_DIR)/$(NAME).nls $(BUILD_DIR)/$(NAME).bbl recompile_latex 70 | 71 | .PHONY: full 72 | full: all clean 73 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Document Template HS Coburg 2 | 3 | > [!WARNING] 4 | > This repository has been archived as maintenance has officially been taken over by 5 | > HS Coburg at [hscoburg/FEIF-thesis-and-report-template](https://github.com/hscoburg/FEIF-thesis-and-report-template). 6 | > Please direct all your issues and pull requests there. Thank you to everyone who helped 7 | > in creating and improving this template, raising awareness of it or just using it for actual assignments. 8 | > Without you, it would not have become such a great success. 9 | 10 | This repository provides a student-maintained and improved version of the 11 | so far available FEIF document template. The template got reworked from 12 | the ground up, improving the author's experience and providing a cleaner 13 | interface to begin with. 14 | 15 | While being a template, the project provides some useful commands and 16 | allows the user to further customize and extend it. 17 | 18 | You can find an [example document](https://github.com/btoschek/hsc-template/blob/example/Arbeit.pdf) 19 | based on this template (including a small overview of features) over on the 20 | [example](https://github.com/btoschek/hsc-template/tree/example) branch. 21 | For further customization options or documentation please consult the template's 22 | [wiki](https://github.com/btoschek/hsc-template/wiki). 23 | 24 | > [!NOTE] 25 | > The template is set up to only support German (despite this README 26 | > and the source code being commented and written in English). 27 | 28 | ## Table of Contents: 29 | 30 | - [Prerequisites](#prerequisites) 31 | - [Compiling your document](#compiling-your-document) 32 | 33 | ## Prerequisites 34 | 35 | The build-pipeline associated to this project isn't tailored to an IDE like 36 | [Overleaf](https://www.overleaf.com/). It can easily be run and built with whatever 37 | tool you prefer for writing lots of text. 38 | 39 | If you want to build the template in your terminal (which I highly recommend, 40 | cause it's easier than getting an IDE to work, at least from my experience), 41 | you need the following programs installed on your system: 42 | 43 | - [make](https://www.gnu.org/software/make/) 44 | - A working [texlive](https://www.tug.org/texlive/) installation 45 | 46 | ### Installation on Unix-like systems (Linux, MacOS) 47 | 48 | Due to most distributions having outdated versions of texlive in their repositories, 49 | you are encouraged to download the texlive package as discribed over on 50 | the [official website](https://tug.org/texlive/quickinstall.html). 51 | 52 | ### Installation on Windows 53 | 54 | Installing programs for development on Windows can get annoying rather quickly. 55 | For this reason, I recommend using a package manager for Windows, namely 56 | [scoop](https://scoop.sh/). We will only use it for one package, but having it on 57 | your system can't hurt. 58 | 59 | To install `make` with scoop, run the following commands in your 60 | terminal: 61 | 62 | ```sh 63 | scoop bucket add main 64 | scoop install make 65 | ``` 66 | 67 | Install the complete TeXLive suite from https://tug.org/texlive/windows.html#install. 68 | 69 | ## Compiling your document 70 | 71 | Compiling your document is as easy as running the following command in your terminal. 72 | 73 | ```sh 74 | make 75 | ``` 76 | 77 | To remove temporary files and indices used during compilation, run: 78 | 79 | ```sh 80 | make clean 81 | ``` 82 | -------------------------------------------------------------------------------- /framework/Packages.tex: -------------------------------------------------------------------------------- 1 | % ------------------------------------------------------------------- 2 | % Essential packages (used in template) 3 | % ------------------------------------------------------------------- 4 | 5 | \usepackage[utf8]{inputenc} % Allow Umlauts (ä, ö, ü) 6 | \usepackage[ngerman]{babel, translator} % German LaTeX-intern descriptors (Abbildungen, ...) 7 | \usepackage{mathptmx} % Font "Times New Roman" in mathematical Environments 8 | \usepackage{courier} % Support the use of font "Courier" (used in listings) 9 | \usepackage[T1]{fontenc} % Change LaTeX font encoding to support modern fonts 10 | \usepackage{fix-cm} % Fix sizes at which CM and EC fonts can be used 11 | 12 | \usepackage{geometry} % Change text bounds on a per-page basis 13 | \usepackage{fancyhdr} % Allow easy customization of headers and footers 14 | 15 | \usepackage[ddmmyyyy]{datetime} % Reformat times from LaTeX commands like \today 16 | 17 | \usepackage[dvipsnames]{xcolor} % Support text colorization 18 | 19 | \usepackage{colortbl} % Support applying colors to tables 20 | \usepackage{array} % Tables with fixed column size 21 | \usepackage{longtable} % Support multi-page tables 22 | \usepackage{multicol} % Additional settings for \multicolumn 23 | \usepackage{multirow} % Additional settings for \multirow 24 | 25 | \usepackage[hyphens,obeyspaces,spaces]{url} % Allow urls to have line breaks at "-" 26 | \usepackage{microtype} % Enable "Blocksatz" 27 | 28 | \usepackage{float} % Support for table H option 29 | \usepackage{floatflt} % Support text wrapping around floating environments 30 | \usepackage{wrapfig} % Support text wrapping around figures 31 | 32 | \usepackage{graphicx} % Support including graphics environments for images 33 | \usepackage{caption} % Provide greater customization around captions 34 | \usepackage{subcaption} % Caption support for subfigures 35 | \usepackage{pdfpages} % Include existing PDFs into the work 36 | 37 | \usepackage[onehalfspacing]{setspace} % Set line spacing to be 1.5x the default 38 | \usepackage{listings} % Code block support for LaTeX 39 | 40 | \usepackage[titles]{tocloft} % More options to modify list of figures & tables 41 | \usepackage{nomencl} % Support for nomenclatures ("Symbolverzeichnis") 42 | 43 | \usepackage{amsmath} % Includes a plethora of mathematical packages 44 | \usepackage{amssymb} % Source mathematical symbols like \sin 45 | \usepackage{amsthm} % Better theorems 46 | \usepackage{upgreek} % Use \Upomega to get a straight \Omega 47 | \usepackage{siunitx} % Unified support for si units 48 | 49 | \usepackage{ifthen} % Support better if statements in LaTeX 50 | \usepackage{etoolbox} % Easily patch commands 51 | 52 | \usepackage{hyperref} % Clickable hyperlinks in Table of Contents 53 | 54 | % Support list of acronyms and glossary 55 | \usepackage[ 56 | toc, 57 | nogroupskip, 58 | nonumberlist, 59 | nopostdot, 60 | acronyms, 61 | shortcuts, 62 | translate=babel 63 | ]{glossaries} 64 | 65 | % Track the total count of different environments 66 | % Needs to be imported because LaTeX resets these counter on a chapter basis 67 | \usepackage[figure,table,lstlisting,xspace]{totalcount} 68 | 69 | % Annotate different information directly into the document 70 | \setlength{\marginparwidth}{2cm} 71 | \usepackage[ 72 | colorinlistoftodos, 73 | prependcaption, 74 | textsize=tiny 75 | ]{todonotes} 76 | 77 | % ------------------------------------------------------------------- 78 | % Useful packages (not used in template) 79 | % ------------------------------------------------------------------- 80 | 81 | % Create electrical diagrams from within LaTeX 82 | \usepackage[ 83 | european, 84 | oldvoltagedirection, 85 | straightvoltages, 86 | siunitx 87 | ]{circuitikz} 88 | 89 | % Annotate images with standard tikz macros 90 | \usepackage{tikz-imagelabels} 91 | -------------------------------------------------------------------------------- /framework/Environments.tex: -------------------------------------------------------------------------------- 1 | % =========================================================================== 2 | % Wrap document environment with HSCDocument environment 3 | % =========================================================================== 4 | 5 | \AddToHook{env/HSCDocument/before}{ 6 | 7 | % Register different entries: glossary, nomenclature, acronyms 8 | \makeglossaries 9 | \include{Verzeichnisse/Worttrennungen} 10 | \include{Verzeichnisse/Abkuerzungsverzeichnis} 11 | \makenomenclature 12 | \include{Verzeichnisse/Symbolverzeichnis} 13 | \include{Verzeichnisse/Glossar} 14 | 15 | \begin{document} 16 | } 17 | 18 | \AddToHook{env/HSCDocument/after}{ 19 | \end{document} 20 | } 21 | 22 | \makeatletter 23 | \define@key{HSCDocument@keys}{preset}{\def\DocumentType{#1}} 24 | \makeatother 25 | 26 | \newenvironment{HSCDocument}[1][]{ 27 | 28 | \makeatletter 29 | \setkeys{HSCDocument@keys}{ 30 | preset=Custom, 31 | #1 32 | } 33 | \makeatother 34 | 35 | % Don't display "a as ä etc. 36 | \shorthandoff{"} 37 | 38 | % =========================================================================== 39 | % Document header 40 | % =========================================================================== 41 | 42 | \newgeometry{ 43 | left=2.5cm, 44 | right=2.5cm, 45 | top=2.5cm, 46 | bottom=2.5cm 47 | } 48 | 49 | \begin{titlepage} 50 | \ifthenelse{\equal{\DocumentType}{Praxisbericht}} 51 | {\include{framework/Header_Practice_Report}} 52 | { 53 | \ifthenelse{\equal{\DocumentType}{Bachelorarbeit}} 54 | {\include{framework/Header}} 55 | { 56 | \ifthenelse{\equal{\DocumentType}{Masterarbeit}} 57 | {\include{framework/Header}} 58 | { 59 | \IfFileExists{./CustomHeader.tex}{ 60 | \include{CustomHeader} 61 | }{ 62 | ERROR: Please use one of the following values as parameter 63 | to the HSCdocument environment:\\ 64 | "Praxisbericht", "Bachelorarbeit", "Masterarbeit"\\ 65 | 66 | To create your own document header, just create a file 67 | "CustomHeader.tex" in the document root. 68 | } 69 | } 70 | } 71 | } 72 | \end{titlepage} 73 | 74 | \restoregeometry 75 | 76 | % Header is considered the 1st page 77 | \addtocounter{page}{1} 78 | 79 | % Peripheral pages have to be numbered using roman numerals 80 | \pagenumbering{Roman} 81 | 82 | % =========================================================================== 83 | % Page Ordering 84 | % =========================================================================== 85 | 86 | % Set image path to "Bilder" subdirectory 87 | \graphicspath{{Bilder/}} 88 | 89 | % Optional notice to the reader ("Vermerk") 90 | \IfFileExists{./Sektionen/Vermerk.tex}{ 91 | \newpage 92 | \thispagestyle{empty} 93 | \include{Sektionen/Vermerk} 94 | }{} 95 | 96 | % Abstract 97 | \IfFileExists{./Sektionen/Abstract.tex}{ 98 | \newpage 99 | \fancypagestyle{abstract}{ 100 | \fancyhead[L]{Abstract} 101 | } 102 | \thispagestyle{abstract} 103 | \include{Sektionen/Abstract} 104 | }{} 105 | 106 | \newpage 107 | \tableofcontents 108 | 109 | \iftotalfigures 110 | \newpage 111 | \phantomsection 112 | \addcontentsline{toc}{section}{\listfigurename} 113 | \listoffigures 114 | \fi 115 | 116 | \iftotaltables 117 | \newpage 118 | \phantomsection 119 | \addcontentsline{toc}{section}{\listtablename} 120 | \listoftables 121 | \fi 122 | 123 | \iftotallstlistings 124 | \newpage 125 | \phantomsection 126 | \addcontentsline{toc}{section}{\lstlistlistingname} 127 | \lstlistoflistings 128 | \fi 129 | 130 | % Nomenclature ("Symbolverzeichnis") 131 | \iftotalcountnomens 132 | \newpage 133 | \phantomsection 134 | \addcontentsline{toc}{section}{\nomname} 135 | \printnomenclature[1in] 136 | \fi 137 | 138 | % Acronyms 139 | \iftotalcountacronyms 140 | \newpage 141 | \setglossarystyle{super} 142 | \printglossary[type=\acronymtype] 143 | \fi 144 | 145 | \newpage 146 | 147 | % Save page counter, used for consecutive numbering of peripherals following main content 148 | \newcounter{HSCPeripheralNumbering} 149 | \setcounter{HSCPeripheralNumbering}{\value{page}} 150 | 151 | % Set numbering of pages to arabic for main content 152 | \pagenumbering{arabic} 153 | } 154 | { 155 | % Reset numbering to use roman numerals for rest of peripheral files 156 | \pagenumbering{Roman} 157 | \setcounter{page}{\value{HSCPeripheralNumbering}} 158 | 159 | % Bibliography 160 | \iftotalcountcitations 161 | \newpage 162 | \bibliographystyle{alphadin} 163 | \phantomsection 164 | \addcontentsline{toc}{section}{\refname} 165 | \bibliography{Verzeichnisse/Literaturverzeichnis} 166 | \fi 167 | 168 | % Glossary 169 | \iftotalcountglossarys 170 | \newpage 171 | \setglossarystyle{altlist} 172 | \printglossary 173 | \fi 174 | 175 | % Appendix 176 | \IfFileExists{./Sektionen/Anhang.tex}{ 177 | \newpage 178 | \appendix 179 | \renewcommand{\thesection}{A\arabic{section}} 180 | \include{Sektionen/Anhang} 181 | }{} 182 | 183 | % Declaration of Honor 184 | \newpage 185 | \phantomsection 186 | \addcontentsline{toc}{section}{\declarationname} 187 | \lhead{\declarationname} 188 | \include{framework/Declaration_of_Honor} 189 | 190 | % TODO list 191 | \iftotalcounttodos 192 | \phantomsection 193 | \addcontentsline{toc}{section}{TODOs} 194 | \thispagestyle{empty} 195 | \listoftodos[TODOs] 196 | \fi 197 | } 198 | 199 | % =========================================================================== 200 | % Simplified centered & colored tables 201 | % =========================================================================== 202 | 203 | \newenvironment{colortable}[1]{ 204 | \begin{center} 205 | \begin{tabular}{#1} 206 | \hline 207 | \rowcolor{Gray} 208 | } 209 | { 210 | \hline 211 | \end{tabular} 212 | \end{center} 213 | } 214 | 215 | \newcommand{\tablecontent}{ 216 | \hline 217 | \rowcolor{White} 218 | } 219 | -------------------------------------------------------------------------------- /framework/Settings.tex: -------------------------------------------------------------------------------- 1 | % Disable single lines at the start of a paragraph (Schusterjungen) 2 | \clubpenalty=10000 3 | 4 | % Disable single lines at the end of a paragraph (Hurenkinder) 5 | \widowpenalty=10000 6 | \displaywidowpenalty=10000 7 | 8 | % Fixed size table columns 9 | \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} 10 | \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} 11 | \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} 12 | 13 | \renewcommand{\arraystretch}{1.2} % Distance between lines in tables 14 | 15 | \captionsetup{justification=raggedright} % Align captions to the left 16 | 17 | \setcounter{secnumdepth}{3} % Only allow nesting 3 layers (down to subsubsections) 18 | 19 | % Unit-related setup for siunitx 20 | \sisetup{ 21 | locale=DE, % Use German notation (comma instead of point delimiter for floats) 22 | per-mode=fraction, % Switch display to use \frac instead of x^{-1} 23 | fraction-function=\tfrac, % Use amsmath's tfrac macro for unit fractions 24 | } 25 | 26 | % ------------------------------------------------------------------- 27 | % Usability & visual changes 28 | % ------------------------------------------------------------------- 29 | 30 | % Page margins 31 | \geometry{ 32 | left=2.5cm, 33 | right=2.5cm, 34 | top=2.5cm, 35 | bottom=3cm 36 | } 37 | 38 | % Create a better looking header and footer 39 | \pagestyle{fancy} 40 | \fancyhf{} 41 | \lhead{\nouppercase{\leftmark}} 42 | \rfoot{\thepage} 43 | 44 | % Automatically generate a box around figure environments 45 | \floatstyle{boxed} 46 | \restylefloat{figure} 47 | 48 | % Set toc sections to be clickable 49 | \hypersetup{ 50 | colorlinks, 51 | citecolor=black, 52 | filecolor=black, 53 | linkcolor=black 54 | } 55 | 56 | \frenchspacing % Insert one space after a sentence, not 2 57 | 58 | \numberwithin{equation}{section} % Numbering of equations should be x.x (locally scoped to their respective section) 59 | \renewcommand{\UrlFont}{\color{blue}\rmfamily\itshape} % URLs should be displayed in blue 60 | \renewcommand{\dateseparator}{.} % Dates are written like 01.01.1970, not 01-01-1970 61 | 62 | \addto{\captionsngerman}{ 63 | \renewcommand*{\figurename}{Abb.} % Figures should be displayed as "Abb. x" 64 | \renewcommand*{\tablename}{Tab.} % Tables should be displayed as "Tab. x" 65 | \renewcommand*{\lstlistingname}{Code} % Code should be displayed as "Code x" 66 | % 67 | \renewcommand*{\lstlistlistingname}{Codebeispielverzeichnis} % List of listings 68 | \renewcommand*{\nomname}{Symbolverzeichnis} % Nomenclature 69 | \renewcommand*{\acronymname}{Abkürzungsverzeichnis} % List of acronyms 70 | \renewcommand*{\refname}{Literaturverzeichnis} % Bibliography 71 | % 72 | \providecommand{\declarationname}{} 73 | \renewcommand*{\declarationname}{Ehrenwörtliche Erklärung} % Declaration of honor 74 | } 75 | 76 | \addto{\extrasngerman}{% 77 | \def\sectionautorefname{Kapitel}% 1st level sections should be called "Kapitel" 78 | \def\subsectionautorefname{Abschnitt}% 2nd level sections should be called "Abschnitt" 79 | \def\subsubsectionautorefname{Unterabschnitt}% 3rd level sections should be called "Unterabschnitt" 80 | } 81 | 82 | % ------------------------------------------------------------------- 83 | % Code listing setup 84 | % ------------------------------------------------------------------- 85 | 86 | \lstset{ 87 | basicstyle=\small\ttfamily\color{black}, % Font size used for the code 88 | commentstyle=\ttfamily\color{gray}, % Comment style 89 | keywordstyle=\ttfamily\color{blue}, % Keyword style 90 | stringstyle=\color{ForestGreen!30!LimeGreen}, % String literal style 91 | frame=single, % Add a frame around the code 92 | showstringspaces=false, % Don't underline spaces within strings only 93 | captionpos=b, % Set caption-position to bottom 94 | backgroundcolor=\color{white}, % Background color 95 | } 96 | 97 | % To style lstlistlisting like the lof, you first have to register it 98 | % to tocloft, as mentioned in https://tex.stackexchange.com/a/27648/27635 99 | \makeatletter 100 | \begingroup\let\newcounter\@gobble\let\setcounter\@gobbletwo 101 | \globaldefs\@ne \let\c@loldepth\@ne 102 | \newlistof{listings}{lol}{\lstlistlistingname} 103 | \endgroup 104 | \let\l@lstlisting\l@listings 105 | \makeatother 106 | 107 | % ------------------------------------------------------------------- 108 | % Redefining geometry 109 | % ------------------------------------------------------------------- 110 | 111 | % Figures 112 | \renewcommand{\cftfigpresnum}{\figurename~} 113 | \renewcommand{\cftfigaftersnum}{:} 114 | \setlength{\cftfignumwidth}{2cm} 115 | \setlength{\cftfigindent}{0cm} 116 | 117 | \AtBeginEnvironment{figure}{\vspace{1em}} % Increase spacing of images from the text above 118 | 119 | % Tables 120 | \renewcommand{\cfttabpresnum}{\tablename~} 121 | \renewcommand{\cfttabaftersnum}{:} 122 | \setlength{\cfttabnumwidth}{2cm} 123 | \setlength{\cfttabindent}{0cm} 124 | 125 | % Listings 126 | \renewcommand*{\cftlistingspresnum}{\lstlistingname~} 127 | \renewcommand*{\cftlistingsaftersnum}{:} 128 | \settowidth{\cftlistingsnumwidth}{\cftlistingspresnum} 129 | \addtolength{\cftlistingsnumwidth}{1cm} 130 | \setlength{\cftlistingsindent}{0cm} 131 | 132 | \setlength{\parindent}{0cm} % Don't indent start of paragraph 133 | \setlength{\parskip}{6pt} % Lines are separated by 6pt 134 | 135 | \setlength{\headheight}{1.25cm} 136 | \setlength{\footskip}{1cm} 137 | \setlength{\headsep}{1cm} 138 | 139 | % ------------------------------------------------------------------- 140 | % Custom counters & commands 141 | % ------------------------------------------------------------------- 142 | 143 | % Custom acronym patches: 144 | % - count usage (used for on-demand list of acronyms) 145 | % - provide shorter aliases for commonly used macros 146 | \newcounter{countacronym} 147 | \DeclareTotalCounter{countacronym} 148 | \pretocmd{\acrshort}{\stepcounter{countacronym}}{}{} 149 | \pretocmd{\acrlong}{\stepcounter{countacronym}}{}{} 150 | \pretocmd{\acrfull}{\stepcounter{countacronym}}{}{} 151 | \newcommand*{\acr}[1]{\acrshort{#1}} 152 | \newcommand*{\Acr}[1]{\acrlong{#1}} 153 | 154 | % Custom nomenclature patches: 155 | % - count usage of actual entries through \nomen (used for on-demand nomenclature) 156 | % - provide cleaner writing interface with pre-made abstractions 157 | \newcounter{countnomen} 158 | \DeclareTotalCounter{countnomen} 159 | \newcommand*{\nomen}[2]{\nomenclature{#1}{#2}\stepcounter{countnomen}} 160 | \newcommand{\nomunit}[1]{\renewcommand{\nomentryend}{\hspace*{\fill}#1}} 161 | \newcommand{\nomsi}[1]{\nomunit{$\left[\si{#1}\right]$}} 162 | 163 | % Custom glossary patches: 164 | % - count usage (used for on-demand glossary) 165 | \newcounter{countglossary} 166 | \DeclareTotalCounter{countglossary} 167 | \pretocmd{\Gls}{\stepcounter{countglossary}}{}{} 168 | \pretocmd{\gls}{\stepcounter{countglossary}}{}{} 169 | \pretocmd{\Glspl}{\stepcounter{countglossary}}{}{} 170 | \pretocmd{\glspl}{\stepcounter{countglossary}}{}{} 171 | 172 | % Custom citation patches: 173 | % - count usage (used for on-demand bibliography) 174 | \newcounter{countcitation} 175 | \DeclareTotalCounter{countcitation} 176 | \pretocmd{\cite}{\stepcounter{countcitation}}{}{} 177 | 178 | % TODO annotations 179 | \newcounter{counttodo} 180 | \DeclareTotalCounter{counttodo} 181 | \pretocmd{\todo}{\stepcounter{counttodo}}{}{} 182 | \newcommand{\note} [2][]{\todo[color=green!25,bordercolor=green,tickmarkheight=3pt,#1]{#2}} 183 | \newcommand{\unsure} [2][]{\todo[color=Plum!25,bordercolor=Plum,tickmarkheight=3pt,#1]{#2}} 184 | \newcommand{\change} [2][]{\todo[color=blue!25,bordercolor=blue,tickmarkheight=3pt,#1]{#2}} 185 | \newcommand{\missing}[2][]{\todo[color=red!25,bordercolor=red,tickmarkheight=3pt,#1]{#2}} 186 | \newcommand{\info} [2][]{\todo[nolist,color=yellow!25,bordercolor=yellow,tickmarkheight=3pt,#1]{#2}} 187 | 188 | % Larger clickable references to page items 189 | \newcommand{\imgref} [1]{\hyperref[#1]{Abbildung~\getrefnumber{#1}}} 190 | \newcommand{\tabref} [1]{\hyperref[#1]{Tabelle~\getrefnumber{#1}}} 191 | \newcommand{\coderef}[1]{\hyperref[#1]{Code~\getrefnumber{#1}}} 192 | \newcommand{\mathref}[1]{\hyperref[#1]{Gleichung~\getrefnumber{#1}}} 193 | \newcommand{\secref} [1]{\autoref{#1}} 194 | --------------------------------------------------------------------------------