% !TeX spellcheck = de_DE

%  ******************************************************************************
%  * @file      tex/preamble                                                    *
%  * @author    <NAME>                                                     *
%  * @version   v0.1.1                                                          *
%  * @date      16.10.2019                                                      *
%  ******************************************************************************



% ******************************************************************************
% Dokument / Seiten
% ******************************************************************************

\documentclass[12pt,a4paper,parskip=full+]{scrartcl}
\usepackage[utf8]{inputenc}														% Zeichencodierung
\usepackage[ngerman,english]{babel}												% Sprachpaket Deutsch ausgewählt
\selectlanguage{ngerman}														% Sprache auf Deutsch gesetzt
\usepackage[T1]{fontenc}														% Umlaute bei \hyphenation verwenden können (Silbentrennung)
\usepackage[onehalfspacing]{setspace}											% Setzt das Dokument auf 1,5x Zeilenabstand (singlespacing/onehalfspacing/doublespacing)
\usepackage[headsepline]{scrlayer-scrpage}										% Kopfzeile
\usepackage[defaultlines=4,all]{nowidow}										% Schusterjungen und Hurenkinder
\usepackage{																	% Standard Krempel
	amsmath,																	% American Mathematical Society - Mathematik Basics (equation, equation*, align, align*, gather, gather*, flalign, flalign*, multline, multline*, alignat, alignat*, ...)
	amsfonts,																	% Schriftarten für Mathematik und spezielle Symbole
	amsthm,																		% erlaubt die Definition von Theoremen
	amssymb}																	% mathematische Zeichen und Symbole
\usepackage[version=4]{mhchem}													% erlaubt Chemische Gleichungen | bsp. \ce{C6H12O6 + 6O2 -> 6CO2 + 6H2O}



% ******************************************************************************
% Verlinkungen & Metadaten
% ******************************************************************************

\usepackage[																	% Verlinkung aller sections, ref , url, etc.
pdfborderstyle={/S/U/W 1}														% ändert den Rahmen der Links in Unterstriche
% colorlinks=true,																% schaltet Rahmen um die Links aus und ändert stattdessen die Schriftfarbe
% urlcolor=blue,																% URL Links: Blau
% citecolor=black,																% Zitate: Schwarz
% linkcolor=black																% Dokumentenlinks: Schwarz
]{hyperref}

\hypersetup{																	% erweiterte Einstellungen zu "hyperref" und erlaubt \autoref{} ist ähnlich wie \ref{}, schreibt aber Abbildung, Tabelle, usw. vor die verlinkte Gleitumgebung)
%	bookmarks=true,																% zeigt die Lesezeichenleiste an oder nicht.
	unicode=true,																% ermöglicht die Verwendung von nicht-latin Schriftzeichen
	pdftoolbar=true,															% setzt den Rahmen um einen Link, {0 0 0} erzeugt keinen Rahmen
	pdfmenubar=true,															% zeigt die Acrobat-Toolbar an oder versteckt sie.
	pdffitwindow=false,															% zeigt das Acrobat-Menü an oder versteckt es.
	pdfstartview={FitH},														% verändert die Größe des Acrobat-Anzeigefensters, damit das Dokument hineinpasst.
	pdftitle={Ein ziemlich guter wissenschaftlicher Arbeitstitel},				% definiert den Titel des Dokuments, welcher in der Dokumenteninfo von Acrobat angezeigt wird.
	pdfauthor={Vorname Name},													% definiert den Namen des Autors für die Dokumenteninfo.
	pdfsubject={},																% Beschreibung des Dokument für die Dokumenteninfo.
	pdfcreator={<NAME>},													% Ersteller des Dokuments für die Dokumenteninfo.
	pdfproducer={},																% Produzent des Dokuments für die Dokumenteninfo.
	pdfkeywords={Plasma} {Hochschule für angewandte Wissenschaft und Kunst} {HAWK} {Göttingen},		% Schlüsselwörter des Dokuments für die Dokumenteninfo (durch geschweifte Klammern voneinander getrennt).
	pdfnewwindow=true,															% legt fest, dass Links in einem neuen Fenster geöffnet werden sollen.
	colorlinks=false,															% legt fest, ob ein farbiger Rahmen um die Links gezogen werden soll oder ob die Schrift farbig sein soll.
	linkcolor=red,																% Farbe für die Links.
	citecolor=green,															% Farbe für die Quelllinks (bibliography; Quellenverzeichnis).
	filecolor=magenta,															% Farbe für Dateilinks.
	urlcolor=cyan																% Farbe für URL-Links (Web, Mail).
}

