summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/doc/tudscr-packages.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tudscr/source/doc/tudscr-packages.tex')
-rw-r--r--macros/latex/contrib/tudscr/source/doc/tudscr-packages.tex1054
1 files changed, 1054 insertions, 0 deletions
diff --git a/macros/latex/contrib/tudscr/source/doc/tudscr-packages.tex b/macros/latex/contrib/tudscr/source/doc/tudscr-packages.tex
new file mode 100644
index 0000000000..13ce2d1ec8
--- /dev/null
+++ b/macros/latex/contrib/tudscr/source/doc/tudscr-packages.tex
@@ -0,0 +1,1054 @@
+\setchapterpreamble{\tudhyperdef'{sec:packages}}
+\chapter{Benötigte, unterstützte und empfehlenswerte Pakete}
+\index{Kompatibilität|?}%
+%
+\section{Notwendige und ergänzende Pakete für \TUDScript}
+\tudhyperdef*{sec:packages:needed}%
+Diese Pakete werden von den \TUDScript"~Klassen zwingend benötigt und
+eingebunden. Möchten Sie eines der im Folgenden aufgezählten Pakete selber
+mit bestimmten Optionen nutzen, so sollten diese bereits \emph{vor} dem Laden
+der Dokumentklasse an das Paket weitergereicht werden, falls bei der folgenden
+Beschreibung des Paketes nichts anderweitiges angegeben wird.
+%
+\begin{Example}
+Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen:
+\begin{Code}[escapechar=§]
+\PassOptionsToPackage§\Parameter{Paketoptionen}\Parameter{Paket}§
+\documentclass§\OParameter{Klassenoptionen}\PParameter{tudscr\dots}§
+\end{Code}
+\end{Example}
+%
+\begin{packages}
+\item[koma-script,typearea,scrbase,scrlayer-scrpage,scrextend]
+ \begin{Declaration*}{\Class{scrbook}}
+ \begin{Declaration*}{\Class{scrreprt}}
+ \begin{Declaration*}{\Class{scrartcl}}
+ \begin{Declaration*}{\Class{scrlttr2}}
+ \ChangedAt{%
+ v2.02:Paket \Package{scrlayer-scrpage} ist für \TUDScript unabdingbar%
+ }%
+ Das \KOMAScript-Bundle ist die zentrale Grundlage für \TUDScript. Neben den
+ Klassen \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} wird das Paket
+ \Package{scrbase} benötigt. Dieses erlaubt das Definieren von Klassenoptionen
+ im Stil von \KOMAScript, welche auch noch nach dem Laden der Klasse mit den
+ Befehlen \Macro{TUDoption} und \Macro{TUDoptions} geändert werden können. Für
+ die Bereitstellung der \PageStyle{tudheadings}"=Seitenstile ist das Paket
+ \Package{scrlayer-scrpage} notwendig. Wenn es nicht durch den Anwender~-- mit
+ beliebigen Optionen~-- geladen wird, erfolgt dies am Ende der Präambel
+ automatisch durch \TUDScript.
+ \end{Declaration*}
+ \end{Declaration*}
+ \end{Declaration*}
+ \end{Declaration*}
+\item[opensans,iwona]
+ \index{Schriftart|!}%
+ \ChangedAt{%
+ v2.06:Pakete \Package{opensans}, \Package{iwona} und \Package{mathastext}
+ sind für \TUDScript zwingend erforderlich%
+ }%
+ Das Paket \Package{opensans} stellt die Schriftfamilie \OpenSans sowohl für
+ den Fließtext als auch den mathematischen Satz zur Verfügung. Es enthält alle
+ nötigen Schriftschnitte sowohl im Type1- als auch im OpenType-Format. Da die
+ Schriftfamilie in der aktuellen Version keine mathematischen Glyphen
+ bereitstellt, werden die Pakete \Package{mathastext} und \Package{iwona}
+ zusätzlich genutzt, um zumindest einen halbwegs erträglichen mathematischen
+ Satz mit \OpenSans zu ermöglichen. Werden dabei zusätzliche Symbole benötigt,
+ wird empfohlen, auf das Paket \Package{amssymb} zu verzichten und anstelle
+ dessen \Package{mdsymbol} zu laden.
+\item[mweights]
+ \index{Schriftstärke}%
+ \ChangedAt{%
+ v2.06:Paket \Package{mweights} ist für \TUDScript zwingend erforderlich%
+ }%
+ In \hologo{LaTeXe} existieren die Schriftfamilien für Serifenschriften
+ (\Macro*{rmfamily}), serifenlose Schriften (\Macro*{sffamily}) sowie die
+ Schreibmaschinenschriften (\Macro*{ttfamily}). Deren Schriftstärke wird für
+ gewöhnlich mit den beiden Befehlen \Macro*{mddefault} und \Macro*{bfdefault}
+ einheitlich festgelegt. Bei der Verwendung unterschiedlicher Schriftpakete
+ kann es unter Umständen zu Problemen bei den Schriftstärken kommen. Diese
+ Paket erlaubt die individuelle Definition der Schriftstärke für jede der drei
+ Schriftfamilien.
+\item[geometry]
+ \index{Satzspiegel}%
+ Das Paket wird zum Festlegen der Seitenränder respektive des Satzspiegels
+ verwendet.
+ \Attention{%
+ Ein Weiterreichen zusätzlicher Optionen an das Paket wird dringlich nicht
+ empfohlen.
+ }%
+\item[graphicx]
+ \index{Grafiken}%
+ Dies ist das De"~facto"~Standard"~Paket zum Einbinden von Grafiken. Zum
+ Setzen des Logos der \TnUD im Kopf sowie aller weitere Abbildungen und Logos
+ wird \Macro{includegraphics}(\Package{graphicx})'none' genutzt.
+\item[xcolor]
+ \index{Farben}%
+ Damit werden die Farben des \CDs zur Verwendung im Dokument definiert.
+ Genaueres ist bei der Beschreibung von \Package{tudscrcolor}'auto' zu finden.
+\item[kvsetkeys]
+ Das von \Package{scrbase} geladene Paket \Package{keyval} ermöglicht das
+ Definieren von Klassen"~ und Paketoptionen sowie Parametern nach dem
+ Schlüssel"=Wert"=Prinzip. Mit diesem Paket kann das Verhalten für unbekannte
+ Schlüssel festgelegt werden.
+\item[etoolbox,xpatch,letltxmacro,etexcmds]
+ Diese Pakete stellen viele Funktionen zum Testen und zur Ablaufkontrolle
+ bereit. Weiterhin wird das Manipulieren vorhandener Makros ermöglicht.
+\item[environ]
+ \index{Befehlsdeklaration}%
+ Es wird eine verbesserte Deklaration von Umgebungen ermöglicht, bei der auch
+ beim Abschluss der Umgebung auf die übergebenen Parameter zugegriffen werden
+ kann.
+\item[trimspaces]
+ Bei mehreren Eingabefeldern für den Anwender werden die Argumente mithilfe
+ dieses Paketes um eventuell angegebene, unnötige Leerzeichen befreit.
+\end{packages}
+%
+
+
+
+\minisec{Durch \TUDScript direkt unterstütze Pakete}
+%
+Einige der unter \autoref{sec:packages:recommended} beschriebenen Pakete werden
+durch \TUDScript direkt unterstützt und erweitern dessen Funktionalität. Dies
+sind namentlich \Package{hyperref}, \Package{multicol}, \Package{quoting},
+\Package{ragged2e} und \Package{crop} sowie \Package{isodate} respektive
+\Package{datetime2}. Weitere Informationen dazu ist den nachfolgenden
+Beschreibung des jeweiligen Paketes zu entnehmen.
+
+
+
+\newcommand*\RecPack{%
+ \hyperref[sec:packages:recommended]{Paketbeschreibung}:\xspace%
+}
+\section{Empfehlenswerte Pakete}
+\tudhyperdef*{sec:packages:recommended}%
+%
+In diesem \autorefname wird eine Vielzahl an Paketen~-- zumeist kurz~--
+vorgestellt, welche sich für mich persönlich bei der Arbeit mit \hologo{LaTeX}
+bewährt haben. Einige davon werden außerdem im Tutorial \Tutorial{treatise} in
+ihrer Anwendung beschrieben. Für detaillierte Informationen sowie bei Fragen zu
+den einzelnen Paketen sollte die jeweilige Dokumentation%
+\footnote{Kommandozeile/Terminal: \Path{texdoc\,\PName{Paketname}}}
+zu Rate gezogen werden, das Lesen der hier gegebenen Kurzbeschreibung ersetzt
+dies in keinem Fall.
+
+
+\subsection{Pakete zur Verwendung in jedem Dokument}
+Die hier vorgestellten Pakete gehören meiner Meinung nach in die Präambel eines
+jeden Dokumentes. Die Dokumentsprache sollte in jedem Fall mit \Package{babel}
+oder \Package{polyglossia} definiert werden~-- auch wenn dies Englisch ist. Für
+deutschsprachige Dokumente ist für eine annehmbare Worttrennung beim Einsatz
+von \Engine{pdfLaTeX} das Paket \Package{hyphsubst} unbedingt zu verwenden.
+
+\begin{packages}
+\item[fontenc,fontspec]
+ \index{Zeichensatzkodierung}%
+ \ChangedAt{v2.02:\RecPack \Package{fontspec}}
+ Die Zeichensatzkodierung des Ausgabefonts sollte immer festgelegt werden. Für
+ \Engine{pdfLaTeX} ist die Ausgabe als 7"~bit"~kodierte Schrift in der
+ Voreinstellung gewählt, was unter anderem dazu führt, dass keine echten
+ Umlaute im erzeugten PDF"~Dokument verwendet werden. Um auf 8"~bit"~Schriften
+ zu schalten, ist \Macro*{usepackage}[\POParameter{T1}\PParameter{fontenc}] zu
+ nutzen.
+
+ Für die Unicode"=Textsatzsysteme \Engine{LuaLaTeX} oder \Engine{XeLaTeX}
+ sollte stattdessen das Paket \Package{fontspec} verwendet werden. Damit
+ können Systemschriften im OpenType-Format und einer beliebigen
+ Zeichensatzkodierung eingebunden werden, womit sich die Auswahl der
+ verwendbaren Schriften stark erweitert. Das Paket wird durch \TUDScript
+ unterstützt.
+\item[microtype]
+ \index{Typografie}%
+ Dieses Paket kümmert sich um den optischen Randausgleich%
+ \footnote{englisch: protrusion, margin kerning}
+ und das Nivellieren der Wortzwischenräume%
+ \footnote{englisch: font expansion}
+ im Dokument. Es funktioniert nicht mit der klassischen \Engine*{TeX}"~Engine,
+ wohl jedoch mit \Engine*{pdfTeX} oder \Engine*{LuaTeX} sowie \Engine*{XeTeX}.
+\item[babel,polyglossia]
+ \index{Sprachunterstützung}%
+ \index{Bezeichner}%
+ Mit dem Paket \Package{babel} erfolgt die Einstellung der im Dokument
+ verwendeten Sprache(n). Bei mehreren angegebenen Sprachen ist die zuletzt
+ geladene die Hauptsprache des Dokumentes. Die gewünschten Sprachen sollten
+ nicht als Paketoption sondern als Klassenoption und gesetzt werden, damit
+ auch andere Pakete auf die Spracheinstellungen zugreifen können. Für
+ deutschsprachige Dokumente ist die Option \Option*{ngerman} für die neue oder
+ \Option*{german} für die alte deutsche Rechtschreibung zu verwenden.
+
+ Mit dem Laden von \Package{babel} und der dazugehörigen Sprachen werden
+ sowohl die Trennmuster als auch die sprachabhängigen Bezeichner angepasst.
+ Von einer Verwendung der obsoleten Pakete \Package{german} beziehungsweise
+ \Package{ngerman} anstelle von \Package{babel} wird abgeraten. Für
+ \Engine{LuaLaTeX} und \Engine{XeLaTeX} kann das Paket \Package{polyglossia}
+ genutzt werden.
+\item[hyphsubst,dehyph-exptl]
+ \index{Worttrennung|!}%
+ Die möglichen Trennstellen von Wörtern wird von \hologo{LaTeX} mithilfe
+ eines Algorithmus berechnet. Dieser wird für deutschsprachige Texte mit dem
+ Paket \Package{hyphsubst} entscheidend verbessert. \Engine{LuaLaTeX} und
+ \Engine{XeLaTeX} nutzen diese Trennmuster automatisch, für \Engine{pdfLaTeX}
+ müssen diese mit folgendermaßen eingebunden werden:
+ \begin{Code}[escapechar=§]
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+ \end{Code}\vspace{-\baselineskip}%
+ In \autoref{sec:tips:hyphenation} wird genauer auf das Zusammenspiel von
+ \Package{hyphsubst} und \Package{babel} sowie \Package{fontenc} eingegangen,
+ ein Blick dahin wird dringend empfohlen. Zusätzliche werden dort weitere
+ Hinweise für eine verbesserte Worttrennung gegeben.
+\end{packages}
+
+
+\subsection{Pakete zur situativen Verwendung}
+Die nachfolgenden Pakete sollten nicht zwangsweise in jedem Dokument geladen
+werden sondern nur, falls dies auch tatsächlich notwendig ist. Zur besseren
+Übersicht wurde versucht, diese thematisch passend zu gruppieren. Daraus lässt
+sich keinerlei Wertung bezüglich ihrer Nützlichkeit oder meiner persönlichen
+Wertschätzung ableiten.
+
+
+\subsubsection{Typografie und Layout}
+\index{Typografie|(}%
+%
+Neben dem zuvor beschriebenem Paket \Package{microtype}, welches verantwortlich
+für mikrotypografische Feinheiten ist, existieren weitere Pakete, die vorrangig
+die Makrotypografie adressieren.
+%
+\begin{packages}
+\item[setspace]
+ \index{Zeilenabstand}%
+ Die Vergrößerung des Zeilenabstandes wird:
+ %
+ \begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.]
+ \stditem viel zu häufig und völlig unnötig gefordert und
+ \stditem schließlich auch noch zu groß gewählt.
+ \end{enumerate}
+ %
+ Die Forderung nach Erhöhung des Zeilenabstandes~-- in der Typografie als
+ Durchschuss bezeichnet~-- kommt aus den Zeiten der Textverarbeitung mit der
+ Schreibmaschine. Ein einzeiliger Zeilenabstand bedeutete hier, dass die
+ Unterlängen der oberen Zeile genau auf der Höhe der Oberlängen der folgenden
+ Zeile lagen. Ein anderthalbzeiliger Zeilenabstand erzielte hier somit einen
+ akzeptablen Durchschuss. Eine Erhöhung des Durchschusses bei der Verwendung
+ von \hologo{LaTeX} ist an und für sich nicht notwendig. Sinnvoll ist dies
+ nur, wenn im Fließtext serifenlose Schriften zum Einsatz kommen, um die damit
+ verbundene schlechte Lesbarkeit etwas zu verbessern.
+
+ Ist die Erhöhung des Durchschusses wirklich notwendig, sollte das Paket
+ \Package{setspace} genutzt werden. Dieses stellt den Befehl
+ \Macro{setstretch}[\Parameter{Faktor}](\Package{setspace})'none' zur
+ Verfügung, mit dem der Durchschuss respektive Zeilenabstand angepasst werden
+ kann. Der Wert des Faktors ist standardmäßig auf~1 gestellt und sollte
+ maximal bis~1.25 vergrößert werden. Der Befehl \Macro*{onehalfspacing} aus
+ diesem Paket setzt diesen Wert auf eben genau~1.25. Allerdings ist hier
+ anzumerken, dass die Vergrößerung des Zeilenabstandes~-- so wie ich es mir
+ angelesen habe~-- aus der Sicht eines Typographen keine Spielerei ist sondern
+ vielmehr allein der Lesbarkeit des Textes dient und möglichst gering
+ ausfallen sollte.
+
+ Ziel ist es, beim Lesen nach dem Beenden einer Zeile das Auffinden der neuen
+ Zeile zu vereinfachen. Bei Serifen ist dies durch die Betonung der Grundlinie
+ sehr gut möglich. Bei serifenlosen Schriften~-- wie der im \TUDCD verwendeten
+ \OpenSans~-- ist dies schwieriger und ein erweiterter Abstand der Zeilen kann
+ hierbei hilfreich sein. Jedoch sollte nicht nach dem Motto
+ \enquote{viel hilft viel} verfahren werden. Für dieses Dokument wurde
+ \Macro{setstretch}[\PParameter{1.1}](\Package{setspace})'none' für den
+ Zeilenabstand gewählt. Weitere Tipps sind in \autoref{sec:tips:headings} und
+ \autoref{sec:tips:headline} zu finden.
+\item[multicol]
+ \index{Satzspiegel!zweispaltig|?}%
+ \index{Mehrspaltensatz}%
+ \index{Satzspiegel!mehrspaltig}%
+ Hiermit kann jeglicher beliebiger Inhalt in zwei oder mehr Spalten ausgegeben
+ werden, wobei~-- im Gegensatz zum normalen zweispaltigen Satz über die
+ \KOMAScript-Option \Option{twocolumn}(\Package{typearea})'none'~-- für einen
+ Spaltenausgleich gesorgt wird. Unterstützt wird das Paket innerhalb der
+ Umgebungen \Environment{abstract} und \Environment{tudpage}.
+\item[balance]
+ \index{Satzspiegel!zweispaltig}%
+ Dieses Paket ermöglicht einen Spaltenausgleich im zweispaltigen Satz auf der
+ letzten Dokumentseite. Alternativ dazu kann auch \Package{multicol} verwendet
+ werden.
+\item[isodate,datetime2]
+ \index{Datum|?}%
+ Mit \Macro{printdate}[\Parameter{Datum}](\Package{isodate})'none' formatiert
+ das Paket \Package{isodate} die Ausgabe eines Datums automatisch in ein
+ spezifiziertes Format. Die Datumsangabe kann dabei im deutschen, englischen
+ oder ISO"~Format erfolgen. Alternativ kann auch das Paket \Package{datetime2}
+ genutzt werden, welches zwingend die Eingabe im ISO"~Format erfordert. Wird
+ eines der beiden Pakete geladen, werden alle Datumsfelder, welche durch die
+ \TUDScript-Klassen definiert wurden,%
+ \footnote{%
+ \Macro{date}, \Macro{dateofbirth} und \Macro{defensedate} sowie aus
+ \Package{tudscrsupervisor} \Macro{duedate}(\Package{tudscrsupervisor}) und
+ \Macro{issuedate}(\Package{tudscrsupervisor})%
+ }
+ im durch das jeweilige Paket definierten Ausgabeformat ausgegeben.
+\item[quoting]
+ \index{Zitate}%
+ \hologo{LaTeX} bietet von Haus aus \emph{zwei} verschiedene Umgebungen~--
+ \Environment{quote}(\Package{koma-script})'none' und
+ \Environment{quotation}(\Package{koma-script})'none'~-- für Zitate und
+ ähnliches an. Allerdings werden durch beide Umgebungen die \KOMAScript-Option
+ \Option{parskip=\PName{Methode}}(\Package{koma-script})'none'|declare|
+ ignoriert. Mit der Umgebung \Environment{quoting}(\Package{quoting})'none'
+ aus dem gleichnamigen Paket lässt sich dieses Problem umgehen. Wird das Paket
+ geladen, wird diese innerhalb der \Environment{abstract}"=Umgebung verwendet.
+\item[csquotes]
+ \index{Zitate}%
+ Das Paket stellt unter anderem den Befehl
+ \Macro{enquote}[\Parameter{Zitat}](\Package{csquotes})'none'
+ zur Verfügung, welcher Anführungszeichen in Abhängigkeit der gewählten
+ Sprache setzt. Zusätzlich werden weitere Kommandos und Optionen für die
+ spezifischen Anforderungen des Zitierens bei wissenschaftlichen Arbeiten
+ angeboten. Außerdem wird es durch \Package{biblatex} unterstützt und sollte
+ zumindest bei dessen Verwendung geladen werden.
+\item[noindentafter]
+ \ChangedAt{v2.02:\RecPack \Package{noindentafter}}
+ Mit diesem Paket lassen sich automatische Absatzeinzüge für selbst zu
+ bestimmende Befehle und Umgebungen unterdrücken.
+\item[ragged2e]
+ \index{Worttrennung}%
+ Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung
+ aktiviert wird.
+\item[fnpct]
+ \index{Fußnoten|?}%
+ \ChangedAt{v2.05:\RecPack \Package{fnpct}}
+ Diese Paket sorgt zum einen für das Einhalten der richtigen Reihenfolge von
+ Satzzeichen und Fußnoten und zum anderen wird das typografisch korrekte
+ Setzen mehrerer, nacheinander folgender Fußnoten unterstützt.
+\item[xspace,xpunctuate]
+ \index{Befehlsdeklaration}%
+ Mit \Package{xspace} kann bei der Definition eigener Makros der Befehl
+ \Macro{xspace}(\Package{xspace})'none' genutzt werden. Dieser setzt ein
+ gegebenenfalls notwendiges Leerzeichen automatisch. In
+ \autoref{sec:tips:xspace} ist die Definition eines solchen Befehls
+ exemplarisch ausgeführt. Durch das Paket \Package{xpunctuate} wird
+ \Package{xspace} um die Beachtung von Interpunktionen erweitert.
+\item[ellipsis]
+ \index{Befehlsdeklaration}%
+ In \hologo{LaTeX} folgen den Befehlen für Auslassungspunkte (\Macro{dots} und
+ \Macro{textellipsis}) \emph{immer} ein Leerzeichen. Dies kann unter Umständen
+ unerwünscht sein. Mit dem Paket \Package{ellipsis} wird das nachfolgende
+ Leerzeichen~-- im Gegensatz zum Standardverhalten~-- nur gesetzt, wenn ein
+ Satzzeichen und kein Buchstabe folgt, \seeref*{\autoref{sec:tips:dots}}.
+\stditem[\Application{DeLig}<delig>, \Package{selnolig}]
+ \index{Ligaturen}%
+ Hierbei handelt es sich um ein Java"~Script, das anhand eines Wörterbuches
+ falsche Ligaturen innerhalb eines Dokumentes automatisiert entfernt. Diese
+ müssten~-- insbesondere in deutschen Texten aufgrund der vielen Komposita~--
+ für einen guten Satz manuell aufgelöst werden.%
+ \footnote{%
+ Das sind \enquote{ff}, \enquote{fi}, \enquote{fl}, \enquote{ffi}, und
+ \enquote{ffl} bei den meisten \hologo{LaTeX}"=Schriften.%
+ }
+ Mit \Engine{LuaLaTeX} als Textsatzsystem kann auch \Package{selnolig}
+ alternativ dazu verwendet werden.
+\index{Typografie|)}%
+\end{packages}
+
+
+\subsubsection{Rechtschreibung}
+\index{Rechtschreibung|(}%
+%
+Für die Rechtschreibkontrolle zeichnet im Normalfall der verwendete Editor
+verantwortlich. Dennoch gibt es einige wenige Pakete, welche sich diesem Thema
+widmen. Diese sind jedoch ausschließlich nutzbar, wenn als Textsatzsystem
+\Engine{LuaLaTeX} genutzt wird.
+\begin{packages}
+\item[lua-check-hyphen]
+ \index{Worttrennung}%
+ Hiermit lassen sich mit \Engine{LuaLaTeX} Trennstellen am Zeilenende zur
+ Prüfung markieren. Zum Thema der \textit{korrekten Worttrennung} sei außerdem
+ auf \autoref{sec:tips:hyphenation} verwiesen.
+\item[spelling]
+ Wird \Engine{LuaLaTeX} als Textsatzsystem verwendet, wird mit diesem Paket
+ der reine Textanteil aus dem \hologo{LaTeX}"~Dokument extrahiert~-- wobei
+ Makros und aktive Zeichen entfernt werden~-- und in eine separate Textdatei
+ geschrieben. Anschließend kann diese Datei mit einer externen Software zur
+ Rechtschreibprüfung wie \Application{GNU~Aspell}, \Application{Hunspell} oder
+ \Application{LanguageTool} analysiert und falsch geschriebene Wörter im
+ PDF"~Dokument hervorgehoben werden.
+\index{Rechtschreibung|)}%
+\end{packages}
+
+
+\subsubsection{Schriften und Sonderzeichen}
+\begin{packages}
+\item[lmodern]<lm>
+ \index{Schriftart}%
+ Soll mit den klassischen \hologo{LaTeX}"=Standardschriften gearbeitet werden,
+ empfiehlt sich die Verwendung des Paketes \Package{lmodern}. Dieses
+ verbessert die Darstellung der Computer~Modern sowohl am Bildschirm als auch
+ beim finalen Druck.
+\item[cfr-lm]
+ \index{Schriftart}%
+ Dieses experimentelle Paket liefert weitere Schriftschnitte für das Paket
+ \Package{lmodern}.
+\item[newtx,newtxmath]<newtx>
+ \index{Schriftart}%
+ \index{Mathematiksatz}%
+ Es werden einige alternative Schriften sowohl für den Fließtext
+ (\textit{Times} und \textit{Helvetica}) als auch den Mathematikmodus
+ bereitgestellt.
+\item[libertine]
+ \index{Schriftart}%
+ Das Paket stellt die Schriften Linux~Libertine und Linux~Biolinum zur
+ Verfügung. Um diese Schriftart auch für den Mathematikmodus verwenden zu
+ können, sollte \Package{newtxmath} aus dem \Package{newtx}"=Bundle mit
+ \Macro*{usepackage}[\POParameter{libertine}\PParameter{newtxmath}] in der
+ Präambel eingebunden werden. Das Paket \Package{libgreek} enthält griechische
+ Buchstaben für Linux~Libertine.
+\item[relsize]
+ \index{Schriftgröße}%
+ Die Größe einer Textauszeichnung kann relativ zur aktuellen Schriftgröße
+ gesetzt werden.
+\item[textcomp]
+ \index{Sonderzeichen}%
+ Es werden zusätzliche Symbole und Sonderzeichen wie beispielsweise das
+ Promille- oder Eurozeichen sowie Pfeile für den Fließtext zur Verfügung
+ gestellt.
+\end{packages}
+%
+\index{Mathematiksatz|(}%
+Auch für (serifenlose) Mathematikschriften gibt es einige nützliche Pakete.
+Werden die Schriften des \CDs genutzt, sei auf die Option \Option{cdmath}
+verwiesen.
+%
+\begin{packages}
+\item[sansmathfonts,sansmath]
+ Sollten die normalen \hologo{LaTeX}"=Schriften Computer~Modern verwendet
+ werden, lässt sich dieses Paket zum serifenlosen Setzen mathematischer
+ Ausdrücke nutzen. Ein alternatives Paket mit der gleichen Zielstellung ist
+ \Package{sansmath}
+\item[sfmath]
+ Diese Paket verfolgt ein ähnliches Ziel, kann jedoch im Gegensatz zu
+ \Package{sansmath} nicht nur für Computer~Modern sondern mit der
+ entsprechenden Option auch für Latin~Modern, Helvetica und
+ Computer~Modern~Bright verwendet werden.
+\item[mathastext]
+ Mit dem Paket wird das Ziel verfolgt, aus der genutzten Schrift für den
+ Fließtext alle notwendigen Zeichen für den Mathematiksatz zu extrahieren.
+\end{packages}
+
+
+\subsubsection{Mathematiksatz}
+Dies sind Pakete, die Umgebungen und Befehle für den Mathematiksatz sowie das
+Setzen von Einheiten und Zahlen im Allgemeinen anbieten.
+
+\begin{packages}
+ \item[mathtools,amsmath]
+ Dieses Paket stellt für das De"~facto"~Standard"~Paket \Package{amsmath}
+ für Mathematikumgebungen Bugfixes zur Verfügung und erweitert dieses.
+ \item[bm]
+ Das Paket bietet mit \Macro*{bm} eine Alternative zu \Macro*{boldsymbol} im
+ \hrfn{http://tex.stackexchange.com/questions/3238}{Mathematiksatz}. Sollten
+ bei der Nutzung des Paketes Fehler auftreten, sei auf dessen Dokumentation
+ und insbesondere auf das Makro \Macro*{bmmax} verwiesen.
+\end{packages}
+%
+Die korrekte Formatierung von Zahlen ist häufig ein Problem bei der Verwendung
+von \hologo{LaTeX}. Insbesondere, wenn in einem deutschsprachigen Dokument
+Daten im englischsprachigen Format verwendet werden, kommt es zu Problemen.
+Dafür wird im \TUDScript-Bundle das Paket \Package{mathswap} bereitgestellt.
+Dennoch gibt es zu diesem auch Alternativen.
+%
+\begin{packages}
+\index{Zifferngruppierung|(}%
+ \item[ionumbers]
+ Dieses Paket ist mir tatsächlich erst bei der Arbeit an \Package{mathswap}
+ bekannt geworden. Es bietet mehr Funktionalitäten und kann als Alternative
+ dazu betrachtet werden.
+ \item[icomma]
+ Wird im Mathematikmodus nach dem Komma ein Leerzeichen gesetzt, wird dies
+ bei der Ausgabe beachtet. Der Verfasser muss sich demzufolge jederzeit
+ selbst um die typografisch korrekte Ausgabe kümmern.
+ \item[ziffer]
+ Für deutschsprachige Dokumente wird das Komma als Dezimaltrennzeichen
+ zwischen zwei Ziffern definiert. Folgt dem Komma keine Ziffer, wird
+ jederzeit der obligatorische Freiraum gesetzt, was meiner Meinung nach
+ besser als das Verhalten von \Package{icomma} ist.
+\index{Zifferngruppierung|)}%
+\end{packages}
+%
+Für das typografisch korrekte Setzen von Einheiten~-- ein halbes Leerzeichen
+zwischen Zahl und \emph{aufrecht} gesetzter Einheit~-- gibt es zwei gut
+nutzbare Pakete.
+%
+\begin{packages}
+\index{Einheiten|(}%
+\item[units]
+ Dies ist ein einfaches und sehr zweckdienliches Paket zum Setzen von
+ Einheiten und für die meisten Anforderungen völlig ausreichend.
+\item[siunitx]
+ Dieses Paket ist in seinem Umfang im Vergleich deutlich erweitert. Neben
+ Einheiten können zusätzlich auch Zahlen typografisch korrekt gesetzt werden.
+ Die Ausgabe lässt sich in vielerlei Hinsicht an individuelle Bedürfnisse
+ anpassen. Für deutschsprachige Dokumenten sollte die Lokalisierung angegeben
+ werden. Mehr dazu in \autoref{sec:tips:siunitx}.
+\index{Einheiten|)}%
+\end{packages}
+%
+Weitere Hinweise zur mathematischen Typografie werden in \autoref{sec:tut}
+gegeben.
+\index{Mathematiksatz|)}%
+
+
+\subsubsection{Listen}
+\index{Listen|?(}%
+%
+\begin{packages}
+\item[enumitem]
+ Das Paket \Package{enumitem} erweitert die rudimentären Funktionalitäten der
+ \hologo{LaTeX}"=Standardlisten
+ \Environment{itemize}(\Package{koma-script},\Package{enumitem})'none',
+ \Environment{enumerate}(\Package{koma-script},\Package{enumitem})'none' sowie
+ \Environment{description}(\Package{koma-script},\Package{enumitem})'none' und
+ ermöglicht die individuelle Anpassung dieser durch die Bereitstellung vieler
+ optionale Parameter nach dem Schlüssel"=Wert"=Prinzip. Eine von mir sehr
+ häufig genutzte Funktion ist beispielsweise die Entfernung des zusätzlichen
+ Abstand zwischen den einzelnen Einträgen einer Liste mit
+ \Macro{setlist}[\PParameter{noitemsep}](\Package{enumitem})'none'.
+\end{packages}
+\index{Listen|?)}%
+
+
+\subsubsection{Verzeichnisse aller Art}
+\index{Verzeichnisse|?(}%
+%
+Neben dem Erstellen des eigentlichen Dokumentes sind für eine wissenschaftliche
+Arbeit meist auch allerhand Verzeichnisse gefordert. Fester Bestandteil ist
+dabei das Literaturverzeichnis, auch ein Abkürzungs- und Formelzeichen-
+beziehungsweise Symbolverzeichnis werden häufig gefordert. Gegebenenfalls wird
+auch noch ein Glossar benötigt. Hier werden die passenden Pakete vorgestellt.
+Sollen im Dokument komplette Quelltexte oder auch nur Auszüge daraus erscheinen
+und für diese auch gleich ein entsprechendes Verzeichnis generiert werden, so
+sei auf das Paket \Package{listings}'full' verwiesen.
+
+\begin{packages}
+\item[biblatex]
+ \index{Literaturverzeichnis}%
+ Das Paket kann als legitimer Nachfolger zu \hologo{BibTeX} gesehen werden.
+ Ähnlich dazu bietet \Package{biblatex} die Möglichkeit, Literaturdatenbanken
+ einzubinden und verschiedene Stile der Referenzierung und Darstellung des
+ Literaturverzeichnisses auszuwählen.
+
+ Mit \Package{biblatex} ist die Anpassung eines bestimmten Stiles wesentlich
+ besser umsetzbar als mit \hologo{BibTeX}. Wird \Application{biber} für die
+ Sortierung des Literaturverzeichnisses genutzt, ist die Verwendung einer
+ UTF"~8"~kodierten Literaturdatenbank problemlos möglich. In Verbindung mit
+ \Package{biblatex} wird die zusätzliche Nutzung des Paketes
+ \Package{csquotes} sehr empfohlen.
+\item[glossaries,nomencl]
+ \index{Glossar}%
+ \index{Abkürzungsverzeichnis}%
+ \index{Formelzeichenverzeichnis}%
+ \index{Symbolverzeichnis}%
+ Dies ist ein sehr mächtiges Paket zum Erstellen eines Glossars sowie
+ Abkürzungs- und Symbolverzeichnisses. Die mannigfaltige Anzahl an Optionen
+ ist zu Beginn eventuell etwas abschreckend. Insbesondere wenn Verzeichnisse
+ für Abkürzungen \emph{und} Formelzeichen respektive Symbole notwendig sind,
+ sollte dieses Paket in Erwägung gezogen werden.
+
+ Alternativ dazu kann für ein Symbolverzeichnis auch lediglich eine manuell
+ gesetzte Tabelle genutzt werden. Das hierfür sehr häufig empfohlene Paket
+ \Package{nomencl} bietet meiner Meinung nach demgegenüber keinerlei Vorteile.
+\item[acro,acronym]
+ \index{Abkürzungsverzeichnis}%
+ Soll lediglich ein Abkürzungsverzeichnis erstellt werden, ist dieses Paket
+ die erste Wahl. Es stellt Befehle zur Definition von Abkürzungen sowie zu
+ deren Verwendung im Text und zur sortierten Ausgabe eines Verzeichnisses
+ bereit. Alternativ dazu kann das Paket \Package{acronym} verwendet werden.
+ Die Sortierung des Abkürzungsverzeichnisses muss hier allerdings manuell
+ durch den Anwender erfolgen.
+\index{Verzeichnisse|?)}%
+\end{packages}
+
+
+\subsubsection{Gleitobjekte}
+\index{Gleitobjekte|?(}%
+%
+Es werden Pakete für die Beeinflussung von Aussehen, Beschriftung und
+Positionierung von Gleitobjekten vorgestellt. Unter \autoref{sec:tips:floats}
+sind außerdem Hinweise zur manuellen Manipulation der Gleitobjektplatzierung zu
+finden.
+
+\begin{packages}
+\item[caption]
+ Mit der Option \Option{captions=\PSet}(\Package{koma-script})'none'|declare|
+ bieten die \KOMAScript-Klassen bereits einige Möglichkeiten zum Formatieren
+ der Beschriftungen für Gleitobjekte. Dieses Paket ist daher meist nur in
+ gewissen Ausnahmefällen für spezielle Anweisungen notwendig, allerdings auch
+ bei der Verwendung unbedenklich.
+\item[subcaption]
+ Diese Paket kann zum einfachen Setzen von Unterabbildungen oder "~tabellen
+ mit den entsprechenden Beschriftungen genutzt werden. Das dazu alternative
+ Paket \Package{subfig} sollte vermieden werden, da es nicht mehr gepflegt
+ wird und es mit diesem im Zusammenspiel mit anderen Paketen des Öfteren zu
+ Problemen kommt. Sollte der Funktionsumfang von \Package{subcaption} nicht
+ ausreichen, kann anstelle dessen das Paket \Package{floatrow} verwendet
+ werden, welches ähnliche Funktionalitäten wie \Package{subfig} bereitstellt.
+\item[floatrow]
+ Mit diesem Paket können global wirksame Einstellungen und Formatierungen für
+ \emph{alle} Gleitobjekte eines Dokumentes über die Paketoptionen oder mit
+ \Macro{floatsetup}[\PParameter{\dots}](\Package{floatrow})'none' vorgenommen
+ werden. So lässt sich unter anderem die verwendete Schrift innerhalb der
+ Umgebungen \Environment{figure} und \Environment{table} mit
+ \Macro*{floatsetup}[\PParameter{font=\dots}] einstellen. Mit
+ \begin{Code}
+ \floatsetup[figure]{capposition=bottom}
+ \floatsetup[table]{capposition=top}
+ \end{Code}\vspace{-\baselineskip}%
+ lässt sich automatisch das typografisch korrekte Setzen von
+ Abbildungs\emph{unterschriften} sowie Tabellen\emph{überschriften}
+ erzwingen~-- unabhängig von der Position des Befehls zur Beschriftung
+ \Macro{caption}(\Package{koma-script},\Package{caption})'none'
+ innerhalb der jeweiligen Gleitobjektumgebung. Wird das Verhalten wie
+ empfohlen eingestellt, sollte für eine gute vertikale Platzierung der
+ Tabellenüberschriften zusätzlich die
+ \KOMAScript-Option \Option{captions=tableheading}(\Package{koma-script})'none'
+ genutzt werden.
+\item[placeins]
+ Mit diesem Paket kann die Ausgabe von Gleitobjekten vor Kapiteln und wahlweise
+ Unterkapiteln erzwungen werden.
+\item[flafter]
+ Dieses Paket erlaubt die frühestmögliche Platzierung von Gleitobjekten im
+ ausgegeben Dokument erst an der Stelle ihres Auftretens im Quelltext. Diese
+ werden dementsprechend nie vor ihrer Definition am Anfang der Seite
+ erscheinen.
+\end{packages}
+\index{Gleitobjekte|?)}%
+
+
+
+\subsubsection{Tabellen}
+\index{Tabellen|?(}%
+%
+Für den Tabellensatz werden standardmäßig die Umgebungen \Environment{tabbing}
+und \Environment{tabular} respektive \Environment{tabular*} bereitgestellt,
+welche in ihrer Funktionalität für einen qualitativ hochwertigen Tabellensatz
+meist nicht ausreichen. Deshalb werden hier zusätzliche Pakete vorgestellt.
+%
+\begin{packages}
+\item[array]
+ Dieses Paket ermöglicht mit \Macro{newcolumntype}(\Package{array})'none' das
+ Erstellen neuer Spaltentypen und die erweiterte Definition von Tabellenspalten
+ (\PValue{>\PParameter{\dots}}\PName{Spaltentyp}\PValue{<\PParameter{\dots}}),
+ wobei mithilfe sogenannter \enquote{Hooks} vor und nach Einträgen innerhalb
+ einer Spalte gezielt Anweisungen gesetzt werden können. Die Zeilenhöhe lässt
+ sich mit \Macro{extrarowheight}(\Package{array})'none' ändern.
+\item[booktabs]
+ Für einen guten Tabellensatz mit \hologo{LaTeX} gibt es bereits zahlreiche
+ \hrfn{http://userpage.fu-berlin.de/latex/Materialien/tabsatz.pdf}{Tipps} im
+ Internet zu finden. Zwei Regeln sollten dabei definitiv beachtet werden:
+ %
+ \begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.]
+ \stditem keine vertikalen Linien
+ \stditem keine doppelten Linien
+ \end{enumerate}
+ %
+ Das Paket \Package{booktabs} (deutsche Dokumentation \Package*{booktabs-de})
+ ist für den Satz von hochwertigen Tabellen eine große Hilfe und stellt die
+ Befehle \Macro{toprule}(\Package{booktabs})'none',
+ \Macro{midrule}(\Package{booktabs})'none' sowie
+ \Macro{cmidrule}(\Package{booktabs})'none' und
+ \Macro{bottomrule}(\Package{booktabs})'none'
+ für unterschiedliche horizontale Linien bereit.
+\item[widetable]
+ Mit der Standard"=\hologo{LaTeX}"=Umgebung \Environment{tabular*} kann eine
+ Tabelle mit einer definierten Breite gesetzt werden. Dieses Paket stellt die
+ Umgebung \Environment{widetable}(\Package{widetable})'none' zur Verfügung,
+ die als Alternative genutzt werden kann und eine symmetrische Tabelle erzeugt.
+\item[tabularx]
+ Auch mit diesem Paket kann die Gesamtbreite einer Tabelle spezifiziert
+ werden. Dafür wird der Spaltentyp \PValue{X} definiert, welcher als Argument
+ der \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung beliebig
+ häufig angegeben werden kann
+ (\Macro*{begin}[\PParameter{tabularx}\Parameter{Breite}\Parameter{Spalten}]).
+ Die \PValue{X}"~Spalten ähneln denen vom Typ~\PValue{p}\Parameter{Breite},
+ wobei die Breite dieser aus der gewünschten Tabellengesamtbreite abzüglich
+ dem benötigten Platz der gegebenenfalls vorhandenen Standardspalten
+ automatisch berechnet wird.
+\item[tabulary]
+ Dies ist ein weiteres Paket zur automatischen Berechnung von Spaltenbreiten.
+ Der zur Verfügung stehende Platz~-- gewünschte Gesamtbreite abzüglich der
+ notwendigen Breite für Standardspalten~-- wird jedoch nicht wie bei der
+ \Environment{tabularx}(\Package{tabularx})'none' auf alle Spalten
+ gleichmäßig verteilt sondern in der
+ \Environment{tabulary}(\Package{tabulary})'none'"=Umgebung für die
+ Spaltentypen~\PValue{LCRJ} anhand ihres Zellinhaltes gewichtet vergeben.
+ (\Macro*{begin}[\PParameter{tabulary}\Parameter{Breite}\Parameter{Spalten}]).
+\item[longtable,ltxtable,ltablex]
+ Sollen mehrseitige Tabellen mit Seitenumbruch erstellt werden, ist dieses
+ Paket das Mittel der ersten Wahl. Für die Kombination mehrseitiger Tabellen
+ mit einer \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung können
+ die Pakete \Package{ltablex} oder besser noch \Package{ltxtable} verwendet
+ werden. Alternativ dazu lässt sich auch \Package{tabu} nutzen.
+\item[multirow]
+ Es wird der Befehl \Macro{multirow}(\Package{multirow})'none' definiert, der
+ das Zusammenfassen von mehreren Zeilen in einer Spalte ermöglicht~-- ähnlich
+ zum Makro \Macro{multicolumn} für Spalten.
+\item[tabularborder]
+ Bei Tabellen wird zwischen Spalten automatisch ein horizontaler Abstand
+ (\Length{tabcolsep}) gesetzt~-- besser gesagt jeweils vor und nach einer
+ Spalte. Dies geschieht auch \emph{vor} der ersten und \emph{nach} der letzten
+ Spalte. Dieser zusätzliche Platz an den äußeren Rändern kann störend wirken,
+ insbesondere wenn die Tabelle über die komplette Textbreite gesetzt wird. Mit
+ dem Paket \Package{tabularborder} kann dieser Platz automatisch entfernt
+ werden.
+
+ Dies funktioniert allerdings nur mit der \Environment{tabular}"=Umgebung.
+ Die Tabellen aus den Paketen \Package{tabularx}, \Package{tabulary} und
+ \Package{tabu} werden nicht unterstützt. Wie dieser Abstand bei diesen
+ manuell entfernt werden kann, ist unter \autoref{sec:tips:table} zu finden.
+\item[tabu]
+ \ChangedAt{%
+ v2.02:\RecPack \Package{tabu} ist nur bedingt empfehlenswert
+ }
+ Dies ist ein relativ neues Paket, welches versucht, viele der zuvor genannten
+ Funktionalitäten zu implementieren und weitere bereitzustellen. Dafür werden
+ die Umgebungen \Environment{tabu}(\Package{tabu})'none' und
+ \Environment{longtabu}(\Package{tabu})'none' definiert. Es
+ kann alternativ zu \Package{tabularx} verwendet werden und ist insbesondere
+ als Ersatz für das Paket \Package{ltxtable} empfehlenswert.
+
+ \Attention{%
+ Für das Paket in der Version~v2.8 wären seit einigen Jahren mehrere
+ Bugfixes notwendig. Der originäre Autor hatte außerdem die Änderung der
+ \hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{%
+ Benutzerschnittstelle in einer zukünftigen Version%
+ }
+ angekündigt, anscheinend aber mittlerweile die Pflege des Paketes komplett
+ eingestellt.
+ }%
+
+ Durch Änderungen am \hologo{LaTeXe}"~Kernel wurde das Paket unbrauchbar.
+ Deshalb sind durch das \hrfn{https://github.com/tabu-fixed/tabu}{%
+ \hologo{LaTeX3}-Projektteam die allernötigsten Anpassungen%
+ } vorgenommen worden, damit das Paket in der aktuellen Version~v2.9 zumindest
+ grundsätzlich lauffähig ist. Ein Großteil der ursprünglich sehr guten
+ Funktionalitäten kann momentan allerdings nicht genutzt werden. Deshalb ist
+ das Paket aktuell nur bedingt empfehlenswert.
+\end{packages}
+\index{Tabellen|?)}%
+
+
+\subsubsection{Grafiken und Abbildungen}
+\index{Grafiken|?(}%
+%
+Grafiken für wissenschaftliche Arbeiten sollten als Vektorgrafiken erstellt
+werden, um die Skalierbarkeit und hohe Druckqualität zu gewährleisten.
+Bestenfalls folgen diese auch dem Stil der dazugehörigen Arbeit.%
+\footnote{%
+ Für qualitativ hochwertige Dokumente sollten übernommene Grafiken nicht
+ direkt kopiert oder gescannt sondern im gewünschten Zielformat neu erstellt
+ und mit einer Referenz auf die Quelle eingebunden werden.%
+}
+Für das Erstellen eigener Vektorgrafiken, welche die \hologo{LaTeX}"=Schriften
+und das Layout des Hauptdokumentes nutzen, gibt es zwei mögliche Ansätze.
+Entweder die Grafiken werden ähnlich wie das Dokument \enquote{programmiert}
+oder Zeichenprogramme, welche wiederum die Ausgabe oder das Weiterreichen von
+Text an \hologo{LaTeX} unterstützen, werden genutzt.
+Für das Programmieren von Grafiken sollen hier die wichtigsten Pakete
+vorgestellt werden. Wie diese zu verwenden sind, ist den dazugehörigen
+Paketdokumentationen zu entnehmen.
+
+\begin{packages}
+\item[tikz]<pgf>
+ Dies ist ein sehr mächtiges Paket für das Programmieren von Vektorgrafiken
+ und sehr häufig~-- insbesondere bei Einsteigern~-- die erste Wahl bei der
+ Verwendung von \Engine{pdfLaTeX}.
+\item[pstricks]
+ Diese Paket stellt die zweite Variante zum Programmieren von Grafiken dar.
+ Da hiermit auf PostScript (direkt) zugegriffen werden kann, existieren
+ \emph{noch} mehr Möglichkeiten bei der Erstellung eigener Grafiken, wovon
+ die bereitgestellten Befehle rege Gebrauch machen.
+
+ Daraus resultiert allerdings der Nachteil, dass die mit \Package{pstricks}
+ erstellten Grafiken nicht direkt in eine PDF"~Datei kompiliert werden können.
+ Vielmehr müssen die Grafiken aus den Umgebungen
+ \Environment{pspicture}(\Package{pstricks})'none' zunächst über den Pfad
+ \Path{latex\,>\,dvips\,>\,ps2pdf} in PDF"~Dateien gewandelt werden. Diese
+ lassen sich von \Engine{pdfLaTeX} anschließend als Abbildungen einbinden. Um
+ dieses Vorgehen zu ermöglichen, lassen sich folgende Pakete nutzen:
+ %
+ \begin{packages}
+ \item[pst-pdf]
+ Dieses Paket stellt Methoden für den Export von PostSript-Grafiken in
+ PDF"~Datien bereit. Die einzelnen Aufrufe zur Kompilierung von DVI über
+ PostScript zu PDF müssen durch den Anwender manuell beziehungsweise über
+ die Ausgaberoutinen des verwendeten Editors durchgeführt werden.
+ \item[auto-pst-pdf,pdftricks2]
+ Das Paket automatisiert die Erzeugung der \Package{pstricks}"=Grafiken mit
+ dem Paket \Package{pst-pdf}. Hierfür muss \Engine{pdfLaTeX} per Option mit
+ erweiterten Schreibrechten ausgeführt werden. Dazu ist der Aufruf von
+ \Path{pdflatex} mit der Option \Path{-{}-shell-escape} respektive
+ \Path{-{}-enable-write18} notwendig. Bitte beachten Sie dazu ebenfalls die
+ Hinweise in \autoref{sec:tips:auto-pst-pdf}. Eine Alternative dazu ist das
+ Paket \Package{pdftricks2}.
+ \end{packages}
+\end{packages}
+%
+Im Tutorial \Tutorial{treatise} wird für \Package{pstricks} und \Package{tikz}
+jeweils ein Beispiel gegeben. Um bei der Erstellung von Grafiken mit einem der
+beiden Paketen nicht bei jeder Änderung das komplette Dokument kompilieren zu
+müssen, können diese in separate Dateien ausgelagert werden. Hierfür sind die
+beiden Pakete \Package{standalone} oder \Package{subfiles} sehr nützlich.
+
+Für das Zeichnen einer Grafik mit einem Bildbearbeitungsprogramm, welches die
+Weiterverarbeitung durch \hologo{LaTeX} erlaubt, möchte ich auf die freien
+Programme \Application{LaTeXDraw} und \Application{Inkscape} verweisen.
+Insbesondere das zuletzt genannte Programm ist sehr empfehlenswert.
+%
+\begin{packages}
+\item[svg]
+ Mit diesem Paket können alle notwendigen Schritte zum Einfügen einer
+ SVG"~Grafik in ein \hologo{LaTeX}"~Dokument automatisiert durchgeführt
+ werden. In \autoref{sec:tips:svg} sind weitere Hinweise hierzu zu finden.
+\end{packages}
+\index{Grafiken|?)}%
+
+
+\subsubsection{Querverweise und Lesezeichen}
+\index{Querverweise|?(}%
+\index{Lesezeichen|?(}%
+%
+Für das Erzeugen von Querverweisen auf bestimmte Gliederungsebenen, Tabellen,
+Abbildungen oder auch Gleichungen muss für diese besagten Elemente zunächst mit
+\Macro{label}[\Parameter{Label}] ein \emph{eindeutiges} Label erzeugt werden,
+auf welches im Dokument entweder mit \Macro{ref} oder nach dem Laden von
+\Package{hyperref} besser noch mit \Macro{autoref}(\Package{hyperref})'none'
+referenziert werden kann. In \autoref{sec:tips:references} sind diesbezüglich
+weitere Informationen zu finden.
+%
+\begin{packages}
+\item[hyperref]
+ Hiermit können in einem PDF"~Dokument Lesezeichen, Querverweise und
+ Hyperlinks erstellt werden. Wird es geladen, sind außerdem die Option
+ \Option{tudbookmarks} sowie der Befehl \Macro{tudbookmark} nutzbar. Das
+ Paket \Package{bookmark} erweitert die Unterstützung nochmals. Beide
+ genannten Pakete sollten~-- bis auf sehr wenige Ausnahmen wie beispielsweise
+ \Package{glossaries}~-- als letztes in der Präambel eingebunden werden.
+\item[bookmark]
+ Dieses Paket verbessert und erweitert die von \Package{hyperref} angebotenen
+ Möglichkeiten zur Erstellung von Lesezeichen~-- auch Outline"=Einträge~-- im
+ PDF"~Dokument. Zum Beispiel können Schriftfarbe- und "~stil geändert werden.
+\item[varioref]
+ Mit diesem Paket lassen sich sehr gute Verweise auf bestimmte Seiten
+ erzeugen. Insbesondere, wenn der Querverweis auf die aktuelle, die
+ vorhergehende oder nachfolgende sowie im doppelseitigen Satz auf die
+ gegenüberliegende Seite erfolgt, werden passende Textbausteine für diesen
+ verwendet.
+\item[cleveref]
+ Dieses Paket vereint die Vorzüge der automatischen Benennung referenzierter
+ Objekte mit dem Befehl \Macro{autoref}(\Package{hyperref})'none' aus dem
+ Paket \Package{hyperref} und der Verwendung von \Package{varioref}.
+\end{packages}
+\index{Lesezeichen|?)}%
+\index{Querverweise|?)}%
+
+
+\subsubsection{Aufteilung des Hauptdokumentes in Unterdateien}
+Um während des Entwurfes eines Dokumentes die Zeitdauer für das Kompilieren zu
+verkürzen, kann dieses in Unterdokumente gegliedert werden. Dadurch wird es
+möglich, nur den momentan bearbeiteten Dokumentteil~-- respektive die aktuelle
+\Package{tikz}"~ oder \Package{pstricks}"=Grafik~-- zu kompilieren. Die meiner
+Meinung nach besten Pakete für dieses Unterfangen werden folgend vorgestellt.
+%
+\begin{packages}
+\item[standalone]
+ \ChangedAt{%
+ v2.02:Bugfix für Verwendung der Klasse \Class{standalone} aus dem Paket
+ \Package{standalone}%
+ }
+ Dieses Paket ist für das Erstellen eigenständiger (Unter)"~Dokumente gedacht,
+ welche später in ein Hauptdokument eingebunden werden können. Jedes dieser
+ Teildokumente benötigt eine eigene Präambel. Optional lassen sich die
+ Präambeln der Unterdokumente automatisch in ein Hauptdokument einbinden.
+\item[subfiles]
+\ChangedAt{v2.02:\RecPack \Package{subfiles}}
+ Dieses Paket wählt einen etwas anderen Ansatz als \Package{standalone}. Es
+ ist von Anfang an dafür gedacht, ein dediziertes Hauptdokument zu verwenden.
+ Die darin mit \Macro{subfiles}(\Package{subfiles})'none' eingebundenen
+ Unterdateien nutzen bei der autarken Kompilierung dessen Präambel.
+\end{packages}
+%
+Unabhängig davon, ob Sie eines der beiden Pakete nutzen oder alles in einem
+Dokument belassen, ist es ratsam, eigens definierte Befehle, Umgebungen und
+ähnliches in ein separates Paket auszulagern. Dafür müssen Sie lediglich ein
+leeres \hologo{LaTeX}"=Dokument erzeugen und es unter \File*{mypreamble.sty}
+oder einem anderen Namen im gleichen Ordner wie das Hauptdokument speichern.
+Dann können Sie in dieser Datei ihre Deklarationen ausführen und diese mit
+\Macro*{usepackage}[\PParameter{mypreamble}] in das Dokument einbinden. Dies
+hat den Vorteil, dass das Hauptdokument zum einen übersichtlich bleibt und Sie
+zum anderen Ihre persönliche Präambel generisch wachsen lassen und für andere
+Dokumente wiederverwenden können.
+
+
+\subsubsection{Die kleinen und großen Helfer\dots}
+Hier taucht alles auf, was nicht in die vorherigen Kategorien eingeordnet
+werden konnte.
+%
+\begin{packages}
+\item[marginnote]
+ \index{Randnotizen}%
+ Mit dem Befehl \Macro{marginpar}(\Package{koma-script})'none' lassen sich
+ Randnotizen erzeugen. Diese sind in \hologo{LaTeX} spezielle Gleitobjekte,
+ wodurch selbige nicht immer direkt an der ursprünglich intendierten Stelle am
+ Blattrand gesetzt werden. Das Paket \Package{marginnote} stellt den Befehl
+ \Macro{marginnote}(\Package{marginnote})'none' für nicht"~gleitende
+ Randnotizen zur Verfügung. Eine Alternative dazu ist Paket \Package{mparhack}.
+\item[todonotes]
+ \index{Randnotizen}%
+ Mit \Package{todonotes} können noch offene Aufgaben in unterschiedlicher
+ Formatierung am Blattrand oder im direkt Fließtext ausgegeben werden. Aus
+ allen Anmerkungen lässt sich eine Liste aller offenen Punkte erzeugen.
+\item[xparse]
+ \index{Befehlsdeklaration}%
+ Dieses mächtige Paket entstammt dem \hologo{LaTeX3}"=Projekt und bietet für
+ die Erstellung eigener Befehle und Umgebungen einen alternativen Ansatz zu
+ den bekannten \hologo{LaTeX}"=Deklarationsbefehlen \Macro*{newcommand} und
+ \Macro*{newenvironment} sowie deren Derivaten. Mit \Package{xparse} wird es
+ möglich, obligatorische und optionale Argumente an beliebigen Stellen
+ innerhalb des Befehlskonstruktes zu definieren. Auch die Verwendung anderer
+ Zeichen als eckige Klammern für die Spezifizierung eines optionalen
+ Argumentes ist möglich.
+\item[xkeyval,keyval,kvoptions,pgfkeys]
+ \index{Befehlsdeklaration}%
+ \ChangedAt{v2.02:\RecPack \Package{xkeyval}}
+ Das \KOMAScript"=Bundle lädt das Paket \Package{keyval}, um Optionen mit
+ einer Schlüssel"=Wert"=Syntax deklarieren zu können. Zusätzlich wird von
+ \TUDScript das Paket \Package{kvsetkeys} geladen, um auf nicht definierte
+ Schlüssel reagieren zu können. Die Schlüssel"=Wert"=Syntax kann auch für
+ eigens definierte Makros genutzt werden, um sich das exzessive Verwenden von
+ optionalen Argumenten zu ersparen. Damit wäre folgende Definition möglich:
+ \Macro*{newcommand}[%
+ \Macro*{Befehl}[\OParameter{Schlüssel"=Wert"=Liste}\Parameter{Argument}]%
+ ]
+
+ Das Paket \Package{xkeyval} erweitert insbesondere die Möglichkeiten zur
+ Deklaration unterschiedlicher Typen von Schlüsseln. Sollten die bereits durch
+ \TUDScript geladenen Pakete \Package{keyval} und \Package{kvsetkeys} in ihrer
+ Funktionalität nicht ausreichen, kann dieses Paket verwendet werden. Für die
+ Entwicklung eigener Pakete, deren Optionen das Schlüssel"=Wert"=Format
+ unterstützen, kann das Paket \Package{scrbase} genutzt werden. Soll aus einem
+ Grund auf \KOMAScript{} gänzlich verzichtet werden, sind die beiden Pakete
+ \Package{kvoptions} oder \Package{pgfkeys} eine Alternative.
+\item[scrlfile]
+ \index{Paketabhängigkeiten}
+ \ChangedAt{v2.05:\RecPack \Package{scrlfile}}
+ Dieses \KOMAScript-Paket erlaubt es, auf das Laden von Klassen oder Paketen
+ direkt davor oder danach zu reagieren, um beispielsweise Paketabhängigkeiten
+ aufzulösen oder nach dem Laden eines bestimmten Paketes gezielt Befehle
+ anzupassen. Mehr dazu ist im \scrguide zu finden.
+\item[calc]
+ \index{Berechnungen}%
+ Normalerweise lassen sich Berechnungen im Dokument lediglich mit
+ Low"~Level"~\hologo{TeX}"=Primitiven durchführen. Dieses Paket stellt eine
+ einfachere Syntax für Rechenoperationen der vier Grundrechenarten zur
+ Verfügung. Zusätzlich werden neue Befehle zur Bestimmung der Höhe und Breite
+ bestimmter Textauszüge definiert.
+\item[mwe,blindtext]
+ \index{Minimalbeispiel|?}%
+ \ChangedAt{v2.02:\RecPack \Package{mwe}}
+ Mit dem Paket \Package{mwe} lassen sich sehr einfach Minimalbeispiele
+ erzeugen, die sowohl Blindtexte als auch Abbildungen enthalten sollen. Werden
+ keine Grafiken sondern lediglich Textabschnitte etc. benötigt, ist das Laden
+ von \Package{blindtext} ausreichend.
+\item[filecontents]
+ \index{Minimalbeispiel|?}%
+ Dieses Paket erweitert die im \hologo{LaTeX}"=Kernel definierte Umgebung
+ \Environment{filecontents}(\Package{filecontents})'none' dahingehend,
+ dass bereits existierende Dateien überschrieben werden können.
+\item[pdfpages]
+ Das Paket ermöglicht die Einbindung von einzelnen oder mehreren PDF"~Dateien.
+\item[crop]
+ \index{Beschnittzugabe}\index{Schnittmarken}%
+ Hiermit können eine Beschnittzugabe sowie Schnittmarken~-- beispielsweise für
+ Poster~-- erzeugt werden. Hierzu ist in \autoref{sec:tips:crop} ein Beispiel
+ zu finden.
+\item[pagecolor]
+ \index{Farben}%
+ Mit dem Paket kann die Hintergrundfarbe der Seiten im Dokument geändert
+ werden.
+\item[afterpage]
+ Der Befehl \Macro{afterpage}[\PParameter{\dots}](\Package{afterpage})'none'
+ kann genutzt werden, um den Inhalt aus dessen Argument direkt nach der
+ Ausgabe der aktuellen Seite auszuführen.
+\item[filemod]
+ Wird entweder \Engine{pdfLaTeX} oder \Engine{LuaLaTeX} als Textsatzsystem
+ eingesetzt, können mit diesem Paket das Änderungsdatum zweier Dateien
+ miteinander verglichen und in Abhängigkeit davon definierbare Aktionen
+ ausgeführt werden.
+\item[listings]
+ \index{Quelltextdokumentation}%
+ Dieses Paket eignet sich hervorragend zur Quelltextdokumentation in
+ \hologo{LaTeX}. Es bietet die Möglichkeit, externe Quelldateien einzulesen
+ und darzustellen sowie 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.
+ \ChangedAt{v2.02:\RecPack \Package{listings}}
+ Wird \Package{listings} in Dokumenten mit UTF"~8"~Kodierung verwendet,
+ sollte direkt nach dem Laden des Paketes in der Präambel Folgendes
+ hinzugefügt werden:
+ \begin{Code}
+ \lstset{%
+ inputencoding=utf8,extendedchars=true,
+ literate=%
+ {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {~}{{\textasciitilde}}1 {ß}{{\ss}}1
+ }
+ \end{Code}\vspace{-\baselineskip}%
+\item[coseoul]
+ Mit diesem Paket kann die Struktur der Gliederung relativ erstellt werden.
+ Es wird keine absolute Gliederungsebene (\Macro*{chapter}, \Macro*{section})
+ angegeben sondern die Relation zwischen vorheriger und aktueller Ebene
+ (\Macro*{levelup}, \Macro*{levelstay}, \Macro*{leveldown}).
+\item[selinput,inputenc]
+ \index{Eingabekodierung}%
+ \index{Minimalbeispiel|?}%
+ Die verwendete Eingabekodierung ist standardmäßig auf \PValue{utf8}
+ festgelegt, was von (fast) allen \LaTeX-Editoren unterstützt wird. Dies
+ sollte im Normalfall auch nicht geändert werden. Ältere Dokumente sind aber
+ vielleicht noch in einer anderen Eingabekodierung gespeichert. Kann diese
+ nicht geändert werden, so ist es für \Engine{pdfLaTeX} möglich, eine
+ andere~-- im \hyperref[sec:tips:editor]{Editor (\autoref{sec:tips:editor})}
+ vom Anwender eingestellte~-- Eingabekodierungen zu nutzen. Diese kann mit dem
+ Paket \Package{selinput} (automatisch) für \LaTeX{} festgelegt werden Mit:
+ \begin{Code}
+ \usepackage{selinput}
+ \SelectInputMappings{adieresis={ä},germandbls={ß}}
+ \end{Code}\vspace{-\baselineskip}%
+ wird es verwendet. Alternativ dazu lässt sich mit dem Paket
+ \Package{inputenc} die Eingabekodierung manuell mit
+ \Macro*{usepackage}[\OParameter{Eingabekodierung}\PParameter{inputenc}]
+ einstellen. Das Paket \Package{fontenc} sollte in jedem Fall \emph{zuvor}
+ geladen werden.
+\end{packages}
+
+
+\subsubsection{Bugfixes}
+\begin{packages}
+\item[scrhack]<koma-script>
+ Das Paket behebt Kompatibilitätsprobleme der \KOMAScript-Klassen mit den
+ Paketen \Package{hyperref}, \Package{float}, \Package{floatrow} und
+ \Package{listings}. Es ist durchaus empfehlenswert, jedoch sollte unbedingt
+ die Dokumentation beachtet werden.
+\item[scrwfile,morewrites]
+ Falls der Fehler \texttt{No room for a new \textbackslash write} erscheint,
+ kann dieser möglicherweise mit einem dieser beiden Pakete behonben werden.
+ Mehr dazu in \autoref{sec:tips:write}.
+\item[mparhack]
+ Zur Behebung falsch gesetzter Randnotizen wird ein Bugfix für
+ \Macro{marginpar}(\Package{koma-script})'none' bereitgestellt. Alternativ
+ dazu lässt sich auch \Package{marginnote} verwenden.
+\item[fix-cm]
+ Sollte bei einer Schriftgrößenänderung eine oder mehrere Warnungen der Form
+ \begin{Code}
+ Font shape `T1/cmr/m/n' in size <...> not available
+ \end{Code}\vspace{-\baselineskip}%
+ erscheinen, so sollte das Paket \Package{fix-cm} \emph{vor} der Klasse
+ geladen werden. Siehe dazu auch die Hinweise in \autoref{sec:tips:fontsize}.
+\end{packages}