Skip to content

Commit

Permalink
feat: tikz-uml and a user defined flow chart
Browse files Browse the repository at this point in the history
Signed-off-by: Martin Dünkelmann <nc-duenkekl3@netcologne.de>
  • Loading branch information
MartinX3 committed Jun 20, 2024
1 parent ad3a61a commit 6a5e55e
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 7 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ jobs:
steps:
- name: Install TeX Live
run: sudo apt update && sudo apt install biber latexmk texlive texlive-bibtex-extra texlive-lang-german texlive-latex-extra texlive-luatex
- name: Install tikz-uml
run: |
wget https://perso.ensta-paristech.fr/~kielbasi/tikzuml/var/files/src/tikzuml-v1.0-2016-03-29.tbz -P /tmp
tar -xjf /tmp/tikzuml-v1.0-2016-03-29.tbz -C /tmp
mkdir -p ~/texmf/tex/latex/tikz-uml/
cp /tmp/tikzuml-v1.0-2016-03-29/tikz-uml.sty ~/texmf/tex/latex/tikz-uml/
texhash ~/texmf
- name: Install the arial font
run: |
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
Expand Down
60 changes: 54 additions & 6 deletions abschnitte/Auswertung.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,57 @@
\chapter{Auswertung}\label{ch:auswertung}


\section{Flowchart-Diagramm}\label{sec:flowchart-diagramm}
\enquote{Prozesse sollten wann immer möglich grafisch modelliert werden!}
Um textuell beschriebene Prozesse mit zugehörigen Varianten und Negativfällen besser zu verstehen, werden diese visualisiert und durch Beschreibungen ergänzt.
Dazu eignen sich \enquote{Swimlane}-Diagramme.
Diese gehören zur Gruppe der Prozessablaufdiagramme.


\begin{figure}[H]
Hier wird ein beispielhaftes Flussdiagramm aufgezeigt.
\begin{center}
\begin{tikzpicture}[node distance=2cm]
\node (start) [startstop] {Start};

\node (in1) [io, below of=start] {Input};
\draw [arrow] (start) -- (in1);

\node (pro1) [process, below of=in1] {Process 1};
\draw [arrow] (in1) -- (pro1);

\node (dec1) [decision, below of=pro1, yshift=-1cm] {Decision 1};
\draw [arrow] (pro1) -- (dec1);

\node (pro2a) [process, below of=dec1, yshift=-1.5cm] {Process 2a with a long text};
\draw [arrow] (dec1) -- node[anchor=east] {yes} (pro2a);

\node (out1) [io, below of=pro2a, yshift=-0.5cm] {Output};
\draw [arrow] (pro2a) -- (out1);

\node (subpro1) [subprocess=33mm, right of=dec1, xshift=2.5cm] {A very long subprocess};
\draw [arrow] (dec1) -- node[anchor=south] {no} (subpro1);

\node (stop) [startstop, below of=out1] {Stop};
\draw [arrow] (subpro1) |- (stop);
\draw [arrow] (out1) -- (stop);
\end{tikzpicture}
\caption{Beispiel Flowchart}\label{fig:beispiel-flowchart}
\end{center}
\end{figure}