\renewcaptionname{ngerman}\sectionautorefname{Abschnitt}						% Ändern von \autoref(section):  Abschnitt           -> Abschnitt
\renewcaptionname{ngerman}\subsectionautorefname{Abschnitt}						% Ändern von \autoref(section):  Unterabschnitt      -> Abschnitt
\renewcaptionname{ngerman}\subsubsectionautorefname{Abschnitt}					% Ändern von \autoref(section):  Unterunterabschnitt -> Abschnitt
\newcommand{\subfigureautorefname}{\figureautorefname}							% Ändern von \autoref(subfloat): Unterabildung      -> Abbildung

\usepackage{cleveref}															% Muss nach \hypreref geladen werden (!) | \cref ist ähnlich wie \autoref, schreibt aber Abb., Tab., usw. vor die verlinkte Gleitumgebung



% ******************************************************************************
% Korrektur- und Dokumentatitonswerkzeuge
% ******************************************************************************
%\usepackage{comment}															% Erlaubt das Verwenden der Umgebung \begin{comment}...\end{comment} -> Erstellen von Kommentaren über mehrere Zeilen
\setlength{\marginparwidth}{2cm}												% gibt dem Paket "todonotes" den Hinweis, dass der Rand nur 2 cm breit ist
\usepackage[ngerman,
			disable,															% Paket deaktiviert | zum Aktivieren Zeile auskommentieren
			textsize=tiny,														% Todo-Notes werden in der Schriftgröße tiny angelegt
			colorinlistoftodos,													% die Farben der Todo-Notes werden in der List of Todos mit angezeigt
			]{todonotes}														% erlaubt das Verwenden von ToDo-Notizen -> \todo{...} und Blindbildern -> \missingfigure{...}

\usepackage[ngerman]{translator}												% erlaubt anderen Paketen Begriffe in Deutsche zu Übersetzen (Figure -> Abbildung, Table -> Tabelle, etc.)

\setlength{\headheight}{1.1\baselineskip}

