diff --git a/Jupyter_Notebook_Setup/README.md b/Jupyter_Notebook_Setup/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e1c8d2c62071dbcb877f0b4aafeaf184502507ee
--- /dev/null
+++ b/Jupyter_Notebook_Setup/README.md
@@ -0,0 +1,31 @@
+# Instructions how to setup Jupyter Notebook
+
+## Setup
+Install virtualenv and pip. Then run
+
+    virtualenv -p python3 ../.env
+    source ../.env/bin/activate
+    pip install -r requirements.txt
+
+Install the RISE plugin within the current virtual environment
+
+    jupyter-nbextension install rise --py --sys-prefix
+    jupyter-nbextension enable rise --py --sys-prefix
+
+Alternative without virtualenv: 
+
+    python3 -m pip install --user -r requirements.txt
+
+The installation should be located in ~/.local/bin. To be able to start your notebook with 'jupyter notebook', add ~/.local/bin your PATH-variable in  ~/.bashrc: 
+
+    export PATH="~/.local/bin/:$PATH"
+
+You might be needing the following two commands
+
+    python3 -m pip install --upgrade --user setuptools pip
+    python3 -m pip install --user tornado==4.5.3 
+
+After running those, additionally install the RISE plugin like before
+
+    jupyter-nbextension install rise --py --user
+    jupyter-nbextension enable rise --py --user
diff --git a/Jupyter_Notebook_Setup/requirements.txt b/Jupyter_Notebook_Setup/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b2a11e2fcf6338941f103f1e225e5d827dedea7a
--- /dev/null
+++ b/Jupyter_Notebook_Setup/requirements.txt
@@ -0,0 +1,5 @@
+jupyter
+RISE
+matplotlib
+sympy
+scipy
diff --git a/Jupyter_Notebook_Setup/startup.sh b/Jupyter_Notebook_Setup/startup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2dce5dcce065f5cb67d57d34a01d88b59d6abcf5
--- /dev/null
+++ b/Jupyter_Notebook_Setup/startup.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+source ../.env/bin/activate
+jupyter notebook
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/.dropbox.attr b/RR-2-patch-test-case/plots/praeambels_and_definitions/.dropbox.attr
new file mode 100755
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/.dropbox.attr
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/Diplomarbeitsskriptpraeambel/theoreme_und_farbe.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/Diplomarbeitsskriptpraeambel/theoreme_und_farbe.tex
new file mode 100644
index 0000000000000000000000000000000000000000..91d7dc632ef6193d8b208ccb8d37ec11eda5d2a5
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/Diplomarbeitsskriptpraeambel/theoreme_und_farbe.tex
@@ -0,0 +1,321 @@
+%FARBDEFINTIONEN
+%\definecolor{dunkelblau}{rgb}{0.21,0.37,0.87}definert neue Farben. Mit rgb-Werten in % mit RGB kann man die %RGB werte driket angeben
+%BLAUTOENE
+\definecolor{mediumblue}{RGB}{0,0,205}
+\definecolor{navyblue}{RGB}{0,0,128}
+\definecolor{midnightblue}{RGB}{25,25,112}
+\definecolor{royalblue4}{RGB}{39,64,139}
+\definecolor{blue3}{RGB}{0,0,205}
+
+%ROT- UND BRAUNTOENE
+\definecolor{brown}{RGB}{165,42,42} %Bordaux %heller
+\definecolor{brown3}{RGB}{205,51,51} %eher rot
+\definecolor{brown4}{RGB}{139,35,35} %ART Bordeaux %etwas dunkler
+\definecolor{red3}{RGB}{205,0,0} %bordeauxrot %noch dunkler
+\definecolor{tomato}{RGB}{205,79,57} % noch dunkler aehnlich zu red3
+\definecolor{firebrick3}{RGB}{205,38,38}
+\definecolor{firebrick4}{RGB}{139,26,26}
+
+%GELBTOENE
+\definecolor{gold}{RGB}{255,215,0}
+\definecolor{gold3}{RGB}{238,201,0} %dunkler
+
+%ORANGETOENE
+\definecolor{orange}{rgb}{.9,.6,.1}
+\definecolor{dunkelorange}{rgb}{.9,.5,.0}
+
+%Gruen
+\definecolor{darkgreen}{RGB}{0,100,0}
+\definecolor{green3}{RGB}{0,205,0} %dunkler als das Standartgruen
+\definecolor{olivedrab}{RGB}{107,142,35}
+\definecolor{forestgreen}{RGB}{34,139,34}
+\definecolor{darkolivegreen}{RGB}{85,107,47}
+
+%Grautoene
+\definecolor{grey}{rgb}{0.5,0.5,0.5}
+\definecolor{dimgrey}{RGB}{105,105,105}
+\definecolor{dimgrey2}{RGB}{153,153,153}
+\definecolor{dimgrey3}{RGB}{181,181,181}
+\definecolor{lightgrey}{RGB}{211,211,211}
+\definecolor{lightergrey}{RGB}{201,201,201}
+\definecolor{verylightgrey}{RGB}{222,222,222}
+
+
+%BRAUNTOENE
+\definecolor{braun}{rgb}{.6,.5,.1}
+\definecolor{braun2}{rgb}{.6,.4,.1}
+
+%DEFINITIONEN DER SATZ- UND THEOREMUMGEBUNGEN
+
+%\newcommand{\<Befehlsname>}{<Definition, was hinterher im Dokument erscheinen soll>}
+%"'Befehlsname"` muss %ein wirklich neuer Befehl sein
+%\newcommand{\<Befehlsname>}[Anzahl der Argumente des neuen Befehls (1...9)]{#i,#(i+1)} i
+%= 1...9 %Beim %Befehlsaufruf erscheint das, was man in die Argumentklammern schreibt an
+%der jeweiligen Stelle #i
+%Analog fuer folgenden Befehl: "<\Befehl>" muss schon existieren
+%\renewcommand{\<Befehl>}{<Definition>}
+%\renewcommand{\<Befehl>}[<ArgAnz>]{<Definition>}
+\newcommand{\bewend}{\rule{1ex}{1ex}}
+%Beweis ende: ausgefuelltes Viereck fuer das Ende eines Beweises.
+\newcommand{\latop}[2]{#1 \atop #2}	%gibt dem TeX-Befehl \atop eine LaTeX ueblichere Form
+\newcommand{\lchoose}[2]{#1 \choose #2} 
+%gibt dem TeX-Befehl \choose eine LaTeX ueblichere Form 
+
+%%%%%%%%%%%%% ZUNAECHST DIE EIGENEN STYLES %%%%%%%%%%%%%
+%erst mal ein Bugfix.
+%entweder
+% \makeatletter
+% \def\thmt@refnamewithcomma #1#2#3,#4,#5\@nil{%
+% \@xa\def\csname\thmt@envname #1utorefname\endcsname{#3}%
+% \ifcsname #2refname\endcsname
+% \csname #2refname\expandafter\endcsname\expandafter{\thmt@envname}{#3}{#4}%
+% \fi
+% }
+% \makeatother
+%oder Zur zwischenzeitlichen Abhilfe sollte es helfen, Z.48 in thm-autoref wie folgt
+%abzuaendern:  \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+%Ich habe das bereits gemacht.
+
+%Eingener Nummerierungsstyl am Rand und grau
+%Damit der Stil margincolored definiert ist muss 
+%  \definecolor{dimgrey}{RGB}{105,105,105}
+%  \definecolor{dimgrey2}{RGB}{153,153,153}
+%  \def\thmt@headstyle@margincolored{%
+%    \makebox[0pt][r]{\color{dimgrey2}\NUMBER\ }\NAME\NOTE
+%  }
+ 
+% 
+% zu thm-ntheorem.sty und thm-amsthm.sty ergänzt werden.
+%%%%% Definitionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{olivedrab}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{olivedrab}$\pmb{\triangleleft}$]{customdefintion}
+%Defintion
+\declaretheorem[name=Definition,numberwithin=section,style=customdefintion,
+refname={Definition,Defintionen}]{df}
+%Bezeichnungen
+\declaretheorem[name=Bezeichnungen,sibling=df,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez}
+\declaretheorem[name=Bezeichnung,sibling=df,style=customdefintion,
+refname={Bezeichnung,Bezeichnungen}]{bz}
+%Bezeichnungen ohne Nummer:
+\declaretheorem[name=Bezeichnungen,numbered=no,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez*}
+
+%Festlegung mit und ohne nummer
+\declaretheorem[name=Festlegung,sibling=df,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{festlg}
+\declaretheorem[name=Festlegung,numbered=no,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{nnfestlg}
+
+%%%%% Beispiel- und Bemerkungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber oder margin
+headfont={\color{midnightblue}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{midnightblue}$\pmb{\triangleleft}$]{custombspbem}
+%Beispiel 
+\declaretheorem[numberlike=df,name=Beispiel,style=custombspbem,
+refname={Beispiel,Beispiele}]{bsp}
+%Bemerkung
+\declaretheorem[name=Bemerkung,sibling=df,style=custombspbem,
+refname={Bemerkung,Bemerkungen}]{bem}
+
+%%%%% Lemma-,Korollarstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{tomato}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{tomato}$\pmb{\lrcorner}$]{customlemma}
+%Lemma 
+\declaretheorem[name=Lemma,sibling=df,style=customlemma,
+refname={Lemma,Lemmata}]{lm}
+%Korollar
+\declaretheorem[name=Korollar,sibling=df,style=customlemma,
+refname={Korollar,Korollare}]{kor}
+
+%%%%% Notizstyle 
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\lrcorner}$]{customnotiz}
+%Notiz
+\declaretheorem[name=Notiz,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{nz}
+%%Spezialnotiz fuer die D-Arbeit: Prinzip der Nullstellensuche
+\declaretheorem[name=Prinzip der Nullstellensuche,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{pdnss}
+\declaretheorem[name=Fragestellung,sibling=df,style=customnotiz,
+refname={Fragestellung,Fragestellungen}]{frage}
+\declaretheorem[name=Fragestellungen,sibling=df,style=customnotiz,
+refname={Fragestellungen,Fragestellungen}]{fragen}
+
+\declaretheorem[name=Erklärung,sibling=df,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung}
+\declaretheorem[name=Erklärung,numbered=no,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung*}
+
+
+%%%%%%%%%%%%Berechnungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\bewend}$]{customberechnung}
+%Nebenrechnung
+\declaretheorem[name=Nebenrechnung,sibling=df,style=customberechnung,
+refname={Nebenrechnung,Nebenrechnungen}]{nr}
+
+%%%%% Satz-, Hauptsatz-, Satz und Definition und Propositionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{firebrick4}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{firebrick4}$\lrcorner$]{customsatz}
+%Satz
+\declaretheorem[name=Satz,sibling=df,style=customsatz,
+refname={Satz,S\"atze}]{sz}
+%ohne Nummer
+\declaretheorem[name=Satz,numbered=no,style=customsatz,
+refname={Satz,S\"atze}]{sz*}
+%Hauptsatz 
+\declaretheorem[name=Hauptsatz,sibling=df,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz}
+%ohne Nummer
+\declaretheorem[name=Hauptsatz,numbered=no,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz*}
+%Satz und Definition 
+\declaretheorem[name=Satz und Definition,sibling=df,style=customsatz,
+refname={Satz und Definition,S\"atze und Definitionen}]{szdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositionen}]{proposition}
+
+%%%%%%%%% Beweisumgebung
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont=\bfseries,
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\bewend]{custombew}
+%Satz
+\declaretheorem[numbered=no,name=Beweis,style=custombew,
+refname={Beweis,Beweise}]{bew}
+
+%%%%%%%%%%%%%%%%%%%%%%% Zitieren von Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%allgemeine Vorgaben fuer das Zieren von Code. 
+
+\lstset{%
+numberbychapter=true, %
+breaklines=true,%
+prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
+breakatwhitespace=false,%
+basicstyle=\footnotesize\ttfamily,%
+commentstyle=\itshape,%
+fontadjust=true,%
+tabsize=2,%
+stringstyle=\itshape,%
+numbers=left,numberstyle=\footnotesize\ttfamily,%
+extendedchars=true,%
+inputencoding=utf8,%
+stepnumber=1,%
+frame=shadowbox,%
+rulesepcolor=\color{grey},%
+backgroundcolor=\color{white},%
+showspaces=false,%
+showstringspaces=false%
+aboveskip={1.5\baselineskip},%
+columns=fixed,%
+upquote=true,%
+}
+% Spezialvorgaben fuer das Zitieren von MATLAB Code.
+\newcommand{\citematlab}{\lstset{language=Matlab,%
+emph={if,elseif,else,end,for,while,function,return},%
+emphstyle=\bfseries\color{midnightblue},emph={[2]EigMitLambda,Zerol,CotKlTan
+,CotKlTanSpez,XsGrLambda,XsKlLambda,CotGrTan,ordnen,EvenSingTan,einord},%
+emphstyle={[2]\bfseries\color{olivedrab}},%
+emph={[3]zew,ew,l,L,lambda,ewsum,ewanz,phi,v1,v2},emphstyle={[3]\color{braun}}}}
+
+\crefname{lstlisting}{Listing}{Listings}
+\Crefname{lstlisting}{Listing}{Listings}
+
+%INDEXERSTELLUNG
+
+%\makeindex %erstellt ein indexfile. soll man am schluss erst machen!
+%\makeglossary
+%\includeonly{1laag1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - HIER BEGINNT DAS DOKUMENT -
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\linespread{1.35}
+%setzt einen anderen Zeilenabstand fest. Dieser Befehl sollte vor
+%\begin{document} stehen, damit er fuer das ganze Dokument gilt.
+
+%%%%%%%%%%%%%%%%%%%% Ausgemusterter Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Dies sind Theoremdefintionen f\"ur das ntheorem packet.
+% {\theoremseparator{.}
+% \theoremheaderfont{\color{olivedrab}\bfseries\scshape}
+% \theoremstyle{plain}
+% \newtheorem{df}{Definition}[section] }
+% 
+% {\theoremseparator{.}
+% \theoremheaderfont{\color{olivedrab}\bfseries\scshape}
+% {\theoremheaderfont{\color{midnightblue}\bfseries\scshape}
+% \theorembodyfont{\rmfamily}
+% \theoremstyle{plain}
+% \newtheorem{bem}[df]{Bemerkung}
+% \newtheorem{bsp}[df]{Beispiel}}	}
+% 
+% {\theoremseparator{.}
+% \theoremstyle{plain}
+% {\theoremheaderfont{\color{firebrick4} \bfseries\scshape}
+% \newtheorem{sz}[df]{Satz}
+% \newtheorem{prop}[df]{Proposition}
+% \newtheorem{szdf}[df]{Satz und Definition}
+% \newtheorem{hsz}[df]{Hauptsatz}}
+
+%{\theoremheaderfont{\color{tomato} \bfseries\scshape}
+% \newtheorem{lm}[df]{Lemma}
+% \newtheorem{nz}[df]{Notiz}
+% \newtheorem{nr}[df]{Nebenrechnung}
+% \newtheorem{kor}[df]{Korollar}}
+% }
+% 
+% {\theoremseparator{.}
+% \theoremstyle{plain}
+% {\theoremheaderfont{\bfseries\scshape}
+% \theorembodyfont{\rmfamily}
+% \newtheorem*{bew}{Beweis}}
+% }
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/L-Schema_Paper_makros.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/L-Schema_Paper_makros.tex
new file mode 100644
index 0000000000000000000000000000000000000000..cdfeee4d2510ec024caa464947d883355d9e0879
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/L-Schema_Paper_makros.tex
@@ -0,0 +1,92 @@
+
+%%% THIS FILE CONTAINS MACROS FOR THE L-SCHEME-PAPER
+
+\newcommand{\restric}{\,\rule[-5pt]{0.4pt}{12pt}\,{}}
+\newcommand{\dom}{\Omega}
+\newcommand{\union}[2]{#1 \cup \, #2}
+%vector
+\newcommand{\vt}[1]{\boldsymbol{#1}}
+% smoothness of domain
+\newcommand{\smoothness}{{Lipschitz}}
+\newcommand{\addnullcolor}{black!60}
+% smoothness of interfac
+\newcommand{\interfacesmoothness}{{Lipschitz}}
+% Domain boundaries
+% outer Boundaries
+\newcommand{\oB}[1]{\partial\Omega^{#1}}
+%\newcommand{\OuterBoundary}{$\partial\dom\cap\partial\dom_2$}
+
+\newcommand{\kdiff}{k^{\text{diff}}}
+
+% makros for the L-scheme scheme
+\newcommand{\plni}[2][l]{p_{#1}^{n,#2}}
+%\newcommand{\gradplni}[2][l]{\vt{p_{#1}^{n,#2}}}
+\newcommand{\Splni}[1]{S_l(p_l^{n,#1})}
+\newcommand{\gradplni}[1]{\vt{\nabla p_l^{n,#1}}}
+\newcommand{\gradplniMinusG}[1]{\vt{\nabla \bigl( p_l^{n,#1} - z \bigr)}}
+\newcommand{\klni}[2][l]{k_#1\bigl(S_#1(p_#1^{n,#2})\bigr)}
+\newcommand{\kln}[1]{k_{#1}\bigl(S_{#1}(p_{#1}^{n})\bigr)}
+\newcommand{\klnnull}[1]{k_{#1}\left(S_{#1}\bigl(p_{#1}^{n-1}\bigr)\right)}
+\newcommand{\gli}[2][l]{g_{#1}^{#2}}
+% the same for the summed variables
+\newcommand{\pni}[1][i]{p^{n,#1}}
+\newcommand{\gradpni}[1][i]{\nabla p^{n,#1}}
+\newcommand{\gi}[1][i]{g^{#1}}
+\newcommand{\epli}[2][l]{e_{p,#1}^{#2}}
+\newcommand{\epliOnGamma}[2][l]{e_{p,#1|_\Gamma}^{#2}}
+\newcommand{\gradepli}[2][l]{\vt{\nabla e_{p,#1}^{#2}}}
+\newcommand{\egli}[2][l]{e_{g,#1}^{#2}}
+\newcommand{\flux}[2][l]{\vt{F_{#1}^{n,#2}}}
+% scalar product
+% normal math mode sized 
+\newcommand{\spl}{\bigl\langle}
+\newcommand{\spr}{\bigr\rangle}
+% text mode sized
+\newcommand{\tspl}{\langle}
+\newcommand{\tspr}{\rangle}
+% bigger sized
+\newcommand{\bspl}{\Bigl\langle}
+\newcommand{\bspr}{\Bigr\rangle}
+%norms 
+\newcommand{\nml}{\bigl\|}
+\newcommand{\nmr}{\bigr\|}
+\newcommand{\Nml}{\Bigl\|}
+\newcommand{\Nmr}{\Bigr\|}
+
+% spaces
+\newcommand{\fs}[1]{H_{\oB{#1}}^1}
+\newcommand{\Fs}{\mathcal{V}}
+\newcommand{\Tracespace}{H^{1/2}_{00}(\Gamma)}
+\newcommand{\tGamma}{{\tilde{\Gamma}}}
+\newcommand{\onGamma}[1]{{#1}_{|_\Gamma}}
+\newcommand{\RR}{\mathbb{R}}
+\newcommand{\RRd}{\mathbb{R}^d}
+\newcommand{\NN}{\mathbb{N}}
+\newcommand{\CC}{\mathbb{C}}
+\newcommand{\KK}{\mathbb{K}}
+\newcommand{\ZZ}{\mathbb{Z}}
+\newcommand{\QQ}{\mathbb{Q}}
+\newcommand{\Hr}{\mathscr{H}}
+\newcommand{\Lb}{\mathcal{L}}
+\newcommand{\D}{\mathcal{D}}
+\newcommand{\V}{\mathcal{V}}
+%\newcommand{\G}{\mathcal{G}}
+\newcommand{\E}{\mathcal{E}}
+\DeclareMathOperator{\Span}{Span}
+\DeclareMathOperator{\vol}{vol}
+\DeclareMathOperator{\re}{Re}
+\DeclareMathOperator{\im}{Im}
+\DeclareMathOperator{\cosinus}{cosinus}
+\DeclareMathOperator{\dv}{\nabla\cdot }
+\DeclareMathOperator{\supp}{supp}
+\DeclareMathOperator{\dist}{dist}
+\DeclareMathOperator{\length}{length}
+\DeclareMathOperator{\trace}{tr}
+%\DeclareMathOperator{\liminf}{lim inf}
+%\DeclareMathOperator{\deg}{deg}
+%\DeclareMathOperator{\max}{max}
+\providecommand{\abs}[1]{\lvert#1\rvert}
+\providecommand{\norm}[1]{\lVert#1\rVert}
+\newcommand{\tr}[1]{\trace_{#1}}
+
+\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/artikel_theoreme_und_farbe.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/artikel_theoreme_und_farbe.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4e7bcfde9a848756731ec73a8c98253e57adf9b6
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/artikel_theoreme_und_farbe.tex
@@ -0,0 +1,383 @@
+%FARBDEFINTIONEN
+%\definecolor{dunkelblau}{rgb}{0.21,0.37,0.87}definert neue Farben. Mit rgb-Werten in % mit RGB kann man die %RGB werte driket angeben
+
+%BLAUTOENE
+\definecolor{mediumblue}{RGB}{0,0,205}
+\definecolor{navyblue}{RGB}{0,0,128}
+\definecolor{midnightblue}{RGB}{25,25,112}
+\definecolor{royalblue4}{RGB}{39,64,139}
+\definecolor{blue3}{RGB}{0,0,205}
+\definecolor{steelblue3}{RGB}{79,148,205}
+\definecolor{steelblue4}{RGB}{54,100,139}
+
+%ROT- UND BRAUNTOENE
+\definecolor{brown}{RGB}{165,42,42} %Bordaux %heller
+\definecolor{brown3}{RGB}{205,51,51} %eher rot
+\definecolor{brown4}{RGB}{139,35,35} %ART Bordeaux %etwas dunkler
+\definecolor{red3}{RGB}{205,0,0} %bordeauxrot %noch dunkler
+\definecolor{tomato}{RGB}{205,79,57} % noch dunkler aehnlich zu red3
+\definecolor{firebrick3}{RGB}{205,38,38}
+\definecolor{firebrick4}{RGB}{139,26,26}
+
+%GELBTOENE
+\definecolor{gold}{RGB}{255,215,0}
+\definecolor{gold3}{RGB}{238,201,0} %dunkler
+\definecolor{darkgoldenrod1}{RGB}{255,185,15}
+\definecolor{goldenrod1}{RGB}{255,193,37}
+\definecolor{goldenrod}{RGB}{218,165,32}
+
+%ORANGETOENE
+\definecolor{orange}{rgb}{.9,.6,.1}
+\definecolor{dunkelorange}{rgb}{.9,.5,.0}
+\definecolor{orange2}{RGB}{238,154,0}
+\definecolor{orange3}{RGB}{205,133,0}
+
+%Gruen
+\definecolor{darkgreen}{RGB}{0,100,0}
+\definecolor{green3}{RGB}{0,205,0} %dunkler als das Standartgruen
+\definecolor{olivedrab}{RGB}{107,142,35}
+\definecolor{olivedrab2}{RGB}{179,238,58}
+\definecolor{olivedrab3}{RGB}{154,205,50}
+\definecolor{forestgreen}{RGB}{34,139,34}
+\definecolor{darkolivegreen}{RGB}{85,107,47}
+\definecolor{darkolivegreen4}{RGB}{110,139,61}
+\definecolor{khaki3}{RGB}{205,198,115}
+
+%Grautoene
+\definecolor{grey}{rgb}{0.5,0.5,0.5}
+\definecolor{dimgrey}{RGB}{105,105,105}
+\definecolor{dimgrey2}{RGB}{153,153,153}
+\definecolor{dimgrey3}{RGB}{181,181,181}
+\definecolor{lightgrey}{RGB}{211,211,211}
+\definecolor{lightergrey}{RGB}{201,201,201}
+\definecolor{verylightgrey}{RGB}{222,222,222}
+
+
+%BRAUNTOENE
+\definecolor{braun}{rgb}{.6,.5,.1}
+\definecolor{braun2}{rgb}{.6,.4,.1}
+\definecolor{tan4}{RGB}{149,90,43}
+
+%%SCHATTIERUNGEN VON WEISS 
+\definecolor{wheat3}{RGB}{205,186,150}
+\definecolor{wheat4}{RGB}{139,126,102}
+
+
+%DEFINITIONEN DER SATZ- UND THEOREMUMGEBUNGEN
+
+%\newcommand{\<Befehlsname>}{<Definition, was hinterher im Dokument erscheinen soll>}
+%"'Befehlsname"` muss %ein wirklich neuer Befehl sein
+%\newcommand{\<Befehlsname>}[Anzahl der Argumente des neuen Befehls (1...9)]{#i,#(i+1)} i
+%= 1...9 %Beim %Befehlsaufruf erscheint das, was man in die Argumentklammern schreibt an
+%der jeweiligen Stelle #i
+%Analog fuer folgenden Befehl: "<\Befehl>" muss schon existieren
+%\renewcommand{\<Befehl>}{<Definition>}
+%\renewcommand{\<Befehl>}[<ArgAnz>]{<Definition>}
+\newcommand{\bewend}{\rule{1ex}{1ex}}
+\renewcommand{\qedsymbol}{\rule{1ex}{1ex}}
+%Beweis ende: ausgefuelltes Viereck fuer das Ende eines Beweises.
+\newcommand{\latop}[2]{#1 \atop #2}	%gibt dem TeX-Befehl \atop eine LaTeX ueblichere Form
+\newcommand{\lchoose}[2]{#1 \choose #2} 
+%gibt dem TeX-Befehl \choose eine LaTeX ueblichere Form 
+
+%%%%%%%%%%%%% ZUNAECHST DIE EIGENEN STYLES %%%%%%%%%%%%%
+%erst mal ein Bugfix.
+%entweder
+% \makeatletter
+% \def\thmt@refnamewithcomma #1#2#3,#4,#5\@nil{%
+% \@xa\def\csname\thmt@envname #1utorefname\endcsname{#3}%
+% \ifcsname #2refname\endcsname
+% \csname #2refname\expandafter\endcsname\expandafter{\thmt@envname}{#3}{#4}%
+% \fi
+% }
+% \makeatother
+%oder Zur zwischenzeitlichen Abhilfe sollte es helfen, Z.48 in thm-autoref wie folgt
+%abzuaendern:  \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+%Dies ist in der TeXLive2014 bereits gefixt.
+
+%Eingener Nummerierungsstyl am Rand und grau
+%Damit der Stil margincolored definiert ist muss 
+\makeatletter
+  \def\thmt@headstyle@margincolored{%
+    \makebox[0pt][r]{\color{black!40}\NUMBER\ }\NAME\NOTE
+  }
+\makeatother
+% in thm-ntheorem.sty und thm-amsthm.sty ergaenzt werden. Dies ist mit diesem Code erledigt ohne 
+%die Originalpakete zu veraendern.
+
+% General Numbering Style
+%\def \customheadformat {margincolored}
+%%% FARBDEFINTIONEN fuer theoremstyles
+\newcommand{\definitionstylecolor}{black}
+\newcommand{\exampleandremarkstylecolor}{black}
+\newcommand{\lammacorollarystylecolor}{black}
+\newcommand{\notestylecolor}{black}
+\newcommand{\customtheoremstylecolor}{black}
+%\newcommand{margincolored}{margin}
+%%%%% Definitionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\definitionstylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\definitionstylecolor}$\pmb{\triangleleft}$]{customdefintion}
+%Defintion
+\declaretheorem[name=Definition,numberwithin=section,style=customdefintion,
+refname={Definition,Defintionen}]{df}
+%Bezeichnungen
+\declaretheorem[name=Bezeichnungen,sibling=df,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez}
+\declaretheorem[name=Bezeichnung,sibling=df,style=customdefintion,
+refname={Bezeichnung,Bezeichnungen}]{bz}
+%Bezeichnungen ohne Nummer:
+\declaretheorem[name=Bezeichnungen,numbered=no,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez*}
+%notations
+\declaretheorem[name=Notations,sibling=df,style=customdefintion,
+refname={Notations,Notations}]{notations}
+%notation
+\declaretheorem[name=Notation,sibling=df,style=customdefintion,
+refname={Notation,Notations}]{notation}
+%notations without number:
+\declaretheorem[name=Notations,numbered=no,style=customdefintion,
+refname={Notations,Notations}]{notations*}
+%Assumption
+\declaretheorem[name=Assumption,sibling=df,style=customdefintion,
+refname={assumption,assumptions}]{assumption}
+%Assumptions
+\declaretheorem[name=Assumptions,sibling=df,style=customdefintion,
+refname={assumptions,assumptions}]{assumptions}
+
+
+%Festlegung mit und ohne nummer
+\declaretheorem[name=Festlegung,sibling=df,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{festlg}
+\declaretheorem[name=Festlegung,numbered=no,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{nnfestlg}
+
+%%%%% Beispiel- und Bemerkungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber oder margin
+headfont={\color{\exampleandremarkstylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{\exampleandremarkstylecolor}$\pmb{\triangleleft}$]{custombspbem}
+%Beispiel 
+\declaretheorem[numberlike=df,name=Beispiel,style=custombspbem,
+refname={Beispiel,Beispiele}]{bsp}
+%Bemerkung
+\declaretheorem[name=Bemerkung,sibling=df,style=custombspbem,
+refname={Bemerkung,Bemerkungen}]{bem}
+%Example
+\declaretheorem[numberlike=df,name=Example,style=custombspbem,
+refname={Example,Examples}]{example}
+%remark
+\declaretheorem[name=Remark,sibling=df,style=custombspbem,
+refname={Remark,Remarks}]{remark}
+% observation
+\declaretheorem[name=Observation,sibling=df,style=custombspbem,
+refname={Observation,Observations}]{observation}
+%%%%% Lemma-,Korollarstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\lammacorollarystylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\lammacorollarystylecolor}$\pmb{\lrcorner}$]{customlemma}
+%Lemma 
+\declaretheorem[name=Lemma,sibling=df,style=customlemma,
+refname={Lemma,Lemmata}]{lemma}
+%Korollar
+\declaretheorem[name=Korollar,sibling=df,style=customlemma,
+refname={Korollar,Korollare}]{kor}
+%Corollay
+\declaretheorem[name=Corollary,sibling=df,style=customlemma,
+refname={Corollary,Corollaries}]{corollary}
+%Conclusion
+\declaretheorem[name=Conclusion,sibling=df,style=customlemma,
+refname={Conclusion,Conclusions}]{conclusion}
+
+
+
+%%%%% Notizstyle 
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\notestylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\notestylecolor}$\pmb{\lrcorner}$]{customnotiz}
+%Notiz
+\declaretheorem[name=Notiz,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{notiz}
+%%Spezialnotiz fuer die D-Arbeit: Prinzip der Nullstellensuche
+\declaretheorem[name=Prinzip der Nullstellensuche,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{pdnss}
+\declaretheorem[name=Fragestellung,sibling=df,style=customnotiz,
+refname={Fragestellung,Fragestellungen}]{frage}
+\declaretheorem[name=Fragestellungen,sibling=df,style=customnotiz,
+refname={Fragestellungen,Fragestellungen}]{fragen}
+%Idea environment
+\declaretheorem[name=Idea,sibling=df,style=customnotiz,
+refname={idea,ideas}]{idea}
+%Main Idea environment
+\declaretheorem[name=Main idea,sibling=df,style=customnotiz,
+refname={main idea,main ideas}]{mainidea}
+%General Idea environment
+\declaretheorem[name=General idea,sibling=df,style=customnotiz,
+refname={general idea,general ideas}]{generalidea}
+%Questions and Tasks
+\declaretheorem[name=Questions and Tasks,sibling=df,style=customnotiz,
+refname={questions and tasks,question and tasks}]{QuestTasks}
+%Problem
+\declaretheorem[name=Problem,sibling=df,style=customnotiz,
+refname={problem,problems}]{problem}
+\declaretheorem[name=Problem,numbered=no,style=customnotiz,
+refname={problem,problems}]{problem*}
+% Note 
+\declaretheorem[name=Note,sibling=df,style=customnotiz,
+refname={Note,Notes}]{note}
+
+
+
+\declaretheorem[name=Erklärung,sibling=df,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung}
+\declaretheorem[name=Erklärung,numbered=no,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung*}
+
+
+%%%%%%%%%%%%Berechnungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\bewend}$]{customberechnung}
+%Nebenrechnung
+\declaretheorem[name=Nebenrechnung,sibling=df,style=customberechnung,
+refname={Nebenrechnung,Nebenrechnungen}]{nr}
+
+%%%%% Satz-, Hauptsatz-, Satz und Definition und Propositionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\customtheoremstylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\customtheoremstylecolor}$\lrcorner$]{customsatz}
+%Satz
+\declaretheorem[name=Satz,sibling=df,style=customsatz,
+refname={Satz,S\"atze}]{satz}
+%ohne Nummer
+\declaretheorem[name=Satz,numbered=no,style=customsatz,
+refname={Satz,S\"atze}]{satz*}
+%Hauptsatz 
+\declaretheorem[name=Hauptsatz,sibling=df,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hauptsatz}
+%ohne Nummer
+\declaretheorem[name=Hauptsatz,numbered=no,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hauptsatz*}
+%Satz und Definition 
+\declaretheorem[name=Satz und Definition,sibling=df,style=customsatz,
+refname={Satz und Definition,S\"atze und Definitionen}]{satzunddefiniton}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositionen}]{proposition}
+% English
+%theorem
+\declaretheorem[name=Theorem,sibling=df,style=customsatz,
+refname={Theorem,Theorems}]{satzengl}
+%ohne Nummer
+\declaretheorem[name=Theorem,numbered=no,style=customsatz,
+refname={Theorem,Theorems}]{satzengl*}
+%Satz und Definition 
+\declaretheorem[name=Theorem and Definition,sibling=df,style=customsatz,
+refname={Theorem and Definition,Theorems and Definitions}]{thmdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositions}]{prop}
+
+
+%%%%%%%%% Beweisumgebung
+%\newcommand{\customtheoremstylecolor}{black}
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont=\bfseries,
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\bewend]{custombew}
+%Beweis
+\declaretheorem[numbered=no,name=Beweis,style=custombew,
+refname={Beweis,Beweise}]{Beweis}
+%1
+\declaretheorem[numbered=no,name=Proof,style=custombew,%
+refname={Proof,Proofs}]{Proof}
+
+%%% helps cleverref to use the correct capitalization
+\crefname{lstlisting}{listing}{listings}
+\Crefname{lstlisting}{Listing}{Listings}
+\crefname{problem}{problem}{problems}
+\Crefname{problem}{Problem}{Problems}
+\crefname{notation}{notation}{notations}
+\Crefname{notation}{Notation}{Notations}
+\crefname{lm}{lemma}{lemmata}
+\Crefname{lm}{Lemma}{Lemmata}
+\crefname{assumptions}{assumptions}{assumptions}
+\Crefname{assumptions}{Assumptions}{Assumptions}
+\crefname{satzengl}{theorem}{theorems}
+\Crefname{satzengl}{Theorem}{Theorems}
+\crefname{satzengl*}{theorem}{theorems}
+\Crefname{satzengl*}{Theorem}{Theorems}
+\crefname{cor}{corollary}{corollaries}
+\Crefname{cor}{Corollary}{Corollaries}
+\crefname{df}{defintion}{defintions}
+\Crefname{df}{Defintion}{Defintions}
+\crefname{remark}{remark}{remarks}
+\Crefname{remark}{Remark}{Remarks}
+\crefname{observation}{observation}{observations}
+\Crefname{observation}{Observation}{Observations}
+%%%%%%%%%%%%%%%%%%%%%%% Zitieren von Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%allgemeine Vorgaben fuer das Zieren von Code. 
+% 
+% \lstset{%
+% numberbychapter=true, %
+% breaklines=true,%
+% prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
+% breakatwhitespace=false,%
+% basicstyle=\footnotesize\ttfamily,%
+% commentstyle=\itshape,%
+% fontadjust=true,%
+% tabsize=2,%
+% stringstyle=\itshape,%
+% numbers=left,numberstyle=\footnotesize\ttfamily,%
+% extendedchars=true,%
+% inputencoding=utf8,%
+% stepnumber=1,%
+% frame=shadowbox,%
+% rulesepcolor=\color{grey},%
+% backgroundcolor=\color{white},%
+% showspaces=false,%
+% showstringspaces=false%
+% aboveskip={1.5\baselineskip},%
+% columns=fixed,%
+% upquote=true,%
+% }
+% % Spezialvorgaben fuer das Zitieren von MATLAB Code.
+% \newcommand{\citematlab}{\lstset{language=Matlab,%
+% emph={if,elseif,else,end,for,while,function,return},%
+% emphstyle=\bfseries\color{midnightblue},emph={[2]EigMitLambda,Zerol,CotKlTan
+% ,CotKlTanSpez,XsGrLambda,XsKlLambda,CotGrTan,ordnen,EvenSingTan,einord},%
+% emphstyle={[2]\bfseries\color{olivedrab}},%
+% emph={[3]zew,ew,l,L,lambda,ewsum,ewanz,phi,v1,v2},emphstyle={[3]\color{braun}}}}
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/artikelpraeambel.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/artikelpraeambel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a72947cb8f0007347b0e96dc97a64bd7f39610f2
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/artikelpraeambel.tex
@@ -0,0 +1,452 @@
+%Dies ist der Kopf meiner Skripte. Er enthaelt alle Pakete und Einstellungen
+
+%%% BUG FIXING SECTION
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+%\csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%MAKROPAKETE
+%1.PAKETE DIE MIT DER KODIERUNG VON ZEICHEN ZU TUN HABEN.
+%\usepackage[german]{babel}
+%Definition von Sprachabhaengigen Komponenten insbesondere fuer Dokumente
+%in anderen Sprachen als Englisch
+%\usepackage{fixltx2e}
+\usepackage{etex} %some fix for hyperref
+%Korrektur einiger Fehler die sich in LaTeX2e eingeschlichen haben. 
+%\usepackage{ngerman} 
+% stellt Sonderzeichen und ihre Befehle wie zum Beispiel "o zur Verfuegung
+
+%%%%%%%%%%%% SCHRIFTEN %%%%%%%%%%%%%%%%%%%%%%%%
+%\usepackage{mathpazo}%andere Schriftart
+%\usepackage{lmodern}
+%\usepackage{beramono}
+% Using Courier font
+\renewcommand{\ttdefault}{pcr}
+%Tweak, damit auch im Mathemodus tt-schrift fettgedruckt werden kann.
+\usepackage{ifluatex}
+%%%% PDFLaTeX or LUALaTeX %%%%%%%
+\ifluatex
+  %\usepackage{luatextra}
+  \usepackage{lualatex-math}
+%  \usepackage{unicode-math}
+%  \setmathfont{xits-math.otf}
+\else
+  %% if pdflatex is used uncomment the following packages. If lualatex is used comment them.
+  %dieses Paket ermoeglicht die Eingabe von Sonderzeichen ueber die Tastatur
+  \usepackage[utf8]{inputenx}
+  %additions for utf8
+  \input{ix-utf8enc.dfu}
+  %% comment \usepackage{uiinput} if lulatex is used! line 131
+  %% if pdflatex is used uncomment above packages. If lualatex is used comment them.
+\fi
+\usepackage{microtype}
+\usepackage[dvipsnames,svgnames,table]{xcolor} % Farben
+
+\usepackage[T1]{fontenc} %Kodierung von Zeichensaetzen. 
+	%Das optionale Argument <Kodierung> kann eine durch Komma getrennte Liste von
+%Kodierungen enthalten. Im Text koennte dann an %beliebiger %Stelle zum wechseln der
+%Kodierung die Befehlsfolge:
+    		%\fontencoding{<Kodierung>}
+    		%\selectfont
+	%verwendet werden. Gaengige Kodierungen sind:
+%                           Tabelle 5.4: Kodierungen
+%         T1      8-Bit-Standard fuer EC-Fonts	 
+%         TS      8-Bit-Zeichenkodierung fuer TS-Fonts
+%         OT1      7-Bit-Kodierung fuer Text1 , CM-Fonts
+%         OML      7-Bit-Kodierung fuer Formeltext1
+%         OMS      7-Bit-Kodierung fuer mathematische Symbole1
+%         OMX      7-Bit-Kodierung fuer erweiterte mathematische Symbole1
+\usepackage{latexsym}
+%Definiert zusaetzliche Symbolbefehle.
+\usepackage[full]{textcomp}
+% Sammlung von Textsymbolen. Optional kann [safe] oder [full]
+% als Option hinzugefuegt werden, lezteres aber nur bei
+%CM und EC-Fonts
+
+% einige mathesymbole wie \lbrack
+\usepackage{stmaryrd}
+\usepackage{eucal}
+%Stellt deutsche Frakturschrift im Math Modus zur Verfuegung bei \mathcal
+%\usepackage{sistyle,upgreek}
+%\usepackage{fixmath}
+% sistyle stellt \SI{Masszahl}{Einheit}
+% bereit, zur si-konformen Darstellung von phy Goessen. textcom und upgreek stellt
+% fweiter Symbole bereit, welche sistyle braucht. Ausserdem diese Befehle \micro,
+% \ohm, \SIdecimalsign{,}(legt die trennung bei Dezimalzahlen fest)
+% \SIproductsign{\cdot} (legt das Multiplikationszeichen fest) \SIgroupfourfalse
+% erzeugt bei grossen Zahlen kleine Abstaende zwischen 3ergruppen \ang{zahl} ist das
+% gradzeichen.
+\usepackage{mathrsfs} %Stellt schreibschrift zur verfuegung im Mathemoduns mit \mathscr
+
+%1.01 LAYOUTPAKETE
+\usepackage[left = 2.5 cm, right = 2.5 cm, top = 2.5 cm, bottom = 3cm]{geometry} %a4paper
+% left = 3.5 cm, right = 3.5 cm, top = 3.3 cm, bottom = 6.6cm
+%\usepackage{fancyhdr}%Wird fuer erweiterte Kopf- und Fusszeileneinstellungen benoetigt.
+
+%\usepackage{enumerate}%Stellt die freie Auswahl von Aufzaehlungszeichen zur Verfuegung
+\usepackage[shortlabels]{enumitem} %Anpassbare Enumerates/Itemizes mit [label=]
+									%shortlabels: komp.  zu enumerate
+%Packete zur benutzung des KOMA-Paketes fuer europaeische Layouts also zur
+%Benutzung von 'scrartcl' fuer Artikel, 'scrreprt' fuer umfangreiche %Artikel und
+%Artikelsammlungen, 'scrbook' fuer Buecher und %'scrlettr2' fuer Briefe:
+%\usepackage{scrpage2} %fuer Kopf- und Fusszeilen, 
+%\usepackage{scrdate,scrtime}% fuer Wochentag und Uhrzeit, 
+%\usepackage{scraddr}
+%zur Loesung von Problemen mit Paketabhaengigkeiten scrfile sowie fuer
+%Briefadressverwaltung scraddr. 
+
+%%%% neue Befehle
+%Zahlensymbole
+
+%1.1PAKETE NOTWENDIG FUER MATHEMATISCHE FORMELN 
+\usepackage{amsfonts}%Fonts = Schriftarten der American mathematical Society (ams)
+\usepackage{amssymb}%Mathematische Symbole der ams.
+\usepackage{bbm}
+\usepackage{amsmath}
+% \ifluatex
+%    \usepackage{unicode-math}
+% \else
+% 
+% \fi
+
+%Definiert viele weitere Befehle fuer mathematischen Formeln und darueber hinaus.
+\usepackage{exscale}
+% Skaliert mathematische Symbole in anderen Schriftarten als ‚cmex10‘, so dass
+% falls die Schriftart in anderen Groessen als 10pt vorliegt diese angepasst
+% werden koennen
+\usepackage{amstext}
+% erlaubt es in abgesetzten Gleichungen mit \text kurzen Text einzufuegen.
+%\usepackage{amsextra}%hauptsaechlich fuer die Kompatibilitaet von Dokumenten
+%gebraucht.
+%\usepackage[arrow,matrix,curve]{xy} 
+% Packet xy-pic um Kommutative Diagramme und
+% zweidim Zeichnungen zu %zeichnen.in den eckigen Klammern stehen Module die
+% geladen werden, je nach dem was man braucht. In der %Matheumgebung wird das so
+% benutzt: \begin{xy} ...\end{xy}
+
+%Theoremumgebungen
+\usepackage{amsthm}%Ermoeglicht kontrolle ueber die Theorem-Umgebung beisst
+%sich mit ntheorem funktioniert aber mit \usepackage{thmtools}
+\usepackage{thm-patch,aliasctr,parseargs,keyval}
+\usepackage{thmtools}
+
+%stellt \declaretheorem[style=definition,qed=$\rtimes$]{definition}
+%zur verfuegung
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+% \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%Erlaubt das Setzen fetter Symbole mit \boldymbol{} bzw\pmb{}
+\usepackage{bm} 
+\usepackage{amsbsy}
+% stellt die Befehle \bm \hm zur Verfuegung, um mathematische
+% Symbole fett zu machen. Muss nach allen Fontpacketen geladen %werden!!!
+
+\ifluatex
+  %\usepackage{unicode-math}
+\else
+  % if LUALaTeX is used uncomment this
+  %\usepackage{uniinput} %ermoeglicht die Eingabe von unicode Zeichen
+\fi
+
+%\usepackage{listings} 
+%Wird verwendet um sourcecode zu TeXen, stellt 
+%\begin{lstlisting} .. \end{lstlisting} und \lstinputlisting zur Verfuegung
+                                                                   
+ 
+%2.PAKETE FUER GRAFIKEN UND GLEITOBJEKTE
+\usepackage{float,scrhack}
+%Stellt zusaetzliche Befehle fuer Gleitobjekte zur Verfuegung
+\usepackage{wrapfig}
+%Stellt die Moeglichkeit zur Verfuegung Text um Bilder herumlaufen zu lassen.
+\usepackage[textfont=it,labelfont=bf,format=plain]{caption}
+% Ermoeglicht das einstellen von figureumgebungen
+\usepackage{subcaption}
+
+\usepackage{array}%Verbessert die Darstellung von Tabellen und stellt erweiterte Befehle
+%zur Verfuegung.
+\usepackage{hhline} %stellt den \hhline in Tabellen zur Verfuegung
+\usepackage{delarray}
+%stellt eine einfachere Umgebung fuer begrenzte Arrays zur
+%Verfuegung.\begin{array} LB {<Spaltenvereinbarung>} RB
+
+% das tabu Packet, ein machtiges Tabellenpaket
+\usepackage{tabu}
+\usepackage{colortbl} % Farben in Tabellenzeilen
+
+%\usepackage{flafter} %Verhindert, dass Gleitobjekte in einem Dokument vor die
+%Stelle gesetzt werden, an der sie in der Eingabedatei %aufgebaut werden.
+%\usepackage{graphpap}%Zum Setzen von „Millimeter“-Papier. Es definiert den
+%graphics paper-Befehl in der picture-Umgebung. 
+
+%\usepackage[]{graphicx} %vorsicht, laedt hyperref
+%\usepackage{sidecap}
+%Für das malen von Graphen
+%Für das malen von Grafiken
+% waehle zunaechst das richtige Treiberbackend fuer Tikz.
+% beamer erkennt z. T nicht das richtige backend. pgfsys-pdf.def ist die Option, die am meisten unterstuetzt.
+%Für das malen von Graphen
+\usepackage{tikz}
+\usepackage{pgfplots}
+\pgfplotsset{compat=newest,%
+%	     width=0.49\textwidth%
+	     every axis plot post/.append style={
+	      every mark/.append style={scale=0.8,solid},
+	     }
+}
+\usetikzlibrary{arrows,%
+		arrows.meta,%
+                petri,%
+                topaths,%
+		fit,%
+		positioning,%
+		decorations.pathmorphing,%
+		backgrounds,
+		calc,%
+}%
+
+% Ausgabe von Grafiken als externe Grafik
+\usetikzlibrary{external}
+\usepgfplotslibrary{external}
+%\tikzset{external/optimize=true}%
+%% tikzset von Jim
+\tikzset{external/system call={lualatex \tikzexternalcheckshellescape --shell-escape -halt-on-error 
+-interaction=batchmode -jobname "\image" "\texsource"}}
+
+%%%%%%% convert externalized tikzgraphics to png
+%optional png setup
+\tikzset{
+  png export/.style={
+    external/system call=%
+    {lualatex \tikzexternalcheckshellescape --shell-escape -halt-on-error -interaction=batchmode -jobname 
+"\image" "\texsource" && %
+    convert -density 300 "\image.pdf" "\image.png"},
+  }
+}
+
+\tikzset{%
+  % Add size information to the .dpth file (png is in density not size)
+  /pgf/images/external info,
+  % Use the png export AND the import
+  use png/.style={png export,png import},
+  png import/.code={%
+    \tikzset{%
+      /pgf/images/include external/.code={%
+	% Here you can alter to whatever you want
+	% \pgfexternalwidth is only available if /pgf/images/external info
+	% is set
+	\includegraphics%
+	[width=\pgfexternalwidth,height=\pgfexternalheight]%
+	{{##1}.png}%
+      }%
+    }%
+  }%
+}
+
+% dann kann man das mit
+\tikzset{png export}
+% \tikzset{use png}
+% im dokument aktivieren.
+%%%%%%% END convert externalized tikzgraphics to png %%%%%%%%%%%%%%%%%%%
+
+% \tikzset{external/system call= {pdflatex -enable-write18 -shell-escape %
+% % % 				  -save-size=80000 %
+% % %                                -pool-size=100000000 %
+% % %                                -extra-mem-top=500000000 %
+% % %                                -extra-mem-bot=100000000 %
+% % %                                -main-memory=900000000 %
+%                                \tikzexternalcheckshellescape %
+%                                -halt-on-error %
+%                                -interaction=batchmode %
+%                                -jobname "\image" "\texsource"}} 
+\tikzexternalize[%
+% %mode=graphics if exists,
+  up to date check=md5,
+  figure list=true,
+  prefix=Tikzcache/,%
+ ]
+\tikzifexternalizing{%
+% don’t include package XYZ here
+}{%
+%hier kommen Pakete hinzu, die Probleme mit der external library von tikz haben
+\usepackage{pdfpages}
+%\usepackage{vmargin}
+% this package is incompatible with tikz externalization and is problematic
+%\usepackage[textsize=normal,textwidth=2cm,obeyFinal]{todonotes}
+% %obeyDraft lässt die Notes erscheinen, wenn man draft an hat und nicht, wenn nicht. Vertraegt sich nicht mit hyperref
+% % % additional todo stuff
+% % % extra functionality for todonotes taken from the manual
+% % % usage: \mycomment[HSM]{Testing second time.}.
+% \newcounter{mycomment}
+% \newcommand{\mycomment}[2][]{%
+% % initials of the author (optional) + note in the margin
+% \refstepcounter{mycomment}%
+% {%
+%   \setstretch{0.7}% spacing
+%   \todo[color={red!100!green!33},size=\small]{%
+%   \textbf{Comment [\uppercase{#1}\themycomment]:}~#2}%
+% }}
+% %
+% % mark whole section
+% \newcommand\todoin[2][]{\todo[color={green},inline, caption={2do}, #1]{
+% \begin{minipage}{\textwidth-4pt}#2\end{minipage}}}
+% % This example renders like
+% % \todoin{
+% %   Some text.
+% %   \begin{align}
+% %   \sin(\theta)^2 + \cos(\theta)^2 = 1
+% %   \end{align}
+% %   A formula and a list
+% %   \begin{itemize}
+% %     \item An item
+% %   \end{itemize}
+% % }
+% %
+% % numbered todonotes 
+% \newcommand{\ntodo}[2][]{\todo[#1]{\thesubsection{}. #2}}
+% % combining everything
+% \newcounter{todoListItems}
+% \newcommand{\sstodo}[2][]
+% {\addtocounter{todoListItems}{1}
+% \todo[caption={\protect\hypertarget{todo\thetodoListItems}{}\thesection. #2}, #1]
+% {\begin{spacing}{1} \hfill \hyperlink{todo\thetodoListItems}{#2} \end{spacing} }}
+}%
+
+
+%\usepackage[position=top]{subfig}
+% % BIBLIOGRAPHIE 
+% \usepackage[
+% 	  backend=biber,
+% %	  bibliographystyle=alphabetic,
+% 	  style=nature,		%globaler Style (Zitier- und Bibstil)
+% 	  citestyle=numeric, 	% Zitierstil
+% % % %	  bibliographystyle=chem-acs,	% Bibliographiestil
+% % 	  firstinits=true, 		% Vornamen abruerzen
+% % 	  sorting=nty, %sort by name,title,year
+% % 	  maxbibnames=99,
+% % %         maxnames=99,
+% %           language=british,
+% % %          abbreviate=true,
+%  	  doi=false,
+% %     isbn=false,
+%      url=false,
+%      sortcites=true,
+%      backref=true,
+%      defernumbers=true,
+% ]{biblatex}
+% \addbibresource{articlebibliography.bib}
+% 
+
+%3.PAKETE, DIE DAS ERSTELLEN EINES INDEX ERLEICHTERN
+%\usepackage{makeidx} 
+%'makeidx' Stellt Befehle fuer Indexerstellung zur Verfuegung.
+%\usepackage{showidx}%'showidx'bewirkt die Anzeige von Indexeintraegen %im
+%Randbereich.
+
+%3.SONSTIGE NUETZLICHE PAKETE
+%\usepackage{ifthen}%Definiert einfache Strukturen der Programmiersprachen
+\usepackage{verbatim}
+%\usepackage{alltt} % verbatim-Umgebung mit Interpretation von Befehlen.
+%Analysepaket zur ueberpruefung der Korrektheit der Syntax bei unterdrueckter
+%Ausgabe:
+%\usepackage{syntonly}% stellt dem Anwender den Befehl '\syntaxonly'zur Verfuegung,
+%der in der Praeambel angegeben werden muss, um beim
+%Formatieren die Ausgabe zu unterdruecken; eine bereits vorhandene .dvi-Datei
+%bleibt also erhalten.
+
+
+%%%% REFERENZIERUNG %%%%% 
+% Die Reihenfolge der folgenden 4 Packete ist wichtig.
+\usepackage{nameref}
+\usepackage[english]{varioref}%Stellt erweiterte Befehle zur Referenzierung von
+%Gleitobjekten zur Verfuegung
+\usepackage{hyperref}
+\hypersetup{
+%       pdfpagelabels=true,	% set pdf page lables
+%      naturalnames=true,     % use \Latex-computed names for links
+%     bookmarks=true,         % show bookmarks bar?
+      unicode=true,           % non-Latin characters in Acrobat’s bookmarks
+%     pdftoolbar=true,        % show Acrobat’s toolbar?
+%     pdfmenubar=true,        % show Acrobat’s menu?
+%     pdffitwindow=false,     % window fit to page when opened
+%     pdfstartview={FitH},    % fits the width of the page to the window
+%     pdftitle={My title},    % title
+%     pdfauthor={Author},     % author
+%     pdfsubject={Subject},   % subject of the document
+%     pdfcreator={Creator},   % creator of the document
+%     pdfproducer={Producer}, % producer of the document
+%     pdfkeywords={keyword1, key2, key3}, % list of keywords
+%     pdfnewwindow=true,      % links in new PDF window
+     plainpages=false,		% do page number anchors as plain arabic
+%     colorlinks=false,       % false: boxed links; true: colored links
+%     hidelinks=true,
+%     hyperfigures=true,
+     linkcolor=blue,          % color of internal links (change box color with linkbordercolor)
+     citecolor=darkgreen,        % color of links to bibliography
+     filecolor=black,      % color of file links
+     urlcolor=blue           % color of external links
+     pdfborder={0 0 1},		% width of pdf link border 0 0 1, 0 0 0 = colorlinks 
+     linkbordercolor=gray!15,
+     citebordercolor=green!15,
+}
+% Old hyperref options
+%[citecolor=black,urlcolor=blue,linkcolor=blue,colorlinks=true,pdfborder={0 0 %
+%0},pdfpagelabels,plainpages=false,naturalnames,unicode]
+\usepackage{memhfixc}
+%\usepackage[ngerman,capitalize]{cleveref}
+\usepackage[capitalize]{cleveref}
+
+\usepackage{bookmark}
+% Fix fuer das referenzieren von figures
+%\usepackage[all]{hypcap}
+
+
+%SEITENEINSTELLUNGEN
+\setlength{\parindent}{0cm} %Hebt die Einrueckung von Absaetzen auf.
+\linespread{1.35}
+%\setlength{\textwidth}{14.5cm} %Legt die Textbreite fest
+\pagestyle{myheadings} 
+%\usepackage{titlepage}
+
+%'plain' wuerde den Seitenkopf leer lassen aber die Seiten unten
+%mittig durchnummerieren. 'empty' laesst die Seite komplett leer
+%\markright{\today\hfill}
+%\usepackage{changepage}
+\allowdisplaybreaks[1] %Erlaubt bei der Align-Umgebung dass Zeilen auf
+%verschiedene Seiten gesetzt werden. die zahlen 1-4 koennen angegeben werden um
+%das Umbrechen noch weiter zu forcieren.
+
+%\pagestyle{fancy}  \fancyhf{}  
+%\renewcommand{\headrulewidth}{0.4 pt}%Strichdicke  
+%\setlength{\headheight}{1.2 cm}%Hoehe der Kopfzeile
+ 
+%\fancyhead[EL]{\page}
+%\fancyhead[ER]{\textsc{\rightmark}}
+%\fancyhead[C]{{\Large \textbf{FK019 freier Fall, g-Leiter}}\\\small 24.10.2008}
+%\fancyhead[OR]{\page}
+%\fancyhead[OL]{\textsc{\rightmark}}
+
+%% todo makros
+
+% self made todo solution
+\newcommand{\todo}[1]{\marginpar{\textcolor{red}{[\textbf{TODO:} #1]}}}
+\newcommand{\todox}[1]{\textcolor{red}{[\textbf{TODO:} #1]}} 
+
+%INDEXERSTELLUNG
+
+%\makeindex %erstellt ein indexfile. soll man am schluss erst machen!
+%\makeglossary
+%\includeonly{1laag1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - HIER BEGINNT DAS DOKUMENT -
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/lualatexartikelpraeambel.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/lualatexartikelpraeambel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7955feed323ac1dc0202e85f0f605346c16a403e
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/lualatexartikelpraeambel.tex
@@ -0,0 +1,340 @@
+%Dies ist der Kopf meiner Skripte. Er enthaelt alle Pakete und Einstellungen
+
+%%% BUG FIXING SECTION
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+%\csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%MAKROPAKETE
+%1.PAKETE DIE MIT DER KODIERUNG VON ZEICHEN ZU TUN HABEN.
+%\usepackage[german]{babel}
+%Definition von Sprachabhaengigen Komponenten insbesondere fuer Dokumente
+%in anderen Sprachen als Englisch
+\usepackage{fixltx2e}
+\usepackage{etex} %some fix for hyperref
+%Korrektur einiger Fehler die sich in LaTeX2e eingeschlichen haben. 
+%\usepackage{ngerman} 
+% stellt Sonderzeichen und ihre Befehle wie zum Beispiel "o zur Verfuegung
+
+%%%%%%%%%%%% SCHRIFTEN %%%%%%%%%%%%%%%%%%%%%%%%
+%\usepackage{mathpazo}%andere Schriftart
+%\usepackage{lmodern}
+%\usepackage{beramono}
+% Using Courier font
+\renewcommand{\ttdefault}{pcr}
+%Tweak, damit auch im Mathemodus tt-schrift fettgedruckt werden kann.
+
+%%%% PDFLaTeX or LUALaTeX %%%%%%%
+%% if pdflatex is used uncomment the following packages. If lualatex is used comment them.
+%dieses Paket ermoeglicht die Eingabe von Sonderzeichen ueber die Tastatur
+% \usepackage[utf8]{inputenx}
+% %additions for utf8
+% \input{ix-utf8enc.dfu}
+%% comment \usepackage{uiinput} if lulatex is used! line 131
+%% if pdflatex is used uncomment above packages. If lualatex is used comment them.
+\usepackage{microtype}
+\usepackage[dvipsnames,svgnames,table]{xcolor} % Farben
+
+\usepackage[T1]{fontenc} %Kodierung von Zeichensaetzen. 
+	%Das optionale Argument <Kodierung> kann eine durch Komma getrennte Liste von
+%Kodierungen enthalten. Im Text koennte dann an %beliebiger %Stelle zum wechseln der
+%Kodierung die Befehlsfolge:
+    		%\fontencoding{<Kodierung>}
+    		%\selectfont
+	%verwendet werden. Gaengige Kodierungen sind:
+%                           Tabelle 5.4: Kodierungen
+%         T1      8-Bit-Standard fuer EC-Fonts	 
+%         TS      8-Bit-Zeichenkodierung fuer TS-Fonts
+%         OT1      7-Bit-Kodierung fuer Text1 , CM-Fonts
+%         OML      7-Bit-Kodierung fuer Formeltext1
+%         OMS      7-Bit-Kodierung fuer mathematische Symbole1
+%         OMX      7-Bit-Kodierung fuer erweiterte mathematische Symbole1
+\usepackage{latexsym}
+%Definiert zusaetzliche Symbolbefehle.
+\usepackage[full]{textcomp}
+% Sammlung von Textsymbolen. Optional kann [safe] oder [full]
+% als Option hinzugefuegt werden, lezteres aber nur bei
+%CM und EC-Fonts
+
+\usepackage{eucal}
+%Stellt deutsche Frakturschrift im Math Modus zur Verfuegung bei \mathcal
+%\usepackage{sistyle,upgreek}
+%\usepackage{fixmath}
+% sistyle stellt \SI{Masszahl}{Einheit}
+% bereit, zur si-konformen Darstellung von phy Goessen. textcom und upgreek stellt
+% fweiter Symbole bereit, welche sistyle braucht. Ausserdem diese Befehle \micro,
+% \ohm, \SIdecimalsign{,}(legt die trennung bei Dezimalzahlen fest)
+% \SIproductsign{\cdot} (legt das Multiplikationszeichen fest) \SIgroupfourfalse
+% erzeugt bei grossen Zahlen kleine Abstaende zwischen 3ergruppen \ang{zahl} ist das
+% gradzeichen.
+\usepackage{mathrsfs} %Stellt schreibschrift zur verfuegung im Mathemoduns mit \mathscr
+
+%1.01 LAYOUTPAKETE
+\usepackage[left = 2.5 cm, right = 2.5 cm, top = 2.5 cm, bottom = 3cm]{geometry} %a4paper
+% left = 3.5 cm, right = 3.5 cm, top = 3.3 cm, bottom = 6.6cm
+%\usepackage{fancyhdr}%Wird fuer erweiterte Kopf- und Fusszeileneinstellungen benoetigt.
+
+%\usepackage{enumerate}%Stellt die freie Auswahl von Aufzaehlungszeichen zur Verfuegung
+\usepackage[shortlabels]{enumitem} %Anpassbare Enumerates/Itemizes mit [label=]
+									%shortlabels: komp.  zu enumerate
+%Packete zur benutzung des KOMA-Paketes fuer europaeische Layouts also zur
+%Benutzung von 'scrartcl' fuer Artikel, 'scrreprt' fuer umfangreiche %Artikel und
+%Artikelsammlungen, 'scrbook' fuer Buecher und %'scrlettr2' fuer Briefe:
+%\usepackage{scrpage2} %fuer Kopf- und Fusszeilen, 
+%\usepackage{scrdate,scrtime}% fuer Wochentag und Uhrzeit, 
+%\usepackage{scraddr}
+%zur Loesung von Problemen mit Paketabhaengigkeiten scrfile sowie fuer
+%Briefadressverwaltung scraddr. 
+
+%%%% neue Befehle
+%Zahlensymbole
+
+%1.1PAKETE NOTWENDIG FUER MATHEMATISCHE FORMELN 
+\usepackage{amsfonts}%Fonts = Schriftarten der American mathematical Society (ams)
+\usepackage{amssymb}%Mathematische Symbole der ams.
+\usepackage{bbm}
+\usepackage{amsmath} 
+%Definiert viele weitere Befehle fuer mathematischen Formeln und darueber hinaus.
+\usepackage{exscale}
+% Skaliert mathematische Symbole in anderen Schriftarten als ‚cmex10‘, so dass
+% falls die Schriftart in anderen Groessen als 10pt vorliegt diese angepasst
+% werden koennen
+\usepackage{amstext}
+% erlaubt es in abgesetzten Gleichungen mit \text kurzen Text einzufuegen.
+%\usepackage{amsextra}%hauptsaechlich fuer die Kompatibilitaet von Dokumenten
+%gebraucht.
+%\usepackage[arrow,matrix,curve]{xy} 
+% Packet xy-pic um Kommutative Diagramme und
+% zweidim Zeichnungen zu %zeichnen.in den eckigen Klammern stehen Module die
+% geladen werden, je nach dem was man braucht. In der %Matheumgebung wird das so
+% benutzt: \begin{xy} ...\end{xy}
+
+%Theoremumgebungen
+\usepackage{amsthm}%Ermoeglicht kontrolle ueber die Theorem-Umgebung beisst
+%sich mit ntheorem funktioniert aber mit \usepackage{thmtools}
+\usepackage{thm-patch,aliasctr,parseargs,keyval}
+\usepackage{thmtools}
+%stellt \declaretheorem[style=definition,qed=$\rtimes$]{definition}
+%zur verfuegung
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+% \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%Erlaubt das Setzen fetter Symbole mit \boldymbol{} bzw\pmb{}
+\usepackage{bm} 
+\usepackage{amsbsy}
+% stellt die Befehle \bm \hm zur Verfuegung, um mathematische
+% Symbole fett zu machen. Muss nach allen Fontpacketen geladen %werden!!!
+
+% if LUALaTeX is used uncomment this
+%\usepackage{uniinput} %ermoeglicht die Eingabe von unicode Zeichen
+
+
+%\usepackage{listings} 
+%Wird verwendet um sourcecode zu TeXen, stellt 
+%\begin{lstlisting} .. \end{lstlisting} und \lstinputlisting zur Verfuegung
+                                                                   
+ 
+%2.PAKETE FUER GRAFIKEN UND GLEITOBJEKTE
+\usepackage{float,scrhack}
+%Stellt zusaetzliche Befehle fuer Gleitobjekte zur Verfuegung
+\usepackage{wrapfig}
+%Stellt die Moeglichkeit zur Verfuegung Text um Bilder herumlaufen zu lassen.
+\usepackage[textfont=it,labelfont=bf,format=plain]{caption}
+% Ermoeglicht das einstellen von figureumgebungen
+\usepackage{subcaption}
+
+\usepackage{array}%Verbessert die Darstellung von Tabellen und stellt erweiterte Befehle
+%zur Verfuegung.
+\usepackage{hhline} %stellt den \hhline in Tabellen zur Verfuegung
+\usepackage{delarray}
+%stellt eine einfachere Umgebung fuer begrenzte Arrays zur
+%Verfuegung.\begin{array} LB {<Spaltenvereinbarung>} RB
+
+% das tabu Packet, ein machtiges Tabellenpaket
+\usepackage{tabu}
+\usepackage{colortbl} % Farben in Tabellenzeilen
+
+%\usepackage{flafter} %Verhindert, dass Gleitobjekte in einem Dokument vor die
+%Stelle gesetzt werden, an der sie in der Eingabedatei %aufgebaut werden.
+%\usepackage{graphpap}%Zum Setzen von „Millimeter“-Papier. Es definiert den
+%graphics paper-Befehl in der picture-Umgebung. 
+
+%\usepackage[]{graphicx} %vorsicht, laedt hyperref
+%\usepackage{sidecap}
+%Für das malen von Graphen
+%Für das malen von Grafiken
+% waehle zunaechst das richtige Treiberbackend fuer Tikz.
+% beamer erkennt z. T nicht das richtige backend. pgfsys-pdf.def ist die Option, die am meisten unterstuetzt.
+%Für das malen von Graphen
+\usepackage{tikz}
+\usepackage{pgfplots}
+\pgfplotsset{compat=newest}
+\usetikzlibrary{arrows,%
+%                 petri,%
+%                topaths,%
+%		fit,%
+%		positioning,%
+%		decorations.pathmorphing,%
+%		backgrounds,%
+}%
+
+% Ausgabe von Grafiken als externe Grafik
+\usetikzlibrary{external}
+% \usepgfplotslibrary{external}
+\tikzset{external/optimize=true}%
+% \tikzset{external/system call= {pdflatex -enable-write18 -shell-escape %
+% % % 				  -save-size=80000 %
+% % %                                -pool-size=100000000 %
+% % %                                -extra-mem-top=500000000 %
+% % %                                -extra-mem-bot=100000000 %
+% % %                                -main-memory=900000000 %
+%                                \tikzexternalcheckshellescape %
+%                                -halt-on-error %
+%                                -interaction=batchmode %
+%                                -jobname "\image" "\texsource"}} 
+\tikzexternalize[%
+% %mode=graphics if exists,
+  up to date check=md5,
+ figure list=true,
+ prefix=Tikzcache/,%
+ ]
+\tikzifexternalizing{%
+% don’t include package XYZ here
+}{%
+%hier kommen Pakete hinzu, die Probleme mit der external library von tikz haben
+%\usepackage{pdfpages}
+%\usepackage{vmargin}
+% this package is incompatible with tikz externalization and is problematic
+}%
+% \usepackage[textsize=normal,textwidth=2cm,obeyFinal]{todonotes}
+% %obeyDraft lässt die Notes erscheinen, wenn man draft an hat und nicht, wenn nicht. Vertraegt sich nicht mit hyperref
+
+% % additional todo stuff
+% % extra functionality for todonotes taken from the manual
+% % usage: \mycomment[HSM]{Testing second time.}.
+% \newcounter{mycomment}
+% \newcommand{\mycomment}[2][]{%
+% % initials of the author (optional) + note in the margin
+% \refstepcounter{mycomment}%
+% {%
+%   \setstretch{0.7}% spacing
+%   \todo[color={red!100!green!33},size=\small]{%
+%   \textbf{Comment [\uppercase{#1}\themycomment]:}~#2}%
+% }}
+% 
+% % mark whole section
+% \newcommand\todoin[2][]{\todo[color={green},inline, caption={2do}, #1]{
+% \begin{minipage}{\textwidth-4pt}#2\end{minipage}}}
+% % This example renders like
+% % \todoin{
+% % 	Some text.
+% % 	\begin{align}
+% % 	\sin(\theta)^2 + \cos(\theta)^2 = 1
+% % 	\end{align}
+% % 	A formula and a list
+% % 	\begin{itemize}
+% % 		\item An item
+% % 	\end{itemize}
+% % }
+% 
+% % numbered todonotes 
+% \newcommand{\ntodo}[2][]{\todo[#1]{\thesubsection{}. #2}}
+% % combining everything
+% \newcounter{todoListItems}
+% \newcommand{\sstodo}[2][]
+% {\addtocounter{todoListItems}{1}
+% \todo[caption={\protect\hypertarget{todo\thetodoListItems}{}\thesection. #2}, #1]
+% {\begin{spacing}{1} \hfill \hyperlink{todo\thetodoListItems}{#2} \end{spacing} }}
+
+
+%\usepackage[position=top]{subfig}
+% BIBLIOGRAPHIE 
+\usepackage[
+	  backend=biber,
+%	  bibliographystyle=alphabetic,
+%	  style=ieee,		%globaler Style (Zitier- und Bibstil)
+	  citestyle=numeric, 	% Zitierstil
+%	  bibliographystyle=chem-acs,	% Bibliographiestil
+	  firstinits=true, 		% Vornamen abruerzen
+	  sorting=nty, %sort by name,title,year
+	  maxbibnames=99,
+%         maxnames=99,
+          language=british,
+%          abbreviate=true,
+	  doi=false,
+          isbn=false,
+          url=false,
+          sortcites=true,
+          backref=true,
+          defernumbers=true,
+]{biblatex}
+\addbibresource{/home/seusdd/Dissertation/Bibliographie/dissertationsliteratur.bib}
+
+
+%3.PAKETE, DIE DAS ERSTELLEN EINES INDEX ERLEICHTERN
+%\usepackage{makeidx} 
+%'makeidx' Stellt Befehle fuer Indexerstellung zur Verfuegung.
+%\usepackage{showidx}%'showidx'bewirkt die Anzeige von Indexeintraegen %im
+%Randbereich.
+
+%3.SONSTIGE NUETZLICHE PAKETE
+%\usepackage{ifthen}%Definiert einfache Strukturen der Programmiersprachen
+%\usepackage{alltt} % verbatim-Umgebung mit Interpretation von Befehlen.
+%Analysepaket zur ueberpruefung der Korrektheit der Syntax bei unterdrueckter
+%Ausgabe:
+%\usepackage{syntonly}% stellt dem Anwender den Befehl '\syntaxonly'zur Verfuegung,
+%der in der Praeambel angegeben werden muss, um beim
+%Formatieren die Ausgabe zu unterdruecken; eine bereits vorhandene .dvi-Datei
+%bleibt also erhalten.
+
+
+%%%% REFERENZIERUNG %%%%% 
+% Die Reihenfolge der folgenden 4 Packete ist wichtig.
+\usepackage{nameref}
+\usepackage[english]{varioref}%Stellt erweiterte Befehle zur Referenzierung von
+%Gleitobjekten zur Verfuegung
+\usepackage[citecolor=black,urlcolor=blue,linkcolor=blue,colorlinks=true,pdfborder={0 0 %
+0},pdfpagelabels,plainpages=false,naturalnames,unicode]{hyperref}
+\usepackage{memhfixc}
+%\usepackage[ngerman,capitalize]{cleveref}
+\usepackage[]{cleveref}
+
+\usepackage{bookmark}
+% Fix fuer das referenzieren von figures
+%\usepackage[all]{hypcap}
+
+
+%SEITENEINSTELLUNGEN
+\setlength{\parindent}{0cm} %Hebt die Einrueckung von Absaetzen auf.
+%\setlength{\textwidth}{14.5cm} %Legt die Textbreite fest
+\pagestyle{myheadings} 
+%\usepackage{titlepage}
+
+%'plain' wuerde den Seitenkopf leer lassen aber die Seiten unten
+%mittig durchnummerieren. 'empty' laesst die Seite komplett leer
+%\markright{\today\hfill}
+%\usepackage{changepage}
+\allowdisplaybreaks[1] %Erlaubt bei der Align-Umgebung dass Zeilen auf
+%verschiedene Seiten gesetzt werden. die zahlen 1-4 koennen angegeben werden um
+%das Umbrechen noch weiter zu forcieren.
+
+%\pagestyle{fancy}  \fancyhf{}  
+%\renewcommand{\headrulewidth}{0.4 pt}%Strichdicke  
+%\setlength{\headheight}{1.2 cm}%Hoehe der Kopfzeile
+ 
+%\fancyhead[EL]{\page}
+%\fancyhead[ER]{\textsc{\rightmark}}
+%\fancyhead[C]{{\Large \textbf{FK019 freier Fall, g-Leiter}}\\\small 24.10.2008}
+%\fancyhead[OR]{\page}
+%\fancyhead[OL]{\textsc{\rightmark}}
+
+%% todo makros
+
+% self made todo solution
+\newcommand{\todo}[1]{\marginpar{\textcolor{red}{[\textbf{TODO:} #1]}}}
+\newcommand{\todox}[1]{\textcolor{red}{[\textbf{TODO:} #1]}} 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/special_symbols.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/special_symbols.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c6977169ae2efa5af5fdff33dcc636a2ec2d541b
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/special_symbols.tex
@@ -0,0 +1,206 @@
+%% SPECIAL INTEGRAL SIGNS
+% The following example defines macro
+% 
+% \mint{<symbol>}\limits_{...} ^{...} %statt \limits kann auch  \nolimits \displaylimits_stehen
+% 
+%     The first argument is the symbol that is put in smaller math style in the middle of the integral symbol.
+%     Then a limits specification follows, any number and order. The last one is used.
+%     Then one subscript and/or one superscript can follow in any order, but at most one of each type.
+% 
+% The implementation takes care of:
+% 
+%     the current math style,
+%     calculates the correct position for the middle of the integral
+%     even, if subscript and/or superscript are given with \limits,
+%     lets the horizontal spacing around the symbol intact and
+%     is aware of \mathsurround.
+
+
+\makeatletter
+\newcommand*{\mint}[1]{%
+  % #1: overlay symbol
+  \mint@l{#1}{}%
+}
+\newcommand*{\mint@l}[2]{%
+  % #1: overlay symbol
+  % #2: limits
+  \@ifnextchar\limits{%
+    \mint@l{#1}%
+  }{%
+    \@ifnextchar\nolimits{%
+      \mint@l{#1}%
+    }{%
+      \@ifnextchar\displaylimits{%
+        \mint@l{#1}%
+      }{%
+        \mint@s{#2}{#1}%
+      }%
+    }%
+  }%
+}
+\newcommand*{\mint@s}[2]{%
+  % #1: limits
+  % #2: overlay symbol
+  \@ifnextchar_{%
+    \mint@sub{#1}{#2}%
+  }{%
+    \@ifnextchar^{%
+      \mint@sup{#1}{#2}%
+    }{%
+      \mint@{#1}{#2}{}{}%
+    }%
+  }%
+}
+\def\mint@sub#1#2_#3{%
+  \@ifnextchar^{%
+    \mint@sub@sup{#1}{#2}{#3}%
+  }{%
+    \mint@{#1}{#2}{#3}{}%
+  }%
+}
+\def\mint@sup#1#2^#3{%
+  \@ifnextchar_{%
+    \mint@sub@sup{#1}{#2}{#3}%
+  }{%
+    \mint@{#1}{#2}{}{#3}%
+  }%
+}
+\def\mint@sub@sup#1#2#3^#4{%
+  \mint@{#1}{#2}{#3}{#4}%
+}
+\def\mint@sup@sub#1#2#3_#4{%
+  \mint@{#1}{#2}{#4}{#3}%
+}
+\newcommand*{\mint@}[4]{%
+  % #1: \limits, \nolimits, \displaylimits
+  % #2: overlay symbol: -, =, ...
+  % #3: subscript
+  % #4: superscript
+  \mathop{}%
+  \mkern-\thinmuskip
+  \mathchoice{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \displaystyle\textstyle\scriptstyle
+  }{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \textstyle\scriptstyle\scriptstyle
+  }{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \scriptstyle\scriptscriptstyle\scriptscriptstyle
+  }{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \scriptscriptstyle\scriptscriptstyle\scriptscriptstyle
+  }%
+  \mkern-\thinmuskip
+  \int#1%
+  \ifx\\#3\\\else_{#3}\fi
+  \ifx\\#4\\\else^{#4}\fi  
+}
+\newcommand*{\mint@@}[7]{%
+  % #1: limits
+  % #2: overlay symbol
+  % #3: subscript
+  % #4: superscript
+  % #5: math style
+  % #6: math style for overlay symbol
+  % #7: math style for subscript/superscript
+  \begingroup
+    \sbox0{$#5\int\m@th$}%
+    \sbox2{$#5\int_{}\m@th$}%
+    \dimen2=\wd0 %
+    % => \dimen2 = width of \int
+    \let\mint@limits=#1\relax
+    \ifx\mint@limits\relax
+      \sbox4{$#5\int_{\kern1sp}^{\kern1sp}\m@th$}%
+      \ifdim\wd4>\wd2 %
+        \let\mint@limits=\nolimits
+      \else
+        \let\mint@limits=\limits
+      \fi
+    \fi
+    \ifx\mint@limits\displaylimits
+      \ifx#5\displaystyle
+        \let\mint@limits=\limits
+      \fi
+    \fi
+    \ifx\mint@limits\limits
+      \sbox0{$#7#3\m@th$}%
+      \sbox2{$#7#4\m@th$}%
+      \ifdim\wd0>\dimen2 %
+        \dimen2=\wd0 %
+      \fi
+      \ifdim\wd2>\dimen2 %
+        \dimen2=\wd2 %
+      \fi
+    \fi
+    \rlap{%
+      $#5%
+        \vcenter{%
+          \hbox to\dimen2{%
+            \hss
+            $#6{#2}\m@th$%
+            \hss
+          }%
+        }%
+      $%
+    }%
+  \endgroup
+}
+% EXAMPLE INTEGRAL SIGNS
+% \begin{document}
+% \[
+%   \displaystyle A\int B
+%   \textstyle A\int B
+%   \scriptstyle A\int B
+%   \scriptscriptstyle A\int B
+% \]
+% \[
+%   \displaystyle A\mint{-} B
+%   \textstyle A\mint{-} B
+%   \scriptstyle A\mint{-} B
+%   \scriptscriptstyle A\mint{-} B
+% \]
+% \[
+%   \displaystyle A\mint{-}_{123}^{456} B
+%   \textstyle A\mint{-}_{123}^{456} B
+%   \scriptstyle A\mint{-}_{123}^{456} B
+%   \scriptscriptstyle A\mint{-}_{123}^{456} B
+% \]
+% \[
+%   \displaystyle A\mint{-}\limits_{12345}^{6} B
+%   \textstyle A\mint{-}\limits_{12345}^{6} B
+%   \scriptstyle A\mint{-}\limits_{12345}^{6} B
+%   \scriptscriptstyle A\mint{-}\limits_{12345}^{6} B
+% \]
+% \[
+%   \displaystyle A\mint{-}\limits_{1}^{23456} B
+%   \textstyle A\mint{-}\limits_{1}^{23456} B
+%   \scriptstyle A\mint{-}\limits_{1}^{23456} B
+%   \scriptscriptstyle A\mint{-}\limits_{1}^{23456} B
+% \]
+% \[
+%   \displaystyle A\mint{-}\displaylimits_{0}^{\infty} B
+%   \textstyle A\mint{-}\displaylimits_{0}^{\infty} B
+%   \scriptstyle A\mint{-}\displaylimits_{0}^{\infty} B
+%   \scriptscriptstyle A\mint{-}\displaylimits_{0}^{\infty} B
+% \]
+% \[
+%   \displaystyle A\mint{=} B
+%   \textstyle A\mint{=} B
+%   \scriptstyle A\mint{=} B
+%   \scriptscriptstyle A\mint{=} B
+% \]
+% \[
+%   \displaystyle A\mint{\equiv} B
+%   \textstyle A\mint{\equiv} B
+%   \scriptstyle A\mint{\equiv} B
+%   \scriptscriptstyle A\mint{\equiv} B
+% \]
+% \[
+%   \displaystyle A\mint{\circ} B
+%   \textstyle A\mint{\circ} B
+%   \scriptstyle A\mint{\circ} B
+%   \scriptscriptstyle A\mint{\circ} B
+% \]
+%\end{document}
+ 
\ No newline at end of file
diff --git a/RR-2-patch-test-case/plots/praeambels_and_definitions/theoreme_und_farbe.tex b/RR-2-patch-test-case/plots/praeambels_and_definitions/theoreme_und_farbe.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2ca623f6d1a3cce89aa1325ca7f3ab9968046b53
--- /dev/null
+++ b/RR-2-patch-test-case/plots/praeambels_and_definitions/theoreme_und_farbe.tex
@@ -0,0 +1,366 @@
+%FARBDEFINTIONEN
+%\definecolor{dunkelblau}{rgb}{0.21,0.37,0.87}definert neue Farben. Mit rgb-Werten in % mit RGB kann man die %RGB werte driket angeben
+
+%BLAUTOENE
+\definecolor{mediumblue}{RGB}{0,0,205}
+\definecolor{navyblue}{RGB}{0,0,128}
+\definecolor{midnightblue}{RGB}{25,25,112}
+\definecolor{royalblue4}{RGB}{39,64,139}
+\definecolor{blue3}{RGB}{0,0,205}
+\definecolor{steelblue3}{RGB}{79,148,205}
+\definecolor{steelblue4}{RGB}{54,100,139}
+
+%ROT- UND BRAUNTOENE
+\definecolor{brown}{RGB}{165,42,42} %Bordaux %heller
+\definecolor{brown3}{RGB}{205,51,51} %eher rot
+\definecolor{brown4}{RGB}{139,35,35} %ART Bordeaux %etwas dunkler
+\definecolor{red3}{RGB}{205,0,0} %bordeauxrot %noch dunkler
+\definecolor{tomato}{RGB}{205,79,57} % noch dunkler aehnlich zu red3
+\definecolor{firebrick3}{RGB}{205,38,38}
+\definecolor{firebrick4}{RGB}{139,26,26}
+
+%GELBTOENE
+\definecolor{gold}{RGB}{255,215,0}
+\definecolor{gold3}{RGB}{238,201,0} %dunkler
+\definecolor{darkgoldenrod1}{RGB}{255,185,15}
+\definecolor{goldenrod1}{RGB}{255,193,37}
+\definecolor{goldenrod}{RGB}{218,165,32}
+
+%ORANGETOENE
+\definecolor{orange}{rgb}{.9,.6,.1}
+\definecolor{dunkelorange}{rgb}{.9,.5,.0}
+\definecolor{orange2}{RGB}{238,154,0}
+\definecolor{orange3}{RGB}{205,133,0}
+
+%Gruen
+\definecolor{darkgreen}{RGB}{0,100,0}
+\definecolor{green3}{RGB}{0,205,0} %dunkler als das Standartgruen
+\definecolor{olivedrab}{RGB}{107,142,35}
+\definecolor{olivedrab2}{RGB}{179,238,58}
+\definecolor{olivedrab3}{RGB}{154,205,50}
+\definecolor{forestgreen}{RGB}{34,139,34}
+\definecolor{darkolivegreen}{RGB}{85,107,47}
+\definecolor{darkolivegreen4}{RGB}{110,139,61}
+\definecolor{khaki3}{RGB}{205,198,115}
+
+%Grautoene
+\definecolor{grey}{rgb}{0.5,0.5,0.5}
+\definecolor{dimgrey}{RGB}{105,105,105}
+\definecolor{dimgrey2}{RGB}{153,153,153}
+\definecolor{dimgrey3}{RGB}{181,181,181}
+\definecolor{lightgrey}{RGB}{211,211,211}
+\definecolor{lightergrey}{RGB}{201,201,201}
+\definecolor{verylightgrey}{RGB}{222,222,222}
+
+
+%BRAUNTOENE
+\definecolor{braun}{rgb}{.6,.5,.1}
+\definecolor{braun2}{rgb}{.6,.4,.1}
+\definecolor{tan4}{RGB}{149,90,43}
+
+%%SCHATTIERUNGEN VON WEISS 
+\definecolor{wheat3}{RGB}{205,186,150}
+\definecolor{wheat4}{RGB}{139,126,102}
+
+
+%DEFINITIONEN DER SATZ- UND THEOREMUMGEBUNGEN
+
+%\newcommand{\<Befehlsname>}{<Definition, was hinterher im Dokument erscheinen soll>}
+%"'Befehlsname"` muss %ein wirklich neuer Befehl sein
+%\newcommand{\<Befehlsname>}[Anzahl der Argumente des neuen Befehls (1...9)]{#i,#(i+1)} i
+%= 1...9 %Beim %Befehlsaufruf erscheint das, was man in die Argumentklammern schreibt an
+%der jeweiligen Stelle #i
+%Analog fuer folgenden Befehl: "<\Befehl>" muss schon existieren
+%\renewcommand{\<Befehl>}{<Definition>}
+%\renewcommand{\<Befehl>}[<ArgAnz>]{<Definition>}
+\newcommand{\bewend}{\rule{1ex}{1ex}}
+%Beweis ende: ausgefuelltes Viereck fuer das Ende eines Beweises.
+\newcommand{\latop}[2]{#1 \atop #2}	%gibt dem TeX-Befehl \atop eine LaTeX ueblichere Form
+\newcommand{\lchoose}[2]{#1 \choose #2} 
+%gibt dem TeX-Befehl \choose eine LaTeX ueblichere Form 
+
+%%%%%%%%%%%%% ZUNAECHST DIE EIGENEN STYLES %%%%%%%%%%%%%
+%erst mal ein Bugfix.
+%entweder
+% \makeatletter
+% \def\thmt@refnamewithcomma #1#2#3,#4,#5\@nil{%
+% \@xa\def\csname\thmt@envname #1utorefname\endcsname{#3}%
+% \ifcsname #2refname\endcsname
+% \csname #2refname\expandafter\endcsname\expandafter{\thmt@envname}{#3}{#4}%
+% \fi
+% }
+% \makeatother
+%oder Zur zwischenzeitlichen Abhilfe sollte es helfen, Z.48 in thm-autoref wie folgt
+%abzuaendern:  \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+%Dies ist in der TeXLive2014 bereits gefixt.
+
+%Eingener Nummerierungsstyl am Rand und grau
+%Damit der Stil margincolored definiert ist muss 
+%  \definecolor{dimgrey}{RGB}{105,105,105}
+%  \definecolor{dimgrey2}{RGB}{153,153,153}
+\makeatletter
+  \def\thmt@headstyle@margincolored{%
+    \makebox[0pt][r]{\color{dimgrey}\NUMBER\ }\NAME\NOTE
+  }
+\makeatother
+% zu thm-ntheorem.sty und thm-amsthm.sty ergänzt werden.
+
+
+%%%%% Definitionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{olivedrab}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+%numbercolor=\color{dimgrey2},
+postheadspace=1em,
+qed=\color{olivedrab}$\pmb{\triangleleft}$]{customdefintion}
+%Defintion
+\declaretheorem[name=Definition,numberwithin=section,style=customdefintion,
+refname={Definition,Defintionen}]{df}
+%Bezeichnungen
+\declaretheorem[name=Bezeichnungen,sibling=df,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez}
+\declaretheorem[name=Bezeichnung,sibling=df,style=customdefintion,
+refname={Bezeichnung,Bezeichnungen}]{bz}
+%Bezeichnungen ohne Nummer:
+\declaretheorem[name=Bezeichnungen,numbered=no,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez*}
+%notations
+\declaretheorem[name=Notations,sibling=df,style=customdefintion,
+refname={Notations,Notations}]{notations}
+%notation
+\declaretheorem[name=Notation,sibling=df,style=customdefintion,
+refname={Notation,Notations}]{notation}
+%notations without number:
+\declaretheorem[name=Notations,numbered=no,style=customdefintion,
+refname={Notations,Notations}]{notations*}
+%Assumption
+\declaretheorem[name=Assumption,sibling=df,style=customdefintion,
+refname={assumption,assumptions}]{assumption}
+%Assumptions
+\declaretheorem[name=Assumptions,sibling=df,style=customdefintion,
+refname={assumptions,assumptions}]{assumptions}
+
+
+%Festlegung mit und ohne nummer
+\declaretheorem[name=Festlegung,sibling=df,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{festlg}
+\declaretheorem[name=Festlegung,numbered=no,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{nnfestlg}
+
+%%%%% Beispiel- und Bemerkungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber oder margin
+headfont={\color{midnightblue}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{midnightblue}$\pmb{\triangleleft}$]{custombspbem}
+%Beispiel 
+\declaretheorem[numberlike=df,name=Beispiel,style=custombspbem,
+refname={Beispiel,Beispiele}]{bsp}
+%Bemerkung
+\declaretheorem[name=Bemerkung,sibling=df,style=custombspbem,
+refname={Bemerkung,Bemerkungen}]{bem}
+%Example
+\declaretheorem[numberlike=df,name=Example,style=custombspbem,
+refname={Example,Examples}]{example}
+%remark
+\declaretheorem[name=Remark,sibling=df,style=custombspbem,
+refname={Remark,Remarks}]{remark}
+
+%%%%% Lemma-,Korollarstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{steelblue4}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{steelblue4}$\pmb{\lrcorner}$]{customlemma}
+%Lemma 
+\declaretheorem[name=Lemma,sibling=df,style=customlemma,
+refname={Lemma,Lemmata}]{lm}
+%Korollar
+\declaretheorem[name=Korollar,sibling=df,style=customlemma,
+refname={Korollar,Korollare}]{kor}
+%Corollay
+\declaretheorem[name=Corollary,sibling=df,style=customlemma,
+refname={Corollary,Corollaries}]{cor}
+%Conclusion
+\declaretheorem[name=Conclusion,sibling=df,style=customlemma,
+refname={Conclusion,Conclusions}]{conclusion}
+
+
+
+%%%%% Notizstyle 
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\lrcorner}$]{customnotiz}
+%Notiz
+\declaretheorem[name=Notiz,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{nz}
+%%Spezialnotiz fuer die D-Arbeit: Prinzip der Nullstellensuche
+\declaretheorem[name=Prinzip der Nullstellensuche,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{pdnss}
+\declaretheorem[name=Fragestellung,sibling=df,style=customnotiz,
+refname={Fragestellung,Fragestellungen}]{frage}
+\declaretheorem[name=Fragestellungen,sibling=df,style=customnotiz,
+refname={Fragestellungen,Fragestellungen}]{fragen}
+%Idea environment
+\declaretheorem[name=Idea,sibling=df,style=customnotiz,
+refname={idea,ideas}]{idea}
+%Main Idea environment
+\declaretheorem[name=Main idea,sibling=df,style=customnotiz,
+refname={main idea,main ideas}]{mainidea}
+%General Idea environment
+\declaretheorem[name=General idea,sibling=df,style=customnotiz,
+refname={general idea,general ideas}]{generalidea}
+%Questions and Tasks
+\declaretheorem[name=Questions and Tasks,sibling=df,style=customnotiz,
+refname={questions and tasks,question and tasks}]{QuestTasks}
+%Problem
+\declaretheorem[name=Problem,sibling=df,style=customnotiz,
+refname={problem,problems}]{problem}
+\declaretheorem[name=Problem,numbered=no,style=customnotiz,
+refname={problem,problems}]{problem*}
+
+
+
+\declaretheorem[name=Erklärung,sibling=df,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung}
+\declaretheorem[name=Erklärung,numbered=no,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung*}
+
+
+%%%%%%%%%%%%Berechnungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\bewend}$]{customberechnung}
+%Nebenrechnung
+\declaretheorem[name=Nebenrechnung,sibling=df,style=customberechnung,
+refname={Nebenrechnung,Nebenrechnungen}]{nr}
+
+%%%%% Satz-, Hauptsatz-, Satz und Definition und Propositionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{firebrick4}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{firebrick4}$\lrcorner$]{customsatz}
+%Satz
+\declaretheorem[name=Satz,sibling=df,style=customsatz,
+refname={Satz,S\"atze}]{sz}
+%ohne Nummer
+\declaretheorem[name=Satz,numbered=no,style=customsatz,
+refname={Satz,S\"atze}]{sz*}
+%Hauptsatz 
+\declaretheorem[name=Hauptsatz,sibling=df,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz}
+%ohne Nummer
+\declaretheorem[name=Hauptsatz,numbered=no,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz*}
+%Satz und Definition 
+\declaretheorem[name=Satz und Definition,sibling=df,style=customsatz,
+refname={Satz und Definition,S\"atze und Definitionen}]{szdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositionen}]{proposition}
+%
+%theorem
+\declaretheorem[name=Theorem,sibling=df,style=customsatz,
+refname={Theorem,Theorems}]{satzengl}
+%ohne Nummer
+\declaretheorem[name=Theorem,numbered=no,style=customsatz,
+refname={Theorem,Theorems}]{satzengl*}
+%Satz und Definition 
+\declaretheorem[name=Theorem and Definition,sibling=df,style=customsatz,
+refname={Theorem and Definition,Theorems and Definitions}]{thmdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositions}]{prop}
+
+
+%%%%%%%%% Beweisumgebung
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont=\bfseries,
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\bewend]{custombew}
+%Beweis
+\declaretheorem[numbered=no,name=Beweis,style=custombew,
+refname={Beweis,Beweise}]{bew}
+%Proof
+\declaretheorem[numbered=no,name=Proof,style=custombew,
+refname={Proof,Proofs}]{Proof}
+
+%%%%%%%%%%%%%%%%%%%%%%% Zitieren von Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%allgemeine Vorgaben fuer das Zieren von Code. 
+
+\lstset{%
+numberbychapter=true, %
+breaklines=true,%
+prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
+breakatwhitespace=false,%
+basicstyle=\footnotesize\ttfamily,%
+commentstyle=\itshape,%
+fontadjust=true,%
+tabsize=2,%
+stringstyle=\itshape,%
+numbers=left,numberstyle=\footnotesize\ttfamily,%
+extendedchars=true,%
+inputencoding=utf8,%
+stepnumber=1,%
+frame=shadowbox,%
+rulesepcolor=\color{grey},%
+backgroundcolor=\color{white},%
+showspaces=false,%
+showstringspaces=false%
+aboveskip={1.5\baselineskip},%
+columns=fixed,%
+upquote=true,%
+}
+% Spezialvorgaben fuer das Zitieren von MATLAB Code.
+\newcommand{\citematlab}{\lstset{language=Matlab,%
+emph={if,elseif,else,end,for,while,function,return},%
+emphstyle=\bfseries\color{midnightblue},emph={[2]EigMitLambda,Zerol,CotKlTan
+,CotKlTanSpez,XsGrLambda,XsKlLambda,CotGrTan,ordnen,EvenSingTan,einord},%
+emphstyle={[2]\bfseries\color{olivedrab}},%
+emph={[3]zew,ew,l,L,lambda,ewsum,ewanz,phi,v1,v2},emphstyle={[3]\color{braun}}}}
+
+\crefname{lstlisting}{listing}{listings}
+\Crefname{lstlisting}{Listing}{Listings}
+\crefname{problem}{problem}{problems}
+\Crefname{problem}{Problem}{Problems}
+\crefname{notation}{notation}{notations}
+\Crefname{notation}{Notation}{Notations}
+\crefname{lm}{lemma}{lemmata}
+\Crefname{lm}{Lemma}{Lemmata}
+\crefname{assumptions}{assumptions}{assumptions}
+\Crefname{assumptions}{Assumptions}{Assumptions}
+\crefname{satzengl}{theorem}{theorems}
+\Crefname{satzengl}{Theorem}{Theorems}
+\crefname{satzengl*}{theorem}{theorems}
+\Crefname{satzengl*}{Theorem}{Theorems}
+\crefname{cor}{corollary}{corollaries}
+\Crefname{cor}{Corollary}{Corollaries}
+\crefname{df}{defintion}{defintions}
+\Crefname{df}{Defintion}{Defintions}
diff --git a/RR-2-patch-test-case/plots/subsequent_errors.tex b/RR-2-patch-test-case/plots/subsequent_errors.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2d98427949256aeedd7267e3b01644fce5673c46
--- /dev/null
+++ b/RR-2-patch-test-case/plots/subsequent_errors.tex
@@ -0,0 +1,47 @@
+\documentclass[a4paper]{scrartcl}%scrartcl
+\input{praeambels_and_definitions/artikelpraeambel.tex}
+\input{praeambels_and_definitions/artikel_theoreme_und_farbe.tex}
+%\input{praeambels_and_definitions/special_symbols.tex}
+%%%% MAKROS %%%%%%%%%%%%% restriction
+\input{./praeambels_and_definitions/L-Schema_Paper_makros.tex}
+% set graphicspath
+\graphicspath{ {./} }
+
+\usepackage{pgfplotstable}
+
+\begin{document}
+    % Generation of Profile_Error_new.png
+    \tikzsetnextfilename{Subsequent_errors_t0}
+    \tikzset{external/force remake}
+    \begin{tikzpicture}
+% %     \path[draw,dashed,thick] (3.13,0) -- (3.13,5.2);
+        \begin{semilogyaxis}[%
+            width=\textwidth,
+            title={ Subsequent errors for $t = 0$,  $ h \approx 0.02$, $\tau = 2\cdot 10^{-4}$ },
+        % 	    axis lines=left,
+        % 	legend style = {draw=none},
+            legend cell align = left,
+            xlabel= {iterations},
+            ylabel= {subsequent errors},
+            xmin= 0,
+            xmax= 53,
+%             ymin= 0,
+%             ymax= 0.0003,
+        	grid= both, %major or minor
+            axis line style={-Latex[round]},
+            legend style={
+%                 anchor=north east,
+%                 at={(1,1)},
+                font=\tiny
+            },
+            legend entries={$\bigl\|p_l^i - p_l^{i-1}\bigr\|_{L^2(\dom_1)}$,
+                            $\bigl\|p_l^i - p_l^{i-1}\bigr\|_{L^2(\dom_2)}$},
+            ] % end of axis options %col sep=comma,
+            \addplot table [x=iteration, y=wetting] {../output/subdomain1_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%
+            \addplot table [x=iteration, y=wetting] {../output/subdomain2_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%
+%             \addplot table [col sep=comma] {../output/subdomain1_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%
+% %             \addplot table [col sep=comma] {../output/subdomain2_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%        
+        \end{semilogyaxis}
+    \end{tikzpicture}  
+
+\end{document}
diff --git a/TP-TP-patch-test-case/TP-TP-2-patch-test.py b/TP-TP-patch-test-case/TP-TP-2-patch-test.py
new file mode 100755
index 0000000000000000000000000000000000000000..c61dff9c4b907843a6272aa7b9711271548d1675
--- /dev/null
+++ b/TP-TP-patch-test-case/TP-TP-2-patch-test.py
@@ -0,0 +1,559 @@
+#!/usr/bin/python3
+import dolfin as df
+import mshr
+import numpy as np
+import sympy as sym
+import typing as tp
+import domainPatch as dp
+import LDDsimulation as ldd
+import functools as ft
+#import ufl as ufl
+
+##### Domain and Interface ####
+# global simulation domain domain
+sub_domain0_vertices = [df.Point(0.0,0.0), #
+                        df.Point(1.0,0.0),#
+                        df.Point(1.0,1.0),#
+                        df.Point(0.0,1.0)]
+# interface between subdomain1 and subdomain2
+interface12_vertices = [df.Point(0.0, 0.5),
+                        df.Point(1.0, 0.5) ]
+# subdomain1.
+sub_domain1_vertices = [interface12_vertices[0],
+                        interface12_vertices[1],
+                        df.Point(1.0,1.0),
+                        df.Point(0.0,1.0) ]
+
+# vertex coordinates of the outer boundaries. If it can not be specified as a
+# polygon, use an entry per boundary polygon. This information is used for defining
+# the Dirichlet boundary conditions. If a domain is completely internal, the
+# dictionary entry should be 0: None
+subdomain1_outer_boundary_verts = {
+    0: [interface12_vertices[0], #
+        df.Point(0.0,1.0), #
+        df.Point(1.0,1.0), #
+        interface12_vertices[1]]
+}
+# subdomain2
+sub_domain2_vertices = [df.Point(0.0,0.0),
+                        df.Point(1.0,0.0),
+                        interface12_vertices[1],
+                        interface12_vertices[0] ]
+
+subdomain2_outer_boundary_verts = {
+    0: [interface12_vertices[1], #
+        df.Point(1.0,0.0), #
+        df.Point(0.0,0.0), #
+        interface12_vertices[0]]
+}
+# subdomain2_outer_boundary_verts = {
+#     0: [interface12_vertices[0], df.Point(0.0,0.0)],#
+#     1: [df.Point(0.0,0.0), df.Point(1.0,0.0)], #
+#     2: [df.Point(1.0,0.0), interface12_vertices[1]]
+# }
+# subdomain2_outer_boundary_verts = {
+#     0: None
+# }
+
+# list of subdomains given by the boundary polygon vertices.
+# Subdomains are given as a list of dolfin points forming
+# a closed polygon, such that mshr.Polygon(subdomain_def_points[i]) can be used
+# to create the subdomain. subdomain_def_points[0] contains the
+# vertices of the global simulation domain and subdomain_def_points[i] contains the
+# vertices of the subdomain i.
+subdomain_def_points = [sub_domain0_vertices,#
+                      sub_domain1_vertices,#
+                      sub_domain2_vertices]
+# in the below list, index 0 corresponds to the 12 interface which has index 1
+interface_def_points = [interface12_vertices]
+
+# if a subdomain has no outer boundary write None instead, i.e.
+# i: None
+# if i is the index of the inner subdomain.
+outer_boundary_def_points = {
+    # subdomain number
+    1 : subdomain1_outer_boundary_verts,
+    2 : subdomain2_outer_boundary_verts
+}
+
+# adjacent_subdomains[i] contains the indices of the subdomains sharing the
+# interface i (i.e. given by interface_def_points[i]).
+adjacent_subdomains = [[1,2]]
+isRichards = {
+    1: True, #
+    2: True
+    }
+
+Tmax = 1
+timestep_size = 0.005
+
+time_interval = [0, Tmax]
+
+viscosity = {#
+# subdom_num : viscosity
+    1 : {'wetting' :1}, #
+    2 : {'wetting' :1}
+}
+
+porosity = {#
+# subdom_num : porosity
+    1 : 1,#
+    2 : 1
+}
+
+L = {#
+# subdom_num : subdomain L for L-scheme
+    1 : {'wetting' :0.25},#
+    2 : {'wetting' :0.25}
+}
+
+lambda_param = {#
+# subdom_num : lambda parameter for the L-scheme
+    1 : {'wetting' :100},#
+    2 : {'wetting' :100}
+}
+
+## relative permeabilty functions on subdomain 1
+def rel_perm1(s):
+    # relative permeabilty on subdomain1
+    return s**2
+
+_rel_perm1 = ft.partial(rel_perm1)
+
+subdomain1_rel_perm = {
+    'wetting': _rel_perm1,#
+    'nonwetting': None
+}
+## relative permeabilty functions on subdomain 2
+def rel_perm2(s):
+    # relative permeabilty on subdomain2
+    return s**3
+_rel_perm2 = ft.partial(rel_perm2)
+
+subdomain2_rel_perm = {
+    'wetting': _rel_perm2,#
+    'nonwetting': None
+}
+
+## dictionary of relative permeabilties on all domains.
+relative_permeability = {#
+    1: subdomain1_rel_perm,
+    2: subdomain2_rel_perm
+}
+
+def saturation(pressure, subdomain_index):
+    # inverse capillary pressure-saturation-relationship
+    return df.conditional(pressure < 0, 1/((1 - pressure)**(1/(subdomain_index + 1))), 1)
+
+sat_pressure_relationship = {#
+    1: ft.partial(saturation, subdomain_index = 1),#
+    2: ft.partial(saturation, subdomain_index = 2)
+}
+
+source_expression = {
+    1: {'wetting': '4.0/pow(1 + x[0]*x[0] + x[1]*x[1], 2) - t/sqrt( pow(1 + t*t, 3)*(1 + x[0]*x[0] + x[1]*x[1]) )'},
+    2: {'wetting': '2.0*(1-x[1]*x[1])/pow(1 + x[1]*x[1], 2) - 2*t/(3*pow( pow(1 + t*t, 4)*(1 + x[1]*x[1]), 1/3))'}
+}
+
+initial_condition = {
+    1: {'wetting': '-(x[0]*x[0] + x[1]*x[1])'},#
+    2: {'wetting': '-x[1]*x[1]'}
+}
+
+exact_solution = {
+    1: {'wetting': '1.0 - (1.0 + t*t)*(1.0 + x[0]*x[0] + x[1]*x[1])'},#
+    2: {'wetting': '1.0 - (1.0 + t*t)*(1.0 + x[1]*x[1])'}
+}
+
+# similary to the outer boundary dictionary, if a patch has no outer boundary
+# None should be written instead of an expression. This is a bit of a brainfuck:
+# dirichletBC[ind] gives a dictionary of the outer boundaries of subdomain ind.
+# Since a domain patch can have several disjoint outer boundary parts, the expressions
+# need to get an enumaration index which starts at 0. So dirichletBC[ind][j] is
+# the dictionary of outer dirichlet conditions of subdomain ind and boundary part j.
+# finally, dirichletBC[ind][j]['wetting'] and dirichletBC[ind][j]['nonwetting'] return
+# the actual expression needed for the dirichlet condition for both phases if present.
+dirichletBC = {
+#subdomain index: {outer boudary part index: {phase: expression}}
+    1: { 0: {'wetting': '1.0 - (1.0 + t*t)*(1.0 + x[0]*x[0] + x[1]*x[1])'}},
+    2: { 0: {'wetting': '1.0 - (1.0 + t*t)*(1.0 + x[1]*x[1])'}}
+}
+
+# def saturation(pressure, subdomain_index):
+#     # inverse capillary pressure-saturation-relationship
+#     return df.conditional(pressure < 0, 1/((1 - pressure)**(1/(subdomain_index + 1))), 1)
+#
+# sa
+
+write_to_file = {
+    'meshes_and_markers': True,
+    'L_iterations': True
+}
+
+mesh_resolution = 30
+
+# initialise LDD simulation class
+simulation = ldd.LDDsimulation(tol = 1E-12)
+simulation.set_parameters(output_dir = "./output/",#
+    subdomain_def_points = subdomain_def_points,#
+    isRichards = isRichards,#
+    interface_def_points = interface_def_points,#
+    outer_boundary_def_points = outer_boundary_def_points,#
+    adjacent_subdomains = adjacent_subdomains,#
+    mesh_resolution = mesh_resolution,#
+    viscosity = viscosity,#
+    porosity = porosity,#
+    L = L,#
+    lambda_param = lambda_param,#
+    relative_permeability = relative_permeability,#
+    saturation = sat_pressure_relationship,#
+    time_interval = time_interval,#
+    timestep_size = timestep_size,#
+    sources = source_expression,#
+    initial_conditions = initial_condition,#
+    dirichletBC_Expressions = dirichletBC,#
+    exact_solution_case = True,#
+    write2file = write_to_file,#
+    )
+
+simulation.initialise()
+# simulation._init_meshes_and_markers(subdomain_def_points, mesh_resolution=2)
+# subdomain marker functions
+# output_dir = simulation.output_dir
+# domain_marker = simulation.domain_marker
+# mesh_subdomain = simulation.mesh_subdomain
+
+
+# mesh = mesh_subdomain[0]
+# interface_marker = df.MeshFunction('int', mesh, mesh.topology().dim()-1)
+# interface_marker.set_all(0)
+# interface = dp.Interface(vertices=interface_def_points[0], #
+#                                     tol=mesh.hmin()/100,#
+#                                     internal=True,#
+#                                     adjacent_subdomains = adjacent_subdomains[0])
+# print("interface vertices are: \n", interface.vertices)
+# interface.mark(interface_marker, 1)
+# simulation._init_interfaces(interface_def_points, adjacent_subdomains)
+
+# interface = simulation.interface
+# interface_marker = simulation.interface_marker
+#
+# subdoms = simulation.subdomain
+
+# df.File('./subdomain1_interface_marker.pvd') << simulation.subdomain[1].interface_marker
+# df.File('./subdomain2_interface_marker.pvd') << simulation.subdomain[2].interface_marker
+# df.File('./test_subdomain1_boundary_marker.pvd') << boundary_marker1
+# df.File('./test_subdomain2_boundary_marker.pvd') << boundary_marker2
+analyse_timesteps = [0, 100*timestep_size, 1, 2, 3]
+simulation.run(analyse_timesteps)
+# simulation.LDDsolver(time = 0, debug = True, analyse_timestep = True)
+# df.info(parameters, True)
+
+# for iterations in range(1):
+#     #
+#
+#     a1 = (L1*u1*v1)*dx1 + (df.inner(relative_permeability(saturation(p1_i, 1), 1)*df.grad(u1), df.grad(v1)))*dx_1 + (timestep*lambda1*u1*v1)*ds1(1) #timestep*
+#     rhs1 = (L1*p1_i*v1)*dx1 - ((saturation(p1_i, 1) - saturation(p1_0, 1))*v1)*dx1 + (timestep*(source1 - g1_i)*v1)*ds1(1)
+#     rhssplit1 = (L1*p1_i*v1)*dx1 - ((saturation(p1_i, 1) - saturation(p1_0, 1))*v1)*dx1
+#     extratrem = (timestep*(source1 - g1_i)*v1)*ds1(1)
+#     splitrhs = df.assemble(rhssplit1)
+#     print("splitrhs: \n", splitrhs.get_local())
+#     extrat_assembled = df.assemble(extratrem)
+#     print("extratrem: \n", extrat_assembled.get_local())
+#     added = splitrhs + extrat_assembled
+#     print("both added together:\n", added.get_local())
+#
+#     A1 = df.assemble(a1)
+#     dsform = (timestep*lambda1*u1*v1)*ds1(1)
+#     dsform_vec = df.assemble(dsform)
+#     b1 = df.assemble(rhs1)
+#     #p_gamma1.apply(A1,b1)
+#     # outerBC1.apply(A1,b1)
+#     u  = df.Function(V1)
+#     U1 = u.vector()
+#     df.solve(A1,U1,b1)
+#     # print("Form:\n", A1.array())
+#     print("RHS:\n", b1.get_local())
+#     #print("ds term:\n", dsform_vec.array())
+#     # print('solution:\n', U1.get_local())
+#     p1_i.vector()[:] = U1
+#     interface[0].read_pressure_dofs(from_function = p1_i, #
+#                             interface_dofs = dofs_on_interface1,#
+#                             dof_to_vert_map = dom1_d2v,#
+#                             local_to_parent_vertex_map = dom1_parent_vertex_indices,#
+#                             phase = 'wetting',#
+#                             subdomain_ind = 1)
+# #
+# # Save mesh to file
+# df.File('./test_domain_layered_soil.xml.gz') << mesh_subdomain[0]
+# df.File('./test_domain_mesh.pvd') << mesh_subdomain[0]
+# df.File('./test_global_interface_marker.pvd') << interface_marker
+# df.File('./test_subdomain1.xml.gz') << mesh_subdomain[1]
+# df.File('./test_subdomain2.xml.gz') << mesh_subdomain[2]
+# df.File('./test_domain_marker.pvd') << domain_marker
+# df.File('./test_domain_layered_soil_solution.pvd') << u
+# df.File('./test_subdomain1_interface_marker.pvd') << interface_marker1
+# df.File('./test_subdomain2_interface_marker.pvd') << interface_marker2
+# df.File('./test_subdomain1_boundary_marker.pvd') << boundary_marker1
+# df.File('./test_subdomain2_boundary_marker.pvd') << boundary_marker2
+
+# boundary_marker1 = simulation.subdomain[1].outer_boundary_marker
+# boundary_marker2 = simulation.subdomain[2].outer_boundary_marker
+# dx_1 = simulation.subdomain[1].dx
+# dx_2 = simulation.subdomain[2].dx
+# ds_1 = simulation.subdomain[1].ds
+# ds_2 = simulation.subdomain[2].ds
+#
+# interface_marker1 = simulation.subdomain[1].interface_marker#df.MeshFunction('int', mesh_subdomain[1], mesh_subdomain[1].topology().dim()-1)
+# interface_marker2 = simulation.subdomain[2].interface_marker#df.MeshFunction('int', mesh_subdomain[2], mesh_subdomain[2].topology().dim()-1)
+# # interface_marker1.set_all(0)
+# # interface_marker2.set_all(0)
+# # print(dir(interface_marker1))
+#
+# interface[0].mark(interface_marker1, 1)
+# interface[0].mark(interface_marker2, 1)
+# # interface_marker1 = simulation.subdomain[1].boundary_marker
+#
+# # domain measures
+#
+# # dx1 = simulation.subdomain[1].dx
+# dx1 = df.Measure('dx', domain = mesh_subdomain[1])
+# dx2 = df.Measure('dx', domain = mesh_subdomain[2])
+#
+# # boundary measures
+# ds1 = df.Measure('ds', domain = mesh_subdomain[1], subdomain_data = interface_marker1)
+# ds2 = df.Measure('ds', domain = mesh_subdomain[2], subdomain_data = interface_marker2)
+#
+# V1 = df.FunctionSpace(mesh_subdomain[1], 'P', 1)
+# p1_exact = df.Expression('1.0 - (1.0 + t*t)*(1.0 + x[0]*x[0] + x[1]*x[1])', domain = mesh_subdomain[1], degree = 2, t = 0)
+#
+# coordinates = mesh_subdomain[0].coordinates()
+# print("global mesh coordinates of domain: \n", coordinates)
+# coordinates1 = mesh_subdomain[1].coordinates()
+#
+# coordinates2 = mesh_subdomain[2].coordinates()
+# submesh1_data = mesh_subdomain[1].data()
+# dom1_parent_vertex_indices = submesh1_data.array('parent_vertex_indices',0)
+# # print("map of dom1 vertices to parent vertices on global domain:\n", dom1_parent_vertex_indices)
+# #
+# # coordinates2 = mesh_subdomain[2].coordinates()
+# # print("\nvertices of subdomain2: \n", coordinates2)
+# submesh2_data = mesh_subdomain[2].data()
+# dom2_parent_vertex_indices = submesh2_data.array('parent_vertex_indices',0)
+# # print("'parent_vertex_indices',1 \n")
+# #
+# #
+# # print("on domain: \n")
+# # interface_coordinates = interface[0].coordinates(interface_marker, 1, print_coordinates = True)
+# # interface_coordinates = interface[0]._vertex_indices(interface_marker, 1, print_vertex_indices = True)
+# # print("\non subdomain2: \n")
+# # dom2_interface_coordinates = interface[0].coordinates(interface_marker2, 1, print_coordinates = True)
+# dom2_interface_def_points = interface[0]._vertex_indices(interface_marker2, 1, print_vertex_indices = True)
+#
+#
+#
+# dofs_on_interface1 = interface[0].dofs_on_interface(V1, interface_marker1, 1)
+# print("Dofs on Interface dom1", dofs_on_interface1)
+#
+# V2 = df.FunctionSpace(mesh_subdomain[2], 'P', 1)
+# dofs_on_interface2 = interface[0].dofs_on_interface(V2, interface_marker2, 1)
+# # print("Dofs on Interface dom1", dofs_on_interface2)
+#
+# # markermesh = interface_marker2.mesh()
+# # functionSpaceMesh = V2.mesh()
+# # print("Domain 2 mesh extracted from markerfunction:\n", markermesh.coordinates())
+# # print("Domain 2 mesh extracted from Function Space V2:\n", functionSpaceMesh.coordinates())
+#
+# dom1_d2v = df.dof_to_vertex_map(V1)
+# dom1_v2d = df.vertex_to_dof_map(V1)
+# # print("dof to vertex map for V1:\n", dom1_d2v)
+# # print("vertex to dof map for V1:\n", dom1_v2d)
+# dom2_d2v = df.dof_to_vertex_map(V2)
+# dom2_v2d = df.vertex_to_dof_map(V2)
+# # print("dof to vertex map for V2:\n", dom2_d2v)
+# # print("vertex to dof map for V2:\n", dom2_v2d)
+#
+# testf1 = df.Constant(41)
+# f1test = df.interpolate(testf1, V1)
+# testf2 = df.Constant(42)
+# f2test = df.interpolate(testf2, V2)
+#
+# # f1vec = f1test.compute_vertex_values()
+# # for i in range(len(f1vec)):
+# #     f1vec[i] = i
+#
+# # f1test.vector()[:] = f1vec
+# # f1nodal = f1test.vector().get_local()
+# # for i in range(len(f1nodal)):
+# #     f1nodal[i] = i
+#
+# # print("nodal values of f1nodal\n", f1nodal)
+#
+# #
+# # print('dofs on interface \n', f1vec[dofs_on_interface])
+# # f1test.vector()[:] = f1vec
+# # print("f1test.vector()[:]\n", f1test.vector()[:])
+# # print("f1test.vector()[dofs_on_interface]\n", f1test.vector()[dofs_on_interface])
+#
+# # print("constant function on dom1\n", f1vec)
+# #
+# # for i in dofs_on_interface1:
+# #     print("local dof ind %i, parent = %i", i,dom1_parent_vertex_indices[dom1_d2v[i]])
+# #     # f1test.vector() is enumerated by dof not by vertex
+# #     f1test.vector()[i] = i
+# # # this enumerates according to the dof numbering
+# # print("testfunction f1test with set interface values\n", f1test.vector()[:])
+# # print("testfunction f1test with get_local\n", f1test.vector().get_local())
+# # f1test.vector()[dom1_v2d[dom1_d2v[dofs_on_interface]]] = f1vec[dofs_on_interface]
+# # .vector()[:] and .vector().get_local() order values according to the vertex numbering
+# # print("testfunction f1test with compute_vertex_values\n", f1test.compute_vertex_values())
+# # print("testfunction f1test with compute_vertex_values mit d2vmap\n", f1test.compute_vertex_values()[dom1_d2v[:]])
+# # i=0
+# # for x in coordinates1:
+# #      print(f"vertex {i}: f1test[{dom1_v2d[i]}] = {f1test.vector()[dom1_v2d[i]]}\tu({x}) = {f1test(x)}")
+# #      i += 1
+# # print("\non subdomain1: \n")
+# print("vertices of subdomain1: \n", coordinates1)
+# # dom1_interface_coordinates = interface[0].coordinates(interface_marker1, 1, print_coordinates = True)
+# dom1_interface_def_points = interface[0]._vertex_indices(interface_marker1, 1, print_vertex_indices = True)
+#
+# interface[0].read_pressure_dofs(from_function = f1test, #
+#                         interface_dofs = dofs_on_interface1,#
+#                         dof_to_vert_map = dom1_d2v,#
+#                         local_to_parent_vertex_map = dom1_parent_vertex_indices,#
+#                         phase = 'wetting',
+#                         subdomain_ind = 1)
+#
+# interface[0].write_pressure_dofs(to_function = f2test, #
+#                         interface_dofs = dofs_on_interface2,#
+#                         dof_to_vert_map = dom2_d2v,#
+#                         local_to_parent_vertex_map = dom2_parent_vertex_indices,#
+#                         phase = 'wetting',
+#                         subdomain_ind = 2)
+#
+# i=0
+# for x in coordinates2:
+#      print(f"vertex {i}: f2test[{dom2_v2d[i]}] = {f2test.vector()[dom2_v2d[i]]}\tu({x}) = {f2test(x)}")
+#      i += 1
+# print("\non subdomain2: \n")
+# print("vertices of subdomain2: \n", coordinates2)
+#
+# # dom2_interface_coordinates = interface[0].coordinates(interface_marker2, 1, print_coordinates = True)
+# dom2_interface_def_points = interface[0]._vertex_indices(interface_marker2, 1, print_vertex_indices = True)
+# print("Parent indices", dom2_parent_vertex_indices)
+#
+#
+# u1 = df.TrialFunction(V1)
+# v1 = df.TestFunction(V1)
+#
+# u2 = df.TrialFunction(V2)
+# v2 = df.TestFunction(V2)
+#
+# def relative_permeability(s, subdomain_index):
+#     if subdomain_index == 1:
+#         # relative permeabilty on subdomain1
+#         return s**2
+#     else:
+#         # relative permeabilty on subdomain2
+#         return s**3
+#
+# def saturation(pressure, subdomain_index):
+#     # inverse capillary pressure-saturation-relationship
+#     return df.conditional(pressure < 0, 1/((1 - pressure)**(1/(subdomain_index + 1))), 1)
+#
+#
+# # exact solution
+# # cell = df.Cell("triangle", 2)
+# # x1 = df.SpatialCoordinate(mesh_subdomain[1])
+# # x2 = df.SpatialCoordinate(mesh_subdomain[2])
+#
+# p2_exact = df.Expression('1.0 - (1.0 + t*t)*(1.0 + x[1]*x[1])', domain = mesh_subdomain[2], degree = 2, t = 0)
+# p1_e = df.interpolate(p1_exact, V1)
+# p2_e = df.interpolate(p2_exact, V2)
+# #
+# # initial conditions
+# p1_initial = df.Expression('-(x[0]*x[0] + x[1]*x[1])', domain = mesh_subdomain[1], degree = 2)
+# p2_initial = df.Expression('-x[1]*x[1]', domain = mesh_subdomain[2], degree = 2)
+# p1_0 = df.interpolate(p1_initial, V1)
+# p2_0 = df.interpolate(p2_initial, V2)
+#
+# # Initial boundary value for the pressure on interface
+# p_gamma1 = df.DirichletBC(V1, p1_exact, interface_marker1, 1)
+# p_gamma2 = df.DirichletBC(V2, p2_exact, interface_marker2, 1)
+#
+# outerBC1 = df.DirichletBC(V1, p1_exact, boundary_marker1, 1)
+# outerBC2 = df.DirichletBC(V2, p2_exact, boundary_marker2, 1)
+#
+#
+# ### source terms
+# # source1 = df.Expression('4.0/pow(1 + x[0]*x[0] + x[1]*x[1], 2) - t/sqrt( pow(1 + t*t, 3)*(1 + x[0]*x[0] + x[1]*x[1]) )', domain = mesh_subdomain[1], degree = 2, t = 0)
+# # source2 = df.Expression('2.0*(1-x[1]*x[1])/pow(1 + x[1]*x[1], 2) - 2*t/(3*pow( pow(1 + t*t, 4)*(1 + x[1]*x[1]), 1/3))', domain = mesh_subdomain[2], degree = 2, t = 0)
+# source1 = df.Expression(source_expression[1]['wetting'], domain = mesh_subdomain[1], degree = 2, t = 0)
+# source2 = df.Expression('2.0*(1-x[1]*x[1])/pow(1 + x[1]*x[1], 2) - 2*t/(3*pow( pow(1 + t*t, 4)*(1 + x[1]*x[1]), 1/3))', domain = mesh_subdomain[2], degree = 2, t = 0)
+#
+# source1h = df.interpolate(source1, V1)
+# source2h = df.interpolate(source2, V2)
+#
+# L1 = 0.25
+# L2 = L1
+# timestep = 0.1
+# lambda1 = 4
+# lambda2 = lambda1
+# # initial iteartion
+# p1_i = p1_0
+# p2_i = p2_0
+# # initial g_i
+# n1 = df.FacetNormal(mesh_subdomain[1])
+# flux = -df.grad(p1_0)
+# gl0 = (df.dot(flux, n1) - lambda1*p1_0)*v1*ds1(1)
+# print('gl0 term assembliert', df.assemble(gl0).get_local())
+# g1_i = -lambda1*p1_i
+# g2_i = -lambda1*p2_i
+
+# for iterations in range(1):
+#     #
+#
+#     a1 = (L1*u1*v1)*dx1 + (df.inner(relative_permeability(saturation(p1_i, 1), 1)*df.grad(u1), df.grad(v1)))*dx_1 + (timestep*lambda1*u1*v1)*ds1(1) #timestep*
+#     rhs1 = (L1*p1_i*v1)*dx1 - ((saturation(p1_i, 1) - saturation(p1_0, 1))*v1)*dx1 + (timestep*(source1 - g1_i)*v1)*ds1(1)
+#     rhssplit1 = (L1*p1_i*v1)*dx1 - ((saturation(p1_i, 1) - saturation(p1_0, 1))*v1)*dx1
+#     extratrem = (timestep*(source1 - g1_i)*v1)*ds1(1)
+#     splitrhs = df.assemble(rhssplit1)
+#     print("splitrhs: \n", splitrhs.get_local())
+#     extrat_assembled = df.assemble(extratrem)
+#     print("extratrem: \n", extrat_assembled.get_local())
+#     added = splitrhs + extrat_assembled
+#     print("both added together:\n", added.get_local())
+#
+#     A1 = df.assemble(a1)
+#     dsform = (timestep*lambda1*u1*v1)*ds1(1)
+#     dsform_vec = df.assemble(dsform)
+#     b1 = df.assemble(rhs1)
+#     #p_gamma1.apply(A1,b1)
+#     # outerBC1.apply(A1,b1)
+#     u  = df.Function(V1)
+#     U1 = u.vector()
+#     df.solve(A1,U1,b1)
+#     # print("Form:\n", A1.array())
+#     print("RHS:\n", b1.get_local())
+#     #print("ds term:\n", dsform_vec.array())
+#     # print('solution:\n', U1.get_local())
+#     p1_i.vector()[:] = U1
+#     interface[0].read_pressure_dofs(from_function = p1_i, #
+#                             interface_dofs = dofs_on_interface1,#
+#                             dof_to_vert_map = dom1_d2v,#
+#                             local_to_parent_vertex_map = dom1_parent_vertex_indices,#
+#                             phase = 'wetting',#
+#                             subdomain_ind = 1)
+# #
+# # Save mesh to file
+# df.File('./test_domain_layered_soil.xml.gz') << mesh_subdomain[0]
+# df.File('./test_domain_mesh.pvd') << mesh_subdomain[0]
+# df.File('./test_global_interface_marker.pvd') << interface_marker
+# df.File('./test_subdomain1.xml.gz') << mesh_subdomain[1]
+# df.File('./test_subdomain2.xml.gz') << mesh_subdomain[2]
+# df.File('./test_domain_marker.pvd') << domain_marker
+# df.File('./test_domain_layered_soil_solution.pvd') << u
+# df.File('./test_subdomain1_interface_marker.pvd') << interface_marker1
+# df.File('./test_subdomain2_interface_marker.pvd') << interface_marker2
+# df.File('./test_subdomain1_boundary_marker.pvd') << boundary_marker1
+# df.File('./test_subdomain2_boundary_marker.pvd') << boundary_marker2
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/.dropbox.attr b/TP-TP-patch-test-case/plots/praeambels_and_definitions/.dropbox.attr
new file mode 100755
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/.dropbox.attr
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/Diplomarbeitsskriptpraeambel/theoreme_und_farbe.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/Diplomarbeitsskriptpraeambel/theoreme_und_farbe.tex
new file mode 100644
index 0000000000000000000000000000000000000000..91d7dc632ef6193d8b208ccb8d37ec11eda5d2a5
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/Diplomarbeitsskriptpraeambel/theoreme_und_farbe.tex
@@ -0,0 +1,321 @@
+%FARBDEFINTIONEN
+%\definecolor{dunkelblau}{rgb}{0.21,0.37,0.87}definert neue Farben. Mit rgb-Werten in % mit RGB kann man die %RGB werte driket angeben
+%BLAUTOENE
+\definecolor{mediumblue}{RGB}{0,0,205}
+\definecolor{navyblue}{RGB}{0,0,128}
+\definecolor{midnightblue}{RGB}{25,25,112}
+\definecolor{royalblue4}{RGB}{39,64,139}
+\definecolor{blue3}{RGB}{0,0,205}
+
+%ROT- UND BRAUNTOENE
+\definecolor{brown}{RGB}{165,42,42} %Bordaux %heller
+\definecolor{brown3}{RGB}{205,51,51} %eher rot
+\definecolor{brown4}{RGB}{139,35,35} %ART Bordeaux %etwas dunkler
+\definecolor{red3}{RGB}{205,0,0} %bordeauxrot %noch dunkler
+\definecolor{tomato}{RGB}{205,79,57} % noch dunkler aehnlich zu red3
+\definecolor{firebrick3}{RGB}{205,38,38}
+\definecolor{firebrick4}{RGB}{139,26,26}
+
+%GELBTOENE
+\definecolor{gold}{RGB}{255,215,0}
+\definecolor{gold3}{RGB}{238,201,0} %dunkler
+
+%ORANGETOENE
+\definecolor{orange}{rgb}{.9,.6,.1}
+\definecolor{dunkelorange}{rgb}{.9,.5,.0}
+
+%Gruen
+\definecolor{darkgreen}{RGB}{0,100,0}
+\definecolor{green3}{RGB}{0,205,0} %dunkler als das Standartgruen
+\definecolor{olivedrab}{RGB}{107,142,35}
+\definecolor{forestgreen}{RGB}{34,139,34}
+\definecolor{darkolivegreen}{RGB}{85,107,47}
+
+%Grautoene
+\definecolor{grey}{rgb}{0.5,0.5,0.5}
+\definecolor{dimgrey}{RGB}{105,105,105}
+\definecolor{dimgrey2}{RGB}{153,153,153}
+\definecolor{dimgrey3}{RGB}{181,181,181}
+\definecolor{lightgrey}{RGB}{211,211,211}
+\definecolor{lightergrey}{RGB}{201,201,201}
+\definecolor{verylightgrey}{RGB}{222,222,222}
+
+
+%BRAUNTOENE
+\definecolor{braun}{rgb}{.6,.5,.1}
+\definecolor{braun2}{rgb}{.6,.4,.1}
+
+%DEFINITIONEN DER SATZ- UND THEOREMUMGEBUNGEN
+
+%\newcommand{\<Befehlsname>}{<Definition, was hinterher im Dokument erscheinen soll>}
+%"'Befehlsname"` muss %ein wirklich neuer Befehl sein
+%\newcommand{\<Befehlsname>}[Anzahl der Argumente des neuen Befehls (1...9)]{#i,#(i+1)} i
+%= 1...9 %Beim %Befehlsaufruf erscheint das, was man in die Argumentklammern schreibt an
+%der jeweiligen Stelle #i
+%Analog fuer folgenden Befehl: "<\Befehl>" muss schon existieren
+%\renewcommand{\<Befehl>}{<Definition>}
+%\renewcommand{\<Befehl>}[<ArgAnz>]{<Definition>}
+\newcommand{\bewend}{\rule{1ex}{1ex}}
+%Beweis ende: ausgefuelltes Viereck fuer das Ende eines Beweises.
+\newcommand{\latop}[2]{#1 \atop #2}	%gibt dem TeX-Befehl \atop eine LaTeX ueblichere Form
+\newcommand{\lchoose}[2]{#1 \choose #2} 
+%gibt dem TeX-Befehl \choose eine LaTeX ueblichere Form 
+
+%%%%%%%%%%%%% ZUNAECHST DIE EIGENEN STYLES %%%%%%%%%%%%%
+%erst mal ein Bugfix.
+%entweder
+% \makeatletter
+% \def\thmt@refnamewithcomma #1#2#3,#4,#5\@nil{%
+% \@xa\def\csname\thmt@envname #1utorefname\endcsname{#3}%
+% \ifcsname #2refname\endcsname
+% \csname #2refname\expandafter\endcsname\expandafter{\thmt@envname}{#3}{#4}%
+% \fi
+% }
+% \makeatother
+%oder Zur zwischenzeitlichen Abhilfe sollte es helfen, Z.48 in thm-autoref wie folgt
+%abzuaendern:  \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+%Ich habe das bereits gemacht.
+
+%Eingener Nummerierungsstyl am Rand und grau
+%Damit der Stil margincolored definiert ist muss 
+%  \definecolor{dimgrey}{RGB}{105,105,105}
+%  \definecolor{dimgrey2}{RGB}{153,153,153}
+%  \def\thmt@headstyle@margincolored{%
+%    \makebox[0pt][r]{\color{dimgrey2}\NUMBER\ }\NAME\NOTE
+%  }
+ 
+% 
+% zu thm-ntheorem.sty und thm-amsthm.sty ergänzt werden.
+%%%%% Definitionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{olivedrab}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{olivedrab}$\pmb{\triangleleft}$]{customdefintion}
+%Defintion
+\declaretheorem[name=Definition,numberwithin=section,style=customdefintion,
+refname={Definition,Defintionen}]{df}
+%Bezeichnungen
+\declaretheorem[name=Bezeichnungen,sibling=df,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez}
+\declaretheorem[name=Bezeichnung,sibling=df,style=customdefintion,
+refname={Bezeichnung,Bezeichnungen}]{bz}
+%Bezeichnungen ohne Nummer:
+\declaretheorem[name=Bezeichnungen,numbered=no,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez*}
+
+%Festlegung mit und ohne nummer
+\declaretheorem[name=Festlegung,sibling=df,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{festlg}
+\declaretheorem[name=Festlegung,numbered=no,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{nnfestlg}
+
+%%%%% Beispiel- und Bemerkungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber oder margin
+headfont={\color{midnightblue}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{midnightblue}$\pmb{\triangleleft}$]{custombspbem}
+%Beispiel 
+\declaretheorem[numberlike=df,name=Beispiel,style=custombspbem,
+refname={Beispiel,Beispiele}]{bsp}
+%Bemerkung
+\declaretheorem[name=Bemerkung,sibling=df,style=custombspbem,
+refname={Bemerkung,Bemerkungen}]{bem}
+
+%%%%% Lemma-,Korollarstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{tomato}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{tomato}$\pmb{\lrcorner}$]{customlemma}
+%Lemma 
+\declaretheorem[name=Lemma,sibling=df,style=customlemma,
+refname={Lemma,Lemmata}]{lm}
+%Korollar
+\declaretheorem[name=Korollar,sibling=df,style=customlemma,
+refname={Korollar,Korollare}]{kor}
+
+%%%%% Notizstyle 
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\lrcorner}$]{customnotiz}
+%Notiz
+\declaretheorem[name=Notiz,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{nz}
+%%Spezialnotiz fuer die D-Arbeit: Prinzip der Nullstellensuche
+\declaretheorem[name=Prinzip der Nullstellensuche,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{pdnss}
+\declaretheorem[name=Fragestellung,sibling=df,style=customnotiz,
+refname={Fragestellung,Fragestellungen}]{frage}
+\declaretheorem[name=Fragestellungen,sibling=df,style=customnotiz,
+refname={Fragestellungen,Fragestellungen}]{fragen}
+
+\declaretheorem[name=Erklärung,sibling=df,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung}
+\declaretheorem[name=Erklärung,numbered=no,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung*}
+
+
+%%%%%%%%%%%%Berechnungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\bewend}$]{customberechnung}
+%Nebenrechnung
+\declaretheorem[name=Nebenrechnung,sibling=df,style=customberechnung,
+refname={Nebenrechnung,Nebenrechnungen}]{nr}
+
+%%%%% Satz-, Hauptsatz-, Satz und Definition und Propositionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{firebrick4}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{firebrick4}$\lrcorner$]{customsatz}
+%Satz
+\declaretheorem[name=Satz,sibling=df,style=customsatz,
+refname={Satz,S\"atze}]{sz}
+%ohne Nummer
+\declaretheorem[name=Satz,numbered=no,style=customsatz,
+refname={Satz,S\"atze}]{sz*}
+%Hauptsatz 
+\declaretheorem[name=Hauptsatz,sibling=df,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz}
+%ohne Nummer
+\declaretheorem[name=Hauptsatz,numbered=no,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz*}
+%Satz und Definition 
+\declaretheorem[name=Satz und Definition,sibling=df,style=customsatz,
+refname={Satz und Definition,S\"atze und Definitionen}]{szdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositionen}]{proposition}
+
+%%%%%%%%% Beweisumgebung
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont=\bfseries,
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\bewend]{custombew}
+%Satz
+\declaretheorem[numbered=no,name=Beweis,style=custombew,
+refname={Beweis,Beweise}]{bew}
+
+%%%%%%%%%%%%%%%%%%%%%%% Zitieren von Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%allgemeine Vorgaben fuer das Zieren von Code. 
+
+\lstset{%
+numberbychapter=true, %
+breaklines=true,%
+prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
+breakatwhitespace=false,%
+basicstyle=\footnotesize\ttfamily,%
+commentstyle=\itshape,%
+fontadjust=true,%
+tabsize=2,%
+stringstyle=\itshape,%
+numbers=left,numberstyle=\footnotesize\ttfamily,%
+extendedchars=true,%
+inputencoding=utf8,%
+stepnumber=1,%
+frame=shadowbox,%
+rulesepcolor=\color{grey},%
+backgroundcolor=\color{white},%
+showspaces=false,%
+showstringspaces=false%
+aboveskip={1.5\baselineskip},%
+columns=fixed,%
+upquote=true,%
+}
+% Spezialvorgaben fuer das Zitieren von MATLAB Code.
+\newcommand{\citematlab}{\lstset{language=Matlab,%
+emph={if,elseif,else,end,for,while,function,return},%
+emphstyle=\bfseries\color{midnightblue},emph={[2]EigMitLambda,Zerol,CotKlTan
+,CotKlTanSpez,XsGrLambda,XsKlLambda,CotGrTan,ordnen,EvenSingTan,einord},%
+emphstyle={[2]\bfseries\color{olivedrab}},%
+emph={[3]zew,ew,l,L,lambda,ewsum,ewanz,phi,v1,v2},emphstyle={[3]\color{braun}}}}
+
+\crefname{lstlisting}{Listing}{Listings}
+\Crefname{lstlisting}{Listing}{Listings}
+
+%INDEXERSTELLUNG
+
+%\makeindex %erstellt ein indexfile. soll man am schluss erst machen!
+%\makeglossary
+%\includeonly{1laag1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - HIER BEGINNT DAS DOKUMENT -
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\linespread{1.35}
+%setzt einen anderen Zeilenabstand fest. Dieser Befehl sollte vor
+%\begin{document} stehen, damit er fuer das ganze Dokument gilt.
+
+%%%%%%%%%%%%%%%%%%%% Ausgemusterter Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Dies sind Theoremdefintionen f\"ur das ntheorem packet.
+% {\theoremseparator{.}
+% \theoremheaderfont{\color{olivedrab}\bfseries\scshape}
+% \theoremstyle{plain}
+% \newtheorem{df}{Definition}[section] }
+% 
+% {\theoremseparator{.}
+% \theoremheaderfont{\color{olivedrab}\bfseries\scshape}
+% {\theoremheaderfont{\color{midnightblue}\bfseries\scshape}
+% \theorembodyfont{\rmfamily}
+% \theoremstyle{plain}
+% \newtheorem{bem}[df]{Bemerkung}
+% \newtheorem{bsp}[df]{Beispiel}}	}
+% 
+% {\theoremseparator{.}
+% \theoremstyle{plain}
+% {\theoremheaderfont{\color{firebrick4} \bfseries\scshape}
+% \newtheorem{sz}[df]{Satz}
+% \newtheorem{prop}[df]{Proposition}
+% \newtheorem{szdf}[df]{Satz und Definition}
+% \newtheorem{hsz}[df]{Hauptsatz}}
+
+%{\theoremheaderfont{\color{tomato} \bfseries\scshape}
+% \newtheorem{lm}[df]{Lemma}
+% \newtheorem{nz}[df]{Notiz}
+% \newtheorem{nr}[df]{Nebenrechnung}
+% \newtheorem{kor}[df]{Korollar}}
+% }
+% 
+% {\theoremseparator{.}
+% \theoremstyle{plain}
+% {\theoremheaderfont{\bfseries\scshape}
+% \theorembodyfont{\rmfamily}
+% \newtheorem*{bew}{Beweis}}
+% }
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/L-Schema_Paper_makros.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/L-Schema_Paper_makros.tex
new file mode 100644
index 0000000000000000000000000000000000000000..cdfeee4d2510ec024caa464947d883355d9e0879
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/L-Schema_Paper_makros.tex
@@ -0,0 +1,92 @@
+
+%%% THIS FILE CONTAINS MACROS FOR THE L-SCHEME-PAPER
+
+\newcommand{\restric}{\,\rule[-5pt]{0.4pt}{12pt}\,{}}
+\newcommand{\dom}{\Omega}
+\newcommand{\union}[2]{#1 \cup \, #2}
+%vector
+\newcommand{\vt}[1]{\boldsymbol{#1}}
+% smoothness of domain
+\newcommand{\smoothness}{{Lipschitz}}
+\newcommand{\addnullcolor}{black!60}
+% smoothness of interfac
+\newcommand{\interfacesmoothness}{{Lipschitz}}
+% Domain boundaries
+% outer Boundaries
+\newcommand{\oB}[1]{\partial\Omega^{#1}}
+%\newcommand{\OuterBoundary}{$\partial\dom\cap\partial\dom_2$}
+
+\newcommand{\kdiff}{k^{\text{diff}}}
+
+% makros for the L-scheme scheme
+\newcommand{\plni}[2][l]{p_{#1}^{n,#2}}
+%\newcommand{\gradplni}[2][l]{\vt{p_{#1}^{n,#2}}}
+\newcommand{\Splni}[1]{S_l(p_l^{n,#1})}
+\newcommand{\gradplni}[1]{\vt{\nabla p_l^{n,#1}}}
+\newcommand{\gradplniMinusG}[1]{\vt{\nabla \bigl( p_l^{n,#1} - z \bigr)}}
+\newcommand{\klni}[2][l]{k_#1\bigl(S_#1(p_#1^{n,#2})\bigr)}
+\newcommand{\kln}[1]{k_{#1}\bigl(S_{#1}(p_{#1}^{n})\bigr)}
+\newcommand{\klnnull}[1]{k_{#1}\left(S_{#1}\bigl(p_{#1}^{n-1}\bigr)\right)}
+\newcommand{\gli}[2][l]{g_{#1}^{#2}}
+% the same for the summed variables
+\newcommand{\pni}[1][i]{p^{n,#1}}
+\newcommand{\gradpni}[1][i]{\nabla p^{n,#1}}
+\newcommand{\gi}[1][i]{g^{#1}}
+\newcommand{\epli}[2][l]{e_{p,#1}^{#2}}
+\newcommand{\epliOnGamma}[2][l]{e_{p,#1|_\Gamma}^{#2}}
+\newcommand{\gradepli}[2][l]{\vt{\nabla e_{p,#1}^{#2}}}
+\newcommand{\egli}[2][l]{e_{g,#1}^{#2}}
+\newcommand{\flux}[2][l]{\vt{F_{#1}^{n,#2}}}
+% scalar product
+% normal math mode sized 
+\newcommand{\spl}{\bigl\langle}
+\newcommand{\spr}{\bigr\rangle}
+% text mode sized
+\newcommand{\tspl}{\langle}
+\newcommand{\tspr}{\rangle}
+% bigger sized
+\newcommand{\bspl}{\Bigl\langle}
+\newcommand{\bspr}{\Bigr\rangle}
+%norms 
+\newcommand{\nml}{\bigl\|}
+\newcommand{\nmr}{\bigr\|}
+\newcommand{\Nml}{\Bigl\|}
+\newcommand{\Nmr}{\Bigr\|}
+
+% spaces
+\newcommand{\fs}[1]{H_{\oB{#1}}^1}
+\newcommand{\Fs}{\mathcal{V}}
+\newcommand{\Tracespace}{H^{1/2}_{00}(\Gamma)}
+\newcommand{\tGamma}{{\tilde{\Gamma}}}
+\newcommand{\onGamma}[1]{{#1}_{|_\Gamma}}
+\newcommand{\RR}{\mathbb{R}}
+\newcommand{\RRd}{\mathbb{R}^d}
+\newcommand{\NN}{\mathbb{N}}
+\newcommand{\CC}{\mathbb{C}}
+\newcommand{\KK}{\mathbb{K}}
+\newcommand{\ZZ}{\mathbb{Z}}
+\newcommand{\QQ}{\mathbb{Q}}
+\newcommand{\Hr}{\mathscr{H}}
+\newcommand{\Lb}{\mathcal{L}}
+\newcommand{\D}{\mathcal{D}}
+\newcommand{\V}{\mathcal{V}}
+%\newcommand{\G}{\mathcal{G}}
+\newcommand{\E}{\mathcal{E}}
+\DeclareMathOperator{\Span}{Span}
+\DeclareMathOperator{\vol}{vol}
+\DeclareMathOperator{\re}{Re}
+\DeclareMathOperator{\im}{Im}
+\DeclareMathOperator{\cosinus}{cosinus}
+\DeclareMathOperator{\dv}{\nabla\cdot }
+\DeclareMathOperator{\supp}{supp}
+\DeclareMathOperator{\dist}{dist}
+\DeclareMathOperator{\length}{length}
+\DeclareMathOperator{\trace}{tr}
+%\DeclareMathOperator{\liminf}{lim inf}
+%\DeclareMathOperator{\deg}{deg}
+%\DeclareMathOperator{\max}{max}
+\providecommand{\abs}[1]{\lvert#1\rvert}
+\providecommand{\norm}[1]{\lVert#1\rVert}
+\newcommand{\tr}[1]{\trace_{#1}}
+
+\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/artikel_theoreme_und_farbe.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/artikel_theoreme_und_farbe.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4e7bcfde9a848756731ec73a8c98253e57adf9b6
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/artikel_theoreme_und_farbe.tex
@@ -0,0 +1,383 @@
+%FARBDEFINTIONEN
+%\definecolor{dunkelblau}{rgb}{0.21,0.37,0.87}definert neue Farben. Mit rgb-Werten in % mit RGB kann man die %RGB werte driket angeben
+
+%BLAUTOENE
+\definecolor{mediumblue}{RGB}{0,0,205}
+\definecolor{navyblue}{RGB}{0,0,128}
+\definecolor{midnightblue}{RGB}{25,25,112}
+\definecolor{royalblue4}{RGB}{39,64,139}
+\definecolor{blue3}{RGB}{0,0,205}
+\definecolor{steelblue3}{RGB}{79,148,205}
+\definecolor{steelblue4}{RGB}{54,100,139}
+
+%ROT- UND BRAUNTOENE
+\definecolor{brown}{RGB}{165,42,42} %Bordaux %heller
+\definecolor{brown3}{RGB}{205,51,51} %eher rot
+\definecolor{brown4}{RGB}{139,35,35} %ART Bordeaux %etwas dunkler
+\definecolor{red3}{RGB}{205,0,0} %bordeauxrot %noch dunkler
+\definecolor{tomato}{RGB}{205,79,57} % noch dunkler aehnlich zu red3
+\definecolor{firebrick3}{RGB}{205,38,38}
+\definecolor{firebrick4}{RGB}{139,26,26}
+
+%GELBTOENE
+\definecolor{gold}{RGB}{255,215,0}
+\definecolor{gold3}{RGB}{238,201,0} %dunkler
+\definecolor{darkgoldenrod1}{RGB}{255,185,15}
+\definecolor{goldenrod1}{RGB}{255,193,37}
+\definecolor{goldenrod}{RGB}{218,165,32}
+
+%ORANGETOENE
+\definecolor{orange}{rgb}{.9,.6,.1}
+\definecolor{dunkelorange}{rgb}{.9,.5,.0}
+\definecolor{orange2}{RGB}{238,154,0}
+\definecolor{orange3}{RGB}{205,133,0}
+
+%Gruen
+\definecolor{darkgreen}{RGB}{0,100,0}
+\definecolor{green3}{RGB}{0,205,0} %dunkler als das Standartgruen
+\definecolor{olivedrab}{RGB}{107,142,35}
+\definecolor{olivedrab2}{RGB}{179,238,58}
+\definecolor{olivedrab3}{RGB}{154,205,50}
+\definecolor{forestgreen}{RGB}{34,139,34}
+\definecolor{darkolivegreen}{RGB}{85,107,47}
+\definecolor{darkolivegreen4}{RGB}{110,139,61}
+\definecolor{khaki3}{RGB}{205,198,115}
+
+%Grautoene
+\definecolor{grey}{rgb}{0.5,0.5,0.5}
+\definecolor{dimgrey}{RGB}{105,105,105}
+\definecolor{dimgrey2}{RGB}{153,153,153}
+\definecolor{dimgrey3}{RGB}{181,181,181}
+\definecolor{lightgrey}{RGB}{211,211,211}
+\definecolor{lightergrey}{RGB}{201,201,201}
+\definecolor{verylightgrey}{RGB}{222,222,222}
+
+
+%BRAUNTOENE
+\definecolor{braun}{rgb}{.6,.5,.1}
+\definecolor{braun2}{rgb}{.6,.4,.1}
+\definecolor{tan4}{RGB}{149,90,43}
+
+%%SCHATTIERUNGEN VON WEISS 
+\definecolor{wheat3}{RGB}{205,186,150}
+\definecolor{wheat4}{RGB}{139,126,102}
+
+
+%DEFINITIONEN DER SATZ- UND THEOREMUMGEBUNGEN
+
+%\newcommand{\<Befehlsname>}{<Definition, was hinterher im Dokument erscheinen soll>}
+%"'Befehlsname"` muss %ein wirklich neuer Befehl sein
+%\newcommand{\<Befehlsname>}[Anzahl der Argumente des neuen Befehls (1...9)]{#i,#(i+1)} i
+%= 1...9 %Beim %Befehlsaufruf erscheint das, was man in die Argumentklammern schreibt an
+%der jeweiligen Stelle #i
+%Analog fuer folgenden Befehl: "<\Befehl>" muss schon existieren
+%\renewcommand{\<Befehl>}{<Definition>}
+%\renewcommand{\<Befehl>}[<ArgAnz>]{<Definition>}
+\newcommand{\bewend}{\rule{1ex}{1ex}}
+\renewcommand{\qedsymbol}{\rule{1ex}{1ex}}
+%Beweis ende: ausgefuelltes Viereck fuer das Ende eines Beweises.
+\newcommand{\latop}[2]{#1 \atop #2}	%gibt dem TeX-Befehl \atop eine LaTeX ueblichere Form
+\newcommand{\lchoose}[2]{#1 \choose #2} 
+%gibt dem TeX-Befehl \choose eine LaTeX ueblichere Form 
+
+%%%%%%%%%%%%% ZUNAECHST DIE EIGENEN STYLES %%%%%%%%%%%%%
+%erst mal ein Bugfix.
+%entweder
+% \makeatletter
+% \def\thmt@refnamewithcomma #1#2#3,#4,#5\@nil{%
+% \@xa\def\csname\thmt@envname #1utorefname\endcsname{#3}%
+% \ifcsname #2refname\endcsname
+% \csname #2refname\expandafter\endcsname\expandafter{\thmt@envname}{#3}{#4}%
+% \fi
+% }
+% \makeatother
+%oder Zur zwischenzeitlichen Abhilfe sollte es helfen, Z.48 in thm-autoref wie folgt
+%abzuaendern:  \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+%Dies ist in der TeXLive2014 bereits gefixt.
+
+%Eingener Nummerierungsstyl am Rand und grau
+%Damit der Stil margincolored definiert ist muss 
+\makeatletter
+  \def\thmt@headstyle@margincolored{%
+    \makebox[0pt][r]{\color{black!40}\NUMBER\ }\NAME\NOTE
+  }
+\makeatother
+% in thm-ntheorem.sty und thm-amsthm.sty ergaenzt werden. Dies ist mit diesem Code erledigt ohne 
+%die Originalpakete zu veraendern.
+
+% General Numbering Style
+%\def \customheadformat {margincolored}
+%%% FARBDEFINTIONEN fuer theoremstyles
+\newcommand{\definitionstylecolor}{black}
+\newcommand{\exampleandremarkstylecolor}{black}
+\newcommand{\lammacorollarystylecolor}{black}
+\newcommand{\notestylecolor}{black}
+\newcommand{\customtheoremstylecolor}{black}
+%\newcommand{margincolored}{margin}
+%%%%% Definitionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\definitionstylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\definitionstylecolor}$\pmb{\triangleleft}$]{customdefintion}
+%Defintion
+\declaretheorem[name=Definition,numberwithin=section,style=customdefintion,
+refname={Definition,Defintionen}]{df}
+%Bezeichnungen
+\declaretheorem[name=Bezeichnungen,sibling=df,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez}
+\declaretheorem[name=Bezeichnung,sibling=df,style=customdefintion,
+refname={Bezeichnung,Bezeichnungen}]{bz}
+%Bezeichnungen ohne Nummer:
+\declaretheorem[name=Bezeichnungen,numbered=no,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez*}
+%notations
+\declaretheorem[name=Notations,sibling=df,style=customdefintion,
+refname={Notations,Notations}]{notations}
+%notation
+\declaretheorem[name=Notation,sibling=df,style=customdefintion,
+refname={Notation,Notations}]{notation}
+%notations without number:
+\declaretheorem[name=Notations,numbered=no,style=customdefintion,
+refname={Notations,Notations}]{notations*}
+%Assumption
+\declaretheorem[name=Assumption,sibling=df,style=customdefintion,
+refname={assumption,assumptions}]{assumption}
+%Assumptions
+\declaretheorem[name=Assumptions,sibling=df,style=customdefintion,
+refname={assumptions,assumptions}]{assumptions}
+
+
+%Festlegung mit und ohne nummer
+\declaretheorem[name=Festlegung,sibling=df,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{festlg}
+\declaretheorem[name=Festlegung,numbered=no,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{nnfestlg}
+
+%%%%% Beispiel- und Bemerkungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber oder margin
+headfont={\color{\exampleandremarkstylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{\exampleandremarkstylecolor}$\pmb{\triangleleft}$]{custombspbem}
+%Beispiel 
+\declaretheorem[numberlike=df,name=Beispiel,style=custombspbem,
+refname={Beispiel,Beispiele}]{bsp}
+%Bemerkung
+\declaretheorem[name=Bemerkung,sibling=df,style=custombspbem,
+refname={Bemerkung,Bemerkungen}]{bem}
+%Example
+\declaretheorem[numberlike=df,name=Example,style=custombspbem,
+refname={Example,Examples}]{example}
+%remark
+\declaretheorem[name=Remark,sibling=df,style=custombspbem,
+refname={Remark,Remarks}]{remark}
+% observation
+\declaretheorem[name=Observation,sibling=df,style=custombspbem,
+refname={Observation,Observations}]{observation}
+%%%%% Lemma-,Korollarstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\lammacorollarystylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\lammacorollarystylecolor}$\pmb{\lrcorner}$]{customlemma}
+%Lemma 
+\declaretheorem[name=Lemma,sibling=df,style=customlemma,
+refname={Lemma,Lemmata}]{lemma}
+%Korollar
+\declaretheorem[name=Korollar,sibling=df,style=customlemma,
+refname={Korollar,Korollare}]{kor}
+%Corollay
+\declaretheorem[name=Corollary,sibling=df,style=customlemma,
+refname={Corollary,Corollaries}]{corollary}
+%Conclusion
+\declaretheorem[name=Conclusion,sibling=df,style=customlemma,
+refname={Conclusion,Conclusions}]{conclusion}
+
+
+
+%%%%% Notizstyle 
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\notestylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\notestylecolor}$\pmb{\lrcorner}$]{customnotiz}
+%Notiz
+\declaretheorem[name=Notiz,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{notiz}
+%%Spezialnotiz fuer die D-Arbeit: Prinzip der Nullstellensuche
+\declaretheorem[name=Prinzip der Nullstellensuche,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{pdnss}
+\declaretheorem[name=Fragestellung,sibling=df,style=customnotiz,
+refname={Fragestellung,Fragestellungen}]{frage}
+\declaretheorem[name=Fragestellungen,sibling=df,style=customnotiz,
+refname={Fragestellungen,Fragestellungen}]{fragen}
+%Idea environment
+\declaretheorem[name=Idea,sibling=df,style=customnotiz,
+refname={idea,ideas}]{idea}
+%Main Idea environment
+\declaretheorem[name=Main idea,sibling=df,style=customnotiz,
+refname={main idea,main ideas}]{mainidea}
+%General Idea environment
+\declaretheorem[name=General idea,sibling=df,style=customnotiz,
+refname={general idea,general ideas}]{generalidea}
+%Questions and Tasks
+\declaretheorem[name=Questions and Tasks,sibling=df,style=customnotiz,
+refname={questions and tasks,question and tasks}]{QuestTasks}
+%Problem
+\declaretheorem[name=Problem,sibling=df,style=customnotiz,
+refname={problem,problems}]{problem}
+\declaretheorem[name=Problem,numbered=no,style=customnotiz,
+refname={problem,problems}]{problem*}
+% Note 
+\declaretheorem[name=Note,sibling=df,style=customnotiz,
+refname={Note,Notes}]{note}
+
+
+
+\declaretheorem[name=Erklärung,sibling=df,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung}
+\declaretheorem[name=Erklärung,numbered=no,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung*}
+
+
+%%%%%%%%%%%%Berechnungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\bewend}$]{customberechnung}
+%Nebenrechnung
+\declaretheorem[name=Nebenrechnung,sibling=df,style=customberechnung,
+refname={Nebenrechnung,Nebenrechnungen}]{nr}
+
+%%%%% Satz-, Hauptsatz-, Satz und Definition und Propositionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{\customtheoremstylecolor}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{\customtheoremstylecolor}$\lrcorner$]{customsatz}
+%Satz
+\declaretheorem[name=Satz,sibling=df,style=customsatz,
+refname={Satz,S\"atze}]{satz}
+%ohne Nummer
+\declaretheorem[name=Satz,numbered=no,style=customsatz,
+refname={Satz,S\"atze}]{satz*}
+%Hauptsatz 
+\declaretheorem[name=Hauptsatz,sibling=df,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hauptsatz}
+%ohne Nummer
+\declaretheorem[name=Hauptsatz,numbered=no,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hauptsatz*}
+%Satz und Definition 
+\declaretheorem[name=Satz und Definition,sibling=df,style=customsatz,
+refname={Satz und Definition,S\"atze und Definitionen}]{satzunddefiniton}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositionen}]{proposition}
+% English
+%theorem
+\declaretheorem[name=Theorem,sibling=df,style=customsatz,
+refname={Theorem,Theorems}]{satzengl}
+%ohne Nummer
+\declaretheorem[name=Theorem,numbered=no,style=customsatz,
+refname={Theorem,Theorems}]{satzengl*}
+%Satz und Definition 
+\declaretheorem[name=Theorem and Definition,sibling=df,style=customsatz,
+refname={Theorem and Definition,Theorems and Definitions}]{thmdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositions}]{prop}
+
+
+%%%%%%%%% Beweisumgebung
+%\newcommand{\customtheoremstylecolor}{black}
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored,%margincolored, %auch moeglich ist swapnumber margin
+headfont=\bfseries,
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\bewend]{custombew}
+%Beweis
+\declaretheorem[numbered=no,name=Beweis,style=custombew,
+refname={Beweis,Beweise}]{Beweis}
+%1
+\declaretheorem[numbered=no,name=Proof,style=custombew,%
+refname={Proof,Proofs}]{Proof}
+
+%%% helps cleverref to use the correct capitalization
+\crefname{lstlisting}{listing}{listings}
+\Crefname{lstlisting}{Listing}{Listings}
+\crefname{problem}{problem}{problems}
+\Crefname{problem}{Problem}{Problems}
+\crefname{notation}{notation}{notations}
+\Crefname{notation}{Notation}{Notations}
+\crefname{lm}{lemma}{lemmata}
+\Crefname{lm}{Lemma}{Lemmata}
+\crefname{assumptions}{assumptions}{assumptions}
+\Crefname{assumptions}{Assumptions}{Assumptions}
+\crefname{satzengl}{theorem}{theorems}
+\Crefname{satzengl}{Theorem}{Theorems}
+\crefname{satzengl*}{theorem}{theorems}
+\Crefname{satzengl*}{Theorem}{Theorems}
+\crefname{cor}{corollary}{corollaries}
+\Crefname{cor}{Corollary}{Corollaries}
+\crefname{df}{defintion}{defintions}
+\Crefname{df}{Defintion}{Defintions}
+\crefname{remark}{remark}{remarks}
+\Crefname{remark}{Remark}{Remarks}
+\crefname{observation}{observation}{observations}
+\Crefname{observation}{Observation}{Observations}
+%%%%%%%%%%%%%%%%%%%%%%% Zitieren von Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%allgemeine Vorgaben fuer das Zieren von Code. 
+% 
+% \lstset{%
+% numberbychapter=true, %
+% breaklines=true,%
+% prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
+% breakatwhitespace=false,%
+% basicstyle=\footnotesize\ttfamily,%
+% commentstyle=\itshape,%
+% fontadjust=true,%
+% tabsize=2,%
+% stringstyle=\itshape,%
+% numbers=left,numberstyle=\footnotesize\ttfamily,%
+% extendedchars=true,%
+% inputencoding=utf8,%
+% stepnumber=1,%
+% frame=shadowbox,%
+% rulesepcolor=\color{grey},%
+% backgroundcolor=\color{white},%
+% showspaces=false,%
+% showstringspaces=false%
+% aboveskip={1.5\baselineskip},%
+% columns=fixed,%
+% upquote=true,%
+% }
+% % Spezialvorgaben fuer das Zitieren von MATLAB Code.
+% \newcommand{\citematlab}{\lstset{language=Matlab,%
+% emph={if,elseif,else,end,for,while,function,return},%
+% emphstyle=\bfseries\color{midnightblue},emph={[2]EigMitLambda,Zerol,CotKlTan
+% ,CotKlTanSpez,XsGrLambda,XsKlLambda,CotGrTan,ordnen,EvenSingTan,einord},%
+% emphstyle={[2]\bfseries\color{olivedrab}},%
+% emph={[3]zew,ew,l,L,lambda,ewsum,ewanz,phi,v1,v2},emphstyle={[3]\color{braun}}}}
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/artikelpraeambel.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/artikelpraeambel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a72947cb8f0007347b0e96dc97a64bd7f39610f2
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/artikelpraeambel.tex
@@ -0,0 +1,452 @@
+%Dies ist der Kopf meiner Skripte. Er enthaelt alle Pakete und Einstellungen
+
+%%% BUG FIXING SECTION
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+%\csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%MAKROPAKETE
+%1.PAKETE DIE MIT DER KODIERUNG VON ZEICHEN ZU TUN HABEN.
+%\usepackage[german]{babel}
+%Definition von Sprachabhaengigen Komponenten insbesondere fuer Dokumente
+%in anderen Sprachen als Englisch
+%\usepackage{fixltx2e}
+\usepackage{etex} %some fix for hyperref
+%Korrektur einiger Fehler die sich in LaTeX2e eingeschlichen haben. 
+%\usepackage{ngerman} 
+% stellt Sonderzeichen und ihre Befehle wie zum Beispiel "o zur Verfuegung
+
+%%%%%%%%%%%% SCHRIFTEN %%%%%%%%%%%%%%%%%%%%%%%%
+%\usepackage{mathpazo}%andere Schriftart
+%\usepackage{lmodern}
+%\usepackage{beramono}
+% Using Courier font
+\renewcommand{\ttdefault}{pcr}
+%Tweak, damit auch im Mathemodus tt-schrift fettgedruckt werden kann.
+\usepackage{ifluatex}
+%%%% PDFLaTeX or LUALaTeX %%%%%%%
+\ifluatex
+  %\usepackage{luatextra}
+  \usepackage{lualatex-math}
+%  \usepackage{unicode-math}
+%  \setmathfont{xits-math.otf}
+\else
+  %% if pdflatex is used uncomment the following packages. If lualatex is used comment them.
+  %dieses Paket ermoeglicht die Eingabe von Sonderzeichen ueber die Tastatur
+  \usepackage[utf8]{inputenx}
+  %additions for utf8
+  \input{ix-utf8enc.dfu}
+  %% comment \usepackage{uiinput} if lulatex is used! line 131
+  %% if pdflatex is used uncomment above packages. If lualatex is used comment them.
+\fi
+\usepackage{microtype}
+\usepackage[dvipsnames,svgnames,table]{xcolor} % Farben
+
+\usepackage[T1]{fontenc} %Kodierung von Zeichensaetzen. 
+	%Das optionale Argument <Kodierung> kann eine durch Komma getrennte Liste von
+%Kodierungen enthalten. Im Text koennte dann an %beliebiger %Stelle zum wechseln der
+%Kodierung die Befehlsfolge:
+    		%\fontencoding{<Kodierung>}
+    		%\selectfont
+	%verwendet werden. Gaengige Kodierungen sind:
+%                           Tabelle 5.4: Kodierungen
+%         T1      8-Bit-Standard fuer EC-Fonts	 
+%         TS      8-Bit-Zeichenkodierung fuer TS-Fonts
+%         OT1      7-Bit-Kodierung fuer Text1 , CM-Fonts
+%         OML      7-Bit-Kodierung fuer Formeltext1
+%         OMS      7-Bit-Kodierung fuer mathematische Symbole1
+%         OMX      7-Bit-Kodierung fuer erweiterte mathematische Symbole1
+\usepackage{latexsym}
+%Definiert zusaetzliche Symbolbefehle.
+\usepackage[full]{textcomp}
+% Sammlung von Textsymbolen. Optional kann [safe] oder [full]
+% als Option hinzugefuegt werden, lezteres aber nur bei
+%CM und EC-Fonts
+
+% einige mathesymbole wie \lbrack
+\usepackage{stmaryrd}
+\usepackage{eucal}
+%Stellt deutsche Frakturschrift im Math Modus zur Verfuegung bei \mathcal
+%\usepackage{sistyle,upgreek}
+%\usepackage{fixmath}
+% sistyle stellt \SI{Masszahl}{Einheit}
+% bereit, zur si-konformen Darstellung von phy Goessen. textcom und upgreek stellt
+% fweiter Symbole bereit, welche sistyle braucht. Ausserdem diese Befehle \micro,
+% \ohm, \SIdecimalsign{,}(legt die trennung bei Dezimalzahlen fest)
+% \SIproductsign{\cdot} (legt das Multiplikationszeichen fest) \SIgroupfourfalse
+% erzeugt bei grossen Zahlen kleine Abstaende zwischen 3ergruppen \ang{zahl} ist das
+% gradzeichen.
+\usepackage{mathrsfs} %Stellt schreibschrift zur verfuegung im Mathemoduns mit \mathscr
+
+%1.01 LAYOUTPAKETE
+\usepackage[left = 2.5 cm, right = 2.5 cm, top = 2.5 cm, bottom = 3cm]{geometry} %a4paper
+% left = 3.5 cm, right = 3.5 cm, top = 3.3 cm, bottom = 6.6cm
+%\usepackage{fancyhdr}%Wird fuer erweiterte Kopf- und Fusszeileneinstellungen benoetigt.
+
+%\usepackage{enumerate}%Stellt die freie Auswahl von Aufzaehlungszeichen zur Verfuegung
+\usepackage[shortlabels]{enumitem} %Anpassbare Enumerates/Itemizes mit [label=]
+									%shortlabels: komp.  zu enumerate
+%Packete zur benutzung des KOMA-Paketes fuer europaeische Layouts also zur
+%Benutzung von 'scrartcl' fuer Artikel, 'scrreprt' fuer umfangreiche %Artikel und
+%Artikelsammlungen, 'scrbook' fuer Buecher und %'scrlettr2' fuer Briefe:
+%\usepackage{scrpage2} %fuer Kopf- und Fusszeilen, 
+%\usepackage{scrdate,scrtime}% fuer Wochentag und Uhrzeit, 
+%\usepackage{scraddr}
+%zur Loesung von Problemen mit Paketabhaengigkeiten scrfile sowie fuer
+%Briefadressverwaltung scraddr. 
+
+%%%% neue Befehle
+%Zahlensymbole
+
+%1.1PAKETE NOTWENDIG FUER MATHEMATISCHE FORMELN 
+\usepackage{amsfonts}%Fonts = Schriftarten der American mathematical Society (ams)
+\usepackage{amssymb}%Mathematische Symbole der ams.
+\usepackage{bbm}
+\usepackage{amsmath}
+% \ifluatex
+%    \usepackage{unicode-math}
+% \else
+% 
+% \fi
+
+%Definiert viele weitere Befehle fuer mathematischen Formeln und darueber hinaus.
+\usepackage{exscale}
+% Skaliert mathematische Symbole in anderen Schriftarten als ‚cmex10‘, so dass
+% falls die Schriftart in anderen Groessen als 10pt vorliegt diese angepasst
+% werden koennen
+\usepackage{amstext}
+% erlaubt es in abgesetzten Gleichungen mit \text kurzen Text einzufuegen.
+%\usepackage{amsextra}%hauptsaechlich fuer die Kompatibilitaet von Dokumenten
+%gebraucht.
+%\usepackage[arrow,matrix,curve]{xy} 
+% Packet xy-pic um Kommutative Diagramme und
+% zweidim Zeichnungen zu %zeichnen.in den eckigen Klammern stehen Module die
+% geladen werden, je nach dem was man braucht. In der %Matheumgebung wird das so
+% benutzt: \begin{xy} ...\end{xy}
+
+%Theoremumgebungen
+\usepackage{amsthm}%Ermoeglicht kontrolle ueber die Theorem-Umgebung beisst
+%sich mit ntheorem funktioniert aber mit \usepackage{thmtools}
+\usepackage{thm-patch,aliasctr,parseargs,keyval}
+\usepackage{thmtools}
+
+%stellt \declaretheorem[style=definition,qed=$\rtimes$]{definition}
+%zur verfuegung
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+% \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%Erlaubt das Setzen fetter Symbole mit \boldymbol{} bzw\pmb{}
+\usepackage{bm} 
+\usepackage{amsbsy}
+% stellt die Befehle \bm \hm zur Verfuegung, um mathematische
+% Symbole fett zu machen. Muss nach allen Fontpacketen geladen %werden!!!
+
+\ifluatex
+  %\usepackage{unicode-math}
+\else
+  % if LUALaTeX is used uncomment this
+  %\usepackage{uniinput} %ermoeglicht die Eingabe von unicode Zeichen
+\fi
+
+%\usepackage{listings} 
+%Wird verwendet um sourcecode zu TeXen, stellt 
+%\begin{lstlisting} .. \end{lstlisting} und \lstinputlisting zur Verfuegung
+                                                                   
+ 
+%2.PAKETE FUER GRAFIKEN UND GLEITOBJEKTE
+\usepackage{float,scrhack}
+%Stellt zusaetzliche Befehle fuer Gleitobjekte zur Verfuegung
+\usepackage{wrapfig}
+%Stellt die Moeglichkeit zur Verfuegung Text um Bilder herumlaufen zu lassen.
+\usepackage[textfont=it,labelfont=bf,format=plain]{caption}
+% Ermoeglicht das einstellen von figureumgebungen
+\usepackage{subcaption}
+
+\usepackage{array}%Verbessert die Darstellung von Tabellen und stellt erweiterte Befehle
+%zur Verfuegung.
+\usepackage{hhline} %stellt den \hhline in Tabellen zur Verfuegung
+\usepackage{delarray}
+%stellt eine einfachere Umgebung fuer begrenzte Arrays zur
+%Verfuegung.\begin{array} LB {<Spaltenvereinbarung>} RB
+
+% das tabu Packet, ein machtiges Tabellenpaket
+\usepackage{tabu}
+\usepackage{colortbl} % Farben in Tabellenzeilen
+
+%\usepackage{flafter} %Verhindert, dass Gleitobjekte in einem Dokument vor die
+%Stelle gesetzt werden, an der sie in der Eingabedatei %aufgebaut werden.
+%\usepackage{graphpap}%Zum Setzen von „Millimeter“-Papier. Es definiert den
+%graphics paper-Befehl in der picture-Umgebung. 
+
+%\usepackage[]{graphicx} %vorsicht, laedt hyperref
+%\usepackage{sidecap}
+%Für das malen von Graphen
+%Für das malen von Grafiken
+% waehle zunaechst das richtige Treiberbackend fuer Tikz.
+% beamer erkennt z. T nicht das richtige backend. pgfsys-pdf.def ist die Option, die am meisten unterstuetzt.
+%Für das malen von Graphen
+\usepackage{tikz}
+\usepackage{pgfplots}
+\pgfplotsset{compat=newest,%
+%	     width=0.49\textwidth%
+	     every axis plot post/.append style={
+	      every mark/.append style={scale=0.8,solid},
+	     }
+}
+\usetikzlibrary{arrows,%
+		arrows.meta,%
+                petri,%
+                topaths,%
+		fit,%
+		positioning,%
+		decorations.pathmorphing,%
+		backgrounds,
+		calc,%
+}%
+
+% Ausgabe von Grafiken als externe Grafik
+\usetikzlibrary{external}
+\usepgfplotslibrary{external}
+%\tikzset{external/optimize=true}%
+%% tikzset von Jim
+\tikzset{external/system call={lualatex \tikzexternalcheckshellescape --shell-escape -halt-on-error 
+-interaction=batchmode -jobname "\image" "\texsource"}}
+
+%%%%%%% convert externalized tikzgraphics to png
+%optional png setup
+\tikzset{
+  png export/.style={
+    external/system call=%
+    {lualatex \tikzexternalcheckshellescape --shell-escape -halt-on-error -interaction=batchmode -jobname 
+"\image" "\texsource" && %
+    convert -density 300 "\image.pdf" "\image.png"},
+  }
+}
+
+\tikzset{%
+  % Add size information to the .dpth file (png is in density not size)
+  /pgf/images/external info,
+  % Use the png export AND the import
+  use png/.style={png export,png import},
+  png import/.code={%
+    \tikzset{%
+      /pgf/images/include external/.code={%
+	% Here you can alter to whatever you want
+	% \pgfexternalwidth is only available if /pgf/images/external info
+	% is set
+	\includegraphics%
+	[width=\pgfexternalwidth,height=\pgfexternalheight]%
+	{{##1}.png}%
+      }%
+    }%
+  }%
+}
+
+% dann kann man das mit
+\tikzset{png export}
+% \tikzset{use png}
+% im dokument aktivieren.
+%%%%%%% END convert externalized tikzgraphics to png %%%%%%%%%%%%%%%%%%%
+
+% \tikzset{external/system call= {pdflatex -enable-write18 -shell-escape %
+% % % 				  -save-size=80000 %
+% % %                                -pool-size=100000000 %
+% % %                                -extra-mem-top=500000000 %
+% % %                                -extra-mem-bot=100000000 %
+% % %                                -main-memory=900000000 %
+%                                \tikzexternalcheckshellescape %
+%                                -halt-on-error %
+%                                -interaction=batchmode %
+%                                -jobname "\image" "\texsource"}} 
+\tikzexternalize[%
+% %mode=graphics if exists,
+  up to date check=md5,
+  figure list=true,
+  prefix=Tikzcache/,%
+ ]
+\tikzifexternalizing{%
+% don’t include package XYZ here
+}{%
+%hier kommen Pakete hinzu, die Probleme mit der external library von tikz haben
+\usepackage{pdfpages}
+%\usepackage{vmargin}
+% this package is incompatible with tikz externalization and is problematic
+%\usepackage[textsize=normal,textwidth=2cm,obeyFinal]{todonotes}
+% %obeyDraft lässt die Notes erscheinen, wenn man draft an hat und nicht, wenn nicht. Vertraegt sich nicht mit hyperref
+% % % additional todo stuff
+% % % extra functionality for todonotes taken from the manual
+% % % usage: \mycomment[HSM]{Testing second time.}.
+% \newcounter{mycomment}
+% \newcommand{\mycomment}[2][]{%
+% % initials of the author (optional) + note in the margin
+% \refstepcounter{mycomment}%
+% {%
+%   \setstretch{0.7}% spacing
+%   \todo[color={red!100!green!33},size=\small]{%
+%   \textbf{Comment [\uppercase{#1}\themycomment]:}~#2}%
+% }}
+% %
+% % mark whole section
+% \newcommand\todoin[2][]{\todo[color={green},inline, caption={2do}, #1]{
+% \begin{minipage}{\textwidth-4pt}#2\end{minipage}}}
+% % This example renders like
+% % \todoin{
+% %   Some text.
+% %   \begin{align}
+% %   \sin(\theta)^2 + \cos(\theta)^2 = 1
+% %   \end{align}
+% %   A formula and a list
+% %   \begin{itemize}
+% %     \item An item
+% %   \end{itemize}
+% % }
+% %
+% % numbered todonotes 
+% \newcommand{\ntodo}[2][]{\todo[#1]{\thesubsection{}. #2}}
+% % combining everything
+% \newcounter{todoListItems}
+% \newcommand{\sstodo}[2][]
+% {\addtocounter{todoListItems}{1}
+% \todo[caption={\protect\hypertarget{todo\thetodoListItems}{}\thesection. #2}, #1]
+% {\begin{spacing}{1} \hfill \hyperlink{todo\thetodoListItems}{#2} \end{spacing} }}
+}%
+
+
+%\usepackage[position=top]{subfig}
+% % BIBLIOGRAPHIE 
+% \usepackage[
+% 	  backend=biber,
+% %	  bibliographystyle=alphabetic,
+% 	  style=nature,		%globaler Style (Zitier- und Bibstil)
+% 	  citestyle=numeric, 	% Zitierstil
+% % % %	  bibliographystyle=chem-acs,	% Bibliographiestil
+% % 	  firstinits=true, 		% Vornamen abruerzen
+% % 	  sorting=nty, %sort by name,title,year
+% % 	  maxbibnames=99,
+% % %         maxnames=99,
+% %           language=british,
+% % %          abbreviate=true,
+%  	  doi=false,
+% %     isbn=false,
+%      url=false,
+%      sortcites=true,
+%      backref=true,
+%      defernumbers=true,
+% ]{biblatex}
+% \addbibresource{articlebibliography.bib}
+% 
+
+%3.PAKETE, DIE DAS ERSTELLEN EINES INDEX ERLEICHTERN
+%\usepackage{makeidx} 
+%'makeidx' Stellt Befehle fuer Indexerstellung zur Verfuegung.
+%\usepackage{showidx}%'showidx'bewirkt die Anzeige von Indexeintraegen %im
+%Randbereich.
+
+%3.SONSTIGE NUETZLICHE PAKETE
+%\usepackage{ifthen}%Definiert einfache Strukturen der Programmiersprachen
+\usepackage{verbatim}
+%\usepackage{alltt} % verbatim-Umgebung mit Interpretation von Befehlen.
+%Analysepaket zur ueberpruefung der Korrektheit der Syntax bei unterdrueckter
+%Ausgabe:
+%\usepackage{syntonly}% stellt dem Anwender den Befehl '\syntaxonly'zur Verfuegung,
+%der in der Praeambel angegeben werden muss, um beim
+%Formatieren die Ausgabe zu unterdruecken; eine bereits vorhandene .dvi-Datei
+%bleibt also erhalten.
+
+
+%%%% REFERENZIERUNG %%%%% 
+% Die Reihenfolge der folgenden 4 Packete ist wichtig.
+\usepackage{nameref}
+\usepackage[english]{varioref}%Stellt erweiterte Befehle zur Referenzierung von
+%Gleitobjekten zur Verfuegung
+\usepackage{hyperref}
+\hypersetup{
+%       pdfpagelabels=true,	% set pdf page lables
+%      naturalnames=true,     % use \Latex-computed names for links
+%     bookmarks=true,         % show bookmarks bar?
+      unicode=true,           % non-Latin characters in Acrobat’s bookmarks
+%     pdftoolbar=true,        % show Acrobat’s toolbar?
+%     pdfmenubar=true,        % show Acrobat’s menu?
+%     pdffitwindow=false,     % window fit to page when opened
+%     pdfstartview={FitH},    % fits the width of the page to the window
+%     pdftitle={My title},    % title
+%     pdfauthor={Author},     % author
+%     pdfsubject={Subject},   % subject of the document
+%     pdfcreator={Creator},   % creator of the document
+%     pdfproducer={Producer}, % producer of the document
+%     pdfkeywords={keyword1, key2, key3}, % list of keywords
+%     pdfnewwindow=true,      % links in new PDF window
+     plainpages=false,		% do page number anchors as plain arabic
+%     colorlinks=false,       % false: boxed links; true: colored links
+%     hidelinks=true,
+%     hyperfigures=true,
+     linkcolor=blue,          % color of internal links (change box color with linkbordercolor)
+     citecolor=darkgreen,        % color of links to bibliography
+     filecolor=black,      % color of file links
+     urlcolor=blue           % color of external links
+     pdfborder={0 0 1},		% width of pdf link border 0 0 1, 0 0 0 = colorlinks 
+     linkbordercolor=gray!15,
+     citebordercolor=green!15,
+}
+% Old hyperref options
+%[citecolor=black,urlcolor=blue,linkcolor=blue,colorlinks=true,pdfborder={0 0 %
+%0},pdfpagelabels,plainpages=false,naturalnames,unicode]
+\usepackage{memhfixc}
+%\usepackage[ngerman,capitalize]{cleveref}
+\usepackage[capitalize]{cleveref}
+
+\usepackage{bookmark}
+% Fix fuer das referenzieren von figures
+%\usepackage[all]{hypcap}
+
+
+%SEITENEINSTELLUNGEN
+\setlength{\parindent}{0cm} %Hebt die Einrueckung von Absaetzen auf.
+\linespread{1.35}
+%\setlength{\textwidth}{14.5cm} %Legt die Textbreite fest
+\pagestyle{myheadings} 
+%\usepackage{titlepage}
+
+%'plain' wuerde den Seitenkopf leer lassen aber die Seiten unten
+%mittig durchnummerieren. 'empty' laesst die Seite komplett leer
+%\markright{\today\hfill}
+%\usepackage{changepage}
+\allowdisplaybreaks[1] %Erlaubt bei der Align-Umgebung dass Zeilen auf
+%verschiedene Seiten gesetzt werden. die zahlen 1-4 koennen angegeben werden um
+%das Umbrechen noch weiter zu forcieren.
+
+%\pagestyle{fancy}  \fancyhf{}  
+%\renewcommand{\headrulewidth}{0.4 pt}%Strichdicke  
+%\setlength{\headheight}{1.2 cm}%Hoehe der Kopfzeile
+ 
+%\fancyhead[EL]{\page}
+%\fancyhead[ER]{\textsc{\rightmark}}
+%\fancyhead[C]{{\Large \textbf{FK019 freier Fall, g-Leiter}}\\\small 24.10.2008}
+%\fancyhead[OR]{\page}
+%\fancyhead[OL]{\textsc{\rightmark}}
+
+%% todo makros
+
+% self made todo solution
+\newcommand{\todo}[1]{\marginpar{\textcolor{red}{[\textbf{TODO:} #1]}}}
+\newcommand{\todox}[1]{\textcolor{red}{[\textbf{TODO:} #1]}} 
+
+%INDEXERSTELLUNG
+
+%\makeindex %erstellt ein indexfile. soll man am schluss erst machen!
+%\makeglossary
+%\includeonly{1laag1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - HIER BEGINNT DAS DOKUMENT -
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/lualatexartikelpraeambel.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/lualatexartikelpraeambel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7955feed323ac1dc0202e85f0f605346c16a403e
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/lualatexartikelpraeambel.tex
@@ -0,0 +1,340 @@
+%Dies ist der Kopf meiner Skripte. Er enthaelt alle Pakete und Einstellungen
+
+%%% BUG FIXING SECTION
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+%\csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%MAKROPAKETE
+%1.PAKETE DIE MIT DER KODIERUNG VON ZEICHEN ZU TUN HABEN.
+%\usepackage[german]{babel}
+%Definition von Sprachabhaengigen Komponenten insbesondere fuer Dokumente
+%in anderen Sprachen als Englisch
+\usepackage{fixltx2e}
+\usepackage{etex} %some fix for hyperref
+%Korrektur einiger Fehler die sich in LaTeX2e eingeschlichen haben. 
+%\usepackage{ngerman} 
+% stellt Sonderzeichen und ihre Befehle wie zum Beispiel "o zur Verfuegung
+
+%%%%%%%%%%%% SCHRIFTEN %%%%%%%%%%%%%%%%%%%%%%%%
+%\usepackage{mathpazo}%andere Schriftart
+%\usepackage{lmodern}
+%\usepackage{beramono}
+% Using Courier font
+\renewcommand{\ttdefault}{pcr}
+%Tweak, damit auch im Mathemodus tt-schrift fettgedruckt werden kann.
+
+%%%% PDFLaTeX or LUALaTeX %%%%%%%
+%% if pdflatex is used uncomment the following packages. If lualatex is used comment them.
+%dieses Paket ermoeglicht die Eingabe von Sonderzeichen ueber die Tastatur
+% \usepackage[utf8]{inputenx}
+% %additions for utf8
+% \input{ix-utf8enc.dfu}
+%% comment \usepackage{uiinput} if lulatex is used! line 131
+%% if pdflatex is used uncomment above packages. If lualatex is used comment them.
+\usepackage{microtype}
+\usepackage[dvipsnames,svgnames,table]{xcolor} % Farben
+
+\usepackage[T1]{fontenc} %Kodierung von Zeichensaetzen. 
+	%Das optionale Argument <Kodierung> kann eine durch Komma getrennte Liste von
+%Kodierungen enthalten. Im Text koennte dann an %beliebiger %Stelle zum wechseln der
+%Kodierung die Befehlsfolge:
+    		%\fontencoding{<Kodierung>}
+    		%\selectfont
+	%verwendet werden. Gaengige Kodierungen sind:
+%                           Tabelle 5.4: Kodierungen
+%         T1      8-Bit-Standard fuer EC-Fonts	 
+%         TS      8-Bit-Zeichenkodierung fuer TS-Fonts
+%         OT1      7-Bit-Kodierung fuer Text1 , CM-Fonts
+%         OML      7-Bit-Kodierung fuer Formeltext1
+%         OMS      7-Bit-Kodierung fuer mathematische Symbole1
+%         OMX      7-Bit-Kodierung fuer erweiterte mathematische Symbole1
+\usepackage{latexsym}
+%Definiert zusaetzliche Symbolbefehle.
+\usepackage[full]{textcomp}
+% Sammlung von Textsymbolen. Optional kann [safe] oder [full]
+% als Option hinzugefuegt werden, lezteres aber nur bei
+%CM und EC-Fonts
+
+\usepackage{eucal}
+%Stellt deutsche Frakturschrift im Math Modus zur Verfuegung bei \mathcal
+%\usepackage{sistyle,upgreek}
+%\usepackage{fixmath}
+% sistyle stellt \SI{Masszahl}{Einheit}
+% bereit, zur si-konformen Darstellung von phy Goessen. textcom und upgreek stellt
+% fweiter Symbole bereit, welche sistyle braucht. Ausserdem diese Befehle \micro,
+% \ohm, \SIdecimalsign{,}(legt die trennung bei Dezimalzahlen fest)
+% \SIproductsign{\cdot} (legt das Multiplikationszeichen fest) \SIgroupfourfalse
+% erzeugt bei grossen Zahlen kleine Abstaende zwischen 3ergruppen \ang{zahl} ist das
+% gradzeichen.
+\usepackage{mathrsfs} %Stellt schreibschrift zur verfuegung im Mathemoduns mit \mathscr
+
+%1.01 LAYOUTPAKETE
+\usepackage[left = 2.5 cm, right = 2.5 cm, top = 2.5 cm, bottom = 3cm]{geometry} %a4paper
+% left = 3.5 cm, right = 3.5 cm, top = 3.3 cm, bottom = 6.6cm
+%\usepackage{fancyhdr}%Wird fuer erweiterte Kopf- und Fusszeileneinstellungen benoetigt.
+
+%\usepackage{enumerate}%Stellt die freie Auswahl von Aufzaehlungszeichen zur Verfuegung
+\usepackage[shortlabels]{enumitem} %Anpassbare Enumerates/Itemizes mit [label=]
+									%shortlabels: komp.  zu enumerate
+%Packete zur benutzung des KOMA-Paketes fuer europaeische Layouts also zur
+%Benutzung von 'scrartcl' fuer Artikel, 'scrreprt' fuer umfangreiche %Artikel und
+%Artikelsammlungen, 'scrbook' fuer Buecher und %'scrlettr2' fuer Briefe:
+%\usepackage{scrpage2} %fuer Kopf- und Fusszeilen, 
+%\usepackage{scrdate,scrtime}% fuer Wochentag und Uhrzeit, 
+%\usepackage{scraddr}
+%zur Loesung von Problemen mit Paketabhaengigkeiten scrfile sowie fuer
+%Briefadressverwaltung scraddr. 
+
+%%%% neue Befehle
+%Zahlensymbole
+
+%1.1PAKETE NOTWENDIG FUER MATHEMATISCHE FORMELN 
+\usepackage{amsfonts}%Fonts = Schriftarten der American mathematical Society (ams)
+\usepackage{amssymb}%Mathematische Symbole der ams.
+\usepackage{bbm}
+\usepackage{amsmath} 
+%Definiert viele weitere Befehle fuer mathematischen Formeln und darueber hinaus.
+\usepackage{exscale}
+% Skaliert mathematische Symbole in anderen Schriftarten als ‚cmex10‘, so dass
+% falls die Schriftart in anderen Groessen als 10pt vorliegt diese angepasst
+% werden koennen
+\usepackage{amstext}
+% erlaubt es in abgesetzten Gleichungen mit \text kurzen Text einzufuegen.
+%\usepackage{amsextra}%hauptsaechlich fuer die Kompatibilitaet von Dokumenten
+%gebraucht.
+%\usepackage[arrow,matrix,curve]{xy} 
+% Packet xy-pic um Kommutative Diagramme und
+% zweidim Zeichnungen zu %zeichnen.in den eckigen Klammern stehen Module die
+% geladen werden, je nach dem was man braucht. In der %Matheumgebung wird das so
+% benutzt: \begin{xy} ...\end{xy}
+
+%Theoremumgebungen
+\usepackage{amsthm}%Ermoeglicht kontrolle ueber die Theorem-Umgebung beisst
+%sich mit ntheorem funktioniert aber mit \usepackage{thmtools}
+\usepackage{thm-patch,aliasctr,parseargs,keyval}
+\usepackage{thmtools}
+%stellt \declaretheorem[style=definition,qed=$\rtimes$]{definition}
+%zur verfuegung
+% There ist a bug in thmtools. After Latex Upgrade change line 48 in thm-autoref.sty so that
+% it reads
+% \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+% then run texhash
+
+%Erlaubt das Setzen fetter Symbole mit \boldymbol{} bzw\pmb{}
+\usepackage{bm} 
+\usepackage{amsbsy}
+% stellt die Befehle \bm \hm zur Verfuegung, um mathematische
+% Symbole fett zu machen. Muss nach allen Fontpacketen geladen %werden!!!
+
+% if LUALaTeX is used uncomment this
+%\usepackage{uniinput} %ermoeglicht die Eingabe von unicode Zeichen
+
+
+%\usepackage{listings} 
+%Wird verwendet um sourcecode zu TeXen, stellt 
+%\begin{lstlisting} .. \end{lstlisting} und \lstinputlisting zur Verfuegung
+                                                                   
+ 
+%2.PAKETE FUER GRAFIKEN UND GLEITOBJEKTE
+\usepackage{float,scrhack}
+%Stellt zusaetzliche Befehle fuer Gleitobjekte zur Verfuegung
+\usepackage{wrapfig}
+%Stellt die Moeglichkeit zur Verfuegung Text um Bilder herumlaufen zu lassen.
+\usepackage[textfont=it,labelfont=bf,format=plain]{caption}
+% Ermoeglicht das einstellen von figureumgebungen
+\usepackage{subcaption}
+
+\usepackage{array}%Verbessert die Darstellung von Tabellen und stellt erweiterte Befehle
+%zur Verfuegung.
+\usepackage{hhline} %stellt den \hhline in Tabellen zur Verfuegung
+\usepackage{delarray}
+%stellt eine einfachere Umgebung fuer begrenzte Arrays zur
+%Verfuegung.\begin{array} LB {<Spaltenvereinbarung>} RB
+
+% das tabu Packet, ein machtiges Tabellenpaket
+\usepackage{tabu}
+\usepackage{colortbl} % Farben in Tabellenzeilen
+
+%\usepackage{flafter} %Verhindert, dass Gleitobjekte in einem Dokument vor die
+%Stelle gesetzt werden, an der sie in der Eingabedatei %aufgebaut werden.
+%\usepackage{graphpap}%Zum Setzen von „Millimeter“-Papier. Es definiert den
+%graphics paper-Befehl in der picture-Umgebung. 
+
+%\usepackage[]{graphicx} %vorsicht, laedt hyperref
+%\usepackage{sidecap}
+%Für das malen von Graphen
+%Für das malen von Grafiken
+% waehle zunaechst das richtige Treiberbackend fuer Tikz.
+% beamer erkennt z. T nicht das richtige backend. pgfsys-pdf.def ist die Option, die am meisten unterstuetzt.
+%Für das malen von Graphen
+\usepackage{tikz}
+\usepackage{pgfplots}
+\pgfplotsset{compat=newest}
+\usetikzlibrary{arrows,%
+%                 petri,%
+%                topaths,%
+%		fit,%
+%		positioning,%
+%		decorations.pathmorphing,%
+%		backgrounds,%
+}%
+
+% Ausgabe von Grafiken als externe Grafik
+\usetikzlibrary{external}
+% \usepgfplotslibrary{external}
+\tikzset{external/optimize=true}%
+% \tikzset{external/system call= {pdflatex -enable-write18 -shell-escape %
+% % % 				  -save-size=80000 %
+% % %                                -pool-size=100000000 %
+% % %                                -extra-mem-top=500000000 %
+% % %                                -extra-mem-bot=100000000 %
+% % %                                -main-memory=900000000 %
+%                                \tikzexternalcheckshellescape %
+%                                -halt-on-error %
+%                                -interaction=batchmode %
+%                                -jobname "\image" "\texsource"}} 
+\tikzexternalize[%
+% %mode=graphics if exists,
+  up to date check=md5,
+ figure list=true,
+ prefix=Tikzcache/,%
+ ]
+\tikzifexternalizing{%
+% don’t include package XYZ here
+}{%
+%hier kommen Pakete hinzu, die Probleme mit der external library von tikz haben
+%\usepackage{pdfpages}
+%\usepackage{vmargin}
+% this package is incompatible with tikz externalization and is problematic
+}%
+% \usepackage[textsize=normal,textwidth=2cm,obeyFinal]{todonotes}
+% %obeyDraft lässt die Notes erscheinen, wenn man draft an hat und nicht, wenn nicht. Vertraegt sich nicht mit hyperref
+
+% % additional todo stuff
+% % extra functionality for todonotes taken from the manual
+% % usage: \mycomment[HSM]{Testing second time.}.
+% \newcounter{mycomment}
+% \newcommand{\mycomment}[2][]{%
+% % initials of the author (optional) + note in the margin
+% \refstepcounter{mycomment}%
+% {%
+%   \setstretch{0.7}% spacing
+%   \todo[color={red!100!green!33},size=\small]{%
+%   \textbf{Comment [\uppercase{#1}\themycomment]:}~#2}%
+% }}
+% 
+% % mark whole section
+% \newcommand\todoin[2][]{\todo[color={green},inline, caption={2do}, #1]{
+% \begin{minipage}{\textwidth-4pt}#2\end{minipage}}}
+% % This example renders like
+% % \todoin{
+% % 	Some text.
+% % 	\begin{align}
+% % 	\sin(\theta)^2 + \cos(\theta)^2 = 1
+% % 	\end{align}
+% % 	A formula and a list
+% % 	\begin{itemize}
+% % 		\item An item
+% % 	\end{itemize}
+% % }
+% 
+% % numbered todonotes 
+% \newcommand{\ntodo}[2][]{\todo[#1]{\thesubsection{}. #2}}
+% % combining everything
+% \newcounter{todoListItems}
+% \newcommand{\sstodo}[2][]
+% {\addtocounter{todoListItems}{1}
+% \todo[caption={\protect\hypertarget{todo\thetodoListItems}{}\thesection. #2}, #1]
+% {\begin{spacing}{1} \hfill \hyperlink{todo\thetodoListItems}{#2} \end{spacing} }}
+
+
+%\usepackage[position=top]{subfig}
+% BIBLIOGRAPHIE 
+\usepackage[
+	  backend=biber,
+%	  bibliographystyle=alphabetic,
+%	  style=ieee,		%globaler Style (Zitier- und Bibstil)
+	  citestyle=numeric, 	% Zitierstil
+%	  bibliographystyle=chem-acs,	% Bibliographiestil
+	  firstinits=true, 		% Vornamen abruerzen
+	  sorting=nty, %sort by name,title,year
+	  maxbibnames=99,
+%         maxnames=99,
+          language=british,
+%          abbreviate=true,
+	  doi=false,
+          isbn=false,
+          url=false,
+          sortcites=true,
+          backref=true,
+          defernumbers=true,
+]{biblatex}
+\addbibresource{/home/seusdd/Dissertation/Bibliographie/dissertationsliteratur.bib}
+
+
+%3.PAKETE, DIE DAS ERSTELLEN EINES INDEX ERLEICHTERN
+%\usepackage{makeidx} 
+%'makeidx' Stellt Befehle fuer Indexerstellung zur Verfuegung.
+%\usepackage{showidx}%'showidx'bewirkt die Anzeige von Indexeintraegen %im
+%Randbereich.
+
+%3.SONSTIGE NUETZLICHE PAKETE
+%\usepackage{ifthen}%Definiert einfache Strukturen der Programmiersprachen
+%\usepackage{alltt} % verbatim-Umgebung mit Interpretation von Befehlen.
+%Analysepaket zur ueberpruefung der Korrektheit der Syntax bei unterdrueckter
+%Ausgabe:
+%\usepackage{syntonly}% stellt dem Anwender den Befehl '\syntaxonly'zur Verfuegung,
+%der in der Praeambel angegeben werden muss, um beim
+%Formatieren die Ausgabe zu unterdruecken; eine bereits vorhandene .dvi-Datei
+%bleibt also erhalten.
+
+
+%%%% REFERENZIERUNG %%%%% 
+% Die Reihenfolge der folgenden 4 Packete ist wichtig.
+\usepackage{nameref}
+\usepackage[english]{varioref}%Stellt erweiterte Befehle zur Referenzierung von
+%Gleitobjekten zur Verfuegung
+\usepackage[citecolor=black,urlcolor=blue,linkcolor=blue,colorlinks=true,pdfborder={0 0 %
+0},pdfpagelabels,plainpages=false,naturalnames,unicode]{hyperref}
+\usepackage{memhfixc}
+%\usepackage[ngerman,capitalize]{cleveref}
+\usepackage[]{cleveref}
+
+\usepackage{bookmark}
+% Fix fuer das referenzieren von figures
+%\usepackage[all]{hypcap}
+
+
+%SEITENEINSTELLUNGEN
+\setlength{\parindent}{0cm} %Hebt die Einrueckung von Absaetzen auf.
+%\setlength{\textwidth}{14.5cm} %Legt die Textbreite fest
+\pagestyle{myheadings} 
+%\usepackage{titlepage}
+
+%'plain' wuerde den Seitenkopf leer lassen aber die Seiten unten
+%mittig durchnummerieren. 'empty' laesst die Seite komplett leer
+%\markright{\today\hfill}
+%\usepackage{changepage}
+\allowdisplaybreaks[1] %Erlaubt bei der Align-Umgebung dass Zeilen auf
+%verschiedene Seiten gesetzt werden. die zahlen 1-4 koennen angegeben werden um
+%das Umbrechen noch weiter zu forcieren.
+
+%\pagestyle{fancy}  \fancyhf{}  
+%\renewcommand{\headrulewidth}{0.4 pt}%Strichdicke  
+%\setlength{\headheight}{1.2 cm}%Hoehe der Kopfzeile
+ 
+%\fancyhead[EL]{\page}
+%\fancyhead[ER]{\textsc{\rightmark}}
+%\fancyhead[C]{{\Large \textbf{FK019 freier Fall, g-Leiter}}\\\small 24.10.2008}
+%\fancyhead[OR]{\page}
+%\fancyhead[OL]{\textsc{\rightmark}}
+
+%% todo makros
+
+% self made todo solution
+\newcommand{\todo}[1]{\marginpar{\textcolor{red}{[\textbf{TODO:} #1]}}}
+\newcommand{\todox}[1]{\textcolor{red}{[\textbf{TODO:} #1]}} 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/special_symbols.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/special_symbols.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c6977169ae2efa5af5fdff33dcc636a2ec2d541b
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/special_symbols.tex
@@ -0,0 +1,206 @@
+%% SPECIAL INTEGRAL SIGNS
+% The following example defines macro
+% 
+% \mint{<symbol>}\limits_{...} ^{...} %statt \limits kann auch  \nolimits \displaylimits_stehen
+% 
+%     The first argument is the symbol that is put in smaller math style in the middle of the integral symbol.
+%     Then a limits specification follows, any number and order. The last one is used.
+%     Then one subscript and/or one superscript can follow in any order, but at most one of each type.
+% 
+% The implementation takes care of:
+% 
+%     the current math style,
+%     calculates the correct position for the middle of the integral
+%     even, if subscript and/or superscript are given with \limits,
+%     lets the horizontal spacing around the symbol intact and
+%     is aware of \mathsurround.
+
+
+\makeatletter
+\newcommand*{\mint}[1]{%
+  % #1: overlay symbol
+  \mint@l{#1}{}%
+}
+\newcommand*{\mint@l}[2]{%
+  % #1: overlay symbol
+  % #2: limits
+  \@ifnextchar\limits{%
+    \mint@l{#1}%
+  }{%
+    \@ifnextchar\nolimits{%
+      \mint@l{#1}%
+    }{%
+      \@ifnextchar\displaylimits{%
+        \mint@l{#1}%
+      }{%
+        \mint@s{#2}{#1}%
+      }%
+    }%
+  }%
+}
+\newcommand*{\mint@s}[2]{%
+  % #1: limits
+  % #2: overlay symbol
+  \@ifnextchar_{%
+    \mint@sub{#1}{#2}%
+  }{%
+    \@ifnextchar^{%
+      \mint@sup{#1}{#2}%
+    }{%
+      \mint@{#1}{#2}{}{}%
+    }%
+  }%
+}
+\def\mint@sub#1#2_#3{%
+  \@ifnextchar^{%
+    \mint@sub@sup{#1}{#2}{#3}%
+  }{%
+    \mint@{#1}{#2}{#3}{}%
+  }%
+}
+\def\mint@sup#1#2^#3{%
+  \@ifnextchar_{%
+    \mint@sub@sup{#1}{#2}{#3}%
+  }{%
+    \mint@{#1}{#2}{}{#3}%
+  }%
+}
+\def\mint@sub@sup#1#2#3^#4{%
+  \mint@{#1}{#2}{#3}{#4}%
+}
+\def\mint@sup@sub#1#2#3_#4{%
+  \mint@{#1}{#2}{#4}{#3}%
+}
+\newcommand*{\mint@}[4]{%
+  % #1: \limits, \nolimits, \displaylimits
+  % #2: overlay symbol: -, =, ...
+  % #3: subscript
+  % #4: superscript
+  \mathop{}%
+  \mkern-\thinmuskip
+  \mathchoice{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \displaystyle\textstyle\scriptstyle
+  }{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \textstyle\scriptstyle\scriptstyle
+  }{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \scriptstyle\scriptscriptstyle\scriptscriptstyle
+  }{%
+    \mint@@{#1}{#2}{#3}{#4}%
+        \scriptscriptstyle\scriptscriptstyle\scriptscriptstyle
+  }%
+  \mkern-\thinmuskip
+  \int#1%
+  \ifx\\#3\\\else_{#3}\fi
+  \ifx\\#4\\\else^{#4}\fi  
+}
+\newcommand*{\mint@@}[7]{%
+  % #1: limits
+  % #2: overlay symbol
+  % #3: subscript
+  % #4: superscript
+  % #5: math style
+  % #6: math style for overlay symbol
+  % #7: math style for subscript/superscript
+  \begingroup
+    \sbox0{$#5\int\m@th$}%
+    \sbox2{$#5\int_{}\m@th$}%
+    \dimen2=\wd0 %
+    % => \dimen2 = width of \int
+    \let\mint@limits=#1\relax
+    \ifx\mint@limits\relax
+      \sbox4{$#5\int_{\kern1sp}^{\kern1sp}\m@th$}%
+      \ifdim\wd4>\wd2 %
+        \let\mint@limits=\nolimits
+      \else
+        \let\mint@limits=\limits
+      \fi
+    \fi
+    \ifx\mint@limits\displaylimits
+      \ifx#5\displaystyle
+        \let\mint@limits=\limits
+      \fi
+    \fi
+    \ifx\mint@limits\limits
+      \sbox0{$#7#3\m@th$}%
+      \sbox2{$#7#4\m@th$}%
+      \ifdim\wd0>\dimen2 %
+        \dimen2=\wd0 %
+      \fi
+      \ifdim\wd2>\dimen2 %
+        \dimen2=\wd2 %
+      \fi
+    \fi
+    \rlap{%
+      $#5%
+        \vcenter{%
+          \hbox to\dimen2{%
+            \hss
+            $#6{#2}\m@th$%
+            \hss
+          }%
+        }%
+      $%
+    }%
+  \endgroup
+}
+% EXAMPLE INTEGRAL SIGNS
+% \begin{document}
+% \[
+%   \displaystyle A\int B
+%   \textstyle A\int B
+%   \scriptstyle A\int B
+%   \scriptscriptstyle A\int B
+% \]
+% \[
+%   \displaystyle A\mint{-} B
+%   \textstyle A\mint{-} B
+%   \scriptstyle A\mint{-} B
+%   \scriptscriptstyle A\mint{-} B
+% \]
+% \[
+%   \displaystyle A\mint{-}_{123}^{456} B
+%   \textstyle A\mint{-}_{123}^{456} B
+%   \scriptstyle A\mint{-}_{123}^{456} B
+%   \scriptscriptstyle A\mint{-}_{123}^{456} B
+% \]
+% \[
+%   \displaystyle A\mint{-}\limits_{12345}^{6} B
+%   \textstyle A\mint{-}\limits_{12345}^{6} B
+%   \scriptstyle A\mint{-}\limits_{12345}^{6} B
+%   \scriptscriptstyle A\mint{-}\limits_{12345}^{6} B
+% \]
+% \[
+%   \displaystyle A\mint{-}\limits_{1}^{23456} B
+%   \textstyle A\mint{-}\limits_{1}^{23456} B
+%   \scriptstyle A\mint{-}\limits_{1}^{23456} B
+%   \scriptscriptstyle A\mint{-}\limits_{1}^{23456} B
+% \]
+% \[
+%   \displaystyle A\mint{-}\displaylimits_{0}^{\infty} B
+%   \textstyle A\mint{-}\displaylimits_{0}^{\infty} B
+%   \scriptstyle A\mint{-}\displaylimits_{0}^{\infty} B
+%   \scriptscriptstyle A\mint{-}\displaylimits_{0}^{\infty} B
+% \]
+% \[
+%   \displaystyle A\mint{=} B
+%   \textstyle A\mint{=} B
+%   \scriptstyle A\mint{=} B
+%   \scriptscriptstyle A\mint{=} B
+% \]
+% \[
+%   \displaystyle A\mint{\equiv} B
+%   \textstyle A\mint{\equiv} B
+%   \scriptstyle A\mint{\equiv} B
+%   \scriptscriptstyle A\mint{\equiv} B
+% \]
+% \[
+%   \displaystyle A\mint{\circ} B
+%   \textstyle A\mint{\circ} B
+%   \scriptstyle A\mint{\circ} B
+%   \scriptscriptstyle A\mint{\circ} B
+% \]
+%\end{document}
+ 
\ No newline at end of file
diff --git a/TP-TP-patch-test-case/plots/praeambels_and_definitions/theoreme_und_farbe.tex b/TP-TP-patch-test-case/plots/praeambels_and_definitions/theoreme_und_farbe.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2ca623f6d1a3cce89aa1325ca7f3ab9968046b53
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/praeambels_and_definitions/theoreme_und_farbe.tex
@@ -0,0 +1,366 @@
+%FARBDEFINTIONEN
+%\definecolor{dunkelblau}{rgb}{0.21,0.37,0.87}definert neue Farben. Mit rgb-Werten in % mit RGB kann man die %RGB werte driket angeben
+
+%BLAUTOENE
+\definecolor{mediumblue}{RGB}{0,0,205}
+\definecolor{navyblue}{RGB}{0,0,128}
+\definecolor{midnightblue}{RGB}{25,25,112}
+\definecolor{royalblue4}{RGB}{39,64,139}
+\definecolor{blue3}{RGB}{0,0,205}
+\definecolor{steelblue3}{RGB}{79,148,205}
+\definecolor{steelblue4}{RGB}{54,100,139}
+
+%ROT- UND BRAUNTOENE
+\definecolor{brown}{RGB}{165,42,42} %Bordaux %heller
+\definecolor{brown3}{RGB}{205,51,51} %eher rot
+\definecolor{brown4}{RGB}{139,35,35} %ART Bordeaux %etwas dunkler
+\definecolor{red3}{RGB}{205,0,0} %bordeauxrot %noch dunkler
+\definecolor{tomato}{RGB}{205,79,57} % noch dunkler aehnlich zu red3
+\definecolor{firebrick3}{RGB}{205,38,38}
+\definecolor{firebrick4}{RGB}{139,26,26}
+
+%GELBTOENE
+\definecolor{gold}{RGB}{255,215,0}
+\definecolor{gold3}{RGB}{238,201,0} %dunkler
+\definecolor{darkgoldenrod1}{RGB}{255,185,15}
+\definecolor{goldenrod1}{RGB}{255,193,37}
+\definecolor{goldenrod}{RGB}{218,165,32}
+
+%ORANGETOENE
+\definecolor{orange}{rgb}{.9,.6,.1}
+\definecolor{dunkelorange}{rgb}{.9,.5,.0}
+\definecolor{orange2}{RGB}{238,154,0}
+\definecolor{orange3}{RGB}{205,133,0}
+
+%Gruen
+\definecolor{darkgreen}{RGB}{0,100,0}
+\definecolor{green3}{RGB}{0,205,0} %dunkler als das Standartgruen
+\definecolor{olivedrab}{RGB}{107,142,35}
+\definecolor{olivedrab2}{RGB}{179,238,58}
+\definecolor{olivedrab3}{RGB}{154,205,50}
+\definecolor{forestgreen}{RGB}{34,139,34}
+\definecolor{darkolivegreen}{RGB}{85,107,47}
+\definecolor{darkolivegreen4}{RGB}{110,139,61}
+\definecolor{khaki3}{RGB}{205,198,115}
+
+%Grautoene
+\definecolor{grey}{rgb}{0.5,0.5,0.5}
+\definecolor{dimgrey}{RGB}{105,105,105}
+\definecolor{dimgrey2}{RGB}{153,153,153}
+\definecolor{dimgrey3}{RGB}{181,181,181}
+\definecolor{lightgrey}{RGB}{211,211,211}
+\definecolor{lightergrey}{RGB}{201,201,201}
+\definecolor{verylightgrey}{RGB}{222,222,222}
+
+
+%BRAUNTOENE
+\definecolor{braun}{rgb}{.6,.5,.1}
+\definecolor{braun2}{rgb}{.6,.4,.1}
+\definecolor{tan4}{RGB}{149,90,43}
+
+%%SCHATTIERUNGEN VON WEISS 
+\definecolor{wheat3}{RGB}{205,186,150}
+\definecolor{wheat4}{RGB}{139,126,102}
+
+
+%DEFINITIONEN DER SATZ- UND THEOREMUMGEBUNGEN
+
+%\newcommand{\<Befehlsname>}{<Definition, was hinterher im Dokument erscheinen soll>}
+%"'Befehlsname"` muss %ein wirklich neuer Befehl sein
+%\newcommand{\<Befehlsname>}[Anzahl der Argumente des neuen Befehls (1...9)]{#i,#(i+1)} i
+%= 1...9 %Beim %Befehlsaufruf erscheint das, was man in die Argumentklammern schreibt an
+%der jeweiligen Stelle #i
+%Analog fuer folgenden Befehl: "<\Befehl>" muss schon existieren
+%\renewcommand{\<Befehl>}{<Definition>}
+%\renewcommand{\<Befehl>}[<ArgAnz>]{<Definition>}
+\newcommand{\bewend}{\rule{1ex}{1ex}}
+%Beweis ende: ausgefuelltes Viereck fuer das Ende eines Beweises.
+\newcommand{\latop}[2]{#1 \atop #2}	%gibt dem TeX-Befehl \atop eine LaTeX ueblichere Form
+\newcommand{\lchoose}[2]{#1 \choose #2} 
+%gibt dem TeX-Befehl \choose eine LaTeX ueblichere Form 
+
+%%%%%%%%%%%%% ZUNAECHST DIE EIGENEN STYLES %%%%%%%%%%%%%
+%erst mal ein Bugfix.
+%entweder
+% \makeatletter
+% \def\thmt@refnamewithcomma #1#2#3,#4,#5\@nil{%
+% \@xa\def\csname\thmt@envname #1utorefname\endcsname{#3}%
+% \ifcsname #2refname\endcsname
+% \csname #2refname\expandafter\endcsname\expandafter{\thmt@envname}{#3}{#4}%
+% \fi
+% }
+% \makeatother
+%oder Zur zwischenzeitlichen Abhilfe sollte es helfen, Z.48 in thm-autoref wie folgt
+%abzuaendern:  \csname #2refname\@xa\endcsname\@xa{\thmt@envname}{#3}{#4}%
+%Dies ist in der TeXLive2014 bereits gefixt.
+
+%Eingener Nummerierungsstyl am Rand und grau
+%Damit der Stil margincolored definiert ist muss 
+%  \definecolor{dimgrey}{RGB}{105,105,105}
+%  \definecolor{dimgrey2}{RGB}{153,153,153}
+\makeatletter
+  \def\thmt@headstyle@margincolored{%
+    \makebox[0pt][r]{\color{dimgrey}\NUMBER\ }\NAME\NOTE
+  }
+\makeatother
+% zu thm-ntheorem.sty und thm-amsthm.sty ergänzt werden.
+
+
+%%%%% Definitionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{olivedrab}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+%numbercolor=\color{dimgrey2},
+postheadspace=1em,
+qed=\color{olivedrab}$\pmb{\triangleleft}$]{customdefintion}
+%Defintion
+\declaretheorem[name=Definition,numberwithin=section,style=customdefintion,
+refname={Definition,Defintionen}]{df}
+%Bezeichnungen
+\declaretheorem[name=Bezeichnungen,sibling=df,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez}
+\declaretheorem[name=Bezeichnung,sibling=df,style=customdefintion,
+refname={Bezeichnung,Bezeichnungen}]{bz}
+%Bezeichnungen ohne Nummer:
+\declaretheorem[name=Bezeichnungen,numbered=no,style=customdefintion,
+refname={Bezeichnungen,Bezeichnungen}]{bez*}
+%notations
+\declaretheorem[name=Notations,sibling=df,style=customdefintion,
+refname={Notations,Notations}]{notations}
+%notation
+\declaretheorem[name=Notation,sibling=df,style=customdefintion,
+refname={Notation,Notations}]{notation}
+%notations without number:
+\declaretheorem[name=Notations,numbered=no,style=customdefintion,
+refname={Notations,Notations}]{notations*}
+%Assumption
+\declaretheorem[name=Assumption,sibling=df,style=customdefintion,
+refname={assumption,assumptions}]{assumption}
+%Assumptions
+\declaretheorem[name=Assumptions,sibling=df,style=customdefintion,
+refname={assumptions,assumptions}]{assumptions}
+
+
+%Festlegung mit und ohne nummer
+\declaretheorem[name=Festlegung,sibling=df,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{festlg}
+\declaretheorem[name=Festlegung,numbered=no,style=customdefintion,
+refname={Festlegungen,Festlegungen}]{nnfestlg}
+
+%%%%% Beispiel- und Bemerkungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber oder margin
+headfont={\color{midnightblue}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{midnightblue}$\pmb{\triangleleft}$]{custombspbem}
+%Beispiel 
+\declaretheorem[numberlike=df,name=Beispiel,style=custombspbem,
+refname={Beispiel,Beispiele}]{bsp}
+%Bemerkung
+\declaretheorem[name=Bemerkung,sibling=df,style=custombspbem,
+refname={Bemerkung,Bemerkungen}]{bem}
+%Example
+\declaretheorem[numberlike=df,name=Example,style=custombspbem,
+refname={Example,Examples}]{example}
+%remark
+\declaretheorem[name=Remark,sibling=df,style=custombspbem,
+refname={Remark,Remarks}]{remark}
+
+%%%%% Lemma-,Korollarstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{steelblue4}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{steelblue4}$\pmb{\lrcorner}$]{customlemma}
+%Lemma 
+\declaretheorem[name=Lemma,sibling=df,style=customlemma,
+refname={Lemma,Lemmata}]{lm}
+%Korollar
+\declaretheorem[name=Korollar,sibling=df,style=customlemma,
+refname={Korollar,Korollare}]{kor}
+%Corollay
+\declaretheorem[name=Corollary,sibling=df,style=customlemma,
+refname={Corollary,Corollaries}]{cor}
+%Conclusion
+\declaretheorem[name=Conclusion,sibling=df,style=customlemma,
+refname={Conclusion,Conclusions}]{conclusion}
+
+
+
+%%%%% Notizstyle 
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\lrcorner}$]{customnotiz}
+%Notiz
+\declaretheorem[name=Notiz,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{nz}
+%%Spezialnotiz fuer die D-Arbeit: Prinzip der Nullstellensuche
+\declaretheorem[name=Prinzip der Nullstellensuche,sibling=df,style=customnotiz,
+refname={Notiz,Notizen}]{pdnss}
+\declaretheorem[name=Fragestellung,sibling=df,style=customnotiz,
+refname={Fragestellung,Fragestellungen}]{frage}
+\declaretheorem[name=Fragestellungen,sibling=df,style=customnotiz,
+refname={Fragestellungen,Fragestellungen}]{fragen}
+%Idea environment
+\declaretheorem[name=Idea,sibling=df,style=customnotiz,
+refname={idea,ideas}]{idea}
+%Main Idea environment
+\declaretheorem[name=Main idea,sibling=df,style=customnotiz,
+refname={main idea,main ideas}]{mainidea}
+%General Idea environment
+\declaretheorem[name=General idea,sibling=df,style=customnotiz,
+refname={general idea,general ideas}]{generalidea}
+%Questions and Tasks
+\declaretheorem[name=Questions and Tasks,sibling=df,style=customnotiz,
+refname={questions and tasks,question and tasks}]{QuestTasks}
+%Problem
+\declaretheorem[name=Problem,sibling=df,style=customnotiz,
+refname={problem,problems}]{problem}
+\declaretheorem[name=Problem,numbered=no,style=customnotiz,
+refname={problem,problems}]{problem*}
+
+
+
+\declaretheorem[name=Erklärung,sibling=df,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung}
+\declaretheorem[name=Erklärung,numbered=no,style=customnotiz,
+refname={Erklärung,Erklärungen}]{erklaerung*}
+
+
+%%%%%%%%%%%%Berechnungstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{darkgreen}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\color{darkgreen}$\pmb{\bewend}$]{customberechnung}
+%Nebenrechnung
+\declaretheorem[name=Nebenrechnung,sibling=df,style=customberechnung,
+refname={Nebenrechnung,Nebenrechnungen}]{nr}
+
+%%%%% Satz-, Hauptsatz-, Satz und Definition und Propositionsstyle
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont={\color{firebrick4}\scshape \bfseries},
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\itshape,
+postheadspace=1em,
+qed=\color{firebrick4}$\lrcorner$]{customsatz}
+%Satz
+\declaretheorem[name=Satz,sibling=df,style=customsatz,
+refname={Satz,S\"atze}]{sz}
+%ohne Nummer
+\declaretheorem[name=Satz,numbered=no,style=customsatz,
+refname={Satz,S\"atze}]{sz*}
+%Hauptsatz 
+\declaretheorem[name=Hauptsatz,sibling=df,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz}
+%ohne Nummer
+\declaretheorem[name=Hauptsatz,numbered=no,style=customsatz,
+refname={Hauptsatz,Haupts\"atze}]{hsz*}
+%Satz und Definition 
+\declaretheorem[name=Satz und Definition,sibling=df,style=customsatz,
+refname={Satz und Definition,S\"atze und Definitionen}]{szdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositionen}]{proposition}
+%
+%theorem
+\declaretheorem[name=Theorem,sibling=df,style=customsatz,
+refname={Theorem,Theorems}]{satzengl}
+%ohne Nummer
+\declaretheorem[name=Theorem,numbered=no,style=customsatz,
+refname={Theorem,Theorems}]{satzengl*}
+%Satz und Definition 
+\declaretheorem[name=Theorem and Definition,sibling=df,style=customsatz,
+refname={Theorem and Definition,Theorems and Definitions}]{thmdf}
+%Proposition
+\declaretheorem[sibling=df,name=Proposition,style=customsatz,
+refname={Proposition,Propositions}]{prop}
+
+
+%%%%%%%%% Beweisumgebung
+\declaretheoremstyle[
+spaceabove=6pt, spacebelow=6pt,
+headformat=margincolored, %auch moeglich ist swapnumber margin
+headfont=\bfseries,
+notefont=\normalfont\bfseries, notebraces={(}{)},
+bodyfont=\normalfont,
+postheadspace=1em,
+qed=\bewend]{custombew}
+%Beweis
+\declaretheorem[numbered=no,name=Beweis,style=custombew,
+refname={Beweis,Beweise}]{bew}
+%Proof
+\declaretheorem[numbered=no,name=Proof,style=custombew,
+refname={Proof,Proofs}]{Proof}
+
+%%%%%%%%%%%%%%%%%%%%%%% Zitieren von Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%allgemeine Vorgaben fuer das Zieren von Code. 
+
+\lstset{%
+numberbychapter=true, %
+breaklines=true,%
+prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
+breakatwhitespace=false,%
+basicstyle=\footnotesize\ttfamily,%
+commentstyle=\itshape,%
+fontadjust=true,%
+tabsize=2,%
+stringstyle=\itshape,%
+numbers=left,numberstyle=\footnotesize\ttfamily,%
+extendedchars=true,%
+inputencoding=utf8,%
+stepnumber=1,%
+frame=shadowbox,%
+rulesepcolor=\color{grey},%
+backgroundcolor=\color{white},%
+showspaces=false,%
+showstringspaces=false%
+aboveskip={1.5\baselineskip},%
+columns=fixed,%
+upquote=true,%
+}
+% Spezialvorgaben fuer das Zitieren von MATLAB Code.
+\newcommand{\citematlab}{\lstset{language=Matlab,%
+emph={if,elseif,else,end,for,while,function,return},%
+emphstyle=\bfseries\color{midnightblue},emph={[2]EigMitLambda,Zerol,CotKlTan
+,CotKlTanSpez,XsGrLambda,XsKlLambda,CotGrTan,ordnen,EvenSingTan,einord},%
+emphstyle={[2]\bfseries\color{olivedrab}},%
+emph={[3]zew,ew,l,L,lambda,ewsum,ewanz,phi,v1,v2},emphstyle={[3]\color{braun}}}}
+
+\crefname{lstlisting}{listing}{listings}
+\Crefname{lstlisting}{Listing}{Listings}
+\crefname{problem}{problem}{problems}
+\Crefname{problem}{Problem}{Problems}
+\crefname{notation}{notation}{notations}
+\Crefname{notation}{Notation}{Notations}
+\crefname{lm}{lemma}{lemmata}
+\Crefname{lm}{Lemma}{Lemmata}
+\crefname{assumptions}{assumptions}{assumptions}
+\Crefname{assumptions}{Assumptions}{Assumptions}
+\crefname{satzengl}{theorem}{theorems}
+\Crefname{satzengl}{Theorem}{Theorems}
+\crefname{satzengl*}{theorem}{theorems}
+\Crefname{satzengl*}{Theorem}{Theorems}
+\crefname{cor}{corollary}{corollaries}
+\Crefname{cor}{Corollary}{Corollaries}
+\crefname{df}{defintion}{defintions}
+\Crefname{df}{Defintion}{Defintions}
diff --git a/TP-TP-patch-test-case/plots/subsequent_errors.tex b/TP-TP-patch-test-case/plots/subsequent_errors.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2d98427949256aeedd7267e3b01644fce5673c46
--- /dev/null
+++ b/TP-TP-patch-test-case/plots/subsequent_errors.tex
@@ -0,0 +1,47 @@
+\documentclass[a4paper]{scrartcl}%scrartcl
+\input{praeambels_and_definitions/artikelpraeambel.tex}
+\input{praeambels_and_definitions/artikel_theoreme_und_farbe.tex}
+%\input{praeambels_and_definitions/special_symbols.tex}
+%%%% MAKROS %%%%%%%%%%%%% restriction
+\input{./praeambels_and_definitions/L-Schema_Paper_makros.tex}
+% set graphicspath
+\graphicspath{ {./} }
+
+\usepackage{pgfplotstable}
+
+\begin{document}
+    % Generation of Profile_Error_new.png
+    \tikzsetnextfilename{Subsequent_errors_t0}
+    \tikzset{external/force remake}
+    \begin{tikzpicture}
+% %     \path[draw,dashed,thick] (3.13,0) -- (3.13,5.2);
+        \begin{semilogyaxis}[%
+            width=\textwidth,
+            title={ Subsequent errors for $t = 0$,  $ h \approx 0.02$, $\tau = 2\cdot 10^{-4}$ },
+        % 	    axis lines=left,
+        % 	legend style = {draw=none},
+            legend cell align = left,
+            xlabel= {iterations},
+            ylabel= {subsequent errors},
+            xmin= 0,
+            xmax= 53,
+%             ymin= 0,
+%             ymax= 0.0003,
+        	grid= both, %major or minor
+            axis line style={-Latex[round]},
+            legend style={
+%                 anchor=north east,
+%                 at={(1,1)},
+                font=\tiny
+            },
+            legend entries={$\bigl\|p_l^i - p_l^{i-1}\bigr\|_{L^2(\dom_1)}$,
+                            $\bigl\|p_l^i - p_l^{i-1}\bigr\|_{L^2(\dom_2)}$},
+            ] % end of axis options %col sep=comma,
+            \addplot table [x=iteration, y=wetting] {../output/subdomain1_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%
+            \addplot table [x=iteration, y=wetting] {../output/subdomain2_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%
+%             \addplot table [col sep=comma] {../output/subdomain1_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%
+% %             \addplot table [col sep=comma] {../output/subdomain2_subsequent_iteration_error_for_phase_wetting_at_time0.csv};%        
+        \end{semilogyaxis}
+    \end{tikzpicture}  
+
+\end{document}