Select Git revision
main.tex 11.05 KiB
% Autor: Frederic Aust und Philip Maas
% Datum: 14.08.2021
% Short: Signalbot Dokumentation
% DOCUMENTCLASS -----------------------------------------------------------------------------------------
\documentclass[12pt,a4paper,oneside,numbers=noenddot,headsepline,captions=tableheading,toc=bibliography,openany]{scrbook}
\usepackage{geometry}
\geometry{a4paper,left=25mm,right=25mm, top=20mm, bottom=20mm, includeheadfoot}
% LAYOUT ------------------------------------------------------------------------------------------------
\RedeclareSectionCommand[ % Diese Zeilen definieren den Whitespace am Anfang jedes Kapitels
beforeskip=0pt, % 50pt
afterindent=false
]{chapter}
% SPRACHE------------------------------------------------------------------------------------------------
\usepackage[utf8]{inputenc}
\usepackage[autostyle,babel,german=guillemets,style=german]{csquotes}
\usepackage[USenglish,ngerman]{babel}
\selectlanguage{ngerman}
% TABELLEN UND DIAGRAMME --------------------------------------------------------------------------------
\usepackage{multirow} % Tabellen-Zellen über mehrere Zeilen
\usepackage{multicol} % mehrere Spalten auf eine Seite
\usepackage{booktabs, makecell, tabularx} % Für Tabellen mit vorgegeben Größen
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündige Spalten für Tabellen. Beispiel: {|p{0.3\textwidth}|p{0.4\textwidth}|R{0.1\textwidth}|R{0.1\textwidth}|}
\renewcommand\theadfont{\itshape\normalsize} % for two lines column headers
\renewcommand\theadgape{}
\usepackage{array}
\usepackage{float}
\usepackage{booktabs}
\usepackage{longtable} % Tabellen über mehrere Seiten
\usepackage{rotating}
\usepackage[table,xcdraw]{xcolor}
\usepackage{subfigure}
\usepackage{pdflscape}
\usepackage{pgfplots} % Diagramme
\usepgfplotslibrary{statistics}
\usepgfplotslibrary{polar}
% BILDER-------------------------------------------------------------------------------------------------
\usepackage{graphicx}
\usepackage{color}
\usepackage{inputenc}
\usepackage{pdftexcmds}
\usepackage{svg}
\graphicspath{{_img/}}
% ALLGEMEINES--------------------------------------------------------------------------------------------
\usepackage{amsmath,amssymb, nicefrac} % Mathesachen
\usepackage{lipsum} % Lorem Ipsum Generator
\usepackage[hyphens,obeyspaces,spaces]{url} % bricht lange URLs "schön" um
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage[onehalfspacing]{setspace}
\setlength{\parindent}{0cm} % Disable automatic parindent
\usepackage{placeins}
\usepackage{pdfpages}
\usepackage{enumitem}
%\sloppy
%\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF, verpixelt Schrift!
% \usepackage{parindent}
% PDF-----------------------------------------------------------------------------------------------------
\usepackage{pdfpages}
\usepackage[ngerman,
pdfauthor={Frederic Aust \& Philip Maas},
pdftitle={Signalbot Dokumentation},
colorlinks=true,linkcolor=black,citecolor=black,filecolor=black,urlcolor=black%
]{hyperref}
% ABKÜRZUNGEN --------------------------------------------------------------------------------------------
\usepackage[nohyperlinks]{acronym}
% BIBLATEX -----------------------------------------------------------------------------------------------
\usepackage[backend=biber,
style=IEEEtran,
bibstyle=numeric,
citestyle=numeric,
sorting=none,
]{biblatex}
\bibliography{_bib/biblio}
% In Optionen -> TeXStudio konfigurieren -> Erzeugen -> Standard Biliographieprogramm "Biber" einstellen
% QUELLCODE -------------------------------------------------------------------
\usepackage{listings}
\definecolor{mygreen}{RGB}{28, 172, 0} % Farbwerte in RGB
\definecolor{mypurple}{RGB}{150, 15, 147}
\definecolor{darkyellow}{RGB}{122, 122, 67}
\definecolor{darkcyan}{RGB}{0, 98, 122}
\definecolor{stringGreen}{RGB}{6, 125, 23}
\lstset{language=Python,
basicstyle=\footnotesize\ttfamily,
breaklines=true,
keywordstyle=\color{blue},%
morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
identifierstyle=\color{black},
stringstyle=\color{black},
commentstyle=\color{gray},
showstringspaces=false, % Ohne die Zeile würde man statt einer Leertaste ein Sonderzeichen sehen
numbers=left,
numberstyle={\tiny \color{black}}, % Farbe und Größe der Zeilennummerierung
numbersep=9pt, % Abstand der Zeilennummerierung
% Bereich zum Einstellen eigener Farben für die Codecolorierung. Es können verschiedene Schlagwörter zu den gewünschten Farben zugeordnet werden. Dieser Bereich ist individuell erweiterbar. Wenn man sich bei den Farben unsicher ist, sollte man versuchen die eigene IDE zu imitieren.
emph=[1]{for, end, break ,if, while, do, else, switch, isinstance, in, of},emphstyle=[1]\color{blue},
emph=[2]{Data, Result, none, hidden}, emphstyle=[2]\color{mygreen},
emph=[3]{objectName, customName, description, Object}, emphstyle=[3]\color{mypurple},
emph=[4]{constructor, log}, emphstyle=[4]\color{darkyellow},
emph=[5]{triple}, emphstyle=[5]\color{darkcyan}
}
% PSEUDOCODE -------------------------------------------------------------------
\usepackage[linesnumbered, ruled, longend, boxed]{algorithm2e}
\usepackage{etoolbox}
\AtBeginEnvironment{algorithm}{\SetArgSty{textrm}} % remove italic font from loops and conditions
\SetKw{Continue}{continue}
% DOCUMENT ------------------------------------------------------------------------------------------------
\begin{document}
\cleardoublepage
\definecolor{ims0}{RGB}{0, 90, 154}
\definecolor{ims1}{RGB}{243, 146, 0}
\definecolor{ims2}{RGB}{150, 150, 150}
\definecolor{rub0}{RGB}{0, 53, 96}
\definecolor{rub1}{RGB}{112, 151, 8}
\definecolor{color0}{rgb}{0.121,0.466,0.705}
\definecolor{color1}{rgb}{1,0.498,0.054}
\definecolor{color2}{rgb}{0.172,0.627,0.172}
\definecolor{color3}{rgb}{0.839,0.152,0.156}
\definecolor{color4}{rgb}{0.58,0.403,0.741}
\definecolor{color5}{rgb}{0.549,0.337,0.294}
\definecolor{color6}{rgb}{0.89,0.466,0.76}
% ----------------------------------------------------------------------------------------------------------
% TITELSEITE -----------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------------
%\input{_vermerke/sperrvermerk}
%\cleardoublepage
\begin{titlepage}
%----------------Einzelnes Logo----------------
\begin{center}
\includegraphics[width=0.5\textwidth]{bologo_hd}
\end{center}
%----------------Zwei Logos----------------
% \begin{figure}
% \centering
% \begin{minipage}[b]{0.45\textwidth}
% \includegraphics[height=1.5cm]{Logo_IMS}
% \end{minipage}
% \hfill
% \begin{minipage}[b]{0.45\textwidth}
% \hspace*{2cm} % Logo etwas verschieben
% \includegraphics[height=1.5cm]{bologo_hd}
% \end{minipage}
% \end{figure}
\begin{center}
\vspace*{1.5cm}
\huge\textbf{Signalbot}\\
\vspace*{0.5cm}
\large Fachübergreifende Dokumentation eines Community-Bots \\ für die Nachrichtenapp Signal\\
\vfill
\normalsize
\begin{tabular}{R{5cm}p{10cm}}
\rule{0mm}{5ex}\textbf{Co-Autor:} & Frederic Aust \newline 015\,201\,285 \newline Algorithmen und Datenstrukturen \\
\textbf{Co-Autor:} & Philip Maas \newline 015\,200\,898 \newline Treiberentwicklung, Echtzeit- und Betriebssysteme \\
\rule{0mm}{5ex}\textbf{Erstprüfer:} & Prof.\ Dr. rer. nat.\ Peter Gerwinski \\
\rule{0mm}{2ex}\textbf{Zweitprüfer:} & M.\ Sc.\ Benedikt Wildenhain \\
\rule{0mm}{5ex}\textbf{Abgabedatum:} & 21.\,10.\,2021\\
% \, = halbes Leerzeichen
\end{tabular}
\end{center}
\end{titlepage}
\onehalfspacing
\cleardoublepage
\pagenumbering{gobble}
\input{_vermerke/abstract}
% \cleardoublepage
% \input{_vermerke/erklaerung}
% \cleardoublepage
% \input{_vermerke/danksagung}
\cleardoublepage
% ----------------------------------------------------------------------------------------------------------
% VERZEICHNISSE --------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------------
\pagenumbering{roman}
\addcontentsline{toc}{chapter}{Inhaltsverzeichnis}
\tableofcontents
\cleardoublepage
\chapter*{Abkürzungsverzeichnis}
\addcontentsline{toc}{chapter}{Abkürzungsverzeichnis}
\begin{acronym}[CAPTCHA] % längste Abkürzung
\acro{AD}{Associated data}
\acro{API}{Application Programming Interface - Programmierschnittstelle}
%\acro{CSS}{Cascading Style Sheets}
\acro{CAPTCHA}{completely automated public Turing test to tell computers and humans apart}
\acro{CSV}{Comma/Character-separated values}
\acro{CLI}{Command Line Interface}
\acro{Dict}{Dictionary}
\acro{EK}{Ephemeral key}
%\acro{ERP}{Enterprise Resource Planning}
%\acro{GUI}{Graphical User Interface}
\acro{HTML}{Hypertext Markup Language}
\acro{HTTP}{Hypertext Transfer Protocol}
\acro{IDE}{Integrated Development Environment}
\acro{IK}{Identity key}
\acro{IMS}{IMS Messsysteme GmbH}
\acro{JRE}{Java Runtime Environment}
\acro{JSON}{JavaScript Object Notation}
\acro{JS}{JavaScript}
\acro{KDF}{Key-Derivation-Function}
\acro{M2M}{Machine to Machine}
\acro{MQTT}{Message Queuing Telemetry Transport}
\acro{OPK}{One-time prekey}
\acro{PDF}{Portable Document Format}
\acro{PK}{Public key}
\acro{PoC}{Proof of Concept}
\acro{REST}{Representational State Transfer}
\acro{Sesame}{Session Management for Asynchronous Message Encryption}
\acro{SK}{Secret key}
\acro{SPK}{Signed prekey}
\acro{SVG}{Scalable Vector Graphics}
\acro{td}{table data}
%\acro{TS}{TypeScript}
\acro{URL}{Uniform Resource Locator}
\acro{X3DH}{Extended Triple Diffie-Hellman}
\end{acronym}
\renewcommand*{\acffont}[1]{\textit{#1}}
\pagestyle{headings}
\pagenumbering{arabic}
\setlength{\parskip}{0.5em plus 0.1em}
% ----------------------------------------------------------------------------------------------------------
% INHALT ---------------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------------
\input{_content/einleitung}
\input{_content/module}
\input{_content/fazit}
\clearpage
% ----------------------------------------------------------------------------------------------------------
% REFERENZEN -----------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------------
\pagenumbering{Roman}
\clearpage
\addcontentsline{toc}{chapter}{Abbildungsverzeichnis}
\listoffigures
\clearpage
%\listoftables
%\addcontentsline{toc}{chapter}{Tabellenverzeichnis}
%\clearpage
\printbibliography
\clearpage
% ----------------------------------------------------------------------------------------------------------
% ANHANG ---------------------------------------------------------------------------------------------------
% ----------------------------------------------------------------------------------------------------------
%\begin{appendix}
%\input{_content/anhang}
%\end{appendix}
\end{document}