Commit ebe93a91 authored by Jonathan Klamroth's avatar Jonathan Klamroth 🏍
Browse files

use lualatex, add plantuml package, add example for algorithmic environment,...

use lualatex, add plantuml package, add example for algorithmic environment, fix headings, add separate file for hyphenation
parent ac8db011
TARGET = thesis
BUILD_DIR = build
LATEXMK_OPTIONS = -pdflatex="pdflatex --shell-escape %O %S"
LATEXMK_OPTIONS = -pdflatex="lualatex -interaction=nonstopmode --shell-escape %O %S"
SRC = $(TARGET).tex $(TARGET).bib
SRC += literatur.tex
SRC += preamble chapters
SRC += images docs code
......@@ -15,6 +14,7 @@ all: $(BUILD_DIR)/$(TARGET).pdf
.PHONY: prepare
prepare:
@[ ! -z "$$PLANTUML_JAR" ] || ( echo "error: PLANTUML_JAR environment variable not set" >&2 ; exit 1 )
[ -d $(BUILD_DIR) ] || mkdir $(BUILD_DIR)
cd $(BUILD_DIR) && for f in $(SRC) .latexmkrc ; do ln -sf $(PWD)/$$f . ; done
......
......@@ -6,7 +6,7 @@ Systeme](https://wwwvs.cs.hs-rm.de/material/index.html). Das Template ist
veraltet (es steht u. a. noch "Fachhochschule Wiesbaden" statt "Hochschule
RheinMain" drin). In diesem Repo ist eine überarbeitete Version des Templates zu
finden. Dabei sollte sowohl inhaltlich als auch technisch alles aktualisiert
sein. Das Makefile wurde neu geschrieben und nutzt nun `latexmk` und `pdflatex`.
sein. Das Makefile wurde neu geschrieben und nutzt nun `latexmk` und `lualatex`.
Diese beiden Programme müssen vorher installiert werden. Außerdem wurden alle
Dateien auf unix lineendings sowie UTF-8 Kodierung umgestellt. Es werden keine
Tabs verwendet und mit zwei Leerzeichen eingerückt. Entsprechende Einstellungen
......@@ -14,7 +14,13 @@ für vim sind als modeline am Ende jeder Quelldatei enthalten und werden so
automatisch erkannt. Das Paket `lstlisting` wurde durch
[`minted`](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted)
ersetzt. Daher muss zusätzlich Python und [Pygments](https://pygments.org/)
installiert sein.
installiert sein. Das Paket `plantuml` erlaubt es, UML-Diagramme mittels
PlantUML direkt im LaTeX-Code zu erstllen. Dafür muss vorher die JAR-Datei von
[PlantUML](https://plantuml.com/download) heruntergeladen werden. Anschließend
muss die Environment-Variable `PLANTUML_JAR` gesetzt werden und auf die
JAR-Datei zeigen. Am besten fügt man dazu `export
PLANTUML_JAR="$HOME/pfad/zu/plantuml.jar"` ans Ende der Datei `~/.bashrc` hinzu
(danach Terminal neustarten oder `. ~/.bashrc` ausführen).
## Übersicht der Befehle
......
......@@ -83,6 +83,50 @@ Klassen- oder Methodennamen in den Fließtext integrieren:
\end{verbatim}
%----------------------------------------------------------------------
% UML
%----------------------------------------------------------------------
\section{UML}
\label{ref:uml}
UML-Diagramme können mit der \code{plantuml}-Umgebung eingefügt werden:
\begin{plantuml}
@startuml
Alice -> Bob : Hello!
@enduml
\end{plantuml}
%----------------------------------------------------------------------
% ALGORITHMEN
%----------------------------------------------------------------------
\section{Algorithmen}
\label{ref:algorithm}
Pseudocode kann mit der \code{algorithmic}-Umgebung eingefügt werden:
\begin{algorithm}[h]
\begin{algorithmic}[1]
\Require ganze Zahl \( n \)
\Ensure Fakultät von \( n \)
\State \( res \gets 1 \)
\State \( i \gets 1 \)
\While{\( i \le n \)}
\State \( res \gets res \cdot i \)
\State \( i \gets i + 1 \)
\EndWhile
\State \Return \( res \)
\end{algorithmic}
\caption{Beispiel: Fakultät}
\label{alg:example}
\end{algorithm}
%----------------------------------------------------------------------
% TOOLS
%----------------------------------------------------------------------
......
......@@ -8,7 +8,7 @@
% Verwendete Pakete
\usepackage[ngerman]{babel} % Deutsche Besonderheiten (neue Rechtschreibung)
\usepackage[utf8]{inputenc} % UTF-8 (z.B. ß)
\usepackage[utf8]{luainputenc} % UTF-8 (z.B. ß)
\usepackage[T1]{fontenc} % T1-Schriften verwenden (statt CM)
\usepackage{textcomp} % Zusätzliche Textsymbole von T1
\usepackage{lmodern}
......@@ -29,6 +29,7 @@
\usepackage[normalem]{ulem} % Unterstreichung
\usepackage{xspace}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[bf,SL,BF]{subfigure}
\usepackage{array}
\usepackage{eurosym}
......@@ -37,15 +38,18 @@
\usepackage{datetime}
\usepackage[all]{nowidow}
\usepackage{xpatch}
\usepackage{plantuml}
% Die Algorithmus-Umgebung für Pseudocode
\usepackage{algorithmic}
\usepackage{algpseudocode}
\usepackage{algorithm}
\numberwithin{algorithm}{chapter}
\renewcommand{\listalgorithmname}{Verzeichnis der Algorithmen}
\renewcommand{\algorithmiccomment}[1]{// #1}
\floatname{algorithm}{Algorithmus}
\newcommand{\theHalgorithm}{\arabic{algorithm}}
\algrenewcommand\algorithmicrequire{\textbf{Eingabe:}}
\algrenewcommand\algorithmicensure{\textbf{Ausgabe:}}
%\setlength{\footnotemargin}{0pt}
% set font-style to computer modern sans-serif (cmss)
......@@ -53,7 +57,7 @@
%\renewcommand{\familydefault}{\sfdefault}
\usepackage[style=alphabetic]{biblatex}
\usepackage{biblatex}
\addbibresource{thesis.bib} % BibTeX-File
......@@ -106,7 +110,6 @@
% PDF Einstellungen
\usepackage{graphicx}
\pdfcompresslevel=9
\usepackage{url}
\usepackage[
pdftex,
......@@ -198,7 +201,7 @@
%-----------------------------------------------------------------------
% Spezielle TRENN-VORGABEN
\babelhyphenation{Tren-nung}
\input{preamble/hyphenation.tex}
......
\babelhyphenation{Tren-nung}
% vim: tabstop=2 softtabstop=2 shiftwidth=2 expandtab
% vim: textwidth=80
......@@ -56,9 +56,11 @@
% REFERENZEN
\pagestyle{plain} % Keine Titelzeile
\printbibliography
% ANHANG
\cleardoublepage % Neue Doppelseite beginnen
\appendix
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment