summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/doc/tutorials
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tudscr/source/doc/tutorials
Initial commit
Diffstat (limited to 'macros/latex/contrib/tudscr/source/doc/tutorials')
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex227
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex204
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex3351
3 files changed, 3782 insertions, 0 deletions
diff --git a/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex b/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex
new file mode 100644
index 0000000000..92e081b5b6
--- /dev/null
+++ b/macros/latex/contrib/tudscr/source/doc/tutorials/mathswap.tex
@@ -0,0 +1,227 @@
+\documentclass[english,ngerman]{tudscrartcl}
+\ifpdftex{
+ \usepackage[T1]{fontenc}
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+}{
+ \usepackage{fontspec}
+}
+
+\usepackage{tudscrtutorial}
+\lstset{%
+ inputencoding=utf8,extendedchars=true,
+ literate=%
+ {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {~}{{\textasciitilde}}1 {ß}{{\ss}}1
+}
+
+\usepackage{mathswap}
+\usepackage{bookmark}
+
+\begin{document}
+\begin{Bundle}{\Package{mathswap}}
+\date{07.11.2016}
+\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\mailto{\tudscrmail}}}
+\title{Änderung der Trennzeichen im Mathematikmodus}
+\makeatletter
+\begingroup%
+ \def\and{, }%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \hypersetup{%
+ pdfauthor = {\@author},%
+ pdftitle = {\@title},%
+ pdfsubject = {Mathematiksatz in \hologo{LaTeXe}},%
+ pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},%
+ }%
+\endgroup%
+\markright{\@title}
+\makeatother
+\StartTutorial[%
+ Werden in einer wissenschaftlichen Abhandlung vielerlei Daten importiert und
+ beispielsweise tabellarisch dargestellt, kann es durchaus sein, dass diese
+ importierten Datensätze bezüglich der darin enthaltenen Gruppierungs- und
+ Dezimaltrennzeichen nicht dem Zahlenformat entsprechen, welches für die
+ verwendete Dokumentsprache normalerweise notwendig wäre.
+
+ Dieses Tutorial behandelt die typografischen Eigenheiten von Gruppierungs-
+ und Dezimaltrennzeichen bei der Angabe von Zahlen in einem
+ \hologo{LaTeXe}"=Dokument. Sowohl bei der Einbindung von externen Daten als
+ auch bei der Erstellung von fremdsprachigen Dokumenten ist dies ein durchaus
+ relevantes Thema. Um sich die manuelle Konvertierung der Daten zu ersparen,
+ kann alternativ dazu die Möglichkeit genutzt werden, dies mit Hilfe von
+ \hologo{LaTeXe} selbst zu bewerkstelligen.
+
+ Es wird beschrieben, wie das \TUDScript-Paket \Package{mathswap}'manual' für
+ diese Zwecke genutzt werden kann. Wird es in einer der \TUDScript-Klassen
+ geladen, so wird das angenommene Zahlenformat an die gewählte Dokumentsprache
+ angepasst. Alternativ dazu kann auch das Paket \Package{ionumbers}()'manual'
+ verwendet werden.
+]
+Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse als
+auch die für jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach sinnvollen
+Pakete geladen.
+%
+\begin{Preamble}
+\documentclass[english,ngerman]{tudscrartcl}% andere Klassen möglich
+\usepackage[T1]{fontenc}
+\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{}
+\usepackage{babel}
+\usepackage{microtype}
+
+\end{Preamble}
+%
+Zusätzlich wird das Paket \Package{mathswap}'manual' aus dem \TUDScript-Bundle
+geladen, welches die Änderung der Gruppierungs- und Dezimaltrennzeichen im
+Mathematikmodus ermöglicht. Dadurch werden einerseits Zahlen im zur jeweiligen
+Dokumentsprache gehörigen Format typografisch korrekt gesetzt. Andererseits ist
+es so möglich, Zahlen im englischen Format typografisch korrekt in deutschen
+Texten zu setzen~-- et vice versa.
+%
+\begin{Preamble}
+\usepackage{mathswap}
+\end{Preamble}
+%
+\addsec{Typografisch korrekte Ausgabe für deutschsprachige Dokumente}
+%
+Für dieses Tutorial wird zunächst angenommen, dass die wissenschaftlichen
+Abhandlung in deutscher Sprache verfasst wird. Ohne die Nutzung eines
+speziellen Paketes zur Ausgabeformatierung von Zahlen werden diese durch
+\hologo{LaTeXe} im mathematischen Modus bei der Angabe im deutschen
+Zahlenformat~-- Punkt~(\PValue{.}) als Gruppierungs- und Komma~(\PValue{,}) als
+Dezimaltrennzeichen~-- folgendermaßen ausgegeben:%
+\footnote{%
+ Da in der Präambel dieses Dokumentes das Paket \Package{mathswap}'manual'
+ bereits geladen wurde, wird mit \Macro{mathswapoff}'manual' auf das
+ Standardverhalten von \hologo{LaTeXe} geschaltet. Die Funktionalität wird mit
+ \Macro{mathswapon}'manual' wieder aktiviert.%
+}
+%
+\CodePreamble{%
+ Ohne \Package{mathswap}'manual' keine typografische Zifferngruppierung%
+}
+\begin{Trunk*}
+\mathswapoff
+\(4.523,58\)
+\mathswapon
+
+\end{Trunk*}
+%
+Mit dem Paket \Package{mathswap}'manual' wird das Ziel verfolgt, unabhängig vom
+genutzten Zahlenformat für die Eingabe, eine typografisch korrekte Ausgabe zu
+erzeugen. Wird das Paket zusammen mit einer \TUDScript-Klasse verwendet, werden
+die Gruppierungs- und Dezimaltrennzeichen bei der Eingabe im Mathematikmodus
+sprachabhängig interpretiert. Bei der Nutzung einer \KOMAScript-Dokumentklasse
+respektive einer \hologo{LaTeX}-Standardklasse werden diese im Mathematikmodus
+immer nach dem englischen Zahlenformat~-- Komma~(\PValue{,}) als Gruppierungs-
+und Punkt~(\PValue{,}) als Dezimaltrennzeichen~-- betrachtet.
+
+Da dieses Dokument mit einer \TUDScript-Klasse (\TUDClassName) gesetzt wird und
+die Spracheinstellung~\PValue{ngerman} gewählt wurde, wird für die folgenden
+Zahlen das deutsche Eingabeformat angenommen. Wird nun die bereits zuvor
+verwendete Zahl bei aktiver Funktionalität von \Package{mathswap}'manual' im
+Mathematikmodus angegeben werden, so wird diese den typografischen Konventionen
+folgend~-- halbes Leerzeichen zur Zahlengruppierung und Komma ohne umgebenden
+Leerraum als Dezimaltrennzeichen~-- entsprechend ausgegeben:
+%
+\CodePreamble{%
+ Zifferngruppierung korrekt (Spracheinstellung~\PValue{ngerman})%
+}
+\begin{Trunk*}
+\(4.523,58\)
+
+\end{Trunk*}
+%
+Wird die gleiche Zahl in englischer Formatierung angegeben, funktioniert dies
+nicht mehr:
+%
+\CodePreamble{%
+ Zifferngruppierung falsch (Spracheinstellung~\PValue{ngerman})%
+}
+\begin{Trunk*}
+\(4,523.58\)
+
+\end{Trunk*}
+%
+Um nun Zahlen, welche in englischer Formatierung eingegeben oder importiert
+werden, in deutschsprachigen Dokumenten typografisch korrekt auszugeben, können
+die beiden Befehle \Macro{commaswap}[\PParameter{\dots}]'manual' sowie
+\Macro{dotswap}[\PParameter{\dots}]'manual' genutzt werden. Mit diesen lässt
+sich festlegen, wie die im Mathematikmodus zur Zifferngruppierung eingegeben
+Trennzeichen~-- Komma~(\PValue{,}) und Punkt~(\PValue{.})~-- substituiert
+werden sollen, um damit die gewünschte Typografie zu erhalten. Die Argumente
+der beiden Befehle geben also an, wodurch im mathematischen Modus Komma und
+Punkt bei der Ausgabe ersetzt werden sollen.
+
+Im englischen Zahlenformat wird bei der Eingabe das Komma~(\PValue{,}) als
+Gruppierungs- und der Punkt~(\PValue{.}) als Dezimaltrennzeichen genutzt. Bei
+der Ausgabe für deutschsprachige Dokumente nach den typografischen Konventionen
+muss folglich das Komma durch ein halbes Leerzeichen (\Macro*{,}) ersetzt
+werden. Dies lässt sich mit \Macro{commaswap}[\PParameter{\Macro*{,}}]
+bewerkstelligen. Der Punkt ist demzufolge mit einem Komma durch die Angabe von
+\Macro{dotswap}[\PParameter{,}] zu ersetzen:%
+\footnote{%
+ Die Verwendung von \Macro*{begingroup} und \Macro*{endgroup} führt hierbei
+ dazu, dass die Änderungen der beiden Trennzeichen nur lokal innerhalb dieser
+ Gruppe erfolgt.
+}
+%
+\CodePreamble{%
+ Englisches Zahlenformat in korrekter deutscher Zifferngruppierung%
+}
+\begin{Trunk*}
+\begingroup
+ \commaswap{\,}
+ \dotswap{,}
+ \(4,523.58\)
+\endgroup
+
+\end{Trunk*}
+%
+Somit können in einem deutschsprachigen Dokument Zahlen im englischen Format
+problemlos verwendet beziehungsweise importiert und dennoch typografisch
+korrekt gesetzt werden.
+%
+\addsec{Typografisch korrekte Ausgabe für englischsprachige Dokumente}
+%
+Wird das Paket \Package{mathswap}'manual' zusammen mit einer \TUDScript-Klasse
+verwendet, werden die Gruppierungs- und Dezimaltrennzeichen im Mathematikmodus
+sprachabhängig definiert. Wird also die Dokumentsprache auf \PValue{english}
+gesetzt, so werden die Trennzeichen standardmäßig nach dem englischsprachigen
+Zahlenformat interpretiert.
+%
+\CodePreamble{%
+ Zifferngruppierung (Spracheinstellung~\PValue{english})%
+}
+\begin{Trunk*}
+\begingroup
+ \selectlanguage{english}%
+ \(4,523.58\)\newline
+ \(4.523,58\)
+\endgroup
+
+\end{Trunk*}
+%
+Für englischsprachige Dokumente wird für die Auszeichnung der Gruppierung von
+Ziffern ebenfalls ein halbes Leerzeichen und als Dezimaltrennzeichen ein Punkt
+verwendet. Werden nun Zahlen in der deutschen Formatierung eingelesen, so muss
+folglich das Komma durch einen Punkt \Macro{commaswap}[\PParameter{.}] und der
+Punkt mit \Macro{dotswap}[\PParameter{\Macro*{,}}] durch ein halbes Leerzeichen
+ersetzt werden:%
+%
+\CodePreamble{%
+ Deutsches Zahlenformat in korrekter englischer Zifferngruppierung%
+}
+\begin{Trunk*}
+\begingroup
+ \selectlanguage{english}%
+ \commaswap{.}
+ \dotswap{\,}
+ \(4.523,58\)
+\endgroup
+\end{Trunk*}
+%
+\FinishTutorial
+\ListOfToDo
+\end{Bundle}
+\end{document}
diff --git a/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex b/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex
new file mode 100644
index 0000000000..9f9625ab7b
--- /dev/null
+++ b/macros/latex/contrib/tudscr/source/doc/tutorials/mathtype.tex
@@ -0,0 +1,204 @@
+\documentclass[english,ngerman]{tudscrartcl}
+\ifpdftex{
+ \usepackage[T1]{fontenc}
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+}{
+ \usepackage{fontspec}
+}
+
+\usepackage{tudscrtutorial}
+\lstset{%
+ inputencoding=utf8,extendedchars=true,
+ literate=%
+ {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {~}{{\textasciitilde}}1 {ß}{{\ss}}1
+}
+
+\usepackage{mathtools}
+\usepackage{bookmark}
+
+\begin{document}
+\date{07.11.2016}
+\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\mailto{\tudscrmail}}}
+\title{Ein Beitrag zum mathematischen Satz in \hologo{LaTeX}}
+\makeatletter
+\begingroup%
+ \def\and{, }%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \hypersetup{%
+ pdfauthor = {\@author},%
+ pdftitle = {\@title},%
+ pdfsubject = {Mathematiksatz in \hologo{LaTeXe}},%
+ pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},%
+ }%
+\endgroup%
+\markright{\@title}
+\makeatother
+\StartTutorial[%
+ Im mathematischen Satz sollten lediglich Formelzeichen für physikalische
+ Größen und Variablen sowie Funktions- und Operatorzeichen mit frei wählbarer
+ Bedeutung kursiv geschrieben werden. Dagegen werden Einheiten und ihre
+ Vorsätze, Zahlen, Funktions- und Operatorzeichen mit feststehender Bedeutung
+ sowie Chemische Elemente und Verbindungen aufrecht gesetzt. Weiterhin werden
+ Indizes, welche ein Formelzeichen näher beschreiben, ebenfalls aufrecht
+ gesetzt. Dieses Tutorial zeigt, wie mit einfachen Mitteln die Auszeichnung
+ von beschreibenden Indizes bei Formelzeichen typografisch korrekt erfolgen
+ kann.
+]
+Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse als
+auch die für jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach sinnvollen
+Pakete geladen.
+%
+\begin{Preamble}
+\documentclass[ngerman]{tudscrartcl}% andere Klassen sind möglich
+\usepackage[T1]{fontenc}
+\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{}
+\usepackage{babel}
+\usepackage{microtype}
+
+\end{Preamble}
+%
+Zusätzlich wird das Paket \Package{amsmath} geladen, welches unter anderem die
+in diesem Tutorial verwendeten Mathematikumgebungen \Environment{equation},
+\Environment{gathered} und \Environment{aligned} zur Verfügung stellt.
+%
+\begin{Preamble}
+\usepackage{amsmath}
+\end{Preamble}
+%
+Zunächst wird ein kurzes Beispiel gegeben, welches für die nachfolgenden
+Ausführungen als Grundlage dienen soll.
+%
+\CodePreamble{}%
+\begin{Trunk*}
+\begin{equation*}
+\begin{gathered}
+M_{EM} = \frac{M_{Rad}}{i_g \cdot i_A} - M_{VM} \\
+\textrm{für }
+\begin{aligned}
+0\leq M_{VM}\leq M_{VMmax} \\
+M_{EMmin}\leq M_{EM}\leq M_{EMmax}
+\end{aligned}
+\end{gathered}
+\end{equation*}
+
+\end{Trunk*}
+%
+Ein guter Mathematiksatz ist in \hologo{LaTeX} durchaus Sisyphusarbeit. Wenn
+mikrotypografisch alles richtig gemacht werden soll, gibt es einiges zu
+beachten. Generell gilt, dass Variablen kursiv oder geneigt, Bezeichnungen und
+Konstanten aufrecht gesetzt werden. Um beschreibende Indizes formal richtig zu
+setzen, ist ohne weitere Maßnahmen die exzessive Nutzung der Befehle
+\Macro{mathrm}[\PParameter{\dots}] und \Macro{mathit}[\PParameter{\dots}]
+respektive \Macro{mathnormal}[\PParameter{\dots}] wohl oder übel notwendig.
+Aus dem vorhergehenden Beispiel wird mit ziemlich viel Anpassungsarbeit:
+%
+\CodePreamble{}%
+\begin{Trunk*}
+\begin{equation*}
+\begin{gathered}
+M_\mathrm{EM} = \frac{M_\mathrm{Rad}}{i_g \cdot i_A} - M_\mathrm{VM} \\
+\textrm{für }
+\begin{aligned}
+0\leq M_\mathrm{VM}\leq M_\mathrm{VM_{max}} \\
+M_\mathrm{EM_{min}}\leq M_\mathrm{EM}\leq M_\mathrm{EM_{max}}
+\end{aligned}
+\end{gathered}
+\end{equation*}
+
+\end{Trunk*}
+%
+Augenscheinlich ist dabei sehr viel Handarbeit notwendig. Allerdings lässt sich
+dies relativ gut vereinfachen. Zu diesem Zwecke wird für das Setzen von Indizes
+bei Formelzeichen der Befehl \Macro{ind}[\PParameter{\dots}] definiert. Danach
+können~-- wenn dies für nötig und sinnvoll erachtet wird~-- noch zusätzliche
+Befehle für häufig verwendete Ausdrücke definiert werden. Als Beispiel wird das
+schon eben genutzte Drehmoment \ensuremath{M} verwendet. Hierfür wäre folgende
+Definition möglich:%
+\footnote{%
+ Dabei sorgt \Macro*{kern.03em} für das Einfügen eins kleinen Abstandes
+ zwischen kursiver Variable und dem aufrechten Index. Abhängig von der
+ verwendeten Schriftart sollte dieser Abstand leicht angepasst werden.
+}
+%
+\CodeHook{\let\newcommand\renewcommand}
+\begin{Trunk*}
+\newcommand*{\ind}[1]{\ensuremath{\kern.03em_\mathrm{#1}}}
+\newcommand*{\M}[1]{\ensuremath{M\ind{#1}}}
+
+\end{Trunk*}
+\CodePreamble{}
+\begin{Trunk*}
+\begin{equation*}
+\begin{gathered}
+\M{EM} = \frac{\M{Rad}}{i_g \cdot i_A} - \M{VM} \\
+\textrm{für }
+\begin{aligned}
+0\leq \M{VM}\leq \M{VM_{max}} \\
+\M{EM_{min}}\leq \M{EM}\leq \M{EM_{max}}
+\end{aligned}
+\end{gathered}
+\end{equation*}
+
+\end{Trunk*}
+%
+Ein gewünschter Nebeneffekt der vorhergehenden Definition ist, dass dieser
+Befehl aufgrund der Verwendung von \Macro{ensuremath}[\PParameter{\dots}] nun
+auch im Fließtext verwenden werden kann. Beispielsweise lässt sich im Textteil
+das induzierten Moment einer Verbrennungskraftmaschine~\M{VM_{ind}} angeben
+(\Macro{M}[\PParameter{VM\_\PParameter{ind}}]).
+
+Für noch mehr Bequemlichkeit bei der Nutzung kann eine Lösung gefunden werden,
+mit welcher~-- im Gegensatz zur Standardbefehlsdefinition in \hologo{LaTeXe}~--
+\textbf{nach} dem obligatorischen noch ein optionales Argument für einen
+zusätzlichen Subindex angegeben werden kann, um damit der natürlichen
+Schreibweise zu entsprechen. Es wird der Befehl \Macro{M} so definiert, das
+dieser entweder mit \Macro{M}[\Parameter{Index}] oder in der Variante
+\Macro{M}[\Parameter{Index}\OParameter{Indexindex}] mit nachgelagertem
+optionalen Argument genutzt werden kann.
+%
+\CodeHook{\let\newcommand\renewcommand}
+\begin{Trunk*}
+\makeatletter
+\renewcommand*{\M}[1]{\@ifnextchar[{\o@M{#1}}{\n@M{#1}}}
+\newcommand*{\n@M}{}
+\newcommand*{\o@M}{}
+\def\n@M#1{\ensuremath{M\ind{#1}}}
+\def\o@M#1[#2]{\ensuremath{M\ind{#1_{#2}}}}
+\makeatother
+
+\end{Trunk*}
+%
+Somit vereinfacht sich das zu Beginn vorgestellte Beispiel recht deutlich:
+%
+\begin{Trunk*}
+\begin{equation*}
+\begin{gathered}
+\M{EM} = \frac{\M{Rad}}{i_g \cdot i_A} - \M{VM} \\
+\textrm{für }
+\begin{aligned}
+0\leq \M{VM}\leq \M{VM}[max] \\
+\M{EM}[min]\leq \M{EM}\leq \M{EM}[max]
+\end{aligned}
+\end{gathered}
+\end{equation*}
+\end{Trunk*}
+%
+Das Definieren von \Macro{M}[\Parameter{Index}\OParameter{Indexindex}] mit
+angehängtem optionalen Argument ist ehrlich gesagt nur ein wenig Spielerei und
+soll zeigen, wie dies prinzipiell mit \hologo{LaTeXe}"=Mitteln funktioniert.
+Das Paket \Package{xparse} könnte alternativ zum hier vorgestellten Vorgehen
+für die Befehlsdeklaration des optionalen \textbf{nach} dem obligatorischen
+Argument genutzt werden. Damit würde die Befehlsdeklaration für \Macro{M}
+folgendermaßen lauten:
+\begin{Hint}
+\NewDocumentCommand \M { m o } {%
+ \ensuremath{M\ind{#1\IfValueT{#2}{_{#2}}}}%
+}
+\end{Hint}
+%
+\FinishTutorial
+\ListOfToDo
+\end{document}
diff --git a/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex b/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex
new file mode 100644
index 0000000000..30b1399ce8
--- /dev/null
+++ b/macros/latex/contrib/tudscr/source/doc/tutorials/treatise.tex
@@ -0,0 +1,3351 @@
+\RequirePackage{fix-cm}
+\documentclass[%
+ english,ngerman,%
+ cdgeometry=no,DIV=12,automark%
+]{tudscrartcl}
+\ifpdftex{
+ \usepackage[T1]{fontenc}
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+}{
+ \usepackage{fontspec}
+}
+
+\usepackage{tudscrtutorial}
+\lstset{%
+ inputencoding=utf8,extendedchars=true,
+ literate=%
+ {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {~}{{\textasciitilde}}1 {ß}{{\ss}}1
+}
+\lstset{escapechar=§}
+
+\usepackage{lmodern}
+\TUDoptions{cdfont=false}
+\KOMAoptions{headings=normal}
+
+\usepackage{tudscrsupervisor}
+\usepackage{array}
+\usepackage{tabu}
+\usepackage{tabularx}
+\usepackage{tabulary}
+\usepackage{booktabs}
+\usepackage{siunitx}
+\sisetup{%
+ locale = DE,%
+ input-decimal-markers={,},%
+ input-ignore={.},%
+ group-separator={\,},%
+ group-minimum-digits=3%
+}
+\usepackage{xfrac}
+\AfterPackage*{hyperref}{%
+ \usepackage[%
+ automake,%
+ xindy={language=german-din},%
+ acronym,%
+ symbols,%
+ nomain,%
+ translate=babel,%
+ nogroupskip,%
+ nostyles,%
+ ]{glossaries}
+ \renewcommand*{\glsglossarymark}[1]{}
+ \newignoredglossary{abbreviation}
+ \newcommand*\newabbreviation[4][]{%
+ \newacronym[type=abbreviation,#1]{#2}{#3}{#4}%
+ }%
+ \makeglossaries
+}
+\usepackage{csquotes}
+\usepackage[backend=biber,style=alphabetic]{biblatex}
+\addbibresource{\jobname.bib}
+\DefineBibliographyStrings{ngerman}{urlseen = {Am:}}
+
+\usepackage{enumitem}
+
+\usepackage{caption}
+\DeclareCaptionSubType[alph]{figure}
+\DeclareCaptionSubType[alph]{table}
+\usepackage{floatrow}
+\renewcommand{\floatpagefraction}{0.7}
+
+\usepackage{tikz}
+\usetikzlibrary{chains}
+\usetikzlibrary{decorations.markings}
+\tikzset{on grid}
+
+\usepackage{pstricks,pst-node}
+
+\makeatletter
+\newcommand*\pcolumnfuzz[1]{\pretocmd{\@endpbox}{\hfuzz=#1}{}{}}
+\makeatother
+
+\usepackage{bookmark}
+
+\begin{filecontents}{\jobname.bib}
+@book{talbot2012,
+ author = {Nicola L. C. Talbot},
+ title = {{\LaTeX} for Complete Novices},
+ publisher = {Dickimaw Books},
+ series = {Dickimaw {\LaTeX} Series},
+ volume = {1},
+ isbn = {978-1-909440-00-5},
+ address = {Norfolk, UK},
+ year = {2012},
+ url = {http://www.dickimaw-books.com/latex/novices/},
+ urldate = {2014-12-01},
+}
+@book{talbot2013,
+ author = {Nicola L. C. Talbot},
+ title = {Using {\LaTeX} to Write a PhD Thesis},
+ publisher = {Dickimaw Books},
+ series = {Dickimaw {\LaTeX} Series},
+ volume = {2},
+ isbn = {978-1-909440-02-9},
+ address = {Norfolk, UK},
+ year = {2013},
+ url = {http://www.dickimaw-books.com/latex/thesis/},
+ urldate = {2014-12-01},
+}
+@online{reichert2012,
+ author = {Reichert, Axel and Voß, Herbert},
+ title = {\LaTeX~-- Satz von Tabellen},
+ organization = {Freie Universität Berlin},
+ date = {2012-01-12},
+ url = {http://userpage.fu-berlin.de/latex/Materialien/tabsatz.pdf},
+ urldate = {2014-12-01}
+}
+@article{neubauer1996,
+ author = {Marion Neubauer},
+ title = {Feinheiten bei wissenschaftlichen Publikationen~--
+ Mikrotypographie"=Regeln, Teil~I},
+ journaltitle = {Die \TeX{}nische Komödie},
+ year = {1997},
+ month = {2},
+ volume = {4/96},
+ pages = {23-40},
+ url = {http://www.dante.de/tex/Dokumente/dtk-neubauer.pdf},
+ urldate = {2014-12-01},
+}
+@article{neubauer1997,
+ author = {Marion Neubauer},
+ title = {Feinheiten bei wissenschaftlichen Publikationen~--
+ Mikrotypographie"=Regeln, Teil~II},
+ journaltitle = {Die \TeX{}nische Komödie},
+ year = {1997},
+ month = {5},
+ volume = {1/97},
+ pages = {25--44},
+ url = {http://www.dante.de/tex/Dokumente/dtk-neubauer.pdf},
+ urldate = {2014-12-01},
+}
+@online{struckmann2007,
+ author = {Struckmann, Werner},
+ title = {Einige typographische Grundregeln und ihre Umsetzung in \LaTeX},
+ date = {2007-09-03},
+ url = {http://www2.informatik.hu-berlin.de/sv/lehre/typographie.pdf},
+ urldate = {2014-12-01}
+}
+@online{bier2009,
+ author = {Bier, Christoph},
+ title = {typokurz~-- Einige wichtige typografische Regeln},
+ date = {2009-05-21},
+ url = {http://zvisionwelt.wordpress.com/downloads/#typokurz},
+ urldate = {2014-12-01}
+}
+\end{filecontents}
+
+
+\begin{document}
+\date{29.03.2017}
+\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\mailto{\tudscrmail}}}
+\title{%
+ Ein Anwenderleitfaden für das Erstellen einer wissenschaftlichen Abhandlung%
+}
+\makeatletter
+\begingroup%
+ \def\and{, }%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \hypersetup{%
+ pdfauthor = {\@author},%
+ pdftitle = {\@title},%
+ pdfsubject = {Tutorial für \hologo{LaTeXe}},%
+ pdfkeywords = {LaTeX, \TUDScript, Tutorial, Anwenderleitfaden},%
+ }%
+\endgroup%
+\makeatother
+\StartTutorial[%
+ Der Versuch, ein allumfassendes Tutorial für eine wissenschaftliche Arbeit
+ zur Verfügung zu stellen gleicht der beschwerlichen Suche nach einer
+ eierlegenden Wollmilchsau. Es ist quasi nicht möglich, alle potenziellen
+ Anforderungen an eine wissenschaftliche Arbeit in einem Dokument abzudecken,
+ insbesondere weil es für diese fast von jedem Lehrstuhl mehr oder weniger
+ unterschiedliche Vorgaben zu Formatierung und Layout gibt. Dennoch soll hier
+ versucht werden, einen Großteil der für gewöhnlich auftretenden Erfordernisse
+ zu bearbeiten.
+
+ Dieses Tutorial hat \emph{nicht} die Intention, \hologo{LaTeX}"=Einsteigern
+ sämtliche Grundlagen zu erläutern. Vielmehr wird davon ausgegangen, dass Sie
+ bereits erste Erfahrungen mit \hologo{LaTeXe} gesammelt haben. Dennoch wird
+ versucht, alle Schritte möglichst leicht nachvollziehbar zu gestalten. Sollte
+ Ihnen beim Lesen und Durcharbeiten des Tutorials etwas auf- oder missfallen,
+ so dürfen Sie mich gerne per E"~Mail kontaktieren. Auch Anregungen und
+ Wünsche dürfen sie mir gegenüber gerne kommunizieren.
+
+ Für absolute Neueinsteiger gibt es einige freie Tutorials, welche die ersten
+ Schritte mit \hologo{LaTeXe} stark erleichtern. Nicola~L.~C.~Talbot stellt
+ sehr gute Tutorials für
+ \hrfn{http://www.dickimaw-books.com/latex/novices/}{\hologo{LaTeX}-Novizen}
+ \cite{talbot2012} sowie
+ \hrfn{http://www.dickimaw-books.com/latex/thesis/}{Dissertationen}
+ \cite{talbot2013} zur freien Verfügung.
+
+ In erster Linie ist dieser Leitfaden für Anwender gedacht, die für ihre
+ wissenschaftliche Arbeit eine \TUDScript"=Dokumentklasse verwenden wollen.
+ Das vorgestellte Vorgehen kann jedoch~-- natürlich mit gewissen Abstrichen~--
+ auch mit anderen Klassen, insbesondere denen aus dem \KOMAScript"=Bundle,
+ umgesetzt werden. Viele der hier im Folgenden verwendeten Optionen und
+ Befehle aus dem \TUDScript-Bundle werden lediglich sporadisch in ihrer
+ Grundfunktion erläutert. Allerdings lassen sich detaillierte Erläuterung über
+ die türkisfarbigen Hyperlinks zum \tudhyperref{}{\TUDScript-Handbuch}
+ jederzeit sehr einfach öffnen. Des Weiteren wird auf eine Vielzahl von
+ Paketen verwiesen, deren Dokumentation über die magentafarbigen Links im
+ \CTAN* geöffnet werden kann. Alternativ kann dies auch über das Terminal
+ respektive die Kommandozeile mit dem Aufruf \Path{texdoc~\PName{Paket}}
+ direkt lokal erfolgen. Ein Großteil dieser Pakete wird zusätzlich kurz im
+ \TUDScript-Handbuch beschrieben.
+
+ Der Anwenderleitfaden muss nicht zwingend vollständig nachvollzogen werden.
+ Dieser ist in einzelne Abschnitte untergliedert, damit Sie sich bestimmte
+ Aspekte erarbeiten können. Sollten Querbezüge zu den einzelnen Abschnitten
+ bestehen, werden diese auch genannt. Zu guter Letzt findet sich am Ende
+ dieses Dokumentes das komplette Tutorial als ausführbarer Quelltext.
+]
+\tableofcontents
+\listoffigures
+\listoftables
+
+
+
+\section{Einleitung}
+\label{sec:introduction}%
+%
+Zu Beginn werden einige Pakete geladen, die quasi in jedem neu erstellten
+Dokument verwendet werden sollten. Alle weiteren in diesem Tutorial genutzten
+und/oder empfohlenen Pakete werden in den relevanten Abschnitten des Tutorials
+genauer erläutert.
+
+Beim Laden der Klasse mit \Macro*{documentclass} können Sie globale Optionen
+angeben. Diese werden sowohl an die Klasse selbst weitergereicht als auch allen
+in der Präambel geladenen Pakete zur Verfügung gestellt. Falls das Paket
+\Package{babel} für die Sprachauswahl im Dokument verwendet wird, sollten auf
+alle Fälle die verwendeten Sprachen als Klassenoption angegeben werden, wobei
+die zuletzt angegebene als aktuelle Sprache aktiviert wird. Dadurch werden
+diese nicht nur an das Paket \Package{babel} sondern auch an andere Pakete
+übergeben, welche sprachspezifische Einstellungen vornehmen.
+%
+\begin{Preamble}
+\documentclass[english,ngerman]{tudscrreprt}
+\usepackage{babel}
+\end{Preamble}
+%
+Mit dem Paket \Package{fontenc} lässt sich die Kodierung der für die Ausgabe
+der verwendeten Schriften im Dokument spezifizieren, wobei die europäische
+Zeichenkodierung mit der Option~\Option{T1}(\Package{fontenc}) aktiviert wird.
+Kommt mit \Engine{LuaLaTeX} oder \Engine{XeLaTeX} ein Unicode"=Textsatzsystem
+zum Einsatz, sollte besser das Paket \Package{fontspec} geladen werden.
+
+Weiterhin kann die Eingabekodierung der kompilierten Datei eingestellt werden.
+Diese ist standardmäßig \PValue{utf8}. Bei der Verwendung von \Engine{pdfLaTeX}
+sind auch andere Kodierungen möglich.%
+\footnote{%
+ Sollte die Datei in einer anderen Kodierung gespeichert sein, so kann das
+ Paket \Package{selinput} genutzt werden, um die Kodierung automatisch zu
+ erkennen. Alternativ lässt sich die Eingabekodierung auch mit dem Paket
+ \Package{inputenc} auch manuell festgelegen. In beiden Fällen sollte das
+ Paket \Package{fontenc} \emph{vorher} geladen worden sein.
+}
+
+Wurde ein Sprachpaket für die deutsche Sprache geladen (\Package{babel} oder
+\Package{polyglossia}), so werden für \Engine{LuaLaTeX} und \Engine{XeLaTeX}
+erweiterte Trennmuster verwendet. Für \Engine{pdfLaTeX} lässt sich eine
+wesentlich verbesserte Worttrennung für die deutsche Sprache mit dem Paket
+\Package{hyphsubst} aktivieren. In \autoref{sec:hyphenation} können Sie weitere
+Informationen zur Verwendung von \Package{hyphsubst} sowie zum Thema
+\emph{Worttrennung} finden.
+%
+\begin{Preamble}
+\ifpdftex{
+ \usepackage[T1]{fontenc}
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+}{
+ \usepackage{fontspec}
+}
+\end{Preamble}
+%
+Für die \KOMAScript-Klassen wird außerdem das Paket \Package{scrhack}
+bereitgestellt. Dieses behebt einige Probleme bei der Kompatibilität mit
+anderen Paketen bezüglich des Erstellens von Verzeichnissen. Deshalb sollte
+dieses bei Bedarf frühzeitig in der Präambel geladen werden.
+%
+\begin{Preamble}
+\usepackage{scrhack}
+\end{Preamble}
+%
+Damit sind die allgemein notwendigen Pakete eingebunden. Es werden zwar weitere
+benötigt, diese werden allerdings in den einzelnen Abschnitten dieses Tutorials
+aufgeführt.
+
+
+
+\section{Makrotypografie}
+\subsection{Satzspiegel}
+Gleich zu Beginn und bevor das eigentliche Verfassen der Arbeit beginnt, sollte
+sich der Verfasser Gedanken über das zu nutzenden Layout und den Satzspiegel
+machen, um bei der Finalisierung des Dokumentes keine böse Überraschung bei
+Seitenumbrüchen oder der Position von Gleitobjekten zu erleben.
+
+Zuerst gilt es zu entscheiden, ob das Dokument einseitig oder beidseitig
+gesetzt werden soll. Ist Letzteres der Fall, so sollte die \KOMAScript-Option
+\Option{twoside}(\Package{typearea}) als Klassenoption angegeben werden. Im
+nächsten Schritt ist der zu verwendende Satzspiegel festzulegen. Hierfür kann
+die \TUDScript-Option \Option{cdgeometry}'manual' verwendet werden, welche im
+\TUDScript-Handbuch beschrieben ist. Normalerweise wird das Dokument im
+asymmetrischen Layout des \CDs gesetzt.
+%
+Dieses Verhalten wird mit \Option*{cdgeometry=false}'manual' deaktiviert und
+der Satzspiegel durch das Paket \Package{typearea} nach typografischen
+Gesichtspunkten konstruiert. Dabei ist für dessen Aufteilung maßgeblich die
+\KOMAScript-Option \Option{DIV}(\Package{typearea}) verantwortlich, mit der
+\KOMAScript"=Option \Option{BCOR}(\Package{typearea}) wird die Bindekorrektur
+angegeben. Diese wird in \autoref{sec:bcor} erläutert.
+
+\subsection{Änderung des Zeilenabstandes (Durchschuss)}
+Auf eine Änderung des Zeilenabstandes sollte aus typografischer Sicht bei der
+Verwendung einer Standardschrift im Normalfall verzichtet werden. Die Gründe
+hierfür werden im Handbuch von \TUDScript bei der Vorstellung des Paketes
+\Package{setspace} erklärt, welches für dieses Anliegen den Befehl
+\Macro{setstretch}[\Parameter{Faktor}](\Package{setspace}) bereitstellt. Wird
+die \OpenSans-Hausschrift der \TnUD verwendet, sollte der Faktor im Bereich
+\PValue{1.05}--\PValue{1.1} liegen.
+
+\subsection{Bindekorrektur}
+\label{sec:bcor}%
+%
+Falls die Arbeit nach der Fertigstellung gebunden werden soll, so ist auf den
+notwendigen Binderand zu achten, quasi der Teil einer Seite, welcher durch die
+Bindung \enquote{verschwindet} und nicht mehr als sichtbarer Teil der Seite
+vorhanden ist. Als Faustregel gilt, dass die erforderliche Bindekorrektur in
+etwa der halben Höhe des Buchblocks entsprechen sollte. Dessen Höhe wiederum
+ist abhängig von der Anzahl der Seiten sowie der Papierdichte.
+
+Wird qualitativ höherwertiges Papier mit einer Dichte von \SI{100}{g/m^2}
+verwendet, so entsprechen 100~Blatt einer Buchblockhöhe von zirka~\SI{12}{mm}.
+Dementsprechend wäre in diesem Beispiel eine Bindekorrektur von~\SI{6}{mm}
+notwendig, die sich mit der Klassenoption \Option*{BCOR=6mm} einstellen ließe.
+Sollte die erwartete Seitenzahl davon abweichen, kann die einzustellende
+Bindekorrektur linear skaliert werden. Für differierende Papierdichten sollte
+die Buchblockhöhe für die geschätzte Gesamtseitenanzahl in Erfahrung gebracht
+werden.
+
+
+
+\section{Umschlagseite und Titel}
+Die Umschlagseite und der Titel sind sich in ihrer Gestalt sehr ähnlich.
+Allerdings gibt es ein paar kleine Unterschiede. Einerseits werden auf dem
+Cover weniger Informationen als auf der Titelseite ausgegeben. Andererseits
+wird der Titel immer im Satzspiegel des restlichen Dokumentes ausgegeben,
+wohingegen die Umschlagseite~-- ohne weitere Optionen~-- im asymmetrischen
+Layout des \CDs der \TnUD erscheint. Wie dieses Verhalten geändert werden kann,
+ist im Handbuch für \Macro{makecover}'manual' erläutert. Die resultierende
+Ausgabe des nachfolgenden Quelltextauszugs ist in \autoref{fig:title} zu sehen
+und stellt eine mögliche Ausprägung von Umschlagseite und Titel dar.
+%
+\begin{figure}
+\IncludeStandalone{title}[1,2]
+\caption{Umschlagseite und Titel}
+\label{fig:title}
+\end{figure}
+
+\begin{Trunk!}{title}
+\faculty{Juristische Fakultät}
+\department{Fachrichtung Strafrecht}
+\institute{Institut für Kriminologie}
+\chair{Lehrstuhl für Kriminalprognose}
+\title{%
+ Entwicklung eines optimalen Verfahrens zur Eroberung des
+ Geldspeichers in Entenhausen
+}
+\thesis{master}
+\graduation[M.Sc.]{Master of Science}
+\author{%
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \dateofbirth{2.1.1990}%
+ \placeofbirth{Dresden}%
+ \course{Klinische Prognostik}%
+ \discipline{Individualprognose}%
+\and%
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \dateofbirth{1.2.1990}%
+ \placeofbirth{Berlin}%
+ \course{Statistische Prognostik}%
+ \discipline{Makrosoziologische Prognosen}%
+}
+\matriculationyear{2010}
+\supervisor{Dagobert Duck \and Mac Moneysac}
+\professor{Prof. Dr. Kater Karlo}
+\date{10.09.2014}
+\makecover
+\maketitle
+
+\end{Trunk!}
+
+
+
+\section{Vor- und Nachspann}
+In den folgenden Unterabschnitten werden Elemente vorgestellt, welche häufig
+als Bestandteil einer wissenschaftlichen (Abschluss"~)Arbeit gefordert werden.
+Die Platzierung oder Position der vorgestellten Elemente innerhalb der Arbeit
+ist nicht eindeutig durch eine Norm oder dergleichen festgelegt. Vielmehr gibt
+es meist eine Richtlinie vom verantwortlichen Prüfungsamt oder eine konkrete
+Vorgabe des betreuenden wissenschaftlichen Mitarbeiters oder Hochschullehrers.
+
+Verwenden Sie für ihre Arbeit eine Buchklasse, so können die entsprechenden
+Abschnitte mit \Macro{frontmatter}(\Package{koma-script}) (Vorspann),
+\Macro{mainmatter}(\Package{koma-script}) (Hauptteil) und
+\Macro{backmatter}(\Package{koma-script}) (Nachspann) gekennzeichnet werden.
+Einen Anhang starten Sie mit \Macro{appendix}(\Package{koma-script}), womit
+unter anderem die Kapitelnummerierung auf Großbuchstaben umgeschaltet wird.
+Weitere Hinweise zu den genannten Befehlen sind im \scrguide nachzulesen.
+
+
+\subsection{Aufgabenstellung}
+\label{sec:task}%
+%
+Das Erstellen der Aufgabenstellung einer Abschlussarbeit im \CD der \TnUD muss
+das Paket \Package{tudscrsupervisor}'manual' geladen werden.
+%
+\begin{Preamble}
+\usepackage{tudscrsupervisor}
+
+\end{Preamble}
+%
+Dieses Paket stellt die Umgebung \Environment{task}'manual' sowie den Befehl
+\Macro{taskform}'manual' bereit. Bei beiden Varianten wird zu Beginn eine
+Tabelle mit Autoreninformationen erzeugt. Am Ende werden der oder die Betreuer
+der Arbeit sowie Professor und gegebenenfalls der Prüfungsausschussvorsitzende
+ausgegeben. Mit der Umgebung \Environment{task}'manual' kann zwischen Kopf und
+Fuß ein beliebiger Inhalt gesetzt werden. Der Befehl \Macro{taskform}'manual'
+hingegen erzeugt eine standardisierte Ausgabe, wobei der Inhalt des zweiten
+obligatorischen Arguments in einer
+\Environment{itemize}(\Package{koma-script},\Package{enumitem})-Umgebung
+verwendet wird und somit \Macro{item}(\Package{koma-script},\Package{enumitem})
+zu nutzen ist. Das Resultat des folgenden Quelltextes ist in \autoref{fig:task}
+zu sehen.
+%
+\begin{figure}
+\IncludeStandalone{task}[1,2]
+\caption{Aufgabenstellung in freier und standardisierter Form}
+\label{fig:task}
+\end{figure}
+
+\begin{Hint!}{task}
+\faculty{Juristische Fakultät}
+\department{Fachrichtung Strafrecht}
+\institute{Institut für Kriminologie}
+\chair{Lehrstuhl für Kriminalprognose}
+\title{%
+ Entwicklung eines optimalen Verfahrens zur Eroberung des
+ Geldspeichers in Entenhausen
+}
+\thesis{master}
+\author{%
+ Mickey Mouse%
+ \matriculationnumber{12345678}%
+ \course{Klinische Prognostik}%
+ \discipline{Individualprognose}%
+\and%
+ Donald Duck%
+ \matriculationnumber{87654321}%
+ \course{Statistische Prognostik}%
+ \discipline{Makrosoziologische Prognosen}%
+}
+\matriculationyear{2010}
+\issuedate{1.2.2015}
+\duedate{1.8.2015}
+\supervisor{Dagobert Duck \and Mac Moneysac}
+\chairman{Prof. Dr. Primus von Quack}
+\professor{Prof. Dr. Kater Karlo}
+
+\newcommand{\taskcontent}{%
+ Momentan ist das besagte Thema in aller Munde. Insbesondere wird es
+ gerade in vielen~-- wenn nicht sogar in allen~-- Medien diskutiert.
+ Es ist momentan noch nicht abzusehen, ob und wann sich diese Situation
+ ändert. Eine kurzfristige Verlagerung aus dem Fokus der Öffentlichkeit
+ wird nicht erwartet.
+
+ Als Ziel dieser Arbeit soll identifiziert werden, warum das Thema
+ gerade so omnipräsent ist und wie dieser Effekt abgeschwächt werden
+ könnte. Zusätzlich sind Methoden zu entwickeln, mit denen sich ein
+ ähnlicher Vorgang zukünftig vermeiden lässt.
+}
+
+\begin{task}
+\smallskip
+\par\noindent
+\taskcontent
+\end{task}
+
+\taskform[pagestyle=empty]{\taskcontent}{%
+ \item Recherche
+ \item Analyse
+ \item Entwicklung eines Konzeptes
+ \item Anwendung der entwickelten Methodik
+ \item Dokumentation und grafische Aufbereitung der Ergebnisse
+}
+
+\end{Hint!}
+\begin{Trunk+}
+\newcommand{\taskcontent}{%
+ Momentan ist das besagte Thema in aller Munde. Insbesondere wird es
+ gerade in vielen~-- wenn nicht sogar in allen~-- Medien diskutiert.
+ Es ist momentan noch nicht abzusehen, ob und wann sich diese Situation
+ ändert. Eine kurzfristige Verlagerung aus dem Fokus der Öffentlichkeit
+ wird nicht erwartet.
+
+ Als Ziel dieser Arbeit soll identifiziert werden, warum das Thema
+ gerade so omnipräsent ist und wie dieser Effekt abgeschwächt werden
+ könnte. Zusätzlich sind Methoden zu entwickeln, mit denen sich ein
+ ähnlicher Vorgang zukünftig vermeiden lässt.
+}
+\taskform[pagestyle=empty]{\taskcontent}{%
+ \item Recherche
+ \item Analyse
+ \item Entwicklung eines Konzeptes
+ \item Anwendung der entwickelten Methodik
+ \item Dokumentation und grafische Aufbereitung der Ergebnisse
+}
+
+\end{Trunk+}
+
+
+\subsection{Zusammenfassung}
+Häufig wird zu Beginn einer wissenschaftliche Arbeit die Motivation und der
+Inhalt dieser zusammengefasst, um den Leser die Thematik der Abhandlung
+vorzustellen. in den meisten Fällen wird diese dabei in deutscher und
+englischer Sprache verfasst. Hierfür stellt \KOMAScript{} bereits die Umgebung
+\Environment{abstract}'manual' bereit. Vielfach wird der Wunsch geäußert,
+sowohl die deutsche als auch die englische Zusammenfassung auf derselben Seite
+zu setzen. Diese Variante kann mithilfe der \TUDScript-Klassen sehr einfach
+umgesetzt werden, wie der nachfolgende Quelltextauszug zeigt. Die resultierende
+Ausgabe ist in \autoref{fig:abstr} zu sehen.
+%
+\begin{figure}
+\centering
+\IncludeStandalone[width=.5\textwidth]{abstract}
+\caption{Zusammenfassung in deutscher und englischer Sprache}
+\label{fig:abstr}
+\end{figure}
+
+\begin{Trunk!}{abstract}
+\TUDoption{abstract}{multiple,section}
+\begin{abstract}
+ Dies ist der deutschsprachige Teil der Zusammenfassung, in dem die
+ Motivation sowie der Inhalt der nachfolgenden wissenschaftlichen
+ Abhandlung kurz dargestellt werden.
+\nextabstract[english]
+ This is the english part of the summary, in which the motivation and
+ the content of the following academic treatise are briefly presented.
+\end{abstract}
+
+\end{Trunk!}
+
+
+
+\subsection{Selbstständigkeitserklärung und Sperrvermerk}
+Für die meisten Abschlussarbeiten an der \TnUD wird vom Verfasser eine
+Selbstständigkeitserklärung verlangt. Für diese wird ein Standardtext
+bereitgestellt. Dieser kann mit dem Befehl \Macro{confirmation}'manual'
+ausgegeben werden. Wurde das Thema in Kooperation mit einem Unternehmen
+bearbeitet, so wird zumeist auch ein Sperrvermerk gefordert, welcher mit
+\Macro{blocking}'manual' erzeugt werden kann. Mit \Macro{declaration}'manual'
+lassen sich beide Erklärungen direkt nacheinander erzeugen. Die verwendete
+Überschrift und ein möglicher Eintrag in das Inhaltsverzeichnis können über die
+Option \Option{declaration}'manual' reguliert werden. Eine mögliche Ausprägung
+der Erklärungen ist in \autoref{fig:decl} abgebildet.
+%
+\begin{figure}
+\centering
+\IncludeStandalone[width=.5\textwidth]{declaration}
+\caption{Selbstständigkeitserklärung und Sperrvermerk}
+\label{fig:decl}
+\end{figure}
+
+\begin{Hint!}{declaration}
+\title{%
+ Entwicklung eines optimalen Verfahrens zur Eroberung des
+ Geldspeichers in Entenhausen
+}
+\author{Mickey Mouse\and Donald Duck}
+\declaration[company=FIRMA]
+\end{Hint!}
+\begin{Trunk+}
+\declaration[company=FIRMA]
+
+\end{Trunk+}
+
+\subsection{Inhalts-, Abbildungs-, und Tabellenverzeichnis}
+Das Inhaltsverzeichnis wird mit \Macro{tableofcontents}(\Package{koma-script})
+erzeugt und führt die Gliederung des erstellten Dokumentes entsprechend der
+verwendeten Befehle%
+\footnote{%
+ \Macro{part}(\Package{koma-script}),
+ \Macro{addpart}(\Package{koma-script}),
+ \Macro{chapter}(\Package{koma-script}),
+ \Macro{addchap}(\Package{koma-script}),
+ \Macro{section}(\Package{koma-script}),
+ \Macro{addsec}(\Package{koma-script}) etc.%
+}
+auf. Wurde das Paket \Package{hyperref} geladen, so werden im
+Inhaltsverzeichnis PDF"~Hyperlinks auf die einzelnen Abschnitte erzeugt.
+
+Sowohl Abbildungen als auch Tabellen werden in \hologo{LaTeX} normalerweise
+mit speziellen Umgebungen~-- \Environment{figure} und \Environment{table}~--
+eingebunden. Innerhalb dieser sogenannten Gleitumgebungen kann der Befehl
+\Macro{caption}[%
+ \OParameter{Verzeichniseintrag}\Parameter{Bezeichnung}%
+](\Package{koma-script},\Package{caption}) genutzt werden, um diesen eine
+Bezeichnung hinzuzufügen. Mit \Macro{listoffigures}(\Package{koma-script})
+beziehungsweise \Macro{listoftables}(\Package{koma-script}) lassen sich
+Verzeichnisse erstellen, in denen alle Gleitobjekte des jeweiligen Typs
+ausgegeben werden, falls diese denn eine Bezeichnung hinzugefügt wurde.
+
+Sollen Abbildungen oder Tabellen außerhalb ihrer angestammten Gleitumgebung
+\Environment{figure} beziehungsweise \Environment{table} genutzt und benannt
+werden, kann dies entweder mit dem Befehl
+\Macro{captionof}[%
+ \Parameter{Typ}\OParameter{Verzeichniseintrag}\Parameter{Bezeichnung}%
+](\Package{koma-script}) oder~-- falls die beiden Pakete \Package{caption} und
+\Package{hyperref} genutzt werden~-- auch wie gewohnt mit
+\Macro{caption}(\Package{koma-script},\Package{caption}) allerdings zusätzlich
+ergänzt mit einem zuvor aufgerufenem
+\Macro{captionsetup}[\PParameter{type=figure/table}](\Package{caption})
+erfolgen. Weitere Informationen diesbezüglich sind dem \scrguide respektive der
+Anleitung zu \Package{caption} zu entnehmen. In \autoref{sec:floats} wird
+genauer auf Gleitumgebungen eingegangen.
+%
+\begin{Trunk}
+\tableofcontents
+\listoffigures
+\listoftables
+
+\end{Trunk}
+\begin{Trunk+}
+\printacronyms[style=acrotabu]
+\printsymbols[style=symblongtabu]
+
+\setchapterpreamble{%
+ \renewcommand*{\dictumwidth}{.4\textwidth}%
+ \dictum[Johann Wolfgang von Goethe]{%
+ Es irrt der Mensch, solang er strebt.%
+ }%
+ \bigskip
+}
+\chapter{Einleitung}
+Nachdem nun der Vorspann und~-- bis auf das Literaturverzeichnis am
+Ende des Dokumentes auf Seite~\pageref{sec:bibliography}~-- alle
+Verzeichnisse erfolgreich ausgegeben wurden, wird nun die Verwendung
+der weiteren Umgebungen und Befehle demonstriert, welche im Tutorial
+\texturn{treatise.pdf} vorgestellt wurden.
+
+\end{Trunk+}
+
+
+\subsection{Abkürzungs- und Symbolverzeichnis}
+\label{sec:glossaries}%
+%
+Für die Auszeichnung von Abkürzungen gibt es zwei sehr gute Pakete, die dieses
+Unterfangen stark vereinfachen. Die einfachere~-- jedoch nicht so mächtige~--
+der beiden Varianten ist die Nutzung des Paketes \Package{acro}. Sollen nur
+Abkürzungen und gegebenenfalls eine sortierte Liste dieser gesetzt werden, ist
+dieses allerdings absolut ausreichend. Für ein Symbolverzeichnis lässt sich in
+dieser Variante das Paket \Package{nomencl} nutzen. Dieses bietet meiner
+Meinung nach jedoch keine großen Vorteile, stattdessen kann auch einfach eine
+Tabelle händisch erzeugt werden. Das Paket \Package{acro} ist sehr gut und
+ausführlich dokumentiert. Deshalb wird hier auf eine exemplarische Erläuterung
+verzichtet und stattdessen auf dessen Dokumentationen verwiesen. Alternativ
+kann auch das Paket \Package{acronym} verwendet werden, wobei die alphabetische
+Sortierung der Abkürzungen durch den Anwender erfolgen muss, weshalb ich von
+diesem eher abrate.
+
+Die andere Möglichkeit ist die Nutzung des Paketes \Package{glossaries}, das
+eine große Zahl an Einstellmöglichkeiten und Optionen besitzt, allerdings auch
+etwas Zeit für die Einarbeitung und Studium der Dokumentation benötigt. Der
+ursprüngliche Einsatzzweck dieses Paketes ist das Setzen eines fachsprachlichen
+oder technischen Glossars. Es bietet zusätzlich die Mittel zum Erzeugen eines
+Abkürzungs- sowie Symbolverzeichnis. Es soll folgend hier kurz erläutert
+werden, wie das Paket zu verwenden ist. Für weiterführende Beispiele sollte
+die Dokumentationen zu Rate gezogen werden, welche dahingehend keine Wünsche
+offen lässt.
+
+Das Paket \Package{glossaries} sollte immer \emph{nach} \Package{hyperref}
+geladen werden. Entweder Sie achten explizit darauf oder Sie verwenden den
+Befehl \Macro{AfterPackage*}(\Package{scrbase}) aus dem \KOMAScript-Bundle. Mit
+diesem können Sie die Quelltext nach dem Laden eines Paketes ausführen.
+\Attention{%
+ Es ist allerdings darauf zu achten, dass der Quelltext nur ausgeführt wird,
+ wenn das avisierte Zielpaket auch tatsächlich geladen wird.
+}
+Falls Sie demnach auf \Package{hyperref} jedoch nicht auf \Package{glossaries}
+verzichten möchten, sollte der nachfolgende Quelltext am Ende der Präambel
+eingefügt werden.
+
+Die für \Package{glossaries} verwendeten Optionen werden kurz erläutert.
+%
+\begin{Preamble+}
+\AfterPackage*{hyperref}{%
+\end{Preamble+}
+\begin{Preamble}
+\usepackage[%
+\end{Preamble}
+%
+Die zwei Paketoptionen \Option{acronym}(\Package{glossaries}) sowie
+\Option{symbols}(\Package{glossaries}) erzeugen die beiden Verzeichnisse für
+Abkürzungen und Symbole. Die Option \Option{nomain}(\Package{glossaries}) wird
+immer dann verwendet, wenn im Dokument kein zusätzliches allgemeines oder
+technisches Glossar erzeugt werden soll.
+%
+\begin{Preamble}
+ acronym,% Abkürzungen
+ symbols,% Formelzeichen
+ nomain,% kein Glossar
+\end{Preamble}
+%
+Durch \Option{nogroupskip}(\Package{glossaries}) wird der automatische Abstand
+zwischen den Einträgen zur Gruppierung innerhalb eines Glossars entfernt, die
+Option \Option{toc}(\Package{glossaries}) fügt alle erzeugten Verzeichnisse
+dem Inhaltsverzeichnis hinzu, \Option{section}(\Package{glossaries}) bestimmt
+die Gliederungsebene der Überschrift.
+%
+\begin{Preamble}
+ nogroupskip,%
+ toc,%
+ section=chapter,%
+\end{Preamble}
+%
+Mit der Option \Option{nostyles}(\Package{glossaries}) kann man gegebenenfalls
+das Laden der von \Package{glossaries} vordefinierten Stilen verhindern. Dies
+ist insbesondere sinnvoll, wenn für die einzelnen Glossare und Verzeichnisse
+ohnehin eigene Stile erstellt werden, wie dies nachfolgend geschieht.
+%
+\begin{Preamble}
+ nostyles,%
+\end{Preamble}
+%
+Mit der Option \Option{translate}(\Package{glossaries}) werden die Überschriften
+aller Glossare in der Dokumentsprache gesetzt, wobei \Option*{translate=babel}
+die Nutzung des Paketes \Package{babel} erzwingt.
+%
+\begin{Preamble}
+ translate=babel,%
+\end{Preamble}
+%
+Das Paket \Package{glossaries} erstellt bei der Kompilierung des Dokumentes
+Hilfsdateien, anhand derer die Indexe erzeugt und sortiert werden können. Da
+\Engine{pdfLaTeX} diese Funktionalität nicht bereitstellt, ist hierfür der
+Aufruf einer passenden Anwendung notwendig. Die meisten Distributionen stellen
+dafür \Application{makeindex} bereit. Dieses Programm kann prinzipiell zwar
+Einträge alphabetisch sortieren, bietet allerdings weder die Nutzung von
+Unicode-Symbolen noch eine Sprachunterstützung. Aufgrund der genannten
+Nachteile ist \Application{xindy} zum Sortieren der Einträge zu empfehlen, da
+dieses Programm sowohl eine Unterstützung von Unicode als auch die Möglichkeit,
+nach sprachabhängigen Regeln zu sortieren, bietet. Allein für die deutsche
+Sprache gibt es beispielsweise zwei Varianten der Sortierung~-- nach DIN und
+nach Duden.
+
+Ohne weiteres Zutun des Anwenders wird vom Paket \Package{glossaries} in der
+Grundeinstellung \Application{makeindex} genutzt. Soll stattdessen für die
+Sortierung der Glossar- und Verzeichniseinträge \Application{xindy} zum Einsatz
+kommen, muss die Option \Option{xindy}(\Package{glossaries}) aktiviert werden.
+Dieser kann zusätzlich sowohl die zu nutzende Spracheinstellung zur Sortierung
+als auch die gewünschte Eingabekodierung an \Application{xindy} übergeben
+werden. Beispielsweise wird mit \Option*{xindy=\PParameter{language=german-din}}
+die deutsche Sortierung nach~DIN aktiviert.
+%
+%
+\begin{Hint}
+% mit Tex Live einfach verwendbar
+ xindy=§\{§language=german-din§\}§,
+\end{Hint}
+\begin{Preamble+}
+% mit Tex Live einfach verwendbar
+ xindy={language=german-din},
+\end{Preamble+}
+%
+Das Erstellen aller Glossare~-- unabhängig davon, ob \Application{xindy} oder
+\Application{makeindex} für die Sortierung zum Einsatz kommt~-- sollte das
+Perl"~Skript \File{makeglossaries}(\Package{glossaries}) verwendet werden,
+welches alle notwendigen Optionen an die jeweilige Anwendung weiterleitet.
+
+\Attention{%
+ Für den Aufruf von \Application{xindy} selbst als auch für die Ausführung des
+ Skriptes \File{makeglossaries}(\Package{glossaries}) ist ein Perl"=Interpreter
+ notwendig. Dieser wird lediglich von \Distribution{\hologo{TeX}~Live} nicht
+ jedoch von \Distribution{\hologo{MiKTeX}} direkt bereitgestellt. Wird die
+ letztgenannte Distribution verwendet, muss der Anwender gegebenenfalls diesen
+ zusätzlich installieren.
+}
+
+Kann das Skript \File{makeglossaries}(\Package{glossaries}) nicht genutzt
+werden, kann alternativ dazu die Option \Option{automake}(\Package{glossaries})
+aktiviert werden. Diese sorgt dafür, dass am Ende des \Engine{pdfLaTeX}"~Laufs
+der Aufruf von \Application{xindy} oder \Application{makeindex} direkt erfolgt.
+Soll \Application{xindy} verwendet werden, sind dafür allerdings erweiterte
+Schreibrechte notwendig, weshalb für diese Variante \Engine{pdfLaTeX} mit der
+Option \Option{-{}-shell-escape}(\Engine{pdfLaTeX}) respektive
+\Option{-{}-enable-write18}(\Engine{pdfLaTeX}) aufgerufen werden muss. Für
+\Application{xindy} ist außerdem die Angabe der Sprache über die Option
+\Option*{xindy=\PParameter{language=\dots}} zwingend notwendig.
+
+Ist weder die Nutzung des Skriptes \File{makeglossaries}(\Package{glossaries})
+noch der~-- im Zweifel sicherheitskritische~-- Aufruf von \Engine{pdfLaTeX} mit
+erweiterten Schreibrechten möglich, so muss die gewünschte Anwendung für die
+Sortierung explizit durch den Anwender aufgerufen werden, wobei auf die Angabe
+der richtigen Parameter zu achten ist. Genaueres hierzu sowie Lösungen für
+Probleme beim Erstellen der Glossare und Verzeichnisse sind in der Dokumentation
+von \Package{glossaries} zu finden.
+%
+\begin{Hint}
+ automake,%
+\end{Hint}
+%
+Damit sind alle verwendeten Optionen erläutert. Schließlich sorgt der Befehl
+\Macro{makeglossaries}(\Package{glossaries}) für das Erstellen der
+optionsabhängigen Stildateien für \Application{makeindex} respektive
+\Application{xindy} sowie das Erzeugen der benötigten Hilfsdateien.
+%
+\begin{Preamble}
+]{glossaries}
+\makeglossaries
+\end{Preamble}
+\begin{Preamble+}
+}% Ende von AfterPackage
+
+\AfterPackage*{glossaries}{%
+\end{Preamble+}
+%
+Damit wäre der erste Teil zur Initialisierung überstanden und wir können zum
+eigentlichen Problem kommen. Wie wird nun ein Abkürzungs- und/oder
+Symbolverzeichnis erstellt?
+
+\subsubsection{Abkürzungsverzeichnis}
+Das Paket \Package{glossaries} stellt für die Definition von Abkürzungen einen
+speziellen Befehl bereit. Mit \Macro{newacronym}[%
+ \LParameter\Parameter{Label}\Parameter{Abkürzung}\Parameter{Wortgruppe}%
+](\Package{glossaries}) wird eine Abkürzung definiert und kann später über
+\Parameter{Label} genutzt werden. Die möglichen optionalen Parameter können in
+der Dokumentation zu \Package{glossaries} nachgeschlagen werden. Für ein
+kleines Beispiel werden drei Abkürzungen erstellt\dots
+%
+\begin{Trunk+}
+\section{Die Verwendung von Akronymen und Symbolen}
+\end{Trunk+}
+\begin{Trunk*}
+\newacronym{apsp}{APSP}{All-Pairs Shortest Path}
+\newacronym{spsp}{SPSP}{Single-Pair Shortest Path}
+\newacronym{sssp}{SSSP}{Single-Source Shortest Path}
+
+\end{Trunk*}
+%
+\dots und diese in einer kurzen Textpassage mit dem \Package{glossaries}"=Befehl
+\Macro{gls}[\Parameter{Label}](\Package{glossaries}) verwendet.
+%
+\begin{Trunk*}
+In der Graphentheorie wird häufig die Lösung des Problems des kürzesten
+Pfades zwischen zwei Knoten gesucht. Dieses Problem wird häufig auch
+mit \gls{spsp} bezeichnet. Es lässt sich auf die Variationen \gls{sssp}
+und \gls{apsp} erweitern. Für die Lösung von \gls{spsp}, \gls{sssp}
+oder \gls{apsp} kommen unterschiedliche Algorithmen zum Einsatz.
+
+\end{Trunk*}
+%
+Gut zu sehen ist, dass sich die Ausgabe der Abkürzung bei der ersten Verwendung
+mit \Macro{gls}(\Package{glossaries}) von der zweiten~-- und jeder weiteren~--
+unterscheidet. Das Verhalten lässt sich über verschiedene Stile mit
+\Macro{setacronymstyle}(\Package{glossaries}) anpassen. Die Ausgabe einer Liste
+aller Abkürzungen erfolgt mit:
+%
+\begin{Hint}
+\printacronyms
+\end{Hint}
+\newglossarystyle{simple}{%
+ \renewenvironment{theglossary}{}{\par}%
+ \renewcommand*{\glossentry}[2]{%
+ \noindent%
+ \textsbn{\glsentryitem{##1}\glstarget{##1}\glossentryname{##1}}\quad
+ \glossentrydesc{##1}\glspostdescription\space ##2%
+ \par%
+ }%
+}
+\begin{quoting}[rightmargin=0pt]
+\glsdisablehyper
+\printacronyms[style=simple]
+\end{quoting}
+%
+Dabei werden die Akronyme in einer \Environment*{description}"=Umgebung gesetzt,
+was absolut ausreichend ist. Mir persönlich ist allerdings die Darstellung in
+einer quasi"~tabellarischen Form lieber. Dabei soll der Stil mit fettgedruckten
+Abkürzungen beibehalten werden. Das \Package{glossaries}"=Paket stellt zwar
+auch eine Vielzahl an Stilen in Tabellenform bereit, allerdings nicht in dem
+gewünschten. Deshalb wird nachfolgend gezeigt, wie sich ein eigener Stil in
+Tabellenform kreieren lässt.
+
+Es bieten sich die Umgebungen \Environment{tabularx}(\Package{tabularx}) oder
+\Environment{tabu}(\Package{tabu}) an, bei denen die Spaltenbreite teilweise
+automatisch berechnet wird, um sich manuelle Formatierungsarbeiten zu sparen.
+Folgend werden beide Varianten vorgestellt. Falls Sie noch keine Erfahrungen
+mit dem Tabellensatz in \hologo{LaTeXe} haben, lohnt sich vorher ein Blick in
+\autoref{sec:tables}, um die verwendeten Befehle und Umgebungen zu verstehen.
+Wie Sie Stile definieren, die Seitenumbrüche in einer Tabelle zulassen, können
+Sie in diesem \autorefname[sec:glossaries] bei der Symbolverzeichniserstellung
+erfahren.
+
+\minisec{Eigener Stil mit \Environment*{tabularx}}
+Ein eigener Glossarstil kann mit \Macro{newglossarystyle}(\Package{glossaries})
+definiert werden, wobei für den neu definierten Stil die Umgebung
+\Environment{theglossary}(\Package{glossaries}) umdefiniert wird. Als erstes
+kommt die Tabellenumgebung \Environment{tabularx}(\Package{tabularx}) aus dem
+gleichnamigen Paket, welches in \autoref{sec:tabularx} vorgestellt wird, zum
+Einsatz.
+
+Es werden in der Tabelle drei Spalten definiert. Die erste und letzte Spalte
+sind schlicht linksbündige Standardspalten~(\PValue{l}). In diesen werden die
+Abkürzungen selbst sowie die Seitenzahlen eingetragen. Die Verwendung
+von~\PValue{@\PParameter{}} führt dazu, dass der normalerweise vor der ersten
+und nach der letzten Spalte eingefügte Abstand von \Length{tabcolsep} entfällt.
+Die Breite der Spalte vom Typ~\PValue{X} wird automatisch berechnet.
+
+Aufgrund der Implementierung von \Environment{tabularx}(\Package{tabularx})
+lässt sich diese nicht als verschachtelte Umgebung verwenden. Allerdings kann
+stattdessen die mit \Macro*{tabularx} sowie \Macro*{endtabularx} die
+Low"~Level"~Variante genutzt werden. Die Definition des neuen Stils
+\PValue{acrotabularx} wird nachfolgend ausgegeben, die weitergehende
+Erläuterung schließt sich daran an.
+%
+\CodeHook{\let\newglossarystyle\renewglossarystyle}
+\begin{Hint*}
+\newglossarystyle{acrotabularx}{%
+ \renewenvironment{theglossary}{%
+ \tabularx{\linewidth}{@{}lXl@{}}%
+ }{%
+ \endtabularx\par\bigskip%
+ }%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ \renewcommand*{\glossentry}[2]{%
+ \glsentryitem{##1}% Entry number if required
+ \glstarget{##1}{\sffamily\bfseries\glossentryname{##1}} &
+ \glsentrydesc{##1} &
+ ##2\tabularnewline
+ }
+}
+
+\end{Hint*}
+%
+Der Rest des Stils ist schnell erläutert. Zunächst wird auf Tabellenköpfe
+(\Macro{glossaryheader}(\Package{glossaries})) sowie Überschriften und Abstände
+bei Gruppierungen (\Macro{glsgroupheading}(\Package{glossaries}) sowie
+\Macro{glsgroupskip}(\Package{glossaries})) verzichtet. Der Befehl
+\Macro{glossentry}(\Package{glossaries}) ist verantwortlich für die
+Formatierung der Einträge im Abkürzungsverzeichnis. Dieser wird intern durch
+\Package{glossaries} mit zwei obligatorischen Argumenten aufgerufen. Das erste
+enthält das entsprechende Label, das zweite ein kommaseparierte Liste der
+Seitenzahlen. Dabei stehen verschiedene Makros zur Auswahl, um anhand des
+gegebenen Labels die gewünschten Informationen zu extrahieren.%
+\footnote{%
+ bspw. mit \Macro{glossentryname}(\Package{glossaries}) die Bezeichnung oder
+ mit \Macro{glsentrydesc}(\Package{glossaries}) die dazugehörige Beschreibung%
+}
+
+Der Befehl \Macro{glossentry}(\Package{glossaries}) wurde so definiert, dass
+für jeden Eintrag eine separate Zeile in der Tabelle erzeugt wird, wo in der
+ersten Spalte die Abkürzung selbst, in der zweiten die Langform und in der
+dritten Spalte schließlich die Liste der Seiten, auf welchen die jeweilige
+Abkürzung mit \Macro{gls}[\Parameter{Label}](\Package{glossaries}) verwendet
+wurde, ausgegeben wird. Zum Abschluss die resultierende Ausgabe des
+Abkürzungsverzeichnisses im neuen Stil.
+%
+\begin{Hint}
+\printacronyms[style=acrotabularx]
+\end{Hint}
+\begin{quoting}[rightmargin=0pt]
+\InputCode
+\end{quoting}
+%
+Sollte der Platz für die Erläuterungen wie in diesem Beispiel in der mittleren
+Spalte mehr als ausreichend sein und kein Zeilenumbruch benötigt werden, kann
+auch einfach eine \Environment{tabular}"=Umgebung mit einer \PValue{l}"~Spalte
+anstelle von \PValue{X} verwendet werden.
+
+\minisec{Eigener Stil mit \Environment*{tabu}}
+Die sehr komfortabel zu nutzende Umgebung \Environment{tabu}(\Package{tabu})
+wird durch das Paket \Package{tabu} bereitgestellt. Es wird später in
+\autoref{sec:tabu} vorgestellt, wobei die dortigen Anmerkungen \emph{unbedingt}
+zu beachten sind. Für die bereits verwendeten
+\Environment{tabularx}(\Package{tabularx})"=Tabellen muss generell eine feste
+Tabellenbreite angegeben werden. Die Breite der \PValue{X}"~Spalten wird anhand
+der angegebenen Gesamtbreite und dem für andere Spalten vom
+Typ~\PValue{l},~\PValue{r}~und~\PValue{c} benötigten Platz berechnet.
+
+Wie \Environment{tabularx}(\Package{tabularx}) bietet auch die Umgebung
+\Environment{tabu}(\Package{tabu}) einen \PValue{X}"~Spaltentyp. Für diese kann
+jedoch anstelle einer fest vorgegebenen Breite auch \PValue{spread~0pt}
+angegeben werden. Dadurch werden \PValue{X}"~Spalten anfänglich in ihrer
+natürlichen Breite gesetzt. Sobald jedoch die Gesamtbreite der Tabelle den zur
+Verfügung stehenden Platz bis zum Zeilenende überschreiten würde, werden die
+\PValue{X}"~Spalten automatisch umbrochen.
+
+In umbrochenen Spalten gibt es beim Paket \Package{tabu} jedoch ein kleineres
+Problem. In diesen setzt \Package{tabu} zu wenig vertikalen Leerraum am unteren
+Ende. Um dieses Manko zu beheben, wird am Schluss jeder \PValue{X}"~Spalte mit
+\PValue{X<\PParameter{\Macro{strut}}} einfach der Befehl \Macro{strut}
+angehängt, der vertikalen Leerraum ober- und unterhalb der aktuellen Grundlinie
+einfügt. In \autoref{sec:tables} wird ein Ansatz aufgezeigt, wie dies
+automatisiert über einen neuen Spaltenstil ausgemerzt werden kann. Der Rest des
+Stils ist identisch zu \PValue{acrotabularx}.
+%
+\CodeHook{\let\newglossarystyle\renewglossarystyle}
+\begin{Preamble*}
+\newglossarystyle{acrotabu}{%
+ \renewenvironment{theglossary}{%
+ \begin{tabu}{@{}lX<{\strut}l@{}}% 'spread 0pt' defekt in v2.9
+ }{%
+ \end{tabu}\par\bigskip%
+ }%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ \renewcommand*{\glossentry}[2]{%
+ \glsentryitem{##1}% Entry number if required
+ \glstarget{##1}{\sffamily\bfseries\glossentryname{##1}} &
+ \glsentrydesc{##1} &
+ ##2\tabularnewline
+ }
+}
+
+\end{Preamble*}
+\begin{Hint}
+\printacronyms[style=acrotabu]
+\end{Hint}
+\begin{quoting}[rightmargin=0pt]
+\glsdisablehyper
+\InputCode
+\end{quoting}
+%
+Welche Variante gewählt wird, ist letztendlich eine Frage, was für spezifische
+Anforderungen an die Formatierung des Abkürzungsverzeichnis gestellt werden.
+Natürlich ist auch die Definition eines eigenen Stils möglich. Wenn Sie wissen
+wollen, wie Sie einen Stil in Tabellenform erstellen können, welcher einen
+Seitenumbruch zulässt, sollte Sie den nächsten Abschnitt lesen.
+
+
+\subsubsection{Symbolverzeichnis}
+Für das Erzeugen eines Symbolverzeichnisses kann ebenfalls \Package{glossaries}
+verwendet werden. Allerdings muss dazu ein wenig mehr Aufwand getrieben werden,
+da das Paket hierfür keine dedizierte Schnittstelle bereitstellt. Wurde die
+Paketoption \Option{symbols}(\Package{glossaries}) angegeben wird jedoch
+zumindest das notwendige Glossar erstellt.
+
+Als erstes sollte ein gut nutzbarer Befehl zum Definieren eines neuen Symbols
+erstellt werden. In Anlehnung an den Befehl für Abkürzungen \Macro*{newacronym}
+wird er \Macro{newformulasymbol}|?| genannt. Dieser hat ein optionales und vier
+obligatorische Argumente, wobei das optionale Argument prinzipiell alle
+Schlüssel"~Wert"~Paare enthalten kann, die durch das Paket \Package{glossaries}
+akzeptiert werden. Welche davon letztlich auch Auswirkungen haben, hängt
+allerdings von der Gestaltung des Stils durch den Anwender ab. Der Befehl hat
+folgende Definition:
+%
+\begin{quoting}[leftmargin=\parindent]
+\Macro{newformulasymbol}[%
+ \LParameter\Parameter{Label}\Parameter{Name}%
+ \Parameter{Symbol}\Parameter{Einheit}%
+]|?|%
+\end{quoting}
+%
+Mit \PName{Label} erfolgt die eindeutige Kennzeichnung des Symbols. Außerdem
+wird dies standardmäßig für die Sortierung verwendet, was unter Umständen etwas
+problematisch sein könnte. In diesem Fall ist eine manuelle Festlegung für den
+dazugehörigen Schlüssel durch den Anwender über das optionale Argument mit
+\PValue{sort=}\PName{Sortierung} eventuell sinnvoll. Nach dem \PName{Label}
+schließt der \PName{Name} für das Formelzeichen an, gefolgt vom \PName{Symbol}
+sowie der dazugehörige physikalische \PName{Einheit}.
+%
+\CodeHook{\let\newcommand\renewcommand}
+\begin{Preamble*}
+\newcommand*{\newformulasymbol}[5][]{%
+ \newglossaryentry{#2}{%
+ type=symbols,%
+ name={#3},%
+ description={\nopostdesc},%
+ symbol={\ensuremath{#4}},%
+ user1={\ensuremath{\mathrm{#5}}},%
+ sort={#2},%
+ #1%
+ }%
+}
+
+\end{Preamble*}
+%
+Da es sich zumeist um mathematische Symbole handelt, wird für das Symbol und
+die Einheit mit \Macro{ensuremath} Sorge getragen, dass diese auch im
+Textmodus ohne Probleme verwendet werden können. Für das aufrechte Setzen der
+Einheit wird für diese außerdem \Macro{mathrm} verwendet. Als Alternative dazu
+könnte der Befehl \Macro{si}(\Package{siunitx}) aus dem Paket \Package{siunitx}
+genutzt werden. Für ein kleines Beispiel werden folgend fünf Formelzeichen
+definiert. Damit die Darstellung der mathematischen Brüche auch für den
+Fließtext gut genutzt werden kann und ansehnlich ist, wird für diese der Befehl
+\Macro{sfrac}(\Package{xfrac}) aus dem Paket \Package{xfrac} genutzt.
+%
+\begin{Trunk*}
+\newformulasymbol{l}{Länge}{l}{m}
+\newformulasymbol{m}{Masse}{m}{kg}
+\newformulasymbol{a}{Beschleunigung}{a}{\sfrac{m}{s^2}}
+\newformulasymbol{t}{Zeit}{t}{s}
+\newformulasymbol{f}{Frequenz}{f}{s^{-1}}
+\newformulasymbol{F}{Kraft}{F}{m \cdot kg \cdot s^{-2} = \sfrac{J}{m}}
+
+\end{Trunk*}
+%
+Die soeben definierten Symbole werden für ein kleines Beispiel mit dem Befehl
+\Macro{gls}[\Parameter{Label}](\Package{glossaries}) in einer kurzen
+Textpassage verwendet.
+%
+\begin{Hint*}
+Die Einheiten für die \gls{f} sowie die \gls{F} werden aus den
+SI"=Einheiten der Basisgrößen \gls{l}, \gls{m} und \gls{t} abgeleitet.
+Und dann gibt es noch die Grundgleichung der Mechanik, welche für den
+Fall einer konstanten Kraftwirkung in die Bewegungsrichtung einer
+Punktmasse lautet:
+\[\gls{F} = \gls{m} \cdot \gls{a}\]
+\end{Hint*}
+%
+Das Ergebnis ist nur bedingt befriedigend. Sowohl im Fließtext als auch im
+Mathematikmodus werden lediglich die Bezeichnungen jedoch nicht die Symbole
+selbst verwendet. Damit die Formelzeichen auch für den mathematischen Satz
+sinnvoll nutzbar sind, sollte das Erscheinungsbild der Einträge mit
+\Macro{defglsentryfmt}(\Package{glossaries}) angepasst werden.
+%
+\begin{Preamble*}
+\defglsentryfmt[symbols]{%
+ \ifmmode%
+ \glssymbol{\glslabel}%
+ \else%
+ \glsgenentryfmt~\glsentrysymbol{\glslabel}%
+ \fi%
+}
+\end{Preamble*}
+%
+Bei der Verwendung von \Macro{gls}[\Parameter{Label}](\Package{glossaries})
+führt diese Definition dazu, dass im Mathematikmodus allein das Symbol
+verwendet wird. Im Fließtext wird diesem zusätzlich die Bezeichnung
+vorangestellt. Das nachfolgende Beispiel macht dies deutlich.
+%
+\begin{Trunk*}
+Die Einheiten für die \gls{f} sowie die \gls{F} werden aus den
+SI"=Einheiten der Basisgrößen \gls{l}, \gls{m} und \gls{t} abgeleitet.
+Und dann gibt es noch die Grundgleichung der Mechanik, welche für den
+Fall einer konstanten Kraftwirkung in die Bewegungsrichtung einer
+Punktmasse lautet:
+\[\gls{F} = \gls{m} \cdot \gls{a}\]
+
+\end{Trunk*}
+%
+Als nächstes kümmern wir uns um die Ausgabe des Symbolverzeichnisses. Momentan
+erzeugt der Befehl \Macro{printsymbols}(\Package{glossaries}) jedenfalls kein
+sinnvolles Verzeichnis:
+%
+\begin{Hint}
+\printsymbols
+\end{Hint}
+\begin{quoting}[rightmargin=0pt]
+\glsdisablehyper
+\printsymbols[style=simple]
+\end{quoting}
+%
+Für dieses muss erst ein Stil definiert werden, was nachfolgend ähnlich zum
+Stil \PValue{acrotabularx} respektive \PValue{acrotabu} geschieht. Allerdings
+wird hier eine Variante gezeigt, mit der die Tabelle einen Seitenumbruch
+zulässt.
+
+\minisec{Eigener Stil mit \Environment*{tabularx} und \Environment*{longtable}}
+Soweit mir bekannt ist, lassen sich umbruchfähige Tabellen nicht direkt mit
+\Environment{tabularx}(\Package{tabularx}) setzen. Vielmehr ist für die
+Verwendung der Umgebung \Environment{longtable}(\Package{longtable}) das Paket
+\Package{ltxtable} notwendig. Dieses wiederum verlangt, dass die zu setzende
+Tabelle in einer separaten Datei abgelegt wird. Soll diese dennoch innerhalb
+des Hauptdokumentes erstellt werden, kann für dieses Unterfangen die Umgebung
+\Environment{filecontents}(\Package{filecontents}) aus dem gleichnamigen Paket
+genutzt werden, womit \emph{bereits existierende Dateien} überschrieben werden.
+
+Leider habe ich keine Möglichkeit gefunden, diesen Prozess ohne wahnsinnig
+großen Aufwand für das Erstellen eines Glossars zu portieren. Für umbruchfähige
+Tabellen mit automatisch berechneten Spaltenbreiten kommt meines Wissens nach
+momentan nur die Umgebung \Environment{longtabu}(\Package{tabu}) aus dem Paket
+\Package{tabu} infrage.
+
+\minisec{Eigener Stil mit \Environment*{longtabu}}
+Das Paket \Package{tabu} definiert für umbruchfähige Tabellen die Umgebung
+\Environment{longtabu}(\Package{tabu}), welche wiederum auf der Umgebung
+\Environment{longtable}(\Package{longtable}) basiert und nachfolgend verwendet
+wird. Damit diese linksbündig gesetzt wird, muss vor dem obligatorischen
+Argument mit den Spaltendefinitionen noch das optionale Argument \OParameter{l}
+angegeben werden. Die im nachfolgend definierten Stil verwendeten Befehle
+\Macro{toprule}(\Package{booktabs}), \Macro{midrule}(\Package{booktabs}) sowie
+\Macro{cmidrule}(\Package{booktabs}) und \Macro{bottomrule}(\Package{booktabs})
+für unterschiedliche horizontale Linien stammen allesamt aus dem Paket
+\Package{booktabs}, welches für den Satz von hochwertigen Tabellen eine große
+Hilfe ist.
+%
+\CodeHook{\let\newglossarystyle\renewglossarystyle}
+\begin{Preamble*}
+\newglossarystyle{symblongtabu}{%
+ \renewenvironment{theglossary}{%
+ \begin{longtabu}[l]{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9
+ }{%
+ \end{longtabu}%
+ }%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ \renewcommand*{\glossaryheader}{%
+ \toprule
+ \bfseries Symbol & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
+ \tabularnewline\midrule\endhead%
+ \bottomrule\endfoot%
+ }%
+ \renewcommand*{\glossentry}[2]{%
+ \glsentryitem{##1}% Entry number if required
+ \glstarget{##1}{\glossentrysymbol{##1}} &
+ \glsentryuseri{##1} &
+ \glossentryname{##1} &
+ ##2\tabularnewline%
+ }%
+}
+\end{Preamble*}
+%
+Innerhalb von \Macro{newglossarystyle}(\Package{glossaries}) wird der Befehl
+\Macro{glossaryheader}(\Package{glossaries}) für einen Tabellenkopf definiert,
+wie er auch für eine \Environment{longtable}(\Package{longtable})"=Umgebung
+erscheinen würde. In hier vorgestellten Fall werden der Kopf mit dem Makro
+\Macro{endhead}(\Package{longtable}) beziehungsweise der Fuß durch
+\Macro{endfoot}(\Package{longtable}) terminiert. Diese werden beim
+einem möglichen Seitenumbruch zu Beginn und am Ende auf jeder Seite gesetzt.
+%
+\begin{Preamble+}
+}% Ende von AfterPackage
+
+\end{Preamble+}
+%
+Das Symbolverzeichnis kann sich nun durchaus sehen lassen.
+%
+\begin{Hint}
+\printsymbols[style=symblongtabu]
+\end{Hint}
+\begin{quoting}[rightmargin=0pt]
+\newglossarystyle{symbtabu}{%
+ \setglossarystyle{symblongtabu}%
+ \renewenvironment{theglossary}{%
+ \begin{tabu}{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9
+ }{%
+ \bottomrule\end{tabu}%
+ }%
+ \renewcommand*{\glossaryheader}{%
+ \toprule
+ \bfseries Symbol & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
+ \tabularnewline\midrule%
+ }%
+}
+\printsymbols[style=symbtabu]
+\end{quoting}
+
+\minisec{Unterteilung nach griechischen und lateinischen Symbolen}
+Oftmals wird es für Abschlussarbeiten verlangt, das Symbolverzeichnis nach
+griechischen und lateinischen Formelzeichen zu untergliedern. Für die Umsetzung
+dieser Anforderung ist die zuvor beschriebene Lösung prinzipiell nutzbar,
+allerdings muss diese etwas erweitert werden.
+
+Realisiert wird das Ganze, indem die zwei Kategorien respektive Elterneinträge
+\PValue{greekletters} sowie \PValue{romanletters} definiert und sämtliche
+Formelzeichen einem der beiden als Untereintrag zugeordnet werden.
+%
+\begin{Hint*}
+\providecommand*\greeklettersname{Greek letters}
+\providecommand*\romanlettersname{Roman letters}
+\newglossaryentry{greekletters}{%
+ type=symbols,%
+ name={\greeklettersname},%
+ description={\nopostdesc},%
+ sort={a}%
+}
+\newglossaryentry{romanletters}{%
+ type=symbols,%
+ name={\romanlettersname},%
+ description={\nopostdesc},%
+ sort={b}%
+}
+\end{Hint*}
+%
+Die Bezeichnungen der beiden Kategorien könnten auch als Parameter von
+\Macro*{newglossaryentry} mit \PValue{name=\PName{Bezeichung}} direkt
+eingetragen werden. Um bei der Definition jedoch eine gewisse Flexibilität zu
+gewährleisten, wird dies über die zwei Befehle \Macro*{greeklettersname} sowie
+\Macro*{romanlettersname} realisiert. Diese werden mit \KOMAScript-Mitteln
+als sprachabhängige Bezeichner definiert.
+%
+\begin{Hint*}
+\providecaptionname{%
+ american,australian,british,canadian,english,newzealand%
+}{\greeklettersname}{Greek letters}
+\providecaptionname{%
+ german,ngerman,austrian,naustrian,swissgerman,nswissgerman%
+}{\greeklettersname}{Griechische Symbole}
+\providecaptionname{%
+ american,australian,british,canadian,english,newzealand%
+}{\romanlettersname}{Roman letters}
+\providecaptionname{%
+ german,ngerman,austrian,naustrian,swissgerman,nswissgerman%
+}{\romanlettersname}{Lateinische Symbole}
+\end{Hint*}
+%
+Für die Ausgabe wird der Glossarstil \PValue{symbsplitlongtabu} in ähnlicher
+Manier wie die Stile zuvor definiert. Dieser wird darauf ausgelegt, dass alle
+aufzulistenden Formelzeichen als Untereintrag von einem der beiden zuvor
+erstellten Elterneinträge angegeben werden. Allerdings ist bei diesem Stil
+aufgrund der Verwendung von \Environment{longtabu}(\Package{tabu}) etwas
+Aufwand zu betreiben, um die gewünschte Ausgabe zu erhalten. Das grundlegende
+Problem ist das Setzen von Überschriften und dem folgenden Tabellenkopf
+innerhalb der Tabelle. Die Erläuterung des Quelltextauszugs erfolgt nach dessen
+Ausgabe.
+%
+\CodeHook{\let\newglossarystyle\renewglossarystyle}
+\begin{Hint*}
+\newglossarystyle{symbsplitlongtabu}{%
+ \newcommand*\symbollevel{-1}%
+ \renewenvironment{theglossary}{%
+ \begin{longtabu}[l]{ccX<{\strut}l}% 'spread 0pt' defekt in v2.9
+ }{%
+ \end{longtabu}%
+ }%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ \newcommand*\symbolhead{%
+ \toprule
+ \bfseries Symbol & \bfseries Einheit &
+ \bfseries Bezeichnung & \bfseries Seite(n)
+ \tabularnewline\midrule
+ }%
+ \renewcommand*{\glossaryheader}{%
+ \endfirsthead%
+ \symbolhead\endhead%
+ \bottomrule\endfoot%
+ \gdef\symbollevel{-1}%
+ }%
+ \renewcommand*{\glossentry}[2]{%
+ \ifglshaschildren{##1}{%
+ \ifnum\symbollevel>0\relax%
+ \tabularnewline\bottomrule\tabularnewline[\smallskipamount]%
+ \fi
+ \gdef\symbollevel{0}%
+ \tabularnewline[%
+ \arraystretch\dimexpr-\ht\strutbox-\dp\strutbox\relax%
+ ]%
+ \multicolumn{4}{@{}l@{}}{\minisec{\glsentryname{##1}}}%
+ }{%
+ \GlossariesWarning{%
+ There are no childrens for entry ##1.\MessageBreak
+ Nothing will be printed. Maybe you should\MessageBreak
+ specify ##1 as a child entry.
+ }%
+ }%
+ }%
+ \renewcommand*{\subglossentry}[3]{%
+ \ifnum\symbollevel=0\relax%
+ \tabularnewline[\medskipamount]\symbolhead%
+ \else%
+ \tabularnewline
+ \fi%
+ \gdef\symbollevel{##1}%
+ \glsentryitem{##2}% Entry number if required
+ \glstarget{##2}{\glossentrysymbol{##2}} &
+ \glsentryuseri{##2} &
+ \glossentryname{##2} &
+ ##3%
+ }%
+}
+\end{Hint*}
+%
+Der neu definierte Befehl \Macro*{symbollevel} wird benötigt, um bei der
+Ausgabe zu überprüfen, um es sich beim zuletzt gesetzten Eintrag um einen
+Elterneintrag (\Macro*{glossentry}) oder Untereintrag (\Macro*{subglossentry})
+gehandelt hat. Im Makro \Macro*{symbolhead} wird die Definition für den zu
+setzenden Tabellenkopf gespeichert. Der Inhalt von \Macro*{glossaryheader} wird
+direkt zu Beginn der Umgebung \Environment{theglossary}(\Package{glossaries})
+ausgeführt. Dieser wird so umdefiniert, dass die Tabelle keinen Kopf vor der
+ersten Überschrift erhält, jedoch nach einem Seitenumbruch sehr wohl der
+Tabellenkopf gesetzt wird. Abgeschlossen wird die Tabelle mit einer Fußlinie.
+
+Danach erfolgt die Formatierung der Einträge. Der Befehl \Macro*{glossentry}
+setzt \enquote{\greeklettersname} und \enquote{\romanlettersname} sowie
+gegebenenfalls weitere Elterneinträge als Überschriften. Bevor dies passieren
+kann wird eine vorher begonnene Tabelle mit einer Fußlinie beendet. Um die
+Überschrift innerhalb von \Environment{longtabu}(\Package{tabu}) linksbündig zu
+setzen, wird mit \Macro*{multicolumn} gearbeitet. Dieser Befehl muss in der
+ersten Zelle zwingend als aller erstes genutzt werden. Um dies sicherzustellen,
+wird zuvor eine neue Tabellenspalte eingefügt. Damit jedoch kein zusätzlicher
+Leerraum entsteht, wird diese über das optionale Argument nach oben verschoben.
+Die Einträge für Formelzeichen selber erfolgen mit \Macro*{subglossentry}. Im
+Gegensatz zum vorher beschriebenen Stil \PValue{symblongtabu} wird zusätzlich
+der notwendige Tabellenkopf nach der Überschrift gesetzt, falls es sich um den
+\emph{ersten} Untereintrags handelt.
+
+Jetzt könnte man den Glossarstil \PValue{symbsplitlongtabu} bereits verwenden
+und jedem Formelzeichen bei der Definition mit
+\begin{quoting}[leftmargin=\parindent]
+\Macro{newformulasymbol}[%
+ \POParameter{parent={greekletters/romanletters}}%
+ \PParameter{\dots}\PParameter{\dots}\PParameter{\dots}\PParameter{\dots}%
+]|?|%
+\end{quoting}
+eine der beiden Elterneinträge zuweisen. Für wenige Formelzeichen mag dies
+ausreichen. Komfortabler wäre es natürlich, wenn die Zuweisung zu einer der
+beiden Kategorien automatisch erfolgen würde. Ein Ansatz für dieses Unterfangen
+wird folgend vorgestellt.
+
+\Attention{%
+ Es kann nicht garantiert werden, dass dieser Ansatz in jedem Fall und für
+ sämtliche Anwendungsszenarien funktioniert. Tatsächlich ist die Idee auf eine
+ \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=427}{%
+ Frage aus dem \Forum*%
+ }
+ heraus entstanden. Für auftretende Probleme bei der Verwendung ist dort der
+ beste Anlaufpunkt.
+}
+
+Die Grundidee ist, das zu definierende Formelzeichen mit einer Liste der Makros
+für griechische Buchstaben abzugleichen und so zu entscheiden, in welche der
+beiden Kategorien das Symbol einzuordnen ist. Hierfür werden nachfolgend eine
+Liste \Macro*{greeksymbollist} aller griechischen Buchstaben sowie der Befehl
+\Macro*{ifisgreeksymbol}[\Parameter{Symbol}\Parameter{Dann}\Parameter{Sonst}]
+zur Fallunterscheidung definiert. Problematisch bei der Umsetzung ist, dass ein
+als Argument übergebenes Formelzeichen auch mit diakritischen Zeichen und
+Indizes verwendet werden kann~-- beispielsweise $\dot{\varphi}_{\mathrm{max}}$
+(%
+ \Macro*{dot}[\PParameter{\Macro*{varphi}}]\PValue{\textunderscore}%
+ \PParameter{\Macro*{mathrm}[\PParameter{max}]}%
+). Deshalb werden bei der Ausführung von \Macro*{ifisgreeksymbol} temporär alle
+diakritische Zeichen sowie \Macro*{boldsymbol} für den Mathematikmodus
+\enquote{unschädlich} gemacht und das Argument \Parameter{Symbol} expandiert.
+Anschließend werden alle Anteile für Hoch- sowie Tiefstellung abgeschnitten und
+das Resultat mit der Liste \Macro*{greeksymbollist} abgeglichen.
+%
+\CodeHook{\let\newcommand\renewcommand}
+\begin{Hint*}
+\makeatletter
+\newcommand*\greeksymbollist{}
+\def\@tempa#1{\ifdefvoid{#1}{}{\listadd\greeksymbollist{#1}}}
+\forcsvlist{\@tempa}{%
+ \alpha,\beta,\varbeta,\gamma,\delta,\epsilon,\varepsilon,\zeta,%
+ \eta,\theta,\vartheta,\iota,\kappa,\varkappa,\lambda,\mu,\nu,%
+ \xi,\omicron,\pi,\varpi,\rho,\varrho,\sigma,\varsigma,\tau,%
+ \upsilon,\phi,\varphi,\chi,\psi,\omega,%
+ \Alpha,\Beta,\Gamma,\Delta,\Epsilon,\Zeta,\Eta,\Theta,\Iota,%
+ \Kappa,\Lambda,\Mu,\Nu,\Xi,\Omicron,\Pi,\Rho,\Sigma,\Tau,\Upsilon,%
+ \Phi,\Chi,\Psi,\Omega%
+}
+\newcommand*\ifisgreeksymbol[1]{%
+ \begingroup%
+ \def\@tempa##1{\let##1\@firstofone}%
+ \forcsvlist{\@tempa}{%
+ \acute,\bar,\breve,\check,\dot,\ddot,\dddot,\ddddot,%
+ \hat,\widehat,\grave,\tilde,\widetilde,\vec,%
+ \Acute,\Bar,\Breve,\Check,\Dot,\Ddot,\Hat,\Grave,\Tilde,\Vec%
+ }%
+ \def\boldsymbol{}%
+ \protected@edef\@tempa{#1}%
+ \def\@tempb##1_##2\relax{\def\@tempa{##1}}%
+ \expandafter\@tempb\@tempa_\relax\relax%
+ \def\@tempb##1^##2\relax{\def\@tempa{##1}}%
+ \expandafter\@tempb\@tempa^\relax\relax%
+ \expandafter\ifinlist\expandafter{\@tempa}{\greeksymbollist}{%
+ \aftergroup\@firstoftwo%
+ }{%
+ \aftergroup\@secondoftwo%
+ }%
+ \endgroup%
+}
+\makeatother
+\end{Hint*}
+%
+Mit \Macro*{ifisgreeksymbol} kann jetzt auf die Art des Symbols getestet. Dies
+wird innerhalb von \Macro{newformulasymbol}|?| genutzt, um den passenden
+Elterneintrag auszuwählen. Über das optionale Argument kann jederzeit mit
+\POParameter{parent={greekletters/romanletters}} der automatische ermittelte
+Elterneintrag überschrieben werden.
+%
+\begin{Hint}
+\newcommand*\symbollettergroup{}
+\newcommand*{\newformulasymbol}[5][]{%
+ \ifisgreeksymbol{#4}{%
+ \renewcommand*{\symbollettergroup}{greekletters}%
+ }{%
+ \renewcommand*{\symbollettergroup}{romanletters}%
+ }%
+ \newglossaryentry{#2}{%
+ type=symbols,%
+ name={#3},%
+ description={\nopostdesc},%
+ symbol={\ensuremath{#4}},%
+ user1={\ensuremath{\mathrm{#5}}},%
+ sort={#2},%
+ parent={\symbollettergroup},%
+ #1%
+ }%
+}
+\end{Hint}
+
+
+\subsection{Literaturverzeichnis}
+\label{sec:biblatex}%
+%
+Für das Erstellen eines Literaturverzeichnisses wurde in der Vergangenheit fast
+ausschließlich \hologo{BibTeX} verwendet. Leider wird auch heute immer noch
+darauf verwiesen, obwohl es seit einigen Jahren das Paket \Package{biblatex}
+gibt, welches insbesondere für neue Dokumente den Vorzug erhalten sollte. Auch
+die Umstellung älterer \hologo{BibTeX}"=Datenbanken ist mit wenigen Handgriffen
+realisierbar. Für \Package{biblatex} existieren eine Menge unterschiedlicher,
+vordefinierter Zitierstile, welche sich im Vergleich zu \hologo{BibTeX} auch
+wesentlich leichter an die individuellen Bedürfnisse anpassen lassen.
+
+Ein weiterer Vorteil ist die Unterstützung von Datenbanken, welche eine
+UTF"~8"~Kodierung nutzen, wenn \Application{biber} zur Sortierung der Einträge
+verwendet wird. Zitierstil und Backend zur Sortierung lassen sich durch das
+optionale Argument beim Laden des Paketes festlegen. Damit die Zitierstile das
+optimale Ergebnis erzielen wird das Laden von \Package{csquotes} sehr empfohlen.
+%
+\begin{Preamble}
+\usepackage{csquotes}
+\usepackage[backend=biber,style=alphabetic]{biblatex}
+
+\end{Preamble}
+%
+Die Erstellung einer Literaturdatenbank kann entweder von Hand oder mithilfe
+einer externen Anwendung erfolgen. Für die letztgenannte Variante sind die
+Programme \Application{Citavi} respektive \Application{JabRef} empfehlenswert.
+Auf eine Einführung in diese Anwendungen wird jedoch verzichtet.
+
+Die \Environment{filecontents}(\Package{filecontents})"=Umgebung kann verwendet
+werden, um innerhalb eines \hologo{LaTeX}"=Dokumentes externe Dateien direkt
+beim Kompilieren zu erstellen. Damit wird nachfolgend für dieses Tutorial eine
+Literaturdatenbank \File{\jobname-temp.bib} mit drei Einträgen manuell erzeugt.
+Die Umgebung gehört standardmäßig zu den Bordmitteln von \hologo{LaTeXe}. Das
+Paket \Package{filecontents} erweitert die Umgebung dahingehend, dass
+\emph{bereits existierende Dateien} überschrieben werden. Hier ist folglich
+Vorsicht geboten. Der große Vorteil ist jedoch, dass die erweiterte
+\Environment{filecontents}(\Package{filecontents})"=Umgebung~-- im Gegensatz
+zur Standardversion~-- die Dateien in der gleichen Eingabekodierung erzeugt,
+wie das verwendete Dokument. Diese Funktionalität wird für dieses Tutorial
+benötigt, weshalb auf das Laden des Paketes \Package{filecontents} nicht
+verzichtet werden kann.
+%
+\begin{Preamble}
+\usepackage{filecontents}
+\end{Preamble}
+%
+Folgend wird eine Literaturdatenbank mit drei Einträge definiert. Jeder Eintrag
+einer \File*{.bib}"~Datei beginnt mit \PValue{@}\PName{Eintragstyp}. Direkt
+danach ist für jeden Eintrag ein \emph{eindeutiges} \PParameter{Label}
+festzulegen. Anschließend können für unterschiedliche Felder die dazugehörigen
+Werte eingetragen werden. Die verwendbaren Eintragstypen sowie die für den
+jeweiligen Typ obligatorischen und optionalen Felder sind in der Dokumentation
+von \Package{biblatex} zu finden.
+%
+\begin{Preamble*}
+\begin{filecontents}{\jobname-temp.bib}
+@book{goossens94,
+ author = {Goossens, Michel and Mittelbach, Frank
+ and Samarin, Alexander},
+ title = {The LaTeX Companion},
+ date = {1994},
+ publisher = {Addison-Wesley},
+ location = {Reading, Massachusetts},
+ language = {english},
+}
+@book{knuth84,
+ author = {Knuth, Donald E.},
+ title = {The \TeX book},
+ date = {1984},
+ maintitle = {Computers \& Typesetting},
+ volume = {A},
+ publisher = {Addison-Wesley},
+ location = {Reading, Massachusetts},
+ language = {english},
+}
+@manual{hanisch14,
+ author = {Hanisch, Falk},
+ title = {Ein \LaTeX"=Bundle für Dokumente im neuen Corporate
+ Design der Technischen Universität Dresden},
+ date = {2014},
+ subtitle = {Benutzerhandbuch},
+ location = {Dresden},
+ language = {german},
+}
+\end{filecontents}
+\end{Preamble*}
+%
+Nachdem die Literaturdatenbank erstellt wurde, muss diese auch noch eingebunden
+werden:
+%
+\begin{Preamble}
+\addbibresource{\jobname-temp.bib}
+
+\end{Preamble}
+%
+Im einfachsten Fall werden die gewünschten Einträge der Literaturdatenbank im
+Dokument mit \Macro{cite}[\Parameter{macro}](\Package{biblatex}) referenziert,
+von \Package{biblatex} werden zusätzliche Möglichkeiten angeboten.
+%
+\begin{refsection}[\jobname-temp.bib]
+\begin{Trunk+}
+\section{Referenzen und das Literaturverzeichnis}
+Das Literaturverzeichnis wird auf Basis der nachfolgend verwendeten
+Zitate erstellt und ist auf Seite~\pageref{sec:bibliography} zu finden.
+\end{Trunk+}
+\begin{Trunk*}
+In diesem Textabschnitt werden die zwei bekannten \LaTeX-Bücher
+\cite{knuth84} und \cite{goossens94} sowie das Anwenderhandbuch
+\cite{hanisch14} zitiert.
+
+\end{Trunk*}
+%
+Das Literaturverzeichnis wird mit \Macro{printbibliography}(\Package{biblatex})
+ausgegeben, wobei nicht alle Einträge der Literaturdatenbank sondern lediglich
+die tatsächlich referenzierten verwendet werden. Der Parameter
+\PValue{heading=bibintoc} führt zu einem Eintrag in das Inhaltsverzeichnis.
+%
+\begin{Hint}
+\printbibliography[heading=bibintoc]
+\end{Hint}
+\begin{quoting}[rightmargin=0pt]
+\makeatletter
+\let\markboth\@gobbletwo
+\let\markright\@gobble
+\makeatother
+\printbibliography
+\end{quoting}
+\end{refsection}
+
+
+
+\section{Anfangszitat oder Schlauer Spruch}
+\renewcommand*\dictumwidth{.4\textwidth}%
+\dictum[Johann Wolfgang von Goethe]{Es irrt der Mensch, solang er strebt.}%
+\bigskip\noindent
+Oftmals möchte der Autor einer wissenschaftlichen Arbeit für das erste oder
+auch jedes Kapitel ein Zitat oder ähnliches voranstellen. Dies kann mit dem
+Befehl \Macro{dictum}[\OParameter{Autor}\Parameter{Text}](\Package{koma-script})
+erfolgen. Damit wird der im obligatorischen Argument angegeben Ausspruch in
+einer \Macro{parbox} ausgegeben. Das optionale Argument kann für die Angabe des
+Autors verwendet werden. Soll das Ganze für einen Teil oder ein Kapitel
+erfolgen, sollte der Befehl \Macro{dictum}(\Package{koma-script}) innerhalb von
+\Macro{setpartpreamble}(\Package{koma-script}) beziehungsweise
+\Macro{setchapterpreamble}(\Package{koma-script}) verwendet werden. Genaueres
+hierzu und zu den weiteren Möglichkeiten, die Gestalt eines Zitats zu
+beeinflussen, ist in der \scrguide[Anleitung von \KOMAScript] zu finden. Es
+folgt ein Beispiel zur Verwendung.
+%
+\begin{Hint}
+\setchapterpreamble{%
+ \dictum[Johann Wolfgang von Goethe]{%
+ Es irrt der Mensch, solang er strebt.%
+ }%
+ \bigskip
+}
+\chapter{Einleitung}
+
+\end{Hint}
+
+
+
+\section{Gleitumgebungen für Abbildungen und Tabellen}
+\label{sec:floats}%
+%
+Die Positionierung von Abbildungen mit \hologo{LaTeX} kann zu Beginn für viele
+Anfänger durchaus frustrierend sein. Das liegt häufig am Missverständnis der
+beiden Standard"=Gleitobjektumgebungen für Tabellen (\Environment{table}) und
+Abbildungen (\Environment{figure}). Diese sind in erster Linie zur Ergänzung
+des Fließtextes gedacht und sollten für das prinzipielle Verständnis des
+Geschriebenen nicht notwendig sein. Das oft geforderte Verhalten, ein
+Gleitobjekt an einer ganz bestimmten und explizit festgelegten Position im Text
+zu setzen, ist nicht erforderlich, insbesondere weil dadurch der Lesefluss
+unnötig unterbrochen wird.
+
+Vielmehr ist es sinnvoll, Gleitobjekte entweder am Anfang oder Ende einer Seite
+zu platzieren, wo sie den Lesefluss deutlich weniger stören. Allerdings sollte
+auf jedes Gleitobjekt im Fließtext über eine Referenz~-- beispielsweise mit dem
+Befehl \Macro{autoref}(\Package{hyperref}) aus dem Paket \Package{hyperref}~--
+Bezug genommen und gegebenenfalls eine kurze Erläuterung gegeben werden.
+Zusätzliche Erläuterungen zum Thema \emph{Querverweise} sind unter
+\autoref{sec:references} zu finden.
+
+Ein weitere Grund, \hologo{LaTeX} die Platzierung von Tabellen und Abbildungen
+vollständig zu überlassen, ist die Ungewissheit über den vorhandenen Platz auf
+der momentan erzeugten Seite. In nicht wenigen Fällen kann es passieren, dass
+das einzufügende Objekt zu groß für die aktuelle Seite ist, was einen wahrlich
+schlechten Seitenumbruch mit einer schlecht gefüllten Seite zur Folge hätte.
+Die Verwendung einer Gleitumgebung für eine Abbildung wird im nachfolgenden
+Quelltextauszug exemplarisch gezeigt, das Ergebnis ist in \autoref{fig:example}
+zu sehen. Bei Gleitobjekten sollte in jedem Fall darauf geachtet werden, dass
+der Befehl \Macro{label} immer erst \emph{nach}
+\Macro{caption}(\Package{koma-script},\Package{caption}) verwendet wird, da
+der erzeugte Anker sich sonst nicht auf das Objekt bezieht.
+%
+\begin{Trunk+}
+\section{Grafiken und Tabellen in Gleitumgebungen}
+Es folgt die Demonstration von Gleitumgebungen, welche sowohl für
+Grafiken als auch Tabellen verwendet werden sollten. Im vorliegenden
+Beispiel kann unter Umständen der Eindruck entstehen, dass diese Seite
+etwas zu überladen mit Gleitobjekten ist. Dies liegt nicht an der
+Verwendung der Gleitobjekte sondern vielmehr am zu geringen Textvolumen
+und den eingeschränkten Möglichkeiten von \LaTeX{}, diese an geeigneten
+Stellen zu platzieren.
+
+\subsection{Abbildungen als Gleitobjekte und das Einbinden von Grafiken}
+In \autoref{fig:example} wird dargestellt, wie eine Grafik im PDF"~Format
+in ein Dokument eingebunden und auf diese verwiesen werden kann. Ein
+Querverweis auf ein Gleitobjekt sollte im Fließtext am besten mit Befehl
+\texttt{\textbackslash autoref\{\emph{<Label>}\}} erstellt werden.
+Hierfür ist ein entsprechender Anker am zu referenzierenden Objekt nötig,
+welcher mit dem Makro \texttt{\textbackslash label} erzeugt wird. Dabei
+ist entscheidend, dass dieser Anker erst \emph{nach} der Beschriftung des
+Objektes, welche mit \texttt{\textbackslash caption} zu erstellen ist,
+definiert werden sollte.
+
+\end{Trunk+}
+\begin{Trunk}
+\begin{figure}
+\centering
+\includegraphics{TUD-black}
+\caption{Beispielgrafik}\label{fig:example}
+\end{figure}
+
+\end{Trunk}
+\InputCode\noindent
+%
+In der Konsequenz ist dies hier ein Plädoyer, bei der Platzierung von Tabellen
+und Abbildungen vollständig auf \hologo{LaTeX} zu vertrauen. Anfangs kann der
+Anwender dies als Kontrollverlust empfinden. Sobald Sie jedoch Änderungen am
+Dokument vornehmen und eventuell in einem Kapitel einen Absatz ergänzen oder
+gar einen ganzen Abschnitt hinzufügen werden sie dankbar sein, sich in der
+Folge nicht mit der Neupositionierung sämtlicher Objekte herumschlagen zu
+müssen. Leidgeprüfte Anwender einschlägiger Textverarbeitungsprogramme können
+gewiss ein Lied darüber singen.
+
+
+
+\subsection{Gleitobjektlayout}
+\label{sec:floatlayout}%
+%
+Es wurde bis jetzt das prinzipielle Vorgehen bei der Nutzung von Gleitobjekten
+beschrieben. Allerdings gibt es auch noch einige typografische Aspekte, welche
+zu beachten sind. Zum einen sollte beachtet werden, dass die Beschriftung einer
+Abbildung immer unterhalb dieser erfolgen sollte, bei Tabellen hingegen eine
+Überschrift gesetzt wird. Hierfür muss der Anwender ohne die Verwendung eines
+zusätzlichen Paketes selber Sorge tragen, indem er den Befehl
+\Macro{caption}(\Package{koma-script},\Package{caption}) entweder vor oder
+nach dem eigentlichen Objekt in der Gleitumgebung verwendet. Der zweite Punkt
+ist die verwendete Schrift innerhalb der Gleitumgebungen.
+
+Damit sich der Inhalt dieser besser vom restlichen Fließtext abhebt und vom
+Leser direkt als nicht dazugehörig erkannt werden kann ist es ratsam, diesen in
+serifenloser Schrift zu setzen~-- die Verwendung einer Serifenschrift für den
+Fließtext vorausgesetzt. Das Paket \Package{floatrow} bietet die Möglichkeiten,
+diese beiden Punkte automatisiert umzusetzen. Außerdem wird zur Formatierung
+der Beschriftungen das Paket \Package{caption} benötigt. Sollten Sie noch keine
+Erfahrung mit dem Setzen von Tabellen mit \hologo{LaTeX} haben, so wäre zuvor
+ein Blick in \autoref{sec:tables} sehr sinnvoll.
+
+\newcommand*\tableexample[1][]{%
+ \begin{tabularx}{.75\textwidth}{@{}XXX@{}}
+ \toprule
+ \textbf{Erste Spalte} & \textbf{Zweite Spalte} &
+ \textbf{Dritte Spalte} \tabularnewline\midrule
+ Etwas Blindtext für die erste Spalte &
+ Etwas Blindtext für die zweite Spalte &
+ Etwas Blindtext für die dritte Spalte
+ \tabularnewline\bottomrule
+ \end{tabularx}
+ #1%
+}
+\begin{table}
+\tableexample[%
+ \caption{Eine Tabelle in einer Gleitumgebung}\label{tab:tabular}%
+]
+\end{table}
+
+Normalerweise wird eine Tabelle sowie deren Beschriftung innerhalb einer
+\Environment{table}"=Gleitumgebung in der selben Schrift wie der Fließtext
+gesetzt, die korrekte Platzierung der Bezeichnungen bleibt dem Anwender
+überlassen. Zu sehen ist dies in \autoref{tab:tabular}. Im Folgenden wird
+gezeigt, wie sich dies automatisiert für alle Gleitobjekte im Dokument ändern
+lässt. Die \emph{Formatierung} der Bezeichnungen von Gleitobjekten kann
+mithilfe des Paketes \Package{caption} angepasst werden.
+%
+\begin{Preamble}
+\usepackage{caption}
+\end{Preamble}
+%
+Diese stellt den Befehl \Macro{captionsetup}(\Package{caption}) bereit. Mit
+diesem werden die Beschriftungen in Serifenlosen und das Label zur besseren
+Unterscheidung im fetter Schriftstärke gesetzt.
+%
+\begin{Preamble*}
+\captionsetup{font=sf,labelfont=bf,labelsep=space}
+\end{Preamble*}
+%
+Um die \emph{Platzierung} der Beschriftungen beeinflussen sowie den Inhalt
+einer Gleitumgebung formatieren zu können, wird \Package{floatrow} geladen.
+\begin{Preamble}
+\usepackage{floatrow}
+\end{Preamble}
+%
+Der Inhalt von Gleitobjekten wird~-- entgegen des normalen Verhaltens~-- durch
+\Package{floatrow} automatisch zentriert gesetzt. Zusätzlich soll der Inhalt
+noch die serifenlose Schriftfamilie verwenden. Dies lässt sich mit der Nutzung
+des Befehls \Macro{floatsetup}(\Package{floatrow}) realisieren.
+%
+\begin{Preamble*}
+\floatsetup{font=sf}
+\end{Preamble*}
+%
+Ohne weitere Maßnahmen werden durch \Package{floatrow} alle Beschriftungen
+unterhalb der Gleitobjekte ausgegeben. Da das Ziel jedoch die Verwendung von
+Tabellenüberschriften und Abbildungsunterschriften ist, wird dies für Tabellen
+angepasst.
+%
+\begin{Preamble*}
+\floatsetup[table]{style=plaintop}
+\end{Preamble*}
+%
+\begin{table}
+\tableexample[%
+ \caption{%
+ Eine Tabelle in einer Gleitumgebung mit einer angepassten Formatierung%
+ }%
+ \label{tab:tabularnew}%
+]
+\end{table}%
+%
+Damit wären alle Einstellungen soweit erfolgt, in \autoref{tab:tabularnew} ist
+das Ergebnis zu sehen. Zumeist soll die Beschriftung für Gleitobjekte nicht
+zentriert sondern linksbündig gesetzt werden. Dies lässt sich ebenfalls mit den
+Mitteln des Paketes \Package{caption} und der passenden Paketoption
+\Option{justification}(\Package{caption}) erreichen. Damit dies auch für
+einzeilige Beschriftungen angewendet wird, muss zusätzlich die Einstellung
+\Option{singlelinecheck}(\Package{caption}) deaktiviert werden. Mit der
+Paketoption \Option{format}(\Package{caption}) kann außerdem beeinflusst
+werden, ob eine mehrzeilige Beschriftung nach einem Zeilenumbruch direkt unter
+dem Label oder mit Einzug fortgesetzt werden soll.
+%
+\begin{Preamble*}
+\captionsetup{singlelinecheck=off,format=hang,justification=raggedright}
+\end{Preamble*}
+%
+In \autoref{tab:tabularnew} fällt die Beschriftung auf, welche die Breite der
+Tabelle überragt. Falls linksbündige Gleitumgebungsbezeichnungen verwendet
+werden, wie dies gerade eingestellt wurde, besteht das Problem quasi bei jeder
+Beschriftung, da diese immer am linken Seitenrand beginnen. Auch hierfür stellt
+das Paket \Package{floatrow} die Befehle \Macro{ttabbox}(\Package{floatrow})
+für Tabellen sowie \Macro{ffigbox}(\Package{floatrow}) für Abbildungen bereit.
+
+Beide Makros erwarten im ersten obligatorischen Argument den Befehl
+\Macro{caption}(\Package{koma-script},\Package{caption}) für die Beschriftung
+gegebenenfalls gefolgt von einem mit \Macro{label} gesetzten Textanker. Im
+zweiten Argument wird das Objekt selbst~-- sprich Tabelle oder Abbildung~--
+angegeben. Zu verwenden sind diese folgendermaßen:
+%
+\begin{Hint}
+\begin{table}
+\ttabbox
+ §\Parameter{Tabellendefinition}§
+ {\caption§\Parameter{Beschriftung}§\label§\Parameter{Label}§}
+\end{table}
+\begin{figure}
+\ffigbox
+ §\Parameter{Abbildungsdefinition}§
+ {\caption§\Parameter{Beschriftung}§\label§\Parameter{Label}§}
+\end{figure}
+\end{Hint}
+%
+Diese beiden Befehle sorgen dafür, dass die Beschriftungen in der jeweiligen
+Breite des Objektes gesetzt werden. Entspricht das zu setzende Objekt in seiner
+Breite dem Wert \Length{textwidth}~-- es ist genauso Breit wie die Laufweite
+des Fließtextes~--, so ist deren Gebrauch nicht notwendig. Das Ergebnis der
+Verwendung von des Befehls \Macro{ttabbox}(\Package{floatrow}) ist in
+\autoref{tab:tabularbox} zu sehen.
+
+Bei der Nutzung der beiden Befehle sollte darauf geachtet werden, dass zwischen
+dem Ende des Objektes und der schließender Klammer des zweiten Argumentes kein
+ungewolltes Leerzeichen gesetzt wird. Dies lässt sich leicht vermeiden, indem
+direkt nach dem Ende des Objektes mit \Macro*{end}[\PParameter{tabularx}],
+\Macro*{end}[\PParameter{tabu}], \Macro*{end}[\PParameter{tikz}] etc. die
+schließende Klammer des zweiten Argumentes oder das Zeichen für einen Kommentar
+\PValue{\%} folgt.
+
+\begin{table}
+\ttabbox{\tableexample}{%
+ \caption[%
+ Eine mit \Macro{ttabbox}(\Package{floatrow}) gesetzte Tabelle in einer
+ Gleitumgebung%
+ ]{%
+ Eine in einer Gleitumgebung gesetzte Tabelle in Verbindung mit dem Befehl
+ \Macro{ttabbox}(\Package{floatrow}), der durch das Paket \Package{floatrow}
+ für Beschriftungen in Objektbreite zur Verfügung gestellt wird%
+ }%
+ \label{tab:tabularbox}%
+}
+\end{table}
+
+
+\subsection{Untergleitobjekte}
+\label{sec:subfloats}%
+%
+Das Paket \Package{floatrow} stellt allerhand Möglichkeiten zur Erstellung von
+nebeneinanderliegenden Gleitobjekten sowie \enquote{Untergleitobjekten} bereit
+und ist insbesondere in Verbindung mit den Fähigkeiten von \Package{caption}
+respektive \Package{subcaption} sehr gut für dieses Unterfangen nutzbar. Dafür
+werden die Umgebungen \Environment{floatrow}(\Package{floatrow}) sowie
+\Environment{subfloatrow}(\Package{floatrow}) angeboten, wobei die letztere für
+ein Beispiel verwendet wird. Als erstes muss der Typ der zu erzeugenden Labels
+für Abbildungen und Tabellen definiert werden. Dies geschieht mit dem Befehl
+\Macro{DeclareCaptionSubType}(\Package{subcaption}) aus dem Paket
+\Package{subcaption}.
+%
+\begin{Preamble}
+\DeclareCaptionSubType[alph]{figure}
+\DeclareCaptionSubType[alph]{table}
+\end{Preamble}
+%
+Anschließend werden die Untergleitobjekte formatiert. Dabei wird zum einen nach
+dem alphanumerischen Label eine schließende Klammer gesetzt. Zum andern wird
+ein Eintragen der Untergleitobjekte in das Abbildungsverzeichnis unterdrückt.
+Lediglich die Bildunterschrift der Hauptabbildung wird in dieses eingetragen.
+%
+\begin{Preamble*}
+\captionsetup[subfloat]{labelformat=brace,list=off}
+
+\end{Preamble*}
+%
+Mit diesen Einstellungen wird eine gleitende Abbildung erstellt, welche in
+\autoref{fig:logos} zu sehen ist. Wurde der entsprechende Anker gesetzt, kann
+zusätzlich auf die untergeordnete \autoref{fig:tud} sowie \autoref{fig:ddc}
+verwiesen werden.
+%
+\begin{Trunk+}
+\subsection{Untergleitobjekte}
+Nachdem nun schon eine gleitende Abbildung und zwei gleitende Tabellen
+erstellt wurden, folgt jetzt noch eine gleitende Abbildung mit zwei
+Unterabbildungen. Durch die drei gesetzten Anker kann im Fließtext
+sowohl auf \autoref{fig:logos} als auch auf \autoref{fig:tud} sowie
+\autoref{fig:ddc} verwiesen werden.
+
+\end{Trunk+}
+\begin{Trunk}
+\begin{figure}
+\ffigbox[\FBwidth]%
+ {\begin{subfloatrow}%
+ \ffigbox[\FBwidth]%
+ {\fbox{\includegraphics[height=2cm]{TUD-black}}}%
+ {\caption{Eine Abbildung}\label{fig:tud}}%
+ \ffigbox[\FBwidth]%
+ {\fbox{\includegraphics[height=2cm]{DDC-21}}}%
+ {\caption{Eine weitere Abbildung}\label{fig:ddc}}%
+ \end{subfloatrow}}%
+ {\caption{Eine Gleitumgebung mit zwei Abbildungen}\label{fig:logos}}%
+\end{figure}
+
+\end{Trunk}
+\InputCode
+
+
+\subsection{Beeinflussung des Gleitprozesses}
+Sobald das Dokument inhaltlich den finalen Zustand erreicht hat, haben Sie sich
+zu diesem Zeitpunkt schon mit Sicherheit an das standardmäßige Vorgehen von
+\hologo{LaTeX} gewöhnt und müssen respektive wollen gegebenenfalls nur noch bei
+wenigen Gleitobjekten~-- über das optionale Argument der Gleitumgebungen zur
+individuellen Empfehlung für die Platzierung~-- nachjustieren. Mögliche Werte
+sind:
+%
+\begin{description}[labelindent=\parindent,leftmargin=*,style=nextline]
+\item[\POParameter{h} (here)]
+ An der Stelle, wo es im Quelltext angegeben wurde~-- falls genügend Platz
+ vorhanden ist
+\item[\POParameter{t} (top)]
+ Am oberen Ende der aktuellen oder der folgenden Seite
+\item[\POParameter{b} (bottom)]
+ Am unteren Ende der aktuellen Seite
+\item[\POParameter{p} (page)]
+ Auf einer separaten Seite für mindestens ein Gleitobjekt
+\end{description}
+%
+Sie können eine, mehrere oder alle Optionen angeben, wobei die Reihenfolge
+keine Rolle spielt. Der Algorithmus arbeitet alle ihm zur Verfügung gestellten
+Optionen immer in der zuvor aufgezählten Reihenfolge ab, wobei diese nur als
+Empfehlung und nicht als Verpflichtung angesehen werden. Es gibt folglich keine
+Garantie, dass Ihr Vorschlag akzeptiert wird. Fügen sie dem optionalen Argument
+ein~\PValue{!} an, so verhindern Sie, dass \hologo{LaTeX} weitere Optionen
+evaluiert. Das Gleitobjekt wird anhand der optionalen Parameter positioniert,
+selbst wenn dabei ein unschönes Seitenlayout entsteht. Kann das Gleitobjekt
+technisch unmöglich auf die angegebene Weise positioniert werden, wird dieses
+sowie alle folgenden aufgeschoben und am Ende des Abschnitts oder Kapitels
+angehängt. Dieser Effekt ist wohl in den seltensten Fällen gewollt.
+
+Außerdem können die Pakete \Package{flafter} sowie \Package{placeins} genutzt
+werden. Das erstgenannte verhindert das Auftreten von Gleitobjekten im Dokument
+vor ihrer Definition im Quelltext. In der Konsequent bedeutet dies, dass die
+Option \POParameter{t} Gleitobjekte nur am oberen Ende der nächsten Seite
+jedoch nicht auf der aktuellen zulässt. Mit dem zweiten Paket können Barrieren
+definiert werden, an welchen die Ausgabe aller noch in der Warteschlange
+befindlichen Gleitobjekte forciert wird~-- beispielsweise vor bestimmten
+Gliederungsüberschriften. Im Handbuch zu \TUDScript findet sich außerdem zum
+Thema \enquote{\tudhyperref{sec:tips:floats}{Platzierung von Gleitobjekten}}
+ein eigener Abschnitt mit weiterführenden Informationen.
+
+
+\subsection{Abstellen des Gleitprozesses}
+Trotz der zuvor genannten Vorteile von Gleitobjekten wird oftmals verlangt, den
+Gleitprozess vollständig abzustellen. Dies bringt jedoch in den meisten Fällen
+einige Probleme mit sich. Die Folge sind ein sehr unruhiges Erscheinungsbild
+des Satzspiegels aufgrund schlecht gefüllter Seiten, außerdem im Zweifelsfall
+viel Handarbeit mit hart kodierten Seitenumbrüchen sowie daraus resultierend
+ein gegenüber von Umbruchänderungen äußerst anfälliges Dokument. Sollte es in
+\emph{Einzelfällen} dennoch erforderlich sein, dass eine Abbildung oder Tabelle
+nicht gleitet, ist die einzig logische Konsequenz, auf die Verwendung einer
+Gleitumgebung gänzlich zu verzichten.
+
+Hierfür eignet sich beispielsweise die Umgebung \Environment{center}, welche
+zum einen etwas Abstand vor und nach dem Objekt zum umgebenden Text erzeugt
+und zum anderen die Grafik respektive Tabelle und die dazugehörige Bezeichnung
+zusammenhält. \KOMAScript{} stellt für diesen Anwendungsfall das Makro
+\Macro{captionof}(\Package{koma-script}) für die Beschriftung zur Verfügung.
+Werden die Pakete \Package{caption} und \Package{hyperref} geladen, sollte
+weiterhin \Macro{caption}(\Package{koma-script},\Package{caption}) ergänzt um
+ein zuvor aufgerufenes
+\Macro{captionsetup}[\PParameter{type=figure/table}](\Package{caption})
+genutzt werden. Damit lassen sich Bildunter- sowie Tabellenüberschriften auch
+ohne die bekannten Gleitumgebungen \Environment{figure} respektive
+\Environment{table} erzeugen. Das Vorgehen wird folgend demonstriert, in
+\autoref{fig:nonfloating-A} ist das Ergebnis zu sehen.
+%
+\begin{Hint}
+\begin{center}
+\captionsetup{type=figure}
+\includegraphics{TUD-black}
+\caption{Eine nichtgleitende Grafik in einer \texttt{center}"=Umgebung}
+\label{fig:nonfloating-A}
+\end{center}
+
+\end{Hint}
+\InputCode\noindent
+%
+Alternativ zu diesem Ansatz kann das Paket \Package{float} zum Einsatz kommen,
+welches für Gleitumgebungen den Platzierungsparameter \POParameter{H}
+bereitstellt. Das Resultat ist identisch zu \autoref{fig:nonfloating-A}.
+%
+\begin{Hint}
+\begin{figure}[H]
+\includegraphics{TUD-black}
+\caption{Eine nichtgleitende Grafik in einer \texttt{figure}"=Umgebung}
+\label{fig:nonfloating-B}
+\end{figure}
+
+\end{Hint}
+%
+Mit den Mitteln des Paketes \Package{floatrow} lässt sich eine etwas bessere
+Variante entwickeln, wobei für eine mehrmalige Anwendung ein eigenes Makro mit
+den passenden Argumenten definiert werden sollte. Zum besseren Verständnis des
+Quelltextauszuges ist die Dokumentation von \Package{floatrow} zu beachten.
+%
+\begin{Hint}
+\floatbox[\captionsetup{type=figure}]{figure}[\FBwidth][%
+ \dimexpr\FBheight+\abovedisplayskip\relax%
+][b]{\includegraphics{TUD-black}}{%
+ \caption{%
+ Eine nichtgleitende Grafik mit \texttt{\textbackslash floatbox}%
+ }%
+ \label{fig:nonfloating-C}%
+}
+\end{Hint}
+\InputCode\noindent
+%
+Es wird hier trotz der vorhergehenden Ausführungen abermals ausdrücklich
+empfohlen, Tabellen und Abbildungen in Gleitumgebungen zu setzen und die
+korrekte Platzierung dem \hologo{LaTeX}"=Algorithmus zu überlassen.
+
+
+
+
+\section{Tabellensatz}
+\label{sec:tables}%
+%
+Zum Thema \enquote{Tabellensatz mit \hologo{LaTeX}} sind bereits zahlreiche
+\hrfn{http://userpage.fu-berlin.de/latex/Materialien/tabsatz.pdf}{Leitfäden}
+\cite{reichert2012} im Internet zu finden. Deshalb werde ich meine Ausführungen
+zu diesem Punkt relativ kurz halten. Zwei Regeln sollten beim Satz von Tabellen
+in jedem Fall beachtet werden:
+%
+\begin{enumerate}[%
+ itemindent=0pt,noitemsep,%
+ labelwidth=*,labelsep=1em,label=\Roman*.%
+]
+\item keine vertikalen Linien
+\item keine doppelten Linien
+\end{enumerate}
+%
+Das Paket \Package{booktabs} ist für den Satz von hochwertigen Tabellen eine
+große Hilfe und stellt die Befehle \Macro{toprule}(\Package{booktabs}),
+\Macro{midrule}(\Package{booktabs}) sowie \Macro{cmidrule}(\Package{booktabs})
+und \Macro{bottomrule}(\Package{booktabs}) für unterschiedliche horizontale
+Linien bereit.
+%
+\begin{Preamble}
+\usepackage{booktabs}
+\end{Preamble}
+%
+Außerdem existiert das Paket \Package{array}, welches mit dem Befehl
+\Macro{newcolumntype}(\Package{array}) die Definition eigener Spaltentypen
+sowie die Verwendung von \enquote{Hooks} vor (\PValue{>\PParameter{\dots}}) und
+nach (\PValue{<\PParameter{\dots}}) Einträgen innerhalb einer Spalte
+(\PValue{>\PParameter{\dots}}\PName{Spaltentyp}\PValue{<\PParameter{\dots}})
+ermöglicht.
+%
+\begin{Preamble}
+\usepackage{array}
+\end{Preamble}
+%
+Für alle im Folgenden vorgestellten Umgebungen zum Setzen von Tabellen gilt,
+dass die Inhalte zeilenweise angegeben werden, wobei die Einträge für die
+einzelnen Spalten mit~\PValue{\&} voneinander zu trennen sind. Das Beenden
+einer Tabellenzeile und der Wechsel zur nächsten erfolgt normalerweise mit
+\PValue{\textbackslash\textbackslash}. Da jedoch einige \hologo{LaTeX}"=Pakete
+diesen Befehl innerhalb von Tabellen lokal ändern ist es zur Vermeidung
+unnötiger Fehler wesentlich sicherer, das Zeilenende ausschließlich mit
+\Macro{tabularnewline} zu setzen.
+
+Im Folgenden wird in einigen Tabellen bei der Definition der Spalten vor der
+ersten und nach der letzten das Konstrukt~\PValue{@\PParameter{}} verwendet,
+was das \tudhyperref{sec:tips:table}{Einrücken der Tabellenspalten verhindert}
+und im Handbuch genauer erläutert wird.
+
+
+\subsection{Die Standardumgebung \Environment*{tabular}}
+Normalerweise gibt es für \Environment{tabular} vier unterschiedliche
+Spaltentypen. Die drei Spaltentypen~\PValue{l},~\PValue{c}~und~\PValue{r}
+stehen für linksbündige, zentrierte und rechtsbündige Spalten zu Verfügung,
+welche allerdings keinen Zeilenumbruch erlauben. Der Inhalt wird quasi wie in
+einer \Macro{mbox} gesetzt, wodurch die Spalten sehr breit werden und über den
+Seitenrand hinausragen können.
+
+Der Spaltentyp~\PValue{p}\Parameter{Breite} hingegen legt die Spaltenbreite
+fest und setzt die Zellinhalte in einer \Macro{parbox}, wobei diese mit ihrer
+obersten Zeile an der Grundlinie ausgerichtet wird. Das Paket \Package{array}
+stellt außerdem die Spaltentypen~\PValue{m}\Parameter{Breite}
+und~\PValue{b}\Parameter{Breite} bereit, welche ebenfalls mit \Macro{parbox}
+gesetzt werden, die Ausrichtung an der Grundlinie jedoch zentriert respektive
+an der unteren Zeile erfolgt. Es folgt ein Beispiel zur Nutzung der
+\Environment{tabular}"=Umgebung.
+%
+\begingroup
+\pcolumnfuzz{70pt}
+\begin{Hint*}
+\begin{tabular}{lcrp{33mm}}
+\toprule
+\textbf{Linksbündig} & \textbf{Zentriert} &
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+a & b & c & Dieser Text wird im Blocksatz gesetzt\tabularnewline
+aa & bb & cc & Auch Zeilenumbrüche sind vorhanden\tabularnewline
+aaa & bbb & ccc & Worttrennungsmusterkontrolle\tabularnewline
+\bottomrule
+\end{tabular}
+\end{Hint*}
+\endgroup
+%
+Die Tabellenbreite ergibt sich aus der Breite der einzelnen Spalten. Bei dieser
+Umgebung liegt es allein beim Anwender, auf die korrekte Breite der Tabelle zu
+achten, damit diese nicht über die Seitenränder hinausragt. Das kann auf Dauer
+recht aufwändig werden. Das Festlegen der Gesamtbreite einer Tabelle und das
+automatische Berechnen einiger oder aller Spaltenbreiten ist sicher die
+angenehmere Variante. Wie sich dies sehr komfortabel bewerkstelligen lässt,
+wird~-- ebenso wie die Lösung des Problems eines nicht umbrochenen Eintrags wie
+in der letzten Spalte der dritten Zeile der obigen Tabelle~-- im nachfolgenden
+Abschnitt demonstriert.
+
+
+\subsection{Tabellen mit variabler Spaltenbreite}
+Die Pakete \Package{tabularx}, \Package{tabulary} oder auch \Package{tabu}
+stehen für das Setzen von Tabellen mit dynamisch berechneter Spaltenbreite bei
+fest vorgegebener Gesamtbreite zur Verfügung, welche nun kurz vorgestellt
+werden sollen. Die beiden erstgenannte Pakete \Package{tabularx} sowie
+\Package{tabulary} stammen vom gleichen Paketautor und haben sich als sehr
+stabil erwiesen. Das Paket \Package{tabu} ist relativ neu und versucht, viele
+Funktionalitäten ganz unterschiedlicher Pakete für den Tabellensatz in sich zu
+vereinen und glänzt insbesondere durch seine Vielseitigkeit.
+%
+\begin{Preamble}
+\usepackage{tabularx}
+\usepackage{tabulary}
+\usepackage{tabu}
+\usepackage{longtable}
+
+\end{Preamble}
+%
+Jedes der Pakete stellt einen oder mehrere neue Spaltentypen zur Verfügung.
+Dies bedeutet jedoch nicht, dass in den dazugehörigen Tabellenumgebungen
+lediglich diese genutzt werden können. Vielmehr werden diese zusätzlich
+angeboten, was bedeutet, dass auch in den neuen Tabellenumgebungen weiterhin
+die gewohnten Spaltentypen~\PValue{l},~\PValue{c},~\PValue{r}~und~\PValue{p}
+verfügbar sind.
+
+\subsubsection{Die Tabellenumgebung \Environment*{tabularx}}
+\label{sec:tabularx}%
+%
+Das Paket \Package{tabularx} stellt den Spaltentyp~\PValue{X} bereit, welcher
+prinzipiell dem Spaltentyp~\PValue{p} entspricht. Auch für diesen wird eine
+\Macro{parbox} verwendet, allerdings wird deren Breite \emph{automatisch}
+berechnet. Die Umgebung \Environment{tabularx}(\Package{tabularx}) erwartet vor
+der Spaltentypenangabe als obligatorisches Argument die gewünschte Breite der
+Tabelle. Spalten vom Typ~\PValue{l},~\PValue{c}~und~\PValue{r} werden jedoch
+weiterhin \emph{ohne} Zeilenumbruch gesetzt werden. Nur für Spalten vom
+Typ~\PValue{X} und deren Derivate wird aus dem verbliebenen Platz die Breite
+berechnet. Für die \Environment{tabularx}(\Package{tabularx})"~Umgebung wird
+das vorherige Beispiel wiederholt.
+%
+\begingroup
+\pcolumnfuzz{70pt}
+\begin{Hint*}
+\begin{tabularx}{11.7cm}{lcrX}
+\toprule
+\textbf{Linksbündig} & \textbf{Zentriert} &
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+a & b & c & Dieser Text wird im Blocksatz gesetzt\tabularnewline
+aa & bb & cc & Auch Zeilenumbrüche sind vorhanden\tabularnewline
+aaa & bbb & ccc & Worttrennungsmusterkontrolle\tabularnewline
+aaaa & bbbb & cccc & \hspace{0pt}Worttrennungsmusterkontrolle
+\tabularnewline\bottomrule
+\end{tabularx}
+\end{Hint*}
+\endgroup
+%
+Die Breite der letzten Spalte wurde dabei aus der Angabe der Gesamtbreite mit
+\PValue{11.7cm} berechnet. Des Weiteren ist zu sehen, wie das Problem des
+Zeilenumbruchs behandelt werden kann. Normalerweise wird das erste Wort in
+einem Absatz von \hologo{LaTeX} \emph{nie} umbrochen. Dies kann durch das
+Einfügen eines breitenlosen Leerzeichens mit \Macro{hspace}[\PParameter{0pt}]
+umgangen werden. Die gefundene Lösung ist allerdings alles andere als elegant.
+
+Mit den Möglichkeiten des Paketes \Package{array} ist das Problem relativ
+schnell gelöst. Es wird mit \Macro{newcolumntype}(\Package{array}) ein neuer
+Spaltentyp definiert. Das erste Argument legt den Namen des Spaltentyps fest.
+Mit \PValue{>\Parameter{Definitionen}}\Parameter{Typ} wird im zweiten Argument
+das Ausführen von \PName{Definitionen} vor dem Setzen des eigentlichen Inhaltes
+in einer \Parameter{Typ}"~Spalte definiert. Es wird ein neuer, auf der
+\PValue{X}"~Spalte basierender Typ~\PValue{Y} definiert, welcher zu Beginn der
+Spalte den Phantomabstand automatisch einfügt. Darauf basierend werden drei
+Spaltentypen für den links- und rechtsbündigen sowie zentrierten Textsatz mit
+einem möglichen Zeilenumbruch erstellt.
+%
+\begin{Trunk+}
+\subsection{Tabellen als Gleitobjekte}
+Tabellen sollten in der \texttt{table}"=Gleitumgebung gesetzt werden.
+Welche Umgebung für die Tabelle selbst dabei genutzt wird ist dabei
+nicht relevant. Es können sowohl die normale \texttt{tabular}"=Umgebung
+als auch die Umgebungen \texttt{tabularx}, \texttt{tabulary} sowie
+\texttt{tabu} für variable Spaltenbreiten bei einer fest vorgegebenen
+Tabellenbreite oder jede andere Tabellenumgebung genutzt werden.
+Nachfolgend wird dies an mehreren Beispielen demonstriert.
+
+\subsubsection{Eine gleitende tabularx-Tabelle}
+Es wird eine Tabelle mithilfe der \texttt{tabularx}"=Umgebung erstellt.
+Zu sehen ist diese in \autoref{tab:tabularx}. Für diese werden zuvor
+neue Spaltentypen definiert.
+
+\end{Trunk+}
+\CodeHook{\renewcommand*{\newcolumntype}[2]{}}
+\begin{Trunk*}
+\newcolumntype{Y}{>{\hspace{0pt}}X}
+\newcolumntype{D}{>{\raggedright}Y}
+\newcolumntype{E}{>{\centering}Y}
+\newcolumntype{F}{>{\raggedleft}Y}
+
+\end{Trunk*}
+%
+Nachfolgend wird die Tabelle gesetzt mit den neuen Spaltentypen gesetzt.
+%
+\begin{Trunk}
+\begin{table}
+\begin{tabularx}{\textwidth}{@{}DEFY@{}}
+\toprule
+\textbf{Linksbündig} & \textbf{Zentriert} &
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
+\midrule
+Ein linksbündiger Blindtext zur Demonstration einer S"~Spalte &
+Ein zentrierter Blindtext zur Demonstration einer T"~Spalte &
+Ein rechtsbündiger Blindtext zur Demonstration einer U"~Spalte &
+Ein längerer Blindtext im Blocksatz zur besseren Demonstration
+einer Y"~Spalte\tabularnewline
+\bottomrule
+\end{tabularx}
+\caption{Eine \texttt{tabularx}"=Tabelle}\label{tab:tabularx}
+\end{table}
+
+\end{Trunk}
+\InputCode\noindent
+%
+Die Breite der einzelnen \PValue{X}"~Spalten und deren Derivaten ist dabei
+identisch. Ein Gewichten der Spaltenbreiten untereinander ist prinzipiell
+möglich, allerdings mit einigen Einschränkungen verbunden. Genaueres hierzu ist
+der Dokumentation des Paketes \Package{tabularx} zu entnehmen.
+
+\subsubsection{Die Tabellenumgebung \Environment*{tabulary}}
+\label{sec:tabulary}%
+%
+Das Paket \Package{tabulary} verfolgt im Vergleich zum zuvor beschrieben Paket
+\Package{tabularx} einen etwas anderen Ansatz. Anstatt die verfügbare Breite
+über alle Spalten gleichmäßig zu verteilen, werden die Spaltenbreite anhand des
+jeweils darin befindlichen Inhaltes zueinander gewichtet. Dafür werden die vier
+Spaltentypen~\PValue{L},~\PValue{C},~\PValue{R}~sowie~\PValue{J} zur Verfügung
+gestellt. Diese entsprechen prinzipiell dem Spaltentyp~\PValue{p}, allerdings
+wird deren Breite \emph{automatisch} berechnet, wobei Spalten mit mehr Inhalt
+breiter gesetzt werden. Für die automatische Berechnung der Spaltenbreiten muss
+verständlicherweise die gewünschte Gesamtbreite der Tabelle angegeben werden,
+was bei der \Environment{tabulary}(\Package{tabulary})"~Umgebung mit dem ersten
+obligatorischen Argument vor der Angabe der Spaltendefinition erfolgt. Werden
+eine oder mehrere Spalten vom Typ~\PValue{l},~\PValue{c}~und~\PValue{r}
+angegeben, so werden diese weiterhin in ihrer natürlichen Breite und ohne
+Zeilenumbruch gesetzt.
+
+Die Gewichtung der Spalten vom Typ~\PValue{LCRJ} und deren Derivate wird aus
+dem verbliebenen Platz die Breite berechnet. Die Berechnung der Spaltenbreite
+kann durch den Anwender außerdem über zwei Längen beeinflusst werden. Mit
+\Length{tymin}(\Package{tabulary}) wird die Mindestgröße für Spalten
+festgelegt. Sollten Sie wissen, dass eine Spalte sehr schmal wird, können Sie
+allerdings auch einfach eine der Standardspalten~\PValue{lcrp} nutzen. Mit der
+Länge \Length{tymax}(\Package{tabulary}) kann die maximale Ausdehnung einer der
+Spalten vom Typ~\PValue{LCRJ} festgelegt werden.
+
+Für die \Environment{tabulary}(\Package{tabulary})"~Umgebung wird das vorherige
+Beispiel wiederholt. Zu beachten ist, dass die Spaltentypen~\PValue{LCRJ} mit
+dem Makro \Macro{tyformat}(\Package{tabulary}) bereits ein breitenloses
+Leerzeichen einsetzen, womit sich das manuelle Einfügen von selbigem durch den
+Anwender erübrigt.
+%
+\begin{Trunk+}
+\subsubsection{Eine gleitende tabulary-Tabelle}
+Es wird eine Tabelle mithilfe der \texttt{tabulary}"=Umgebung erstellt.
+Zu sehen ist diese in \autoref{tab:tabulary}.
+
+\end{Trunk+}
+\begin{Trunk}
+\begin{table}
+\begin{tabulary}{\textwidth}{@{}LCRJ@{}}
+\toprule
+\textbf{Linksbündig} & \textbf{Zentriert} &
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+Ein linksbündiger Blindtext zur Demonstration einer L"~Spalte &
+Ein zentrierter Blindtext zur Demonstration einer C"~Spalte &
+Ein rechtsbündiger Blindtext zur Demonstration einer R"~Spalte &
+Ein wesentlich längerer und absolut inhaltsleerer Blindtext im
+Blocksatz für eine um einiges bessere Demonstration einer J"~Spalte
+\tabularnewline\bottomrule
+\end{tabulary}
+\caption{Eine \texttt{tabulary}"=Tabelle}\label{tab:tabulary}
+\end{table}
+
+\end{Trunk}
+\InputCode
+
+
+\subsubsection{Die Tabellenumgebung \Environment*{tabu}}
+\label{sec:tabu}%
+%
+Das Paket \Package{tabu} bietet eine mächtige und komfortable Alternative zu
+\Package{tabularx}. Es kam in diesem Tutorial bereits für die Verzeichnisse von
+Abkürzungen und Symbolen in \autoref{sec:glossaries} zum Einsatz. Leider ist
+das Paket in er aktuellen Version~v2.8 mit Vorsicht zu genießen. Zum einen
+wären für das Paket in der aktuellen Version seit geraumer Zeit ein paar
+kleinere Bugfixes notwendig, mehr dazu sehen Sie später. Außerdem wird sich die
+\hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{%
+ Benutzerschnittstelle in einer zukünftigen Version%
+}
+sehr stark ändern. Sie sollten sich bewusst sein, dass mit der Version~v2.8
+gesetzte Dokumente gegebenenfalls später angepasst werden müssen.
+
+Nichtsdestotrotz soll hier folgend die individuelle Verwendung einer
+\Environment{tabu}(\Package{tabu})"~Umgebung gezeigt werden, insbesondere weil
+für das Setzen umbruchfähiger Tabellen mit automatisch berechneten
+Spaltenbreiten momentan (fast) keine Alternative zu der Umgebung
+\Environment{longtabu}(\Package{tabu}) existiert.
+
+Dieses Paket definiert ebenso einen Spaltentyp~\PValue{X}, welchem allerdings
+zusätzlich ein optionales Argument angehangen werden kann. Mit diesem lässt
+sich sowohl die Gewichtung der automatisch berechneten Spalten untereinander
+als auch die Positionierung zur Grundlinie sowie die Ausrichtung des Inhaltes
+ändern.
+%
+\begingroup
+\pcolumnfuzz{70pt}
+\begin{Hint*}
+\begin{tabu} to 11.7cm {lcrX}
+\toprule
+\textbf{Linksbündig} & \textbf{Zentriert} &
+\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+a & b & c & Dieser Text wird im Blocksatz gesetzt\tabularnewline
+aa & bb & cc & Auch Zeilenumbrüche sind vorhanden\tabularnewline
+aaaa & bbbb & cccc & Worttrennungsmus\-terkontrolle\tabularnewline
+aaa & bbb & ccc & Worttrennungsmusterkontrolle
+\tabularnewline\bottomrule
+\end{tabu}
+\end{Hint*}
+\endgroup
+%
+Das Beispiel zeigt auch gleich das momentan meiner Meinung nach größte Problem
+des Paketes: Bei mehrzeiligen Zellen fehlt vertikale Zwischenraum zur nächsten
+Tabellenzeile. Nun besteht entweder die Möglichkeit, bei jeder Angabe einer
+Spalte im Tabellenkopf, welche eine \Macro{parbox} verwendet, mit dem Ausdruck
+\PValue{>\PParameter{\Macro{strut}}} die fehlenden Unterlänge auszugleichen
+oder es wird abermals ein entsprechender Spaltentyp definiert. Das ist für
+die \PValue{X}"~Spalten der Umgebung \Environment{tabu}(\Package{tabu}) etwas
+schwieriger, da \Macro{newcolumntype}(\Package{array}) normalerweise die
+Definition eines optionalen Argumentes nicht vorgesehen ist. Mit ein wenig
+Trickserei ist das dennoch möglich:
+%
+\begin{Trunk+}
+\subsubsection{Eine gleitende tabu-Tabelle}
+In \autoref{tab:tabu} ist eine weitere Tabelle mit variabler Breite der
+Spalten und festgelegter Gesamtbreite zu sehen, welche in der Umgebung
+\texttt{tabu} gesetzt wurde. Auch für diese wird zuerst ein neuer
+Spaltentyp definiert, der die Unzulänglichkeiten der Umgebung reduziert.
+Mit \texttt{\textbackslash ttabbox} aus dem Paket \texttt{floatrow} wird
+die Beschriftung auf die Breite der Tabelle begrenzt.
+
+\end{Trunk+}
+\CodeHook{\renewcommand*{\newcolumntype}[2]{}}
+\begin{Trunk*}
+\makeatletter
+\newcolumntype{Z}{}
+\renewcommand*{\NC@rewrite@Z}[1][]{%
+ \NC@find>{\hspace{0pt}}X[#1]<{\@finalstrut\@arstrutbox}%
+}
+\makeatother
+
+\end{Trunk*}
+%
+Anschließend kann der \PValue{Z}"~Spaltentyp äquivalent zu \PValue{X} genutzt
+werden. Zu beachten ist dabei insbesondere die Möglichkeit, die Spalten in
+ihrer resultierenden Breite sehr einfach zueinander gewichten zu können~-- im
+Gegensatz zur Umgebung \Environment*{tabularx}, wo dieses Unterfangen etwas
+schwieriger ist. Das Ergebnis ist in \autoref{tab:tabu} zu sehen. Zu beachten
+ist die Verwendung von \Macro{ttabbox}(\Package{floatrow}) aus dem Paket
+\Package{floatrow}, um die Beschriftung an die Breite der Tabelle anzupassen.
+Genaueres dazu in \autoref{sec:floatlayout}.
+%
+\begin{Trunk}
+\begin{table}
+\ttabbox{%
+ \begin{tabu} to .8\textwidth {@{}Z[3,l]Z[3,c]Z[3,r]Z[2,j]@{}}
+ \toprule
+ \textbf{Linksbündig} & \textbf{Zentriert} &
+ \textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
+ Ein linksbündiger Blindtext zur Demonstration einer Z[l]"~Spalte &
+ Ein zentrierter Blindtext zur Demonstration einer Z[c]"~Spalte &
+ Ein rechtsbündiger Blindtext zur Demonstration einer Z[r]"~Spalte &
+ Ein Blindtext im Blocksatz innerhalb einer Z"~Spalte
+ \tabularnewline\bottomrule
+ \end{tabu}%
+}{%
+ \caption[Eine \texttt{tabu}"=Tabelle]{%
+ Eine \texttt{tabu}"=Tabelle in Verbindung mit dem Befehl
+ \texttt{\textbackslash ttabbox}, welcher vom Paket \texttt{floatrow}
+ für Beschriftungen in Objektbreite bereitgestellt wird%
+ }%
+ \label{tab:tabu}%
+}
+\end{table}
+
+\end{Trunk}
+\InputCode
+
+
+
+\section{Querverweise}
+\label{sec:references}%
+%
+Damit alle möglichen Querverweise in einem PDF"~Dokument automatisch verlinkt
+werden, sollte das Paket \Package{hyperref} geladen werden. Um die erzeugten
+Links verträglich aussehen zu lassen, werden die beiden Paketoptionen
+\Option{colorlinks}(\Package{hyperref}) sowie \Option*{linkcolor=blue}
+verwendet. Da \Package{hyperref} allerhand Veränderungen an vielen
+Standardbefehlen vornimmt, sollte dieses als letztes in der Präambel
+eingebunden werden. Nur Pakete, bei denen in der Dokumentation explizit darauf
+hingewiesen wird, dass diese nach \Package{hyperref} zu laden sind, sollten
+auch danach folgen. Eines dieser wenigen Pakete ist das in diesem Tutorial
+verwendete \Package{glossaries}.
+%
+\begin{Hint}
+\usepackage[colorlinks,linkcolor=blue]{hyperref}
+
+\end{Hint}
+%
+Um auf ein bestimmtes Objekt wie beispielsweise eine Tabelle, eine Abbildung
+oder einen bestimmten Anschnitt im Dokument referenzieren zu können, muss mit
+\Macro{label}[\Parameter{label}] ein Anker für selbiges an der entsprechenden
+Stelle gesetzt werden. Bei Überschriften sollte dies direkt nach der Nutzung
+des Gliederungsbefehls%
+\footnote{%
+ \Macro{chapter}(\Package{koma-script}),
+ \Macro{section}(\Package{koma-script}) etc.%
+}
+erfolgen. Für Abbildungen, Tabellen oder andere Objekte in Gleitumgebungen muss
+der Anker unmittelbar nach der Verwendung von
+\Macro{caption}(\Package{koma-script},\Package{caption}) respektive
+\Macro{captionof}(\Package{koma-script}) erstellt werden. Um nun auf diesen
+Anker zu referenzieren, sollte nicht \Macro{ref} sondern
+\Macro{autoref}(\Package{hyperref}) im Fließtext genutzt werden. Letztgenannter
+Befehl erzeugt nicht nur einen Link mit der dazugehörigen Nummerierung sondern
+stellt dieser die Bezeichnung des referenzierten Objektes%
+\footnote{\enquote{Abbildung}, \enquote{Tabelle}, \dots}
+voran.
+
+Mit dem Befehl \Macro{pageref} lässt sich auf die Seite eines Ankers verweisen.
+Das Paket \Package{varioref} kann dabei unterscheiden, ob der Anker sich auf
+der aktuellen Seite, auf einer Seite direkt davor beziehungsweise danach oder
+auf einer entfernteren Seite befindet und dementsprechend einen Hinweis darauf
+ausgeben. Hierfür werden die Befehle \Macro{vref}(\Package{varioref}) sowie
+\Macro{vpageref}(\Package{varioref}) zur Verfügung gestellt. Das Paket
+\Package{cleveref} vereint die Vorzüge von \Macro{autoref}(\Package{hyperref})
+in Verbindung mit \Macro{vref}(\Package{varioref}) durch den Befehl
+\Macro{cref}(\Package{cleverref}).
+
+
+
+\section{Zitate}
+Für das wörtliche Zitieren kann das Paket \Package{csquotes} verwendet werden.
+Dieses stellt den Befehl \Macro{enquote}(\Package{csquotes}) bereit, der die
+kennzeichnenden Anführungszeichen automatisch in Abhängigkeit der verwendeten
+Dokumentsprache setzt.
+%
+\begin{Hint}
+\usepackage{csquotes}
+\end{Hint}
+%
+Da für die unterschiedlichen Fachdisziplinen teils sehr unterschiedliche
+Zitierrichtlinien existieren, kann hier keine allgemeingültige Empfehlung zu
+Stilfragen gegeben werden. Zu beachten ist auf jeden Fall, dass zu wörtlichen
+Zitaten eine Quellenangabe erfolgen \emph{muss}. Dabei sollte darauf geachtet
+werden, dass nicht nur die Quelle selbst sondern zumindest auch die Seitenzahl
+des Zitats angegeben wird.
+%
+\begin{refsection}[\jobname-temp.bib]
+\begin{Trunk+}
+\section{Zitate}
+Bei der Verwendung von wörtlichen Zitaten sollten diese als solche
+gekennzeichnet werden.
+\end{Trunk+}
+\begin{Trunk*}
+\enquote{Dies ist ein zugegebenermaßen nicht sehr sinnvolles Zitat.}
+\cite[58]{hanisch14}
+\end{Trunk*}
+\begin{Trunk+}
+Für eine möglichst gut nachvollziehbare Referenz sollte nicht nur
+das Werk selber sondern zumindest die Seitenzahl und gegebenenfalls
+der Absatz der originalen Textstelle angegeben werden.
+\end{Trunk+}
+%
+Längere Zitate sollten abgesetzt vom Fließtext ausgegeben werden. Hierfür
+bieten sowohl die Standard"~ als auch die \KOMAScript-Klassen standardmäßig
+die Umgebungen \Environment{quote}(\Package{koma-script}) und
+\Environment{quotation}(\Package{koma-script}) an. Allerdings verwenden beide
+fest eingestellte Absatzauszeichnungen. Sollen jedoch die mit der Option
+\Option{parskip}(\Package{koma-script}) vorgegebenen Einstellungen für Absätze
+beachtet werden, so bietet sich das Paket \Package{quoting} an, welches die
+gleichnamige Umgebung \Environment{quoting}(\Package{quoting}) definiert und
+die Absätze wie im restlichen Dokument auszeichnet.
+%
+\begin{Preamble}
+\usepackage{quoting}
+
+\end{Preamble}
+%
+\begin{Trunk*}
+\begin{quoting}
+\enquote{%
+ Dies ist ein noch sinnloseres Zitat. Allerdings wird zumindest die
+ Wirkung der Umgebung \texttt{quoting} bei der Absatzauszeichnung
+ deutlich.
+
+ Wie zu sehen ist, wird der zweite Absatz~-- wie jeder weitere~--
+ aufgrund der Option \texttt{parskip=false} eingezogen.
+}
+\cite[sinngemäß nach][\pno{} 12, zweiter Absatz]{hanisch14}
+\end{quoting}
+\end{Trunk*}
+\begin{Trunk+}
+Ebenfalls sollten sinngemäße Zitate mit einer möglichst genauen Referenz
+angegeben werden. Dies kann im Laufe der Arbeit auch für einen selbst von
+Vorteil sein, wenn beispielsweise die originale Textpassage noch einmal
+analysiert werden soll.
+
+\end{Trunk+}
+\begin{quoting}[rightmargin=0pt]
+\makeatletter
+\let\markboth\@gobbletwo
+\let\markright\@gobble
+\makeatother
+\printbibliography
+\end{quoting}
+\end{refsection}
+
+
+
+\section{Worttrennungen}
+\label{sec:hyphenation}%
+%
+Bei der Verwendung von \hologo{LaTeXe} gibt es ab und an das Problem, dass
+bestimmte Wörter am Zeilenende falsch getrennt werden. Dies hat historische
+Gründe. Als \hologo{TeX} in den 1980er"~Jahren entwickelt wurde, war es
+aufgrund der zu dieser Zeit zur Verfügung stehenden Speichergrößen schier
+unmöglich, die Worttrennungen mit einem Wörterbuchansatz umzusetzen.
+Stattdessen wurde~-- um den benötigten Speicherbedarf möglichst gering zu
+halten~-- ein Algorithmus entworfen, der mögliche Trennstellen in einem Wort
+mit einer Mustererkennung ermittelt. Die verwendeten Muster basieren jedoch
+auf der englischen Sprache, weshalb in nicht"~englischsprachigen Texten auch
+heute noch teilweise falsche Trennstellen gefunden werden.
+
+In \autoref{sec:introduction} wurde bereits auf das Paket
+\Package{hyphsubst} hingewiesen, welches dieses Manko~-- aufgrund der nicht
+mehr so stark gegebenen Restriktionen bezüglich des Speicherbedarfes~-- mit
+einem Wörterbuch behebt. Dieses Paket muss für \Engine{pdfLaTeX} vom Anwender
+eingebunden werden, \Engine{LuaLaTeX} und \Engine{XeLaTeX} verwenden die
+Trennmuster~-- ein geladenes Sprachpaket wie \Package{polyglossia} oder
+\Package{babel} vorausgesetzt~-- automatisch. Damit auch Wörter mit Umlauten
+richtig getrennt werden, ist zudem das Paket \Package{fontenc} mit der
+\PValue{T1}"~Schriftkodierung respektive \Package{fontspec} notwendig. Der
+Beginn einer Dokumentpräambel könnte folgendermaßen aussehen:
+%
+\begin{Hint}
+\documentclass[ngerman,§\PName{Klassenoptionen}§]§\Parameter{Dokumentklasse}§
+\ifpdftex{
+ \usepackage[T1]{fontenc}
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+}{
+ \usepackage{fontspec}
+}
+\usepackage{babel}
+\end{Hint}
+%
+Die Option \Option{ngerman}(\Package{hyphsubst}) lädt dabei die Trennmuster für
+die neue deutsche Rechtschreibung, wobei der Wert \PValue{ngerman-x-latest} die
+neuesten aller verfügbaren Trennmuster lädt. Für die alte Orthografie ist
+stattdessen die Option \Option{german}(\Package{hyphsubst}) mit dem Wert
+\PValue{german-x-lastest} zu verwenden.
+
+
+\subsection{Einmalige und globale Worttrennungskorrektur}
+Sollte es dennoch passieren, dass ein Wort nicht korrekt getrennt wird, lässt
+sich dies manuell korrigieren. Dafür stellt das Paket \Package{babel} mehrere
+Kurzbefehle zur Verfügung. Mit dem Makro \Macro{hyphenation} lassen sich für
+ein bestimmtes Wort außerdem alle potenziellen Trennstellen angeben. Zum Thema
+\tudhyperref{sec:tips:hyphenation}{Worttrennungen in deutschsprachigen Texten}
+ist im \TUDScript-Handbuch unter dem Kapitel Tipps~\&~Tricks mehr zu finden.
+Dort wird auch erläutert, wie das Problem der alleinigen Trennung von Wörtern
+mit Bindestrich an selbigem umgangen werden kann.
+
+
+\subsection{Worttrennung im Flattersatz}
+Normalerweise ist bei \hologo{LaTeXe} die Worttrennung für den Flattersatz%
+\footnote{\Macro{raggedright}, \Macro{raggedleft}, \Macro{centering}}
+deaktiviert. Mit dem Paket \Package{ragged2e} kann diese aktiviert werden. Nach
+dem Laden stehen die Befehle \Macro{Centering}(\Package{ragged2e}),
+\Macro{RaggedLeft}(\Package{ragged2e}) sowie
+\Macro{RaggedRight}(\Package{ragged2e}) für den Anwender zur Verfügung, um
+Worttrennungen im Flattersatz zu verwenden. Die Option
+\Option{newcommands}(\Package{ragged2e}) überschreibt die originalen Befehle
+\Macro{centering}, \Macro{raggedleft} und \Macro{raggedright} mit den
+korrelierten Befehlen aus dem Paket. Genaueres dazu ist der Dokumentation des
+Paketes zu entnehmen.
+
+
+
+\section{Mikrotypografische Feinheiten}
+Unter Mikrotypografie oder Detailtypografie wird die Gestaltung folgender
+Feinheiten des Schriftsatzes verstanden:
+\begin{itemize}[noitemsep]
+\item korrekte Anwendung der Satzzeichen
+\item Schriftart, Kapitälchen und Ligaturen
+\item Wortabstände sowie Laufweite (Buchstaben- und Zeichenabstände)
+\item optischer Randausgleich
+\end{itemize}
+
+\noindent Die letzten beiden Punkte werden sensationell gut durch das Paket
+\Package{microtype} bearbeitet. Dieses muss lediglich in der Präambel geladen
+werden, wobei es nicht mit der klassischen \hologo{TeX}"~Engine, wohl jedoch
+mit \Engine{pdfTeX} als auch \Engine{LuaTeX} sowie \Engine{XeTeX} funktioniert.
+%
+\begin{Preamble}
+\usepackage[babel]{microtype}
+
+\end{Preamble}
+%
+Die Option \Option{babel}(\Package{microtype}) ist nur notwendig, wenn einzelne
+Textpassagen oder das gesamte Dokument in Englisch oder Französisch verfasst
+werden und hierfür die genutzte Sprache mit den entsprechenden Möglichkeiten
+von \Package{babel} eingestellt wird.
+
+Das korrekte Anwenden von Satzzeichen wird für deutschsprachige Texte bereits
+in mehreren Artikeln \cite{neubauer1996,neubauer1997,struckmann2007,bier2009}
+sehr gut erläutert, weshalb ein Hinweis auf diese Arbeiten für weitergehende
+Informationen zu dieser Thematik absolut ausreichend ist. Nachfolgend werden
+Tipps gegeben sowie einige \hologo{LaTeXe}"=Pakete vorgestellt, die bei der
+Umsetzung der in den genannten Artikeln erläuterten Empfehlungen helfen.
+
+
+\subsection{Abkürzungen}
+In \cite{struckmann2007} wird gleich zu Beginn darauf hingewiesen, wie häufig
+verwendete Abkürzungen sehr einfach im Dokument verwendet werden können und
+dabei typografisch richtig gesetzt werden. Beispielsweise gelingt dies für die
+Abkürzung \enquote{zum~Beispiel~(z.\,B.)} mit dieser Definition:
+%
+\begin{Hint}
+\newcommand{\zB}{\mbox{z.\,B.}\xspace}
+\end{Hint}
+%
+Wenn ohnehin das Paket \Package{glossaries} für Akronyme verwendet wird, kann
+alternativ dazu auch dessen Funktionalität genutzt werden. Nach dem Einbinden
+muss in der Präambel lediglich Folgendes eingefügt werden:
+%
+\begin{Hint}
+ \newignoredglossary{abbreviation}
+ \newcommand*{\newabbreviation}[4][]{%
+ \newacronym[type=abbreviation,#1]{#2}{\mbox{#3\xspace}}{#4}%
+ }%
+\end{Hint}
+%
+Mit \Macro{newignoredglossary}(\Package{glossaries}) wird dabei ein Glossar
+erstellt, welche bei der Ausgabe aller Glossare mit
+\Macro{printglossaries}(\Package{glossaries}) ignoriert wird. Im Dokument kann
+die gewünschte Abkürzung mit
+%
+\begin{Hint*}
+\newabbreviation{zB}{z.\,B.}{zum Beispiel}
+\end{Hint*}
+%
+definiert und über die gewohnten Befehlen aus \Package{glossaries} verwendet
+werden.
+%
+\begin{Hint*}
+Die Ausgabe der soeben definierten Abkürzung \enquote{\acrshort{zB}}
+erfolgt mit dem Befehl \texttt{\textbackslash acrshort}. Wurde das
+Paket \texttt{glossaries} mit der Option \texttt{shortcut} geladen,
+kann auch das Makro \texttt{\textbackslash acs} genutzt werden.
+\end{Hint*}
+
+
+\subsection{Listen}
+\label{sec:lists}%
+%
+Für Auflistungen aller Art bietet \hologo{LaTeX} die drei Standardumgebungen
+\Environment{itemize}(\Package{koma-script},\Package{enumitem}),
+\Environment{enumerate}(\Package{koma-script},\Package{enumitem}) und
+\Environment{description}(\Package{koma-script},\Package{enumitem}). Das
+häufigste Anliegen bei der Verwendung dieser Umgebungen ist das Reduzieren
+der Abstände zwischen den einzelnen, mit
+\Macro{item}(\Package{koma-script},\Package{enumitem}) gesetzten Punkten,
+welche sehr häufig als zu groß empfunden werden. Eine Aufzählung erscheint ohne
+Anpassungen wie folgt:
+%
+\CodePreamble{Aufzählung mit vertikalen Standardabständen}
+\begin{Hint*}
+\begin{itemize}
+\item erster Punkt
+\item zweiter Punkt
+\item dritter Punkt
+\end{itemize}
+\end{Hint*}
+%
+Dabei wirken die Abstände zwischen den Punkten tatsächlich etwas
+überdimensioniert. Mit \Package{enumitem} können alle Listenumgebungen an die
+individuellen Bedürfnisse angepasst werden.
+%
+\begin{Preamble}
+\usepackage{enumitem}
+\end{Preamble}
+%
+Um diese ungewollten Abstände zwischen den Listenpunkten zu entfernen, kann der
+Schlüssel \Option{noitemsep}(\Package{enumitem}) verwendet werden. Mit dem
+Befehl \Macro{setlist}(\Package{enumitem}) werden~-- ohne zusätzliche Angaben
+im optionalen Argument~-- alle Umgebungen für Aufzählungen global geändert.
+Hier soll dies lediglich für die Umgebung \Environment*{itemize} geschehen:
+\begin{Preamble*}
+\setlist[itemize]{noitemsep}
+
+\end{Preamble*}
+\CodePreamble{Aufzählung ohne vertikale Abstände}
+\begin{Hint*}
+\begin{itemize}
+\item erster Punkt
+\item zweiter Punkt
+\item dritter Punkt
+\end{itemize}
+
+\end{Hint*}
+%
+Alternativ zur globalen Änderung einer speziellen oder aller Aufzählungslisten
+kann der Schlüssel \PValue{noitemsep} auch nur gezielt an einzelne Umgebung
+über das optionale Argument weitergereicht werden
+(\Macro*{begin}[\PParameter{itemize}\POParameter{noitemsep}]).
+
+Natürlich erlaubt das Paket noch weitergehende Einstellungen für die Umgebungen
+\Environment{itemize}(\Package{koma-script},\Package{enumitem}),
+\Environment{enumerate}(\Package{koma-script},\Package{enumitem}) und
+\Environment{description}(\Package{koma-script},\Package{enumitem}).
+Zusätzlich können diese für eigene Aufzählungsumgebungen geklont und den
+eigenen Bedürfnissen angepasst werden. Genaueres hierzu ist der Dokumentation
+des Paketes \Package{enumitem} entnehmen.
+
+
+\subsection{Ligaturen}
+Die meisten \hologo{LaTeX}"=Schriftfamilien enthalten Ligaturen, die für einen
+typografisch sauberen Satz bei zusammengesetzten Wörtern, wie sie gerade im
+Deutschen häufig vorkommen, aufgetrennt werden müssten. Mit der Anwendung
+\Application{DeLig}<delig> kann dies automatisiert geschehen. Wird
+\Engine{LuaLaTeX} als Textsatzsystem genutzt, kann alternativ das Paket
+\Package{selnolig} verwendet werden.
+
+
+\subsection{Auslassungspunkte}
+Das typografisch richtige Setzen von Auslassungspunkten mit den Befehlen
+\Macro{dots} respektive \Macro{textellipsis} wird im Handbuch unter
+\tudhyperref{sec:tips:dots}{Das Setzen von Auslassungspunkten} genauer
+beschrieben, weshalb hier nur kurz darauf eingegangen wird. Es wird das Paket
+\Package{ellipsis} benötigt.
+%
+\begin{Preamble}
+\usepackage{ellipsis}
+\end{Preamble}
+%
+Für deutschsprachige Texte sollten außerdem noch folgendes ausgeführt werden:
+%
+\begin{Preamble}
+\let\ellipsispunctuation\relax
+
+\end{Preamble}
+
+
+\subsection{Mathematiksatz}
+Von \hologo{LaTeXe} werden einige Umgebungen für das Setzen mathematischer
+Formeln und Ausdrücke bereitgestellt, welche meist jedoch nicht \emph{alle}
+Anforderungen eines Nutzers an den Mathematiksatz erfüllen können. Das Paket
+\Package{amsmath} bietet deshalb eine Reihe weiterführender Umgebungen für das
+Setzen von einzeiligen und mehrzeiligen sowie ausgerichteter Formeln zur
+Verfügung. Auf eine Einführung in das Paket wird~-- aufgrund der bereits in
+großer Zahl vorhandenen Einführungen~-- in diesem Tutorial verzichtet. Außerdem
+stehen mit \Tutorial{mathtype} und \Tutorial{mathswap} zwei weitere Tutorials
+zur Verfügung, die sich explizit mit der Thematik eines guten mathematischen
+Satz beschäftigen.
+
+Das Paket \Package{amsmath} stellt für \hologo{LaTeXe} den De"~facto"~Standard
+für den mathematischen Satz dar. Allerdings wird es~-- insbesondere aus diesem
+Grund~-- sehr \enquote{vorsichtig} weiterentwickelt. Für das Setzen neuer
+Dokumente sollte deshalb das Paket \Package{mathtools} verwendet werden, das
+auf \Package{amsmath} basiert und dieses um zusätzliche Funktionalitäten
+ergänzt sowie Bugfixes bereithält.
+
+
+\subsection{Darstellung von mathematischen Brüchen}
+Für ansehnliche und insbesondere im Fließtext gut lesbare mathematische Brüche
+stellt das Paket \Package{xfrac} den Befehl \Macro{sfrac}(\Package{xfrac}) zur
+Verfügung.
+%
+\begin{Preamble}
+\usepackage{xfrac}
+
+\end{Preamble}
+
+
+\subsection{Einheiten}
+Mit dem Paket \Package{siunitx} lassen sich sowohl physikalische Einheiten als
+auch Zahlen typografisch korrekt setzen. Sollen die Funktionalitäten in einem
+deutschsprachigen Dokument problemlos nutzbar sein, so sind die Hinweise zum
+\tudhyperref{sec:tips:siunitx}{Setzen von Einheiten mit \Package{siunitx}} im
+\TUDScript-Handbuch zu beachten. Das Paket \Package{units} ist nicht ganz so
+mächtig wie \Package{siunitx}, kann allerdings als pragmatische Alternative
+gesehen und genutzt werden.
+
+
+\subsection{Datumsformatierung}
+Das Paket \Package{isodate} stellt \Macro{printdate}(\Package{isodate}) bereit.
+Dieser Befehl kann für die Formatierung von Datumsangaben verwendet werden.
+Wird das Paket mit einer der Dokumentklassen aus dem \TUDScript-Bundle geladen,
+wird der genannte Befehl automatisch für alle bereitgestellten Datumsfelder
+verwendet. Alternativ dazu kann das Paket \Package{datetime2} genutzt werden,
+dessen Befehl \Macro{DTMDate}(\Package{datetime2}) wird ebenfalls unterstützt.
+%
+\begin{Preamble}
+\usepackage{isodate}
+
+\end{Preamble}
+
+
+
+\section{Erstellen von Abbildungen}
+\label{sec:figures}%
+%
+Die einfachste Möglichkeit, in einer wissenschaftlichen Abhandlung Grafiken zu
+verwenden, ist sicherlich das Einbinden von externen Abbildungen mit dem Befehl
+\Macro{includegraphics}(\Package{graphicx}) aus dem Paket \Package{graphicx}.
+Allerdings ist für eine wissenschaftliche Arbeit in höchster Qualität meiner
+Meinung nach das bloße Einfügen einer gescannten oder heruntergeladenen Grafik
+unzureichend. Vielmehr sollte diese zum einen als skalierbare Vektorgrafik
+vorliegen, um sowohl die höchste Druckqualität als auch die
+Wiederverwendbarkeit sicherzustellen, und zum anderen in ihrer Gestaltung dem
+verwendeten Layout des verfassten Dokumentes entsprechen. Dies betrifft sowohl
+die eingesetzten Farben und Schriften als auch die Stärke der verwendeten
+Linien.
+
+Zum Zeichnen von Grafiken sind die freien Programme \Application{LaTeXDraw} und
+besonders \Application{Inkscape} empfehlenswert, da diese die Verwendung der
+Dokumentschriften innerhalb der erstellten Grafiken ermöglichen. Im Handbuch zu
+\TUDScript wird dies für \tudhyperref{sec:tips:svg}{\Application{Inkscape}}
+genauer erläutert. Eine andere Variante ist das \enquote{Programmieren} von
+Grafiken. Die zwei bekanntesten \hologo{LaTeX}"=Pakete sind \Package{tikz}<pgf>
+und \Package{pstricks}<pstricks-base>. Mit beiden wird folgend eine Abbildung
+exemplarisch erstellt, ohne dabei ins Detail zu gehen, da es~-- neben den
+umfangreichen Dokumentationen~-- zahlreiche Beispiele und Erläuterungen im
+Internet gibt.
+
+
+
+\subsection{Das Paket \Package{tikz}}
+Zur Verwendung von \Package{tikz}<pgf> ist nicht viel zu sagen. Einfach in der
+Dokumentpräambel einbinden und es kann losgehen. Für das nachfolgende Beispiel
+sind außerdem noch zwei weitere Programmbibliotheken für \Package{tikz}<pgf>
+notwendig.
+%
+\begin{Hint}
+\usepackage{tikz}
+\usetikzlibrary{chains}
+\usetikzlibrary{decorations.markings}
+\tikzset{on grid}
+\end{Hint}
+%
+Ein kurze Anmerkungen zur Skalierung der Grafiken möchte ich mir erlauben.
+Normalerweise verwendet \Package{tikz}<pgf> Koordinaten im Zentimeter"=Raster.
+Ich persönlich bevorzuge der relativierte Skalierung auf die Textbreite des
+Dokumentes, wobei eine Einheit genau \SI{1}{\percent} dieser entspricht. Das
+kann mit folgendem Quelltext erreicht werden:
+%
+\CodeHook{\renewcommand\newlength[1]{}}
+\begin{Hint*}
+\newlength{\tikzunit}
+\setlength{\tikzunit}{.01\textwidth}
+\tikzset{x=\tikzunit,y=\tikzunit}
+\end{Hint*}
+%
+Nachfolgend wird eine Grafik innerhalb einer Gleitumgebung exemplarisch
+erstellt. Das Ergebnis ist in \autoref{fig:tikz} zu sehen.
+
+\begin{Hint?}
+\begin{figure}
+\begin{tikzpicture}
+ \tikzstyle{inner box}=[%
+ text width=17\tikzunit,
+ align=center,
+ rectangle,
+ inner sep=.5\tikzunit,
+ minimum height=8\tikzunit,
+ font=\hspace{0pt},
+ draw
+ ]
+ \tikzstyle{inner label}=[align=center, font=\scriptsize]
+ \tikzstyle{inner box chain}=[every node/.style={on chain}]
+ \tikzstyle{inner box chain below}=[%
+ inner box chain, node distance=8\tikzunit,continue chain=going below
+ ]
+ \tikzstyle{inner box chain right}=[%
+ inner box chain,node distance=35\tikzunit,continue chain=going right
+ ]
+ \tikzstyle{inner box chain above}=[%
+ inner box chain,node distance=16\tikzunit,continue chain=going above
+ ]
+ \tikzstyle{pstarrow->}=[%
+ decoration={markings,
+ mark=at position 1 with {\arrow[xscale=1.5]{stealth}};
+ },
+ postaction={decorate},
+ shorten >=0.7pt
+ ]
+ \newcommand{\tikzparbox}[2][9]{%
+ \parbox{#1\tikzunit}{\centering\hspace{0pt}#2}%
+ }
+ \begin{scope}[start chain]
+ \begin{scope}[inner box chain below]
+ \node(NE)[inner box]{Navigations\-ebene};
+ \node(NB)[inner label]{gewählte Fahrtroute\\ zeitlicher Ablauf};
+ \node(BE)[inner box]{{Bahnführungs\-ebene}};
+ \node(BS)[inner label]{%
+ gewählte Führungsgrößen:\\ Sollspur, Sollgeschwindigkeit%
+ };
+ \node(SE)[inner box]{Stabilisierungs\-ebene};
+ \end{scope}
+ \begin{scope}[inner box chain right]
+ \node(LQ)[inner box]{Längs- und Querdynamik};
+ \node(FO)[inner box]{Fahrbahn\-oberfläche};
+ \end{scope}
+ \begin{scope}[inner box chain above]
+ \node(FR)[inner box]{Fahrraum\\ \smallskip{\scriptsize Straße
+ und\\ \vspace{-1.5ex}Verkehrssituation}};
+ \node(SN)[inner box]{Straßennetz};
+ \end{scope}
+ \end{scope}
+ \begin{scope}[inner label,minimum size=0pt]
+ \draw [pstarrow->] (FO) -| ++(13.5,-12) to
+ node [above]{Istspur, Istgeschwindigkeit} ++(-97,0) |- (SE);
+ \draw [pstarrow->] (FR) -| ++(14 ,-32) to
+ node [above]{Bereich sicherer Führungsgrößen} ++(-98,0) |- (BE);
+ \draw [pstarrow->] (SN) -| ++(14.5 ,-52) to
+ node [above]{mögliche Fahrtroute} ++(-99,0) |- (NE);
+ \end{scope}
+ \begin{scope}[inner label]
+ \draw (NE) to (NB);
+ \draw [pstarrow->] (NB) to (BE);
+ \draw (BE) to (BS);
+ \draw [pstarrow->] (BS) to (SE);
+ \draw [pstarrow->] (SE) to
+ node[above] {\tikzparbox{Stell\-größen}}
+ node[below] {\tikzparbox{Lenken Gasgeben Bremsen}}
+ (LQ);
+ \draw [pstarrow->] (LQ) to
+ node[above]{\tikzparbox{Regel\-größen}}
+ node[below]{\tikzparbox{Fahrzeugbewegung}}
+ (FO);
+ \draw [pstarrow->] (LQ)+(24,0) |- (FR);
+ \draw [pstarrow->] (LQ)+(24,0) |- (SN);
+ \end{scope}
+ \begin{scope}[very thick,rounded corners=5\tikzunit]
+ \draw (-12.5,-40) rectangle (12.5,14);
+ \draw ( 22.5,-40) rectangle (47.5,-18);
+ \draw ( 57.5,-40) rectangle (82.5,14);
+ \end{scope}
+ \begin{scope}[font=\bfseries]
+ \node at (0,9) {Fahrer};
+ \node at (35,-23) {Fahrzeug};
+ \node at (70,9) {Umwelt};
+ \end{scope}
+\end{tikzpicture}
+\caption{Eine mit TikZ erstellte Grafik}\label{fig:tikz}
+\end{figure}
+\end{Hint?}
+
+
+
+\subsection{Das Paket \Package{pstricks}}
+Die zuvor mit \Package{tikz}<pgf> erstellte Grafik wird nachfolgend mit dem
+Paket \Package{pstricks} erstellt. Mit diesem lassen sich PostScript"=Grafiken
+erstellen. Ähnlich wie bei \Package{tikz}<pgf> gibt es ein Kernpaket und
+zusätzliche Ergänzungen. Diese werden jedoch nicht als Programmbibliotheken
+sondern ganz normal als \hologo{LaTeX}"=Pakete eingebunden.
+%
+\begin{Hint}
+\usepackage{pstricks,pst-node}
+\end{Hint}
+%
+Die Verwendung von PostScript hat zahlreiche Vorteile, macht die direkte
+Nutzung von \Engine{pdfLaTeX} etwas schwierig. Das Paket \Package{auto-pst-pdf}
+schafft hier jedoch Abhilfe. Wird das Textsatzsystem \Engine{pdfLaTeX} über die
+zusätzliche Option \Option{-{}-shell-escape}(\Engine{pdfLaTeX}) beziehungsweise
+\Option{-{}-enable-write18}(\Engine{pdfLaTeX}) mit erweiterten Schreibrechten
+aufgerufen, so werden die Abbildungen automatisch im PDF"~Format erzeugt und
+eingebunden.
+%
+\begin{Hint}
+\usepackage{auto-pst-pdf}
+\end{Hint}
+%
+Bei einigen Pakete kommt es in der Kombination mit \Package{auto-pst-pdf} zu
+kleineren Problemen, die sich jedoch meist relativ leicht beheben lassen. Im
+Handbuch wird die \tudhyperref{sec:tips:auto-pst-pdf}{gleichzeitige Verwendung}
+von \Package{auto-pst-pdf} in Kombination mit den Paketen \Package{tikz}<pgf>,
+\Package{todonotes} sowie \Package{floatrow}~-- bei der Nutzung des Befehls
+\Macro{ffigbox}(\Package{floatrow})~-- erklärt. Diese Hinweise sollten Sie
+gegebenenfalls beachten.
+
+Ähnlich wie zuvor bei der \Package{tikz}<pgf>"~Grafik wird die nachfolgende
+\Package{pstricks}"=Abbildung auf die Textbreite des Dokumentes skaliert, wobei
+eine Einheit genau \SI{1}{\percent} dieser entspricht. Außerdem werden noch ein
+paar weitere Einstellungen gemacht. Dies geschieht mit:
+%
+\begin{Hint*}
+\psset{%
+ unit=.01\textwidth,%
+ cornersize=absolute,%
+ labelsep=.8ex,%
+ linewidth=.4pt,%
+ arrowscale=1.5,%
+}
+\end{Hint*}
+%
+Die innerhalb einer Gleitumgebung erzeugte \Package{pstricks}"=Grafik ist in
+\autoref{fig:pstricks} dargestellt.
+%
+\begin{Hint?}
+\begin{figure}
+\begin{pspicture}(0,-2)(100,64)
+\newcommand{\fnodetext}{}
+\def\fnodetext(#1)#2#3{%
+ \fnode[framesize=18 8](#1){#2}%
+ \rput(#1){\parbox{17\psunit}{\centering\hspace{0pt}#3}}%
+}
+\newcommand{\scriptbox}[2][24]{%
+ \parbox{#1\psunit}{\scriptsize\centering\hspace{0pt}#2}%
+}
+\rput(15,10){%
+ \rput(0,49){\textbf{Fahrer}}
+ \fnodetext(0,40){NE}{Navigations\-ebene}
+ \fnodetext(0,24){BE}{Bahnführungs\-ebene}
+ \fnodetext(0,08){SE}{Stabilisierungs\-ebene}
+ \ncline{->}{NE}{BE}
+ \ncput*{\scriptbox{gewählte Fahrtroute\\ zeitlicher Ablauf}}
+ \ncline{->}{BE}{SE}
+ \ncput*{%
+ \scriptbox{gewählte Führungsgrößen:\\ Sollspur,~Sollgeschwindigkeit}%
+ }
+ \psframe[dimen=middle,linewidth=1.2pt,linearc=5](-12.5,0)(12.5,54)
+}
+\rput(50,10){%
+ \rput(0,17){\textbf{Fahrzeug}}
+ \fnodetext(0,8){FZ}{Längs- und\\ Querdynamik}
+ \psframe[dimen=middle,linewidth=1.2pt,linearc=5](-12.5,0)(12.5,22)
+}
+\rput(85,10){%
+ \rput(0,49){\textbf{Umwelt}}
+ \fnodetext(0,40){SN}{Straßennetz}
+ \fnodetext(0,24){FR}{%
+ Fahrraum\\ \smallskip\scriptsize{Straße und Verkehrssituation}%
+ }
+ \fnodetext(0,08){FO}{Fahrbahn\-oberfläche}
+ \psframe[dimen=middle,linewidth=1.2pt,linearc=5](-12.5,0)(12.5,54)
+}
+
+\ncline{->}{SE}{FZ}
+\naput{\scriptbox[9]{Stell\-größen}}
+\nbput{\scriptbox[9]{Lenken Gasgeben Bremsen}}
+\ncline{->}{FZ}{FO}
+\naput{\scriptbox[9]{Regel\-größen}}
+\nbput{\scriptbox[9]{Fahrzeugbewegung}}
+
+\psset{armA=15,armB=0,angleA=0,angleB=180}
+\ncangles{->}{FZ}{FR}
+\ncangles{->}{FZ}{SN}
+
+\psset{angleA=180,angleB=0}
+\ncloop[loopsize=12,arm=4.5]{<-}{SE}{FO}
+\naput{\scriptbox{Istspur, Istgeschwindigkeit}}
+\ncloop[loopsize=32,arm=5]{<-}{BE}{FR}
+\naput{\scriptbox[30]{Bereich sicherer Führungsgrößen}}
+\ncloop[loopsize=52,arm=5.5]{<-}{NE}{SN}
+\naput{\scriptbox{mögliche Fahrtroute}}
+\end{pspicture}
+\caption{Eine mit pstricks erstellte Grafik}\label{fig:pstricks}
+\end{figure}
+\end{Hint?}
+
+
+\subsection{Auslagern von Grafiken in separate Dateien}
+Damit \enquote{programmierte} Grafiken zum einen das Dokument respektive dessen
+Struktur nicht unnötig unübersichtlich machen und zum anderen nur nach einer
+Änderung abermals kompiliert werden, um die Kompilierungsdauer möglichst gering
+zu halten, können diese in separate Dateien ausgelagert werden. Hierfür bieten
+sich die Pakete \Package{subfiles}'manual' und \Package{standalone}'manual' an.
+
+
+
+\section{Dokumentation von Quelltexten}
+Sollen in einer Dokument Quelltextauszüge beschrieben werden oder ganze
+Quelltextdateien eingebunden werden, so empfiehlt sich für dieses Vorhaben das
+Paket \Package{listings}. Neben der bloßen Einbindung der Quelltexte bietet es
+zusätzlich die Möglichkeit, die Syntax in Abhängigkeit der verwendeten
+Programmiersprache hervorzuheben. Zusätzlich lässt sich ein Verzeichnis mit
+allen eingebundenen sowie direkt im Dokument angegebenen Quelltextauszügen
+erstellen.
+%
+\begin{Hint}
+\usepackage{listings}
+\end{Hint}
+%
+Wird das Paket in einem Dokument mit UTF"~8"~Kodierung verwendet, muss dies dem
+Paket in der Präambel mitgeteilt werden:
+%
+\begin{Hint}
+\lstset{%
+ inputencoding=utf8,extendedchars=true,
+ literate=%
+ {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {~}{{\textasciitilde}}1 {ß}{{\ss}}1
+}
+\end{Hint}
+%
+Nachdem nun die Grundeinstellungen erfolgt sind, kann ein eigener Stil für eine
+gewünschte Programmiersprache definiert werden. Im folgenden Beispiel wird dies
+für ein MATLAB"~Skript demonstriert. Als erstes wird mit dem Befehl
+\Macro{lstdefinestyle}(\Package{listings}) ein eigener \Package{listings}"~Stil
+erstellt:
+%
+\begin{Hint*}
+\lstdefinestyle{matlab}{%
+ language=Matlab,%
+ basicstyle=\ttfamily,%
+ commentstyle={\color{green!50!black}},
+ keywordstyle={\color{blue!75!black}},%
+ columns=flexible,keepspaces,%
+}
+\end{Hint*}
+%
+Dabei wird die verwendete Programmiersprache definiert sowie die Formatierung
+für die Quelltextauszüge festgelegt. Für weitere Einstellungsmöglichkeiten
+sollte die Dokumentation zum Paket zu Rate gezogen werden. Der so definierte
+Stil lässt sich anschließend folgendermaßen verwenden.
+%
+\begin{Hint}
+\begin{lstlisting}[style=matlab]
+§\dots§
+\end{lstlisting}
+\end{Hint}
+%
+Soll innerhalb eines Quelltextauszuges ein Abschnitt nicht ausgegeben sondern
+als \hologo{LaTeX}"~Code interpretiert und ausgeführt werden, lässt sich mit
+\Macro{lstset}[%
+ \PParameter{\PValue{escapechar=\PName{Zeichen}}}%
+](\Package{listings}) ein spezielles Escape-Zeichen definieren. Alle innerhalb
+einer \Package{listings}"=Umgebung zwischen zwei Escape-Zeichen eingefügten
+Angaben in der Form \PName{Zeichen}\PValue{\dots}\PName{Zeichen} werden als
+\hologo{LaTeX}"~Code gelesen und ausgeführt. Außerdem ist es mit dem Befehl
+\Macro{lstnewenvironment}(\Package{listings}) möglich, eine individuelle
+\Package{listings}"=Umgebung zu definieren.
+
+Das Einbinden und Darstellen von externen Quelldateien in ein Dokument ist über
+den Befehl
+\Macro{lstinputlisting}[\LParameter\Parameter{Dateiname}](\Package{listings})
+möglich, wobei dabei im optionalen Argument ebenfalls der definierte Stil
+angegeben werden sollte. Es folgt die Ausgabe eines kurzen Beispiels mit dem
+zuvor definierten Stil~\PValue{matlab}.
+%
+\begin{lstlisting}[style=matlab]
+function perfect = isperfect(test_value)
+ % This function checks to see if the given number is "perfect";
+ % a "perfect" number is an integer whose factors
+ % (excluding itself) add up to it.
+ %
+ % Example: 6 is a perfect number: 1 + 2 + 3 = 6 == 6
+ % 8 is not: 1 + 2 + 4 = 7 ~= 8
+ % 28 is a perfect number: 1 + 2 + 4 + 7 + 14 = 28 == 28
+ %
+ % Arguments:
+ % test_value (input) check to see if this value
+ % is perfect or not
+ % perfect (output) if yes, set this to 1
+ % if no, set this to 0
+ %
+ % this will keep track of the sum of all integer divisors
+ tempsum = 0;
+ % we check all possible divisors
+ for (divisor = 1 : test_value - 1)
+ div_result = test_value / divisor;
+ if (div_result == floor(div_result))
+ % this is an integer divisor, so add it to the sum
+ tempsum = tempsum + divisor;
+ end
+ end
+ % now, does the sum equal the test_value?
+ if (tempsum == test_value)
+ perfect = 1;
+ else
+ perfect = 0;
+ end
+end
+\end{lstlisting}
+
+
+
+
+\section{Und ganz zum Schluss \dots}
+Mit Sicherheit werden Sie im Laufe der Zeit auf die eine oder andere Frage zu
+\hologo{LaTeXe} stoßen, die in diesem Tutorial nicht behandelt wurde. Sollten
+Sie an diesen Punkt gelangen, so empfehle zunächst einen Blick in die Kapitel
+\tudhyperref{sec:packages}{Benötigte, unterstützte und empfehlenswerte Pakete}
+sowie \tudhyperref{sec:tips}{Praktische Tipps \& Tricks} im Handbuch zu
+\TUDScript. Sollte Ihre Frage trotzdem unbeantwortet bleiben, so wäre der
+Besuch eines \hologo{LaTeX}"=Forums der nächste Schritt. Für allgemeine
+Anfragen kann ich unter anderem folgende Foren empfehlen:
+%
+\begin{itemize}
+\item \hrfn{http://mrunix.de/forums/forumdisplay.php?38-LaTeX-Forum}{mrunix}
+\item \hrfn{http://golatex.de/}{golatex}
+\item \hrfn{http://tex.stackexchange.com/}{\hologo{LaTeX} Stack Exchange}
+\item \hrfn{http://www.latex-community.org/forum/}{\hologo{LaTeX} Community}
+\end{itemize}
+%
+Insbesondere alle \TUDScript betreffende Fragen sollten natürlich direkt im
+dazugehörigen \Forum gestellt werden.
+
+\begin{Trunk+}
+\printbibliography[heading=bibintoc]\label{sec:bibliography}%
+\end{Trunk+}
+\printbibliography[heading=bibintoc]
+
+\begin{Preamble+}
+\usepackage[colorlinks,linkcolor=blue]{hyperref}
+
+\end{Preamble+}
+
+\addsec{Index}
+Da das Tutorial etwas umfangreicher ist, wird für alle erläuterten Optionen,
+Umgebungen und Befehle ein Index erstellt. Bei Elementen, die weder \TUDScript
+noch \KOMAScript{} zuzuordnen sind, wird das dazugehörige Paket mit angeführt.
+\PrintIndex
+
+\FinishTutorial[%
+ Um das im kopierten Beispiel erstellte Literaturverzeichnis in das Dokument
+ einbinden zu können, bedarf es dem einmaligen Aufruf von \Application{biber}
+ frühestens nach dem ersten Durchlauf von \Engine{pdfLaTeX}. Dies erfolgt mit
+ dem Aufruf \Path{biber }\PName{Dateiname}. Für das Erzeugen von Abkürzungs-
+ und Symbolverzeichnis ist das Ausführen des Perl"=Skriptes
+ \Path{makeglossaries }\PName{Dateiname} ausreichend. Danach ist ein weiteres
+ mal die Verwendung von \Path{pdflatex }\PName{Dateiname} notwendig, um die
+ Verzeichnisse in das Dokument einzubinden. Gegebenenfalls ist für korrekte
+ Seitenangaben in Abkürzungs- und Symbolverzeichnis ein abermaliges Ausführen
+ des Skriptes notwendig.
+ \Attention{%
+ Nutzer von \Distribution{\hologo{MiKTeX}} müssen für die Verwendung des
+ Perl"~Skriptes \File{makeglossaries}(\Package{glossaries}) unter Umständen
+ einen separaten Perl"=Interpreter installieren. In \autoref{sec:glossaries}
+ ist dazu mehr zu finden.%
+ }%
+]
+\ListOfToDo
+\end{document}