diff options
author | Karl Berry <karl@freefriends.org> | 2014-12-30 17:32:37 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-12-30 17:32:37 +0000 |
commit | 52342328d697c341a49231053d155a030eb05b56 (patch) | |
tree | 81ad6ccd38929249a64797071f8673a8440134b3 /Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex | |
parent | 5f7820a8be758e948dd35e429e37f1d79ac06eee (diff) |
tudscr rearrangement
git-svn-id: svn://tug.org/texlive/trunk@35930 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex | 889 |
1 files changed, 889 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex new file mode 100644 index 00000000000..591b7c43f48 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex @@ -0,0 +1,889 @@ +\chapter{Unerlässliche und beachtenswerte Pakete} +\manualhyperdef{sec:packages} +\index{Kompatibilität!Pakete} +\section{Von den neuen Hauptklassen benötigte Pakete} +\label{sec:packages:needed} +\subsection{Erforderliche Pakete bei der Schriftinstallation} +% +Für die Installation der Schriften sind die folgend genannten Pakete von +\emph{essentieller} Bedeutung und daher \emph{zwingend} notwendig. Das +Vorhandensein dieser wird durch die jeweiligen Schriftinstallationsskripte +(siehe~\autoref{sec:install}) geprüft und die Installation beim Fehlen eines +oder mehrerer Pakete mit einer entsprechenden Warnung abgebrochen. +% +\begin{packages} +\item[fontinst] + Dieses Paket wird für die Installation der Schriften \Univers sowie \DIN + benötigt. +\item[cmbright] + Alle mathematischen Glyphen und Symbole, die nicht in den \Univers-Schriften + enthalten sind, werden diesem Paket entnommen. +\item[iwona] + Sowohl für die \Univers-Schriftfamilie als auch für \DIN werden fehlenden + Glyphen und Symbole hieraus entnommen. +\end{packages} +% +Zusätzlich werden die \texttt{Schreibmaschinenschriften} aus dem Paket +\Package{lmodern} verwendet. + +\subsection{Notwendige Pakete für die Verwendung der Hauptklassen} +In diesem \autorefname werden alle Pakete genannt, die von den neuen Klassen +zwingend benötigt und geladen werden, um den Anwender das mehrmalige Laden +dieser Pakete oder mögliche Konflikte mit anderen Paketen zu ersparen. +% +\begin{packages} +\item[scrbase](koma-script) + Dieses Paket gehört zum \KOMAScript-Bundle und 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. Von diesem wird das Paket \Package{keyval} geladen, welches + das Definieren von Klassen"~ und Paketoptionen sowie Parametern nach dem + Schlüssel"=Wert"=Prinzip ermöglicht. +\item[kvsetkeys] + Hiermit wird das von \Package{scrbase} geladene Paket \Package{keyval} + verbessert. Unter anderem kann das Verhalten für einen übergebenen, + unbekannten Schlüssel festgelegt werden. +\item[scrlayer-scrpage](koma-script) + \ChangedAt{v2.02!\Package{scrlayer-scrpage}: Für Verwendung notwendig} + Dieses \KOMAScript-Paket wird für die \PageStyle{tudheadings}-Seitenstile + benötigt. +\item[etoolbox] + Es werden viele Funktionen zum Testen und zur Ablaufkontrolle bereitgestellt + und das einfache Manipulieren vorhandener Makros ermöglicht. +\item[geometry]\index{Satzspiegel} + Das Paket ist essentiell für die \TUDScript-Klassen. Es wird zum Festlegen + der Seitenränder respektive des Satzspiegels verwendet. +\item[textcase]\index{Schriftauszeichnung} + Mit \Macro{MakeTextUppercase} wird die Großschreibung der Überschriften in + \DIN erzwungen. Im \emph{Ausnahmefall} kann dies mit \Macro{NoCaseChange} + unterbunden werden. +\item[graphicx]\index{Grafiken} + Dies ist das De-facto-Standard-Paket zum Einbinden von Grafiken. Zum Setzen + des Logos der \TnUD im Kopf wird \Macro{includegraphics} 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[eviron]\index{Befehle!Deklaration} + Es wird eine verbesserte Deklaration von Umgebungen ermöglicht, bei der auch + beim Abschluss der Umgebung auf die übergebenen Parameter zugegriffen werden + kann. Dies wird die Neugestaltung der \Environment{abstract}"=Umgebung + benötigt. Das Paket lädt \Package{trimspaces}, womit das Entfernen von + überflüssigen Leerraum um einen Strings ermöglicht wird. +\item[afterpage] + \ChangedAt{v2.02!\Package{afterpage}: Für Verwendung notwendig} + Der Befehl \Macro{afterpage}\Parameter{\dots} kann genutzt werden, um den + Inhalt aus dessen Argument direkt nach der Ausgabe der aktuellen Seite + auszuführen. Es wird für den Titelkopf im \CD für das zweispaltige Layout + benötigt (\autoref{sec:title}). +\end{packages} +% +Möchten Sie eines der hier aufgezählten Pakete selber mit bestimmten Optionen +laden, so sollten diese bereits \emph{vor} der Definition der Dokumentklasse an +das Paket weitergereicht werden. +% +\begin{Example} +Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen: +\begin{Code}[escapechar=§] +\PassOptionsToPackage§\Parameter{Optionenliste}\Parameter{Paket}§ +\documentclass§\OParameter{Klassenoptionen}\PParameter{tudscr\dots}§ +\end{Code} +\end{Example} + + + +\section{Durch \TUDScript direkt unterstütze Pakete} +% +\begin{packages} +\item[hyperref]\index{Lesezeichen}\index{Querverweise} + 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[isodate]\index{Datum|?} + Dieses Paket formatiert mit \Macro{printdate}\Parameter{Datum} die Ausgabe + eines Datums automatisch in ein spezifiziertes Format. Wird es geladen, + werden alle Datumsfelder, welche durch die \TUDScript-Klassen definiert + wurden,% + \footnote{% + \Macro{date}, \Macro{dateofbirth}, \Macro{defensedate}, \Macro{duedate}, + \Macro{issuedate} + } + in diesem Format ausgegeben. +\item[multicol]\index{Zweispaltensatz|?} + Hiermit kann jeglicher beliebiger Inhalt in zwei oder mehr Spalten ausgegeben + werden, wobei~-- im Gegensatz zur \hologo{LaTeX}-Option \Option{twocolumn}~-- + für einen Spaltenausgleich gesorgt wird. Unterstützt wird das Paket innerhalb + der Umgebungen \Environment{abstract} und \Environment{tudpage}. +\item[quoting]\index{Zitate} + \hologo{LaTeX} bietet von Haus aus \emph{zwei} verschiedene Umgebungen für + Zitate und ähnliches. Beide sind in ihrer Ausprägung starr und ignorieren + beispielsweise die Einstellungen von \Option{parskip}. Dies wird durch die + Umgebung \Environment{quoting} verbessert. Wird das Paket geladen, kommt + diese gegebenenfalls innerhalb der \Environment{abstract}"=Umgebung zum + Einsatz. +\item[ragged2e]\index{Worttrennung} + Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung + aktiviert wird. +\item[pagecolor]\index{Farben} + Mit dem Paket kann die Hintergrundfarbe der Seiten im Dokument geändert + werden. Nach der Ausgabe einer farbigen Titel"~, Teile"~, oder Kapitelseite + wird auf diese zurückgeschaltet. +\end{packages} + + + +\section{Empfehlenswerte Pakete} +\label{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 zu Rate gezogen +werden,\footnote{Kommandozeile/Terminal: \Path{texdoc\,\PName{Paketname}}} +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. Egal, in welcher Sprache das Dokument verfasst wird, sollte +diese mit dem Paket \Package{babel} definiert werden~-- auch wenn dies +Englisch ist. Für deutschsprachige Dokumente ist für eine annehmbare +Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden. + +\begin{packages} +\item[fontenc]\index{Zeichensatzkodierung} + Das Paket erlaubt Festlegung der Zeichensatzkodierung des Ausgabefonts. Als + Voreinstellung ist die Ausgabe als 7"~bit kodierte Schrift 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, sollte man + \Macro*{usepackage}\POParameter{T1}\PParameter{fontenc} nutzen. +\item[selinput]\index{Eingabekodierung} + Hiermit erfolgt die (automatische) Festlegung der Eingabekodierung. Diese ist + vom genutzten \hyperref[sec:tips:editor]{Editors (\autoref{sec:tips:editor})} + und den darin gewählten Einstellung abhängig. Mit: + \begin{Code} + \usepackage{selinput} + \SelectInputMappings{adieresis={ä},germandbls={ß}} + \end{Code}\vspace{-\baselineskip}% + wird es verwendet. Dies macht den Quelltext portabel, womit beispielsweise + einfach via Copy~\&~Paste ein \hrfn{http://www.komascript.de/minimalbeispiel}% + {Minimalbeispiel} bei Problemstellungen in einem Forum bereitgestellt werden + kann. Alternativ dazu lässt sich mit dem Paket \Package{inputenc} die zu + verwendende Eingabekodierung manuell einstellen + (\Macro*{usepackage}\OParameter{Eingabekodierung})\PParameter{inputenc}). +\item[babel]\index{Sprachunterstützung}\index{Bezeichner} + Mit diesem Paket 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 als 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 + \hologo{LuaLaTeX} und \hologo{XeLaTeX} kann das Paket \Package{polyglossia} + genutzt werden. +\item[microtype]\index{Typographie} + 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 \hologo{TeX}-Engine, + wohl jedoch mit \hologo{pdfTeX} als auch \hologo{LuaTeX} sowie \hologo{XeTeX}. +\item[hyphsubst]\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. Es muss bereits \emph{vor} + der Dokumentklasse wie folgt geladen werden: + \begin{Code}[escapechar=§] + \RequirePackage[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{Typographie und Layout} +\index{Typographie} +% +\begin{packages} +\item[setspace]\index{Zeilenabstand} + Die Vergrößerung des Zeilenabstandes wird: + % + \begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.] + \itempackages viel zu häufig und völlig unnötig gefordert und + \itempackages schließlich auch noch zu groß gewählt. + \end{enumerate} + % + Die Forderung nach Erhöhung des Zeilenabstandes~-- in der Typographie als + Durchschuss bezeichnet~-- kommt noch 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} verwendet werden. Dieses stellt den Befehl + \Macro{setstretch}\Parameter{Faktor} zur Verfügung, mit dem der Durchschuss + beziehungsweise 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 der aktuellen 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 \CD der + \TnUD verwendeten \Univers~-- ist dies schwieriger und ein erweiterter + Abstand der Zeilen kann dabei durchaus hilfreich sein. Jedoch sollte nicht + nach dem Motto \enquote{viel hilft viel} verfahren werden. In diesem Dokument + wurde als Faktor für den Zeilenabstand \Macro{setstretch}\PParameter{1.1} + gewählt. Nach einer Einstellung des Zeilenabstandes sollte der Satzspiegel + unbedingt mit \Macro{recalctypearea} neu berechnet werden. Siehe dazu auch + \autoref{sec:tips:headings} sowie \autoref{sec:tips:headline}. +\item[csquotes]\index{Zitate} + Das Paket stellt unter anderem den Befehl \Macro{enquote}\Parameter{Zitat} + 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!\Package{noindentafter}: Beschreibung hinzugefügt} + Mit diesem Paket lassen sich automatische Absatzeinzüge für selbst zu + bestimmende Befehle und Umgebungen unterdrücken. +\item[xspace]\index{Befehle!Deklaration} + Mit \Package{xspace} kann bei der Definition eigener Makros der Befehl + \Macro{xspace} genutzt werden. Dieser setzt ein gegebenenfalls notwendiges + Leerzeichen automatisch. In \autoref{sec:tips:xspace} ist die Definition + eines solchen Befehls exemplarisch ausgeführt. +\item[ellipsis]\index{Befehle!Deklaration} + In \hologo{LaTeX} folgten 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 + folgende Leerzeichen~-- im Gegensatz zum Standardverhalten~-- nur gesetzt, + wenn ein Satzzeichen und kein Buchstabe folgt. Siehe dazu auch + \autoref{sec:tips:dots}. +\item[xpunctuate]\index{Befehle!Deklaration} + Die Funktionalität von \Package{xspace} wird um die Beachtung von + Interpunktionen erweitert. +\itempackages[\href{http://www.ctan.org/pkg/delig}{\Application{DeLig}}] + \index{Typographie}\index{Ligaturen} + Hierbei handelt es sich um ein Java-Script, welches anhand eines Wörterbuches + falsche Ligaturen innerhalb eines Dokumentes automatisiert entfernt. Wird + \Univers verwendet ist dies jedoch nicht notwendig, da diese keinerlei + Ligaturen enthält, die insbesondere in deutschen Texten für einen guten Satz + manuell aufgelöst werden müssten.% + \footnote{% + Das sind ff, fi, fl, ffi, und ffl bei den \hologo{LaTeX}"=Standardschriften. + } + Mit \hologo{LuaLaTeX} als Dokumentprozessor kann alternativ dazu auch + \Package{selnolig} verwendet werden. +\item[balance]\index{Zweispaltensatz} + Dieses Paket ermöglicht einen Spaltenausgleich im Zweispaltensatz auf der + letzten Dokumentseite. Alternativ dazu kann auch \Package{multicol} verwendet + werden. +\end{packages} + +\subsubsection{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 lediglich nutzbar, wenn \hologo{LuaLaTeX} als +Dokumentprozessor genutzt wird. +\begin{packages} +\item[lua-check-hyphen]\index{Worttrennung} + Hiermit lassen sich mit \hologo{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]\index{Rechtschreibung} + Wird \hologo{LuaLaTeX} als Prozessor 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} oder \Application{Hunspell} + analysiert werden. Wird durch dieses Programm eine Liste falsch geschriebener + Wörter ausgegeben, können diese mit \Package{spelling} im PDF"~Dokument + hervorgehoben werden. +\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] + 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[mweights]\index{Schrift!Stärke} + In \hologo{LaTeXe} existieren die drei 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. Das Paket + \Package{mweights} erlaubt die individuelle Definition der Schriftstärke für + jede der drei Schriftfamilien. +\item[fontspec] + \ChangedAt{v2.02!\Package{fontspec}: % + Beschreibung hinzugefügt{,} mit \Option{fontspec} nutzbar% + }% + Wird als Dokumentprozessor nicht \hologo{pdfLaTeX} sondern \hologo{XeLaTeX} + oder \hologo{LuaLaTeX} verwendet, können mit diesem Paket Systemschriften im + OpenType-Format eingebunden werden, womit sich die Auswahl der verwendbaren + Schriften in einem \hologo{LaTeX}"=Dokument stark erweitert. Das Paket wird + mit der Option \Option{fontspec} durch \TUDScript unterstützt. +\item[relsize]\index{Schrift!Größe} + Mithilfe dieses Paketes kann die Größe einer Textauszeichnung relativ zur + aktuell gewählten 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} +% +Auch für die mathematischen Schriften gibt es einige nützliche Pakete. +\index{Mathematiksatz!Schrift}\index{Schrift!Mathematiksatz} +% +\begin{packages} +\item[sansmath] + Sollten die normalen \hologo{LaTeX}-Schriften Computer~Modern verwendet + werden, kann man dieses Paket zum serifenlosen Setzen mathematischer + Ausdrücke nutzen. Werden die Schriften des \CDs der \TnUD zusammen mit den + \TUDScript-Hauptklassen verwendet, sei auf die Option \Option{sansmath} + verwiesen. +\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} +\index{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] + 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}. +\end{packages} +% +Für das typographisch 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 typographisch 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}. +\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 typischen 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{Trennzeichen} + \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 typographisch 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. + \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. +\end{packages} +% +Weitere Hinweise und Anwendungsfälle zur mathematischen Typographie werden in +\autoref{sec:exmpl:mathtype} sowie \autoref{sec:exmpl:mathswap} gegeben. + +\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 gibt es seit geraumer Zeit und es 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[acro]\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. +\item[glossaries]\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 beziehungsweise Symbole benötigt + werden, sollte man dieses Paket in Erwägung ziehen. + + 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. +\end{packages} + +\subsubsection{Listen} +\index{Listen|?} +\begin{packages} +\item[enumitem] + Das Paket \Package{enumitem} erweitert die rudimentären Funktionalitäten der + \hologo{LaTeX}"=Standardlisten \Environment{itemize}, \Environment{enumerate} + sowie \Environment{description} 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}. +\end{packages} + +\subsubsection{Tabellen} +\index{Tabellen|?} +Für den Tabellensatz in \hologo{LaTeX} werden von Haus aus die Umgebungen +\Environment{tabbing} und \Environment{tabular} beziehungsweise +\Environment{tabular*} bereitgestellt, welche in ihrer Funktionalität meist +für einen qualitativ hochwertigen Tabellensatz nicht ausreichen. Es werden +deshalb Pakete vorgestellt, die zusätzlich verwendet werden können. +\begin{packages} +\item[array] + Dieses Paket ermöglicht mit dem Befehl \Macro{newcolumntype} das Erstellen + eigener Spaltentypen sowie die erweiterte Definition von Tabellenspalten + (\PValue{>\{\dots\}}\PName{Spaltentyp}\PValue{<\{\dots\}}), wobei mithilfe + sogenannter \enquote{Hooks} vor und nach Einträgen innerhalb einer Spalte + gezielt Anweisungen gesetzt werden können. Außerdem kann die Höhe der Zeilen + einer Tabelle mit \Macro{extrarowheight} angepasst werden. +\item[multirow] + Es wird der Befehl \Macro{multirow} definiert, der~-- ähnlich zum Makro + \Macro{multicolumn}~-- das Zusammenfassen von mehreren Zeilen in einer + Spalte ermöglicht. +\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} zur Verfügung, die als Alternative genutzt + werden kann und eine symmetrische Tabelle erzeugt. +\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*.] + \itempackages keine vertikalen Linien + \itempackages 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}, \Macro{midrule} sowie \Macro{cmidrule} und + \Macro{bottomrule} für unterschiedliche horizontale Linien bereit. +\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[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}"=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 und 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 die Standardspalten~-- wird jedoch nicht wie bei der + Umgebung \Environment{tabularx} auf alle Spalten gleichmäßig verteilt sondern + in der \Environment{tabulary}"=Umgebung für die Spaltentypen~\PValue{LCRJ} + anhand ihres Zellinhaltes gewichtet vergeben. + (\Macro*{begin}\PParameter{tabulary}\Parameter{Breite}\Parameter{Spalten}). +\item[longtable] + 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}"=Umgebung können die Pakete + \Package{ltablex} oder besser noch \Package{ltxtable} verwendet werden. +\item[ltxtable] + Wie bereits erwähnt sollte dieses Paket für mehrseitige Tabellen, die mit der + Umgebung \Environment{tabularx} erstellt wurden, verwendet werden. + Alternativ dazu kann man auch \Package{tabu} nutzen. +\item[tabu] + \ChangedAt{v2.02!\Package{tabu}: Verwendung 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} und \Environment{longtabu} definiert. Es + kann alternativ zu \Package{tabularx} verwendet werden und ist insbesondere + als Ersatz für das Paket \Package{ltxtable} empfehlenswert. + + \Attention{% + Leider wären für das Paket in der aktuellen Version~v2.8 seit geraumer Zeit + ein paar kleinere Bugfixes notwendig. Außerdem wird sich die + \hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{% + Benutzerschnittstelle in einer zukünftigen Version + } sehr stark ändern, weshalb es momentan mit Vorsicht zu genießen ist. + Zumindest sollte sich der Anwender bewusst sein, dass er mit dieser Version + gesetzte Dokumente gegebenenfalls später anpassen muss. + } +\end{packages} + + + +\subsubsection{Gleitobjekte} +\index{Gleitobjekte|?} +\index{Tabellen}\index{Grafiken} +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[placeins]\index{Gleitobjekte!Platzierung} + Mit diesem Paket kann die Ausgabe von Gleitobjekten vor Kapiteln und wahlweise + Unterkapiteln erzwungen werden. +\item[flafter]\index{Gleitobjekte!Platzierung} + 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. +\item[caption]\index{Gleitobjekte!Beschriftung} + Die \KOMAScript-Klassen bietet bereits einige Möglichkeiten zum Setzen 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]\index{Gleitobjekte!Beschriftung} + 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]\index{Gleitobjekte!Beschriftung} + Mit diesem Paket können global wirksame Einstellungen und Formatierungen für + \emph{alle} Gleitobjekte eines Dokumentes vorgenommen werden. So kann unter + anderem die verwendete Schrift (\Macro{floatsetup}\PParameter{font=\dots}) + innerhalb der Umgebungen \Environment{float} und \Environment{table} + eingestellt werden. Das typographisch richtige Setzen der Beschriftungen von + Abbildungen als Unterschriften + (\Macro{floatsetup}\POParameter{figore}\PParameter{capposition=bottom}) + sowie Tabellen als Überschriften + (\Macro{floatsetup}\POParameter{table}\PParameter{capposition=top}) + kann automatisch erzwungen werden~-- unabhängig von der Position des Befehls + zur Beschriftung \Macro{caption} innerhalb der Gleitobjektumgebung. Wird das + Verhalten so wie empfohlen mit dem \Package{floatrow}-Paket eingestellt, + sollte für eine richtige Platzierung der Tabellenüberschriften außerdem die + \KOMAScript-Option \Option{captions}[tableheading] genutzt werden. +\end{packages} + +\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 der Referenz auf die Quelle ins Dokument 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 man \enquote{programmiert} die Grafiken ähnlich wie das Dokument +selber oder man nutzt Zeichenprogramme, die wiederum die Ausgabe oder das +Weiterreichen von Text an \hologo{LaTeX} unterstützen. 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. +Außerdem wird im Tutorial \Tutorial{treatise} für beide Pakete jeweils ein +Beispiel gegeben. + +\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 \hologo{pdfLaTeX}. +\item[pstricks] + Das Paket \Package{pstricks} stellt die zweite Variante zum Programmieren + von Grafiken dar. Mit diesem Paket hat man \emph{noch} mehr Möglichkeiten bei + der Erstellung eigener Grafiken, da man mit \Package{pstricks} auf + PostScript zugreifen kann und einige der bereitgestellten Befehle davon rege + Gebrauch machen. Der daraus resultierende Nachteil ist, dass mit + \Package{pstricks} die direkte Verwendung von \hologo{pdfLaTeX} nicht + möglich ist. + + Die Grafiken aus den \Environment{pspicture}"=Umgebungen müssen deshalb erst + über den Pfad \Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf} + in PDF"~Dateien gewandelt werden. Diese lassen sich von \hologo{pdfLaTeX} + anschließend als Abbildungen einbinden. Um dieses Vorgehen zu ermöglichen, + können folgende Pakete genutzt werden: + % + \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] + Das Paket automatisiert die Erzeugung der \Package{pstricks}"=Grafiken mit + dem Paket \Package{pst-pdf}. Dafür muss \hologo{pdfLaTeX} per Option mit + Schreibrechten ausgeführt werden. Dazu ist der Aufruf von \Path{pdflatex} + mit der Option \Path{-{}-shell-escape} beziehungsweise für Nutzer von + \hologo{MiKTeX} mit \Path{-{}-enable-write18} notwendig. Bitte beachten Sie + außerdem die Hinweise in \autoref{sec:tips:auto-pst-pdf}. Eine Alternative + dazu ist das Paket \Package{pdftricks2}. + \end{packages} +\end{packages} +% +Um bei der Erstellung von Grafiken mit \Package{pstricks} oder \Package{tikz} +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. Für die +erstellten Grafiken kann man den Export für die Einbindung in \hologo{LaTeX} +manuell durchführen. In \autoref{sec:tips:svg} wird vorgestellt, wie sich dies +automatisieren lässt. + +\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!\Class{standalone}: Probleme behoben} + 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!\Package{subfiles}: Beschreibung hinzugefügt} + 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} 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 sich nicht eignete, in die vorherigen Kategorien +eingeordnet zu werden. +% +\begin{packages} +\item[bookmark]\index{Lesezeichen}\index{Querverweise} + Dieses Paket verbessert und erweitert die von \Package{hyperref} angebotenen + Möglichkeiten zur Erstellung von Lesezeichen~-- auch Outline"=Einträge~-- im + PDF-Dokument. Beispielsweise können Schriftfarbe- und "~stil geändert werden. +\item[calc]\index{Berechnungen} + Normalerweise können Berechnungen nur mit Low-Level-\hologo{TeX}-Primitiven + im Dokument durchgeführt werden. 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[chngcntr]\index{Zählermanipulation} + Das Paket erlaubt die Manipulation aller möglichen, bereits definierten + \hologo{LaTeX}-Zähler. Es können Zähler so umdefiniert werden, dass sie bei + der Änderung eines anderen Zählers automatisch zurückgesetzt werden oder eben + nicht. Ein kleines Beispiel dazu ist in \autoref{sec:tips:counter} zu finden. +\item[varioref]\index{Querverweise} + 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 zweiseitigen Satz auf die + gegenüberliegende Seite erfolgt, werden passende Textbausteine für diesen + verwendet. +\item[cleveref]\index{Querverweise} + Dieses Paket vereint die Vorzüge von \Package{varioref} mit der automatischen + Benennung der referenzierten Objekte mit dem Befehl \Macro{autoref} aus dem + Paket \Package{hyperref}. +\item[marginnote]\index{Randnotizen} + Randnotizen, welche mit \Macro{marginpar} erzeugt werden, sind spezielle + Gleitobjekte in \hologo{LaTeX}. Dies kann dazu führen, dass eine Notiz am + Blattrand nicht direkt da gesetzt wird, wo diese intendiert war. Dieses Paket + stellt den Befehl \Macro{marginnote} für nicht"~gleitende Randnotizen zur + Verfügung. Alternativ dazu kann man auch \Package{mparhack} verwenden. +\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{Befehle!Deklaration} + 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]\index{Befehle!Deklaration} + \ChangedAt{v2.02!\Package{xkeyval}: Beschreibung hinzugefügt} + 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[listings]\index{Quelltexte einbinden}\index{Quelltextverzeichnis}% + 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!\Package{listings}: Beschreibung ergänzt} + 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[mwe]\index{Minimalbeispiel|!} + \ChangedAt{v2.02!\Package{mwe}: Beschreibung hinzugefügt} + Mit diesem Paket lassen sich sehr einfach Minimalbeispiele erzeugen, die + sowohl Blindtexte respektive Abbildungen enthalten sollen. +\item[filemod] + Wird entweder \hologo{pdfLaTeX} oder \hologo{LuaLaTeX} als Prozessor + eingesetzt, können mit diesem Paket das Änderungsdatum zweier Dateien + miteinander verglichen und in Abhängigkeit davon definierbare Aktionen + ausgeführt werden. +\item[coseoul] + Mit diesem Paket kann man die Struktur der Gliederung relativ angeben. 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[dprogress]\index{Debugging} + Das Paket schreibt bei der Kompilierung des Dokumentes die Gliederung in die + Logdatei. Dies kann im Fehlerfall beim Auffinden des Problems im Dokument + helfen. Allerdings werden dafür die Gliederungsebenen so umdefiniert, dass + diese keine optionalen Argumente mehr unterstützen,was jedoch für die + \TUDScript-Klassen von essentieller Bedeutung ist. Zum Debuggen kann es + trotzdem sporadisch eingesetzt 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 man + unbedingt die Dokumentation beachten. +\item[fixltx2e] + Dieses Paket enthält Bugfixes für \hologo{LaTeXe}. Da diese eventuell zu + Inkompatibilitäten mit früheren Versionen führen könnten, wurden diese nicht + in den \hologo{LaTeXe}-Kernel eingepflegt. Für neu gesetzte Dokumente kann es + ohne Bedenken verwendet werden. +\item[mparhack] + Zur Behebung falsch gesetzter Randnotizen wird ein Bugfix für + \Macro{marginpar} bereitgestellt. Alternativ dazu kann man auch + \Package{marginnote} verwenden. +\item[etex] + Das Paket kann genutzt werden, falls die maximale Anzahl der normalerweise + verfügbaren \hologo{LaTeX}-Register für Längen, Zähler etc. überschritten + wurde. +\end{packages} |