\begin{landscape}
\section{Flowchart-Diagramme}\label{sec:flowchart-diagramme}
\enquote{Prozesse sollten wann immer möglich grafisch modelliert werden!}
Um textuell beschriebene Prozesse mit zugehörigen Varianten und Negativfällen besser zu verstehen, werden diese visualisiert und durch Beschreibungen ergänzt.
Dazu eignen sich \enquote{Swimlane}-Diagramme.
Diese gehören zur Gruppe der Prozessablaufdiagramme.
\end{landscape}
\begin{figure}[H]
\begin{center}
\begin{tabular}{|c|c||c|c|c|c|c|c|c|c|c||c||c|c|}
\hline
P & Q & $\neg$ & ( P & $\vee$ & Q ) & $\vee$ & ( $\neg$ & P & $\wedge$ & Q ) & $\equiv$ & $\neg$ & P \\ \hline \hline
0 & 0 & 1 & 0 & 0 & 0 & $\mathbf{1}$ & 1 & 0 & 0 & 0 & & $\mathbf{1}$ & 0 \\ \hline
0 & 1 & 0 & 0 & 1 & 1 & $\mathbf{1}$ & 1 & 0 & 1 & 1 & & $\mathbf{1}$ & 0 \\ \hline
1 & 0 & 0 & 1 & 1 & 0 & $\mathbf{0}$ & 0 & 1 & 0 & 0 & & $\mathbf{0}$ & 1 \\ \hline
1 & 1 & 0 & 1 & 1 & 1 & $\mathbf{0}$ & 0 & 1 & 0 & 1 & & $\mathbf{0}$ & 1 \\ \hline
\end{tabular}
\caption{Wahrheitstabelle: $\neg$ ( P $\vee$ Q ) $\vee$ ( $\neg$ P $\wedge$ Q ) $\equiv$ $\neg$ P}\label{fig:figureFormulaTable0}
\end{center}
\end{figure}
\end{landscape}
57 changes: 57 additions & 0 deletions aussehen/hbrs-inf-diagrams.sty
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{aussehen/hbrs-inf-diagrams}[2024/06/20 hbrs-inf-diagrams theming Package]

% Not in ctan, you need to install it yourself.
\RequirePackage{tikz-uml}

% Flussdiagramme konfigurieren
\usetikzlibrary{arrows, positioning, shapes.geometric}
\tikzstyle{arrow} = [->, >=stealth, thick]

\tikzstyle{decision} = [
diamond,
draw=black, fill=green!30,
minimum height=1cm, minimum width=3cm,
text centered, text width=2cm
]

\tikzstyle{io} = [
trapezium,
draw=black, fill=blue!30,
minimum height=1cm, minimum width=3cm,
text centered, text width=2cm,
trapezium left angle=70, trapezium right angle=110,
trapezium stretches=true
]

\tikzstyle{process} = [
rectangle,
draw=black, fill=orange!30,
minimum height=1cm, minimum width=3cm,
text centered, text width=2cm
]

\tikzstyle{startstop} = [
rectangle,
draw=black, fill=red!30,
minimum height=1cm, minimum width=3cm,
rounded corners,
text centered, text width=2cm
]

\newcommand\ppbb{path picture bounding box}
\tikzset{
subprocess/.style = {
rectangle,
align=flush center,
draw=black, fill=orange!30, semithick,
minimum height=1cm, minimum width=#1, inner xsep=3mm,
path picture={
\draw
([xshift=-2mm] \ppbb.north east) -- ([xshift=-2mm] \ppbb.south east)
([xshift=2mm] \ppbb.north west) -- ([xshift=2mm] \ppbb.south west);
},
text width =\pgfkeysvalueof{/pgf/minimum width}-2*\pgfkeysvalueof{/pgf/inner xsep}
},
subprocess/.default = 24mm
}
5 changes: 4 additions & 1 deletion aussehen/hbrs-inf.sty
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{aussehen/hbrs-inf}[2024/03/26 hbrs-inf theming Package]
\ProvidesPackage{aussehen/hbrs-inf}[2024/06/20 hbrs-inf theming Package]

% Enable the arial font
\RequirePackage{fontspec}
Expand Down Expand Up @@ -30,6 +30,9 @@
% Verbessert den gesamten Textfluss und behebt die meisten unschönen "Overflow"-Warnungen im Fließtext
\RequirePackage{microtype}

% Diagramme erstellen
\RequirePackage{aussehen/hbrs-inf-diagrams}

% Quellcode einfügen und highlighten
\RequirePackage[outputdir=out]{minted} % Needs python installed and to be loaded before csquotes

Expand Down

0 comments on commit 6a5e55e

Please sign in to comment.