\newcommand{\Autor}[2][]{\todo[color=yellow!40,#1]{\textbf{Autor:} #2}}			% neues Kommando \Autor{} (Sollte nach dem Autor benannt werden), um mit mehreren Leuten \todo{} zu nutzen
\newcommand{\KorrektorEins}[2][]{\todo[color=blue!40,#1]{\textbf{Korrektor1:} #2}}	% neues Kommando \Korrektor1{} (Sollte nach dem 1. Korretor benannt werden), um mit mehreren Leuten \todo{} zu nutzen
\newcommand{\KorrektorZwei}[2][]{\todo[color=green!40,#1]{\textbf{Korrektor2:} #2}}% neues Kommando \Korrektor2{} (Sollte nach dem 2. Korretor benannt werden), um mit mehreren Leuten \todo{} zu nutzen

\usepackage{changes}															% Erlaubt Änderungen nachverfolgen \deleted{} \replaced{}{}


% ******************************************************************************
% Gleitumgebungen / Grafiken
% ******************************************************************************

\usepackage{float}																% notwendig für Gleitumgebungen z.B. Figure
\usepackage{graphicx}															% erlaubt das Einbinden von Grafiken
\usepackage{subfig}																% erlaubt das Verwenden von Subfigures (Mehrere Bilder in einer Figure-Umgebung)
\usepackage{wrapfig}															% eröffnet die Möglichkeit Text neben eine Figure zu schreiben
\usepackage{pdfpages}															% ermöglicht das Einbinden von PDFs
\usepackage{epstopdf}															% erlaubt das Einbinden von EPS-Bilddateien
\usepackage{afterpage}															% erlaubt einen Punkt zu definieren, an dem alle bisherigen Floats gezeichnet sein müssen | Anwendung: \afterpage{\clearpage}
\usepackage{listings}															% ermöglicht zeichengenaues Zitieren (für Programmcode) \verb|Zitat|
	\renewcommand{\lstlistingname}{Quelltext}    								% Caption von "Listening" auf "Code" ändern
\usepackage{caption}															% ermöglicht die Beschriftung von Gleitobjekten (Floats)
\usepackage{nameref}															% erlaubt Namensreferenzen


\usepackage{enumitem}															% ermöglicht das Einstellen von Abständen in itemize-Umgebungen -> \setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt} (global) oder begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt] (lokal) und erlaubt das Verwenden der enumitem-Umgebung (itemize mit geringeren Abständen)
\setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}						% Veringern der Abstände in allen itemize-Umgebung des Dokuments

\usepackage{abstract}															% erlaubt das Verwenden der standartisierten Vorlage für Abstracts ( \begin{abstract}...\end{abstract} )
\addto\captionsngerman{\renewcommand{\abstractname}{Kurzfassung}}				% benennt den deutschen Titel des Abstracts von 'Zusammenfassung' um in 'Kurzfassung' 

\usepackage{forest}																% erlaubt einfache Verzeichnisstrukturen (tree), ist super für Verzeichnisbäume geeignet


% ******************************************************************************
% Tabellen
% ******************************************************************************
\usepackage{tabularx}															% ermöglicht Tabellen mit konkreter Breite festzulegen und erlaubt Zeilenumbrüche in einer Tabelle
\usepackage{longtable}															% lange Tabellen, welche über mehrere Seiten verarbeitet werden können


% Definieren neuer Tabellenspalten-Typen
% --------------------------------------
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} 						% linksbündig mit Breitenangabe -> L{BREITE} statt p{BREITE} möglich
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} 						% zentriert mit Breitenangabe -> C{BREITE} statt p{BREITE} möglich
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} 						% rechtsbündig mit Breitenangabe -> R{BREITE} statt p{BREITE} möglich
\newcolumntype{Y}{>{\centering\arraybackslash}X}								% wie X Spalten, aber zentrieren
\newcolumntype{Z}{>{\raggedleft\arraybackslash}X}								% wie X Spalten, aber rechtsbündig

\newcommand{\ltab}{\raggedright\arraybackslash} 								% Tabellenabschnitt linksbündig -> \ltab
\newcommand{\ctab}{\centering\arraybackslash} 									% Tabellenabschnitt zentriert -> \ctab 
\newcommand{\rtab}{\raggedleft\arraybackslash} 									% Tabellenabschnitt rechtsbündig -> \rtab


% Zusätzliche Tabellenfunktionen
% ------------------------------
\usepackage{multirow}															% erlaubt in Tabellen das Zusammenfassen von Zellen in einer Reihe
\usepackage{booktabs}															% erlaubt mehrere unterschiedliche Linien in Tabellen (\toprule, \midrule, \bottomrule)
\usepackage{hhline}																% erlaubt individuelle Dicke bei Tabellenlinien



% ******************************************************************************
% Diagramme
% ******************************************************************************

\usepackage{tikz}																% Zeichentool
\usepackage{pgfplots, pgfplotstable}											% Diagramme zeichnen
\pgfplotsset{compat = newest}													% Einstellung für Diagramme
\usepackage{pgfgantt}                                                           % Gantt-Diagramme zeichnen
\usepackage[binary-units]{siunitx}      										% SI-Einheiten können verwendet werden | Anwendung: \si{\meter\per\second}
\usepgfplotslibrary{units}														% Einheiten in Diagrammen plotten



