<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\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}&lt;delig&gt;, \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]&lt;lm&gt;
  \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]&lt;newtx&gt;
  \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{&gt;\PParameter{\dots}}\PName{Spaltentyp}\PValue{&lt;\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]&lt;pgf&gt;
  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\,&gt;\,dvips\,&gt;\,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
        {ÃŸ}{{\ss}}1 {~}{{\textasciitilde}}1
        {Â»}{{\guillemetright}}1 {Â«}{{\guillemetleft}}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]&lt;koma-script&gt;
  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 &lt;...&gt; 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}
</pre></body></html>