├── Verzeichnisse ├── Abkuerzungsverzeichnis.tex ├── Worttrennungen.tex ├── Symbolverzeichnis.tex ├── Glossar.tex └── Literaturverzeichnis.bib ├── .gitignore ├── Arbeit.pdf ├── framework ├── declaration_of_honor.pdf ├── logo_hscoburg_de_rot.pdf ├── logo_hscoburg_en_rot.pdf └── feif.cls ├── Sektionen └── Einfuehrung.tex ├── Makefile ├── README.md └── Arbeit.tex /Verzeichnisse/Abkuerzungsverzeichnis.tex: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .build/* 2 | .vscode/settings.json 3 | -------------------------------------------------------------------------------- /Verzeichnisse/Worttrennungen.tex: -------------------------------------------------------------------------------- 1 | \hyphenation{} 2 | -------------------------------------------------------------------------------- /Arbeit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hscoburg/FEIF-thesis-and-report-template/HEAD/Arbeit.pdf -------------------------------------------------------------------------------- /Verzeichnisse/Symbolverzeichnis.tex: -------------------------------------------------------------------------------- 1 | \nomenclature[01]{\textbf{Symbol}}{\textbf{Bedeutung} \nomunit{\textbf{[phys. Einheit]}}} 2 | -------------------------------------------------------------------------------- /framework/declaration_of_honor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hscoburg/FEIF-thesis-and-report-template/HEAD/framework/declaration_of_honor.pdf -------------------------------------------------------------------------------- /framework/logo_hscoburg_de_rot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hscoburg/FEIF-thesis-and-report-template/HEAD/framework/logo_hscoburg_de_rot.pdf -------------------------------------------------------------------------------- /framework/logo_hscoburg_en_rot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hscoburg/FEIF-thesis-and-report-template/HEAD/framework/logo_hscoburg_en_rot.pdf -------------------------------------------------------------------------------- /Sektionen/Einfuehrung.tex: -------------------------------------------------------------------------------- 1 | \section{Einführung} 2 | 3 | Text ab hier \ldots 4 | 5 | Hier eine Zitierung, damit sich pdfTeX nicht beschwert \cite{Papula2006}. -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /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;} -------------------------------------------------------------------------------- /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 | $(NAME).pdf: $(BUILD_DIR) $(SOURCES) 43 | pdflatex $(ARGS_PDFLATEX) $(NAME) 44 | $(COPY_COMMAND) $(BIBLIOGRAPHY) $(BUILD_DIR)$(SEP)$(BIBLIOGRAPHY) 45 | -cd $(BUILD_DIR) && bibtex $(NAME) 46 | -cd $(BUILD_DIR) && makeglossaries $(NAME) 47 | -cd $(BUILD_DIR) && makeindex $(NAME).nlo -s nomencl.ist -o $(NAME).nls 48 | pdflatex $(ARGS_PDFLATEX) $(NAME) 49 | pdflatex $(ARGS_PDFLATEX) $(NAME) 50 | @$(MOVE_COMMAND) $(BUILD_DIR)$(SEP)$(NAME).pdf . 51 | 52 | .PHONY: clean 53 | clean: 54 | $(RM_COMMAND) $(BUILD_DIR) 55 | 56 | .PHONY: all 57 | all: $(NAME).pdf 58 | 59 | .PHONY: full 60 | full: all clean 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Document Template HS Coburg 2 | 3 | This repository is based on the [student-maintained and improved version](https://github.com/btoschek/hsc-template) of the outdated FEIF LaTeX document template. 4 | The template got reworked from the ground up, improving the author's experience and providing a cleaner interface to begin with. 5 | 6 | While being a template, the project provides some useful commands and allows the user to further customize and extend it. 7 | 8 | You can find an [example document](https://github.com/hscoburg/FEIF-thesis-and-report-template/blob/example/Arbeit.pdf) based on this template (including a small overview of features) over on the [example](https://github.com/hscoburg/FEIF-thesis-and-report-template/tree/example) branch. 9 | For further customization options or documentation please consult the template's [wiki](https://github.com/hscoburg/FEIF-thesis-and-report-template/wiki). 10 | 11 | > [!IMPORTANT] 12 | > The `main` branch can be considered "**official**" and should be used by students for writing theses and reports. 13 | > Other branches, e.g. for active development or modifications, should be considered "**unofficial**". 14 | 15 | > [!NOTE] 16 | > At this time, the template is set up to only support German (despite this README and the source code being commented and written in English). 17 | 18 | ## Table of Contents: 19 | 20 | - [Prerequisites](#prerequisites) 21 | - [Compiling your document](#compiling-your-document) 22 | 23 | ## Prerequisites 24 | 25 | The build-pipeline associated to this project isn't tailored to an IDE like [Overleaf](https://www.overleaf.com/). 26 | It can easily be run and built with whatever tool you prefer for writing lots of text. 27 | 28 | If you want to build the template in your terminal (which can be much easier than getting an IDE to work), you need the following programs installed on your system: 29 | 30 | - [make](https://www.gnu.org/software/make/) 31 | - A working [texlive](https://www.tug.org/texlive/) installation 32 | 33 | ### Installation on Unix-like systems (Linux, MacOS) 34 | 35 | Due to most distributions having outdated versions of texlive in their repositories, you are encouraged to download the texlive package as discribed over on the [official website](https://tug.org/texlive/quickinstall.html). 36 | 37 | ### Installation on Windows 38 | 39 | Installing programs for development on Windows can get annoying rather quickly. 40 | For this reason, we recommend using a package manager for Windows, namely [scoop](https://scoop.sh/). 41 | We will only use it for one package, but having it on your system can't hurt. 42 | 43 | To install `make` with scoop, run the following commands in your terminal: 44 | 45 | ```sh 46 | scoop bucket add main 47 | scoop install make 48 | ``` 49 | 50 | Install the complete TeXLive suite from https://tug.org/texlive/windows.html#install. 51 | 52 | ## Compiling your document 53 | 54 | Compiling your document is as easy as running the following command in your terminal. 55 | 56 | ```sh 57 | make 58 | ``` 59 | 60 | To remove temporary files and indices used during compilation, run: 61 | 62 | ```sh 63 | make clean 64 | ``` 65 | -------------------------------------------------------------------------------- /Arbeit.tex: -------------------------------------------------------------------------------- 1 | \makeatletter 2 | \def\input@path{{framework/}} 3 | \makeatother 4 | % ----------------------------------------------------------------------------- 5 | % TODO: Select your document type. 6 | % See the options in comments. 7 | % ----------------------------------------------------------------------------- 8 | \documentclass[ngerman, praxis]{feif} % For a German Internship Report ("Praxisbericht"). 9 | %\documentclass[praxis]{feif} % For an English Internship Report. 10 | %\documentclass[ngerman]{feif} % For a German thesis (Bachelorarbeit, Masterarbeit, Seminararbeit, ...) 11 | %\documentclass[praxis]{feif} % For an English thesis (Bachelor Thesis, Master Thesis, Seminar Paper, ...) 12 | 13 | % ----------------------------------------------------------------------------- 14 | % TODO: Insert data of your document (thesis, paper, or intership report). 15 | % ----------------------------------------------------------------------------- 16 | \def\FEIFTitle{Vorlage für FEIF Arbeiten} % Title of your thesis or internship report. 17 | \def\FEIFAuthorsName{} % Author's, i.e., student's, name. 18 | \def\FEIFDateOfBirth{} % Date of birth. Use the German DD.MM.YYYY format. 19 | \def\FEIFMatriculationNumber{} % Your matriculation number ("Matrikelnummer). 20 | \def\FEIFStudyProgram{} % The German version of your degree Program, e.g., "Visual Computing, B.Sc." or "Informatik, M.Sc." (without the quotes). 21 | \def\FEIFAuthorCity{} % The place where you sign the "Declaration of Honor". 22 | \def\FEIFBeginDate{} % Beginning of your thesis or start of your internship. 23 | \def\FEIFEndDate{} % Last day of your thesis or last day of your internship. 24 | \def\FEIFSubmissionDate{\today} % The submission date of your document. 25 | 26 | % ----------------------------------------------------------------------------- 27 | % TODO: Data required for thesis and seminar papers (not for "Praxisbericht") 28 | % ----------------------------------------------------------------------------- 29 | \def\FEIFInstructor{} % Name of your FEIF instructor 30 | 31 | % ----------------------------------------------------------------------------- 32 | % TODO: Set thesis type in case you submit a thesis and seminar papers 33 | % (not for "Praxisbericht") 34 | % ----------------------------------------------------------------------------- 35 | \def\FEIFThesisType{Seminararbeit} 36 | %\def\FEIFThesisType{Bachelorarbeit} 37 | %\def\FEIFThesisType{Masterarbeit} 38 | %\def\FEIFThesisType{Bachelor Thesis} 39 | %\def\FEIFThesisType{Master Thesis} 40 | %\def\FEIFThesisType{Seminar Paper} 41 | 42 | % ----------------------------------------------------------------------------- 43 | % TODO: For internship reports "Praxisbericht"), set the data. 44 | % ----------------------------------------------------------------------------- 45 | \def\FEIFCompany{} % Company Name (Internships only) 46 | \def\FEIFCompanyDepartment{} % Department(s) inside the compmany you mostly worked for (Internships only) 47 | \def\FEIFCompanyStreetName{} % Street name of the mailing address of your company (Internships only) 48 | \def\FEIFCompanyCity{} % City/Village/Town of the mailing address of your company (Internships only) 49 | \def\FEIFCompanyAdvisor{} % The advisor at your comany (Internships only). Not the advisor at HS Coburg. 50 | \def\FEIFCompanyAdvisorRole{} % The advisor's role of function (Internships only). 51 | \def\FEIFCompanyAdvisorPhone{} % The advisor's phone number (Internships only). 52 | \def\FEIFCompanyAdvisorEMail{} % The advisor's e-mail address (Internships only). 53 | 54 | \newcommand{\IfExists}[2]{\IfFileExists{#1}{#2}{}} 55 | \newcommand{\InputIfExists}[1]{\IfFileExists{#1} {\input{#1}}{}} 56 | 57 | \makeglossaries 58 | \InputIfExists{./Verzeichnisse/Worttrennungen} 59 | \InputIfExists{./Verzeichnisse/Abkuerzungsverzeichnis} 60 | \makenomenclature 61 | \InputIfExists{./Verzeichnisse/Symbolverzeichnis.tex} 62 | \InputIfExists{./Verzeichnisse/Glossar.tex} 63 | 64 | \begin{document} 65 | \maketitle 66 | \frontmatter 67 | % "Sperrmerk" or "Blocking Notice" 68 | \IfExists{./Sektionen/Vermerk.tex}{\thispagestyle{empty}\input{Sektionen/Vermerk}} 69 | % "Zusammenfassung" or "Abstract" 70 | \IfExists{./Sektionen/Abstract.tex}{\begin{abstract}\input{./Sektionen/Abstract}\end{abstract}} 71 | \tableofcontents 72 | \listoffigures 73 | \listoftables 74 | \lstlistoflistings 75 | \listofsymbols 76 | \listofacronyms 77 | 78 | \mainmatter 79 | \input{Sektionen/Einfuehrung} 80 | 81 | \backmatter 82 | 83 | % "Danksagung" or "Acknowledgement" 84 | \IfExists{./Sektionen/Danksagung.tex}{\begin{acknowledgement}\input{./Sektionen/Danksagung}\end{acknowledgement}} 85 | 86 | \printfeifglossary 87 | \printfeifbibliography 88 | \bibliography{Verzeichnisse/Literaturverzeichnis.bib} 89 | \MakeDeclarationOfHonor 90 | \end{document} 91 | -------------------------------------------------------------------------------- /framework/feif.cls: -------------------------------------------------------------------------------- 1 | \def\fileversion{1.0.1} 2 | \def\filedate{2025/04/18} 3 | \def\docdate {2025/04/18} 4 | \NeedsTeXFormat{LaTeX2e} 5 | \ProvidesClass{framework/feif}[\filedate \space FEIF Document Class v\fileversion] 6 | 7 | \newcommand{\praxisbericht}{false} 8 | \DeclareOption{praxis}{\renewcommand{\praxisbericht}[0]{true}} 9 | \ProcessOptions\relax 10 | 11 | \newcommand{\lang}{english} 12 | \DeclareOption{english}{\renewcommand{\lang}{english}} 13 | \DeclareOption{ngerman}{\renewcommand{\lang}{ngerman}} 14 | \ProcessOptions\relax 15 | 16 | \LoadClass[a4paper, 12pt]{article} 17 | \RequirePackage{fix-cm} % Fix sizes at which CM and EC fonts can be used 18 | \RequirePackage[english, ngerman]{babel, translator} % German LaTeX-intern descriptors (Abbildungen, ...) 19 | \RequirePackage[T1]{fontenc} 20 | \RequirePackage[utf8]{inputenc} 21 | \RequirePackage{mathptmx} 22 | \RequirePackage{courier} 23 | \RequirePackage{geometry} 24 | \RequirePackage{fancyhdr} 25 | \RequirePackage{caption} 26 | \RequirePackage{float} 27 | \RequirePackage{hyperref} 28 | \RequirePackage{microtype} 29 | \RequirePackage[onehalfspacing]{setspace} % Set line spacing to be 1.5x the default 30 | \RequirePackage[titles]{tocloft} % More options to modify list of figures & tables 31 | \RequirePackage[ddmmyyyy]{datetime} % Reformat times from LaTeX commands like \today 32 | \RequirePackage{listings} 33 | \RequirePackage{pdfpages} % Include existing PDFs into the work 34 | \RequirePackage{ifthen} % Include existing PDFs into the work 35 | \RequirePackage{nomencl} % Support for nomenclatures ("List of Symbols") 36 | \RequirePackage{etoolbox} % Easily patch commands 37 | \RequirePackage{amsmath} % Includes a plethora of mathematical packages 38 | \RequirePackage{amssymb} % Source mathematical symbols like \sin 39 | \RequirePackage{amsthm} % Better theorems 40 | % Track the total count of different environments 41 | % Needs to be imported because LaTeX resets these counter on a chapter basis 42 | \RequirePackage[figure,table,lstlisting,xspace]{totalcount} 43 | \RequirePackage{siunitx} 44 | \RequirePackage[toc, nogroupskip, nonumberlist, nopostdot, acronyms, shortcuts, translate=babel]{glossaries} 45 | \RequirePackage{graphicx} 46 | \RequirePackage{tabularray} 47 | \UseTblrLibrary{booktabs} 48 | \RequirePackage{glossaries-extra} 49 | 50 | % Set the graphics path relative to the .cls file 51 | \makeatletter 52 | \def\input@path{{./}} 53 | \makeatother 54 | 55 | \newcommand{\ifgerman}[2]{\ifthenelse{\equal{\lang}{ngerman}}{#1}{#2}} 56 | \newcommand{\FEIFCountEntriesFileName}{\jobname.feif} 57 | \AtBeginDocument{\ifgerman{\selectlanguage{ngerman}}{\selectlanguage{english}}} 58 | \AtEndDocument 59 | { 60 | % Check if any glossary entry has been used 61 | \newwrite\myfile 62 | \newread\myfile 63 | \immediate\openout\myfile=\FEIFCountEntriesFileName 64 | \newif\ifanyglsused 65 | \anyglsusedfalse 66 | \forglsentries{\thisentry}{\ifglsused{\thisentry}{\anyglsusedtrue}{}} 67 | 68 | \ifanyglsused 69 | \immediate\write\myfile{\string\gdef\string\GlossaryEntriesUsed{1}}% 70 | \else 71 | \immediate\write\myfile{\string\gdef\string\GlossaryEntriesUsed{0}}% 72 | \fi 73 | 74 | % Check if any acronyms are entry has been used 75 | \newif\ifanyacronymsused 76 | \anyacronymsusedfalse 77 | \forglsentries[\acronymtype]{\thislabel}{\ifglsused{\thislabel}{\anyacronymsusedtrue}{}} 78 | 79 | \ifanyacronymsused 80 | \immediate\write\myfile{\string\gdef\string\AcronymsUsed{1}}% 81 | \else 82 | \immediate\write\myfile{\string\gdef\string\AcronymsUsed{0}}% 83 | \fi 84 | \immediate\closeout\myfile 85 | } 86 | 87 | % Unit-related setup for siunitx 88 | \ifgerman 89 | { 90 | \sisetup{ 91 | locale=DE, % Use German notation (comma instead of point delimiter for floats) 92 | per-mode=fraction, % Switch display to use \frac instead of x^{-1} 93 | fraction-function=\tfrac % Use amsmath's tfrac macro for unit fractions 94 | } 95 | } 96 | { 97 | \sisetup{ 98 | locale=US, % Use German notation (comma instead of point delimiter for floats) 99 | per-mode=fraction, % Switch display to use \frac instead of x^{-1} 100 | fraction-function=\tfrac % Use amsmath's tfrac macro for unit fractions 101 | } 102 | } 103 | 104 | % ------------------------------------------------------------------- 105 | % Document Structure Settings 106 | % ------------------------------------------------------------------- 107 | % Only allow nesting 3 layers (down to subsubsections) 108 | \setcounter{secnumdepth}{3} 109 | 110 | % ------------------------------------------------------------------- 111 | % Usability Settting 112 | % ------------------------------------------------------------------- 113 | % Set toc sections to be clickable 114 | \hypersetup{colorlinks, citecolor=black, filecolor=black, linkcolor=black} 115 | 116 | % ------------------------------------------------------------------- 117 | % Visual Settings 118 | % ------------------------------------------------------------------- 119 | % Align captions to the left (cut-off or "rag" right part of the 120 | % caption line.). 121 | % This should also hold for single-line captions, which would otherwise be 122 | % centered. 123 | \captionsetup{justification=raggedright, singlelinecheck=false} 124 | 125 | % Disable single lines at the start of a paragraph (Schusterjungen) 126 | \clubpenalty=10000 127 | 128 | % Disable single lines at the end of a paragraph (Hurenkinder) 129 | \widowpenalty=10000 130 | \displaywidowpenalty=10000 131 | 132 | % Page margins 133 | \geometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=3cm} 134 | 135 | % Create a better looking header and footer 136 | \pagestyle{fancy} 137 | \fancyhf{} 138 | \lhead{\nouppercase{\leftmark}} 139 | \rfoot{\thepage} 140 | 141 | % New page after every section. 142 | \AddToHook{cmd/section/before}{\clearpage} 143 | 144 | % Insert one space after a sentence, not 2 145 | \frenchspacing 146 | 147 | 148 | % Don't indent start of paragraph 149 | \setlength{\parindent}{0cm} 150 | % Lines are separated by 6pt (0.2116666666666667cm) 151 | \setlength{\parskip}{6pt} 152 | 153 | \setlength{\headheight}{1.25cm} 154 | \setlength{\footskip}{1cm} 155 | \setlength{\headsep}{1cm} 156 | 157 | % Don't display "a as ä etc. 158 | \shorthandoff{"} 159 | 160 | % ------------------------------------------------------------------- 161 | % Names 162 | % ------------------------------------------------------------------- 163 | \newcommand*{\hscrefname}{Literaturverzeichnis} % Bibliography 164 | \newcommand*{\acknowledgementname}{Acknowledgements} % Acknowledgement 165 | 166 | \numberwithin{equation}{section} % Numbering of equations should be x.x (locally scoped to their respective section) 167 | \renewcommand{\UrlFont}{\color{blue}\rmfamily\itshape} % URLs should be displayed in blue 168 | \renewcommand{\dateseparator}{.} % Dates are written like 01.01.1970, not 01-01-1970 169 | 170 | \addto{\captionsngerman}{ 171 | \renewcommand*{\figurename}{Abb.} % Figures should be displayed as "Abb. x" 172 | \renewcommand*{\tablename}{Tab.} % Tables should be displayed as "Tab. x" 173 | \renewcommand*{\lstlistingname}{Code} % Code should be displayed as "Code x" 174 | \renewcommand*{\lstlistlistingname}{Codebeispielverzeichnis} % List of listings 175 | \renewcommand*{\nomname}{Symbolverzeichnis} % Nomenclature 176 | \renewcommand*{\acronymname}{Abkürzungsverzeichnis} % List of acronyms 177 | \renewcommand*{\refname}{\hscrefname} % Bibliography 178 | \renewcommand*{\abstractname}{Zusammenfassung} % Abstract 179 | \renewcommand*{\acknowledgementname}{Dankesagung} % Acknowledgement 180 | \providecommand{\declarationname}{} 181 | \renewcommand*{\declarationname}{Ehrenwörtliche Erklärung} % Declaration of honor 182 | } 183 | 184 | \addto{\captionsenglish}{ 185 | \renewcommand*{\figurename}{Fig.} % Figures should be displayed as "Abb. x" 186 | \renewcommand*{\tablename}{Tab.} % Tables should be displayed as "Tab. x" 187 | \renewcommand*{\lstlistingname}{Code} % Code should be displayed as "Code x" 188 | \renewcommand*{\lstlistlistingname}{Listings} % List of listings 189 | \renewcommand*{\nomname}{List of Symbols} % Nomenclature 190 | \renewcommand*{\acronymname}{Acronyms} % List of acronyms 191 | \renewcommand*{\refname}{\hscrefname} % Bibliography 192 | \renewcommand*{\abstractname}{Abstract} % Abstract 193 | \renewcommand*{\acknowledgementname}{Acknowledgements} % Acknowledgement 194 | \providecommand{\declarationname}{} 195 | \renewcommand*{\declarationname}{Declaration of Honor} % Declaration of honor 196 | } 197 | 198 | \addto{\extrasngerman}{% 199 | \def\sectionautorefname{Kapitel}% 1st level sections should be called "Kapitel" 200 | \def\subsectionautorefname{Abschnitt}% 2nd level sections should be called "Abschnitt" 201 | \def\subsubsectionautorefname{Unterabschnitt}% 3rd level sections should be called "Unterabschnitt" 202 | } 203 | 204 | \addto{\extrasenglish}{% 205 | \def\sectionautorefname{Chapter}% 1st level sections should be called "Kapitel" 206 | \def\subsectionautorefname{Section}% 2nd level sections should be called "Abschnitt" 207 | \def\subsubsectionautorefname{Subsection}% 3rd level sections should be called "Unterabschnitt" 208 | } 209 | 210 | % ------------------------------------------------------------------- 211 | % Code listing setup 212 | % ------------------------------------------------------------------- 213 | \lstset{ 214 | basicstyle=\small\ttfamily\color{black}, % Font size used for the code 215 | commentstyle=\ttfamily\color{gray}, % Comment style 216 | keywordstyle=\ttfamily\color{blue}, % Keyword style 217 | stringstyle=\color{ForestGreen!30!LimeGreen}, % String literal style 218 | frame=single, % Add a frame around the code 219 | showstringspaces=false, % Don't underline spaces within strings only 220 | captionpos=b, % Set caption-position to bottom 221 | backgroundcolor=\color{white}, % Background color 222 | } 223 | 224 | % Register Listings for list of codes. 225 | % To style lstlistlisting like the lof, you first have to register it 226 | % to tocloft, as mentioned in https://tex.stackexchange.com/a/27648/27635 227 | \makeatletter 228 | \begingroup\let\newcounter\@gobble\let\setcounter\@gobbletwo 229 | \globaldefs\@ne \let\c@loldepth\@ne 230 | \newlistof{listings}{lol}{\lstlistlistingname} 231 | \endgroup 232 | \let\l@lstlisting\l@listings 233 | \makeatother 234 | 235 | % ------------------------------------------------------------------- 236 | % Redefining geometry 237 | % ------------------------------------------------------------------- 238 | % Automatically generate a box around figure environments 239 | \floatstyle{boxed} 240 | \restylefloat{figure} 241 | 242 | % Figures 243 | \renewcommand{\cftfigpresnum}{\figurename~} 244 | \renewcommand{\cftfigaftersnum}{:} 245 | \setlength{\cftfignumwidth}{2cm} 246 | \setlength{\cftfigindent}{0cm} 247 | 248 | \AtBeginEnvironment{figure}{\vspace{1em}} % Increase spacing of images from the text above 249 | 250 | % Tables 251 | \renewcommand{\cfttabpresnum}{\tablename~} 252 | \renewcommand{\cfttabaftersnum}{:} 253 | \setlength{\cfttabnumwidth}{2cm} 254 | \setlength{\cfttabindent}{0cm} 255 | 256 | % Listings 257 | \renewcommand*{\cftlistingspresnum}{\lstlistingname~} 258 | \renewcommand*{\cftlistingsaftersnum}{:} 259 | \settowidth{\cftlistingsnumwidth}{\cftlistingspresnum} 260 | \addtolength{\cftlistingsnumwidth}{1cm} 261 | \setlength{\cftlistingsindent}{0cm} 262 | 263 | % ------------------------------------------------------------------- 264 | % Larger clickable references to page items 265 | % ------------------------------------------------------------------- 266 | \ifgerman 267 | { 268 | \newcommand{\imgref} [1]{\hyperref[#1]{Abbildung~\getrefnumber{#1}}} 269 | } 270 | { 271 | \newcommand{\imgref} [1]{\hyperref[#1]{Figure~\getrefnumber{#1}}} 272 | } 273 | \ifgerman 274 | { 275 | \newcommand{\tabref} [1]{\hyperref[#1]{Tabelle~\getrefnumber{#1}}} 276 | } 277 | { 278 | \newcommand{\tabref} [1]{\hyperref[#1]{Table~\getrefnumber{#1}}} 279 | } 280 | \newcommand{\coderef}[1]{\hyperref[#1]{Code~\getrefnumber{#1}}} 281 | \ifgerman 282 | { 283 | \newcommand{\mathref}[1]{\hyperref[#1]{Gleichung~\getrefnumber{#1}}} 284 | } 285 | { 286 | \newcommand{\mathref}[1]{\hyperref[#1]{Equation~\getrefnumber{#1}}} 287 | } 288 | \newcommand{\secref} [1]{\autoref{#1}} 289 | 290 | % ------------------------------------------------------------------- 291 | % Commands 292 | % ------------------------------------------------------------------- 293 | \renewcommand\maketitle 294 | { 295 | \newgeometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm} 296 | \begin{titlepage} 297 | \ifthenelse{\equal{\praxisbericht}{true}} 298 | { 299 | \centering 300 | \ifgerman{ 301 | \includegraphics[width=.8\textwidth]{logo_hscoburg_de_rot.pdf}% 302 | } 303 | { 304 | \includegraphics[width=.8\textwidth]{logo_hscoburg_en_rot.pdf}% 305 | } 306 | 307 | \begin{Large} 308 | \ifgerman{ 309 | Hochschule für angewandte Wissenschaften Coburg\\ 310 | Fakultät Elektrotechnik und Informatik\par 311 | } 312 | { 313 | Coburg University of Applied Sciences\\ 314 | Faculty of Electrical Engineering and Computer Science\par 315 | } 316 | \end{Large} 317 | \vspace{1.5cm} 318 | 319 | \Large{\ifgerman{Studiengang: }{Degree Program: }\FEIFStudyProgram} 320 | \vspace{1.5cm} 321 | 322 | \Large{\ifgerman{Praxisbericht}{Internship Report}} 323 | 324 | \vspace{1cm} 325 | 326 | \huge{\FEIFAuthorsName} 327 | 328 | \vspace{1.0cm} 329 | 330 | \normalsize 331 | 332 | \begin{tblr}{colspec={|X[3]|X[11]|}} 333 | \hline 334 | \ifgerman{Unternehmen}{Company} & \FEIFCompany \\ 335 | & \FEIFCompanyDepartment \\ 336 | & \FEIFCompanyStreetName \\ 337 | & \FEIFCompanyCity \\ 338 | \hline 339 | % Use "through" because it includes the last date. If you use "until 340 | \ifgerman{Zeitraum}{Intership Period} & \FEIFBeginDate\ifgerman{ bis }{--}\FEIFEndDate \\ 341 | \hline 342 | \end{tblr} 343 | 344 | \large{\ifgerman{Abgabe des Berichts:}{Submission date:} \FEIFSubmissionDate} 345 | \normalsize 346 | \begin{flushleft} 347 | \ifgerman 348 | { 349 | Freigabe zur Vorlage des Praxisberichts an der HS Coburg: 350 | } 351 | { 352 | Submission clearance of the internship report to Coburg University: 353 | } 354 | \end{flushleft}% 355 | \begin{tblr}{|X[2.7]|X[5.3]|X[5.5]|} 356 | \hline 357 | \ifgerman{Betreuungsperson}{Advisor} & \FEIFCompanyAdvisor & \\ 358 | \hline 359 | \ifgerman{Funktion}{Role} & \FEIFCompanyAdvisorRole & \textbf{\textit{\ifgerman{Ort, Datum}{Place, Date}}}\\ 360 | \hline 361 | \ifgerman{Telefon}{Phone} & \FEIFCompanyAdvisorPhone & \\ 362 | \cline{1-2} 363 | E-Mail & \FEIFCompanyAdvisorEMail & \\ 364 | \hline 365 | & & \textbf{\textit{\ifgerman{Unterschrift d. Betreuungsperson}{Signature of Advisor}}}\\ 366 | \hline 367 | \end{tblr} 368 | } 369 | { 370 | \centering 371 | \ifgerman{ 372 | \includegraphics[width=.8\textwidth]{logo_hscoburg_de_rot.pdf}% 373 | } 374 | { 375 | \includegraphics[width=.8\textwidth]{logo_hscoburg_en_rot.pdf}% 376 | } 377 | 378 | \begin{Large} 379 | \ifgerman{ 380 | Hochschule für angewandte Wissenschaften Coburg\\ 381 | Fakultät Elektrotechnik und Informatik\par 382 | } 383 | { 384 | Coburg University of Applied Sciences\\ 385 | Faculty of Electrical Engineering and Computer Science\par 386 | } \end{Large} 387 | \vspace{1.5cm} 388 | 389 | \Large{\ifgerman{Studiengang: }{Degree program: }\FEIFStudyProgram} 390 | \vspace{1.5cm} 391 | 392 | \Large{\FEIFThesisType} 393 | \vspace{1cm} 394 | 395 | \Huge{\FEIFTitle} 396 | \vspace{2cm} 397 | 398 | \huge{\FEIFAuthorsName} 399 | \vspace{2cm} 400 | 401 | \Large{\ifgerman{Abgabe der Arbeit:}{Submission date:} \FEIFSubmissionDate} 402 | 403 | \Large{\ifgerman{Betreut durch:}{Advisor: }} 404 | 405 | \Large{\FEIFInstructor, \ifgerman{Hochschule Coburg}{Coburg University}} 406 | } 407 | \end{titlepage} 408 | \restoregeometry 409 | % Title page is considered the 1st page 410 | \addtocounter{page}{1} 411 | } 412 | 413 | % Declaration Of Honor 414 | \newcommand\MakeDeclarationOfHonor 415 | { 416 | \clearpage 417 | \phantomsection 418 | \thispagestyle{empty} 419 | \addcontentsline{toc}{section}{\declarationname} 420 | \includepdf[ 421 | pages=-, 422 | pagecommand={}, 423 | picturecommand*={ 424 | \put(75,714){\large \FEIFAuthorsName} 425 | \put(75,683){\large \FEIFDateOfBirth} 426 | \put(75,652){\large \FEIFStudyProgram} 427 | \put(75,622){\large \FEIFMatriculationNumber} 428 | \put(75,81.5){\large \FEIFAuthorCity, den \today} 429 | } 430 | ]{declaration_of_honor.pdf} 431 | } 432 | 433 | \newtoggle{anySymbols} 434 | \pretocmd{\nomenclature}{\toggletrue{anySymbols}}{}{} 435 | 436 | \newtoggle{anyCitations} 437 | \pretocmd{\cite}{\toggletrue{anyCitations}}{}{} 438 | 439 | \newcommand*{\nomen}[2]{\nomenclature{#1}{#2}\stepcounter{countnomen}} 440 | \newcommand{\nomunit}[1]{\renewcommand{\nomentryend}{\hspace*{\fill}#1}} 441 | \newcommand{\nomsi}[1]{\nomunit{$\left[\si{#1}\right]$}} 442 | % ------------------------------------------------------------------- 443 | % Document Structure 444 | % ------------------------------------------------------------------- 445 | % Frontmatter 446 | \newcommand\frontmatter 447 | { 448 | % Peripheral pages have to be numbered using roman numerals 449 | \pagenumbering{Roman} 450 | } 451 | 452 | % Mainmatter 453 | \newcommand\mainmatter 454 | { 455 | \clearpage 456 | % Save page counter, used for consecutive numbering of peripherals following main content 457 | \newcounter{HSCPeripheralNumbering} 458 | \setcounter{HSCPeripheralNumbering}{\value{page}} 459 | 460 | % Set numbering of pages to arabic for main content 461 | \pagenumbering{arabic} 462 | } 463 | 464 | % Backmatter 465 | \newcommand\backmatter 466 | { 467 | \clearpage 468 | % Reset numbering to use roman numerals for rest of peripheral files 469 | \pagenumbering{Roman} 470 | \setcounter{page}{\value{HSCPeripheralNumbering}} 471 | } 472 | 473 | % List of Figures 474 | \let\oldlistoffigures\listoffigures 475 | \renewcommand{\listoffigures} 476 | { 477 | \iftotalfigures 478 | \phantomsection 479 | \addcontentsline{toc}{section}{\listfigurename} 480 | \oldlistoffigures 481 | \fi 482 | } 483 | 484 | % List of Tables 485 | \let\oldlistoftables\listoftables 486 | \renewcommand{\listoftables} 487 | { 488 | \iftotaltables 489 | \phantomsection 490 | \addcontentsline{toc}{section}{\listtablename} 491 | \oldlistoftables 492 | \fi 493 | } 494 | 495 | % List of Listings 496 | \let\oldlstlistoflistings\listoflistings 497 | \renewcommand{\lstlistoflistings} 498 | { 499 | \iftotallstlistings 500 | \clearpage 501 | \phantomsection 502 | \addcontentsline{toc}{section}{\lstlistlistingname} 503 | \oldlstlistoflistings 504 | \fi 505 | } 506 | 507 | % List of Symbols 508 | \newcommand{\listofsymbols} 509 | { 510 | \iftoggle{anySymbols}{ 511 | \clearpage 512 | \phantomsection 513 | \addcontentsline{toc}{section}{\nomname} 514 | \printnomenclature[2.5cm] 515 | } 516 | {} 517 | } 518 | 519 | % List of Acronyms 520 | \newcommand{\listofacronyms} 521 | { 522 | \IfFileExists{\FEIFCountEntriesFileName}{\input{\FEIFCountEntriesFileName}}{} 523 | \ifdefined\AcronymsUsed 524 | \ifnum\AcronymsUsed=1 525 | \clearpage 526 | \setglossarystyle{super} 527 | \printglossary[type=\acronymtype] 528 | 529 | \fi 530 | \fi 531 | } 532 | 533 | % Glossary 534 | \newcommand{\printfeifglossary} 535 | { 536 | \IfFileExists{\FEIFCountEntriesFileName}{\input{\FEIFCountEntriesFileName}}{} 537 | \ifdefined\GlossaryEntriesUsed 538 | \ifnum\GlossaryEntriesUsed=1 539 | \clearpage 540 | \setglossarystyle{altlist} 541 | \printglossary 542 | \fi 543 | \fi 544 | } 545 | 546 | % Bibliography 547 | \newcommand{\printfeifbibliography} 548 | { 549 | \iftoggle{anyCitations}{ 550 | \clearpage 551 | \phantomsection 552 | \renewcommand*{\refname}{\hscrefname} 553 | \addcontentsline{toc}{section}{\refname} 554 | \bibliographystyle{alphadin} 555 | }{ 556 | \renewcommand*{\refname}{} 557 | } 558 | } 559 | 560 | % Abstracts 561 | \renewenvironment{abstract} 562 | { 563 | \markboth{\abstractname}{\abstractname} 564 | \pagestyle{fancy} 565 | \fancypagestyle{abstract}{\fancyhead[L]{\abstractname}} 566 | \thispagestyle{abstract} 567 | \section*{\abstractname} 568 | \addcontentsline{toc}{section}{\abstractname} 569 | } 570 | { 571 | } 572 | 573 | % Acknowledgements 574 | \newenvironment{acknowledgement} 575 | { 576 | \markboth{\acknowledgementname}{\acknowledgementname} 577 | \pagestyle{fancy} 578 | \clearpage 579 | \fancypagestyle{acknowledgement}{\fancyhead[L]{\acknowledgementname}} 580 | \thispagestyle{acknowledgement} 581 | \addcontentsline{toc}{section}{\acknowledgementname} 582 | } 583 | { 584 | } 585 | \endinput 586 | --------------------------------------------------------------------------------