% ******************************************************************************
% Verzeichnisse
% ******************************************************************************
\usepackage{scrwfile}                                                           % Erlaubt das Erstellen von mehr als 16 Verzeichnissen (Inhaltsverzeichnis, Glossar, ...)

% Literaturverzeichnis
% --------------------
\usepackage[
	backend=biber,
	style=ieee,
	citestyle=numeric
	]{biblatex}
\addbibresource{bib/Literatur.bib}


% Inhaltsverzeichnis
% ------------------
\RedeclareSectionCommands[toclinefill=\dotfill]{section,subsection,subsubsection} % Punkte im Inhaltsverzeichnis als Abstand zur Seitennummer

% Glossar, Abkürzungsverzeichnis, Symbolverzeichnis, etc.
% -------------------------------------------------------
\usepackage[nonumberlist, 														% keine Seitenzahlen anzeigen
			acronym,      														% ein Abkürzungsverzeichnis erstellen
			toc,          														% Einträge im Inhaltsverzeichnis
			section      														% im Inhaltsverzeichnis auf section-Ebene erscheinen
			]{glossaries}														% erlaubt Glossar, Abkürzungsverzeichnis, Symbolverzeichnis und mehr...

\newglossary[slg]{symbolslist}{syi}{syg}{Formelverzeichnis}						% ein Formelverzeichnis wird erstellt
\renewcommand*{\glspostdescription}{}											% den Punkt am Ende jeder Beschreibung deaktivieren
\newcommand{\glsit}[1]{\textit{\gls{#1}}}										% neues Kommando \glsit{} = \gls{} mit Link als kursivem Text
\newcommand{\glspit}[1]{\textit{\glspl{#1}}}									% neues Kommando \glsplit{} = \glpl{} mit Link als kursivem Text
\makeglossaries																	% Glossar-Befehle anschalten


% Stichwortverzeichnis
% --------------------
\usepackage{makeidx}															% ermöglicht das Anlegen eines Stichwortverzeichnisses | Anlegen eines Stichworts wir mit \index{Stichwort} ermöglicht und das Stichwortverzeichnis wird mit \printindex gedruckt | es steht typischerweise am Ende eines Dokuments
\makeindex																		% Index-Befehle anschalten



% ******************************************************************************
% Trennen von unbekannten Wörtern
% ******************************************************************************

% Worte, die NICHT oder nur auf bestimmte Weise getrennt werden sollen, können hier mit Bindestrich definiert werden und gelten im gesamten Dokument. Die Wörter sind nur durch ein Leerzeichen getrennt.
\hyphenation{Atmos-phä-ren-druck ei-des-statt-li-ch Mi-kro-plas-ma-zel-len}					



% ******************************************************************************
% Formatierungen
% ******************************************************************************

% Zusätzliche Symbole, Zahlen und Alphabethe
% ------------------------------------------
\usepackage{eurosym}															% €-Zeichen mit \euro darstellbar oder durch \EUR{Betrag}
\usepackage{wasysym}															% zusätzliche Symbole verwenden (Checkbox)
\usepackage{fdsymbol}															% zusätzliche Symbole verwenden (\hateq = Entspricht-Zeichen)
\usepackage{romannum}															% römische Nummern schreiben mit '\romannum{integer}'
\newcommand{\Rom}[1]{\uppercase\expandafter{\romannumeral #1\relax}}			% römische Nummern schreiben mit '\Rom{integer}' (nötig für Verwendung in \section{})
\usepackage{textgreek}															% erlaubt griechische Buchstaben im Text mit \textalpha, \textbeta, ...

% Globale Konfigurationen
% -----------------------

\setlength{\parindent}{0in} 													% bei Absätzen wird die erste Zeile NICHT eingerückt

\usepackage{rotating}															% erlaubt das Rotieren eines Elements
\newcommand\tabrotate[1]{\begin{turn}{90}\rlap{#1}\end{turn}}					% Kurzbefehl für das Rotieren eines Elements

\usepackage{csquotes}															% Paket für deutsche Anführungszeichen
\newcommand{\gqt}[1]{\glqq #1\grqq{}}											% \gqt{...} (german quotation) ist eine Umgebung für deutsche Anführungszeichen | Alternativen: dirtytalk, csquotes, epigraph


% Custom colors
% -------------
\usepackage{xcolor}
\definecolor{deepblue}{rgb}{0,0,0.5}											% definiert ein tiefes Blau
\definecolor{deepred}{rgb}{0.6,0,0}												% definiert ein tiefes Rot
\definecolor{deepgreen}{rgb}{0,0.5,0}											% definiert ein tiefes Grün

% Wird für Quelltexte verwendet
\definecolor{codegreen}{rgb}{0,0.6,0}											% Farbe "codegreen" wird definiert
\definecolor{codegray}{rgb}{0.5,0.5,0.5}										% Farbe "codegrey" wird definiert
\definecolor{codepurple}{rgb}{0.58,0,0.82}										% Farbe "codepurple" wird definiert
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}									% Farbe "backcolour" wird definiert


% Definiert einen eigenen Listing Style (Zum einbinden von Quellcode)
% -------------------------------------------------------------------
\lstdefinestyle{mystyle}{								% Definition eines eigenen Listing Styles
	backgroundcolor=\color{backcolour},   				% Hintergrundfarbe
	commentstyle=\color{codegreen},						% Kommentare
	keywordstyle=\color{magenta},						% Schlüsselwörter
	numberstyle=\tiny\color{codegray},					% Zeilennummer
	stringstyle=\color{codepurple},						% Zeichenketten
	basicstyle=\ttfamily\footnotesize,					% Normale Schrift
	breakatwhitespace=true,         					% Umbrechen an Leerzeichen?
	breaklines=true,                 					% Umbrechen des Text?
	captionpos=b,                    					% Position der Beschriftung (b=bottom, t=top)
	keepspaces=true,                 					% Leerzeichen behalten?
	numbers=left,                    					% Seite der Zeilennummern (l=left, r=right)
	numbersep=5pt,                  					% Abstand der Zeilennummern vom Code
	showspaces=false,                					% Leerzeichen anzeigen?
	showstringspaces=false,								% Leerzeichen in Zeichenketten anzeigen?
	showtabs=false,                  					% Tabs anzeigen?
	tabsize=2											% Tab Länge in Leerzeichen
}

\lstset{style=mystyle}									% Listing Style "mystyle" auswählen


% Silbentrennung von URLs
% -----------------------
%\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks\do\a				% erlaubt einen Umbruch in einer URL an allen angegebenen Stellen
%	\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l\do\m\do\n
%	\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z\do\A	
%	\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N	
%	\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z\do\1
%	\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0\do\&}
\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks\do.\do-\do:}		% erlaubt einen Umbruch in einer URL nur an markanten Stellen


% Neue Umgebung titlemize: Entspricht der itemize-Umgebung mit zusätzlicher Überschrift | Anwendung: \begin{titlemize}[Titel der Aufzählung] ... \end{titlemize}
\newenvironment{titlemize}[1]{
	\paragraph{#1}
	\begin{itemize}}
	{\end{itemize}}


% Die Überschrift \paragraph wird mit einem Zeilenumbruch versehen 
% -begin------------------------------------------------------------------------
\makeatletter
\renewcommand\paragraph{
	\@startsection{paragraph}{4}{\z@}
	{-3.25ex\@plus -1ex \@minus -.2ex}											% Raum vor \paragraph
	{1.5ex \@plus .2ex}															% Raum nach \paragraph
	{\normalfont\normalsize\bfseries}											% Text unter \paragraph
}
\makeatother
% -end--------------------------------------------------------------------------

