diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex | 816 |
1 files changed, 816 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex new file mode 100644 index 00000000000..1a8d3cac5a9 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex @@ -0,0 +1,816 @@ +\newcommand*\TaT{\hyperref[sec:tips]{Tipps \& Tricks}} +\chapter{Praktische Tipps \& Tricks} +\manualhyperdef{sec:tips}% +\section{\NoCaseChange{\hologo{LaTeX}}-Editoren} +\label{sec:tips:editor} +Hier werden die gängigsten Editoren zum Erzeugen von \hologo{LaTeX}"=Dateien +genannt. Ich persönlich bin mittlerweile sehr überzeugter Nutzer von +\Application{\hologo{TeX}studio}, da dieser viele Unterstützungs- und +Assistenzfunktionen bietet. Neben diesen gibt es noch weitere, gut nutzbare +\hologo{LaTeX}-Editoren. Egal, für welchen Editor man sich letztendlich +entscheidet, sollte dieser auf jeden Fall eine Unicode"=Unterstützung~(UTF"~8) +enthalten: +% +\begin{itemize} +\item \Application{\hologo{TeX}maker} +\item \Application{Kile} +\item \Application{\hologo{TeX}works} +\item \Application{\hologo{TeX}lipse}~-- Plug-in für \Application{Eclipse} +\item \Application{\hologo{TeX}nicCenter} +\item \Application{WinEdt} +\item \Application{LEd}~-- früher \hologo{LaTeX}~Editor +\item \Application{\hologo{LyX}}~-- grafisches Front"~End für \hologo{LaTeX} +\end{itemize} +% +Für \Application{\hologo{TeX}studio} wird im \GitHubRepo* das Archiv +\hrfn{https://github.com/tud-cd/tudscr/releases/download/TeXstudio/tudscr4texstudio.zip}% +{\File{tudscr4texstudio.zip}} bereitgestellt, welches Dateien zur Erweiterung +der automatischen Befehlsvervollständigung für \TUDScript enthält. Diese müssen +unter Windows in \Path{\%APPDATA\%\textbackslash texstudio} beziehungsweise +unter unixoiden Betriebssystemen in \Path{.config/texstudio} eingefügt werden. + +Möchten Sie das grafische \hologo{LaTeX}-Frontend~\Application{\hologo{LyX}} +für das Erstellen eines Dokumentes mit \TUDScript verwenden, so werden dafür +spezielle Layout-Dateien benötigt, um die Klassendateien verwenden zu können. +Diese sind zusammen mit einem exemplarischen \hologo{LyX}-Dokument als Archiv +\hrfn{https://github.com/tud-cd/tudscr/releases/download/LyX/tudscr4lyx.zip}% +{\File{tudscr4lyx.zip}} im \GitHubRepo* verfügbar. Die Layout-Dateien müssen +dafür im \Application{\hologo{LyX}}"=Installationspfad in den passenden +Unterordner kopiert werden. Dieser ist bei Windows +\Path{\%PROGRAMFILES(X86)\%\textbackslash{}LyX~2.0\textbackslash{}Resources\textbackslash{}layouts} +beziehungsweise bei unixoiden Betriebssystemen \Path{/usr/share/lyx/layouts}. + + + +\section{Literaturverwaltung in \NoCaseChange{\hologo{LaTeX}}} +\ChangedAt{v2.02!\TaT: Literaturverwaltung} +% +Die simpelste Variante, eine Literaturdatenbank in \hologo{LaTeX} zu verwalten, +ist dies mit dem verwendeten \hologo{LaTeX}-Editors manuell zu erledigen. Dies +ist allerdings nicht sonderlich komfortabel. Einfacher ist es, dies mit einer +darauf spezialisierten Anwendung zu bewerkstelligen. Für die Referenzverwaltung +in \hologo{LaTeX} gibt es dafür zwei sehr gute Programme +% +\begin{itemize} +\item \Application{Citavi} +\item \Application{JabRef} +\end{itemize} +% +Das Programm \Application{Citavi} ermöglicht den Import von bibliographischen +Informationen aus dem Internet. Allerdings sind diese teilweise unvollständig +oder mangelhaft. Mit \Application{JabRef} hingegen muss die Literaturdatenbank +manuell erstellt werden. Allerdings lassen sich einzelne Einträge aus +.bib-Dateien sehr importieren. Beide Anwendungen unterstützen den Export +beziehungsweise die Erstellung von Datenbanken im Stil von \Package{biblatex}. +Für \Application{JabRef} muss diese durch den Anwender explizit aktiviert +werden.\footnote{Optionen/Einstellungen/Erweitert/BibLaTeX-Modus} +Zur Verwendung der beiden Programme in Verbindung mit \Package{biblatex} und +\Application{biber} gibt es ein gutes Tutorial unter diesem +\href{http://www.suedraum.de/latex/stammtisch/degenkolb_latex_biblatex_folien-final.pdf}{Link}. + + + +\section{Worttrennungen in deutschsprachigen Texten} +\manualhyperdef'{sec:tips:hyphenation} +% +\ChangedAt{v2.02!\TaT: Worttrennungen} +% +Die möglichen Trennstellen von Wörtern werden von \hologo{LaTeXe} mithilfe +eines Algorithmus berechnet. Dieser ist jedoch in seiner ursprünglichen Form +für die englische Sprache konzipiert worden. Für deutschsprachige Texte wird +die Worttrennung~-- insbesondere für zusammengeschriebenen Wörtern~-- mit dem +Paket \Package{hyphsubst} entscheidend verbessert. Dafür wird ein um vielerlei +Trennungsmuster ergänztes Wörterbuch aus dem Paket \Package{dehyph-exptl} +genutzt. + +Das Paket \Package{hyphsubst} muss bereits \emph{vor} der Dokumentklasse selbst +geladen werden. Außerdem wird das Paket \Package{babel} benötigt. Damit auch +Wörter mit Umlauten richtig getrennt werden, ist zusätzlich die Verwendung des +Paketes \Package{fontenc} mit der \PValue{T1}"~Schriftkodierung erforderlich. +Der Beginn einer Dokumentpräambel könnte folgendermaßen aussehen: +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\documentclass[ngerman,§\PName{Klassenoptionen}§]§\Parameter{Dokumentklasse}§ +\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +\usepackage{babel} +§\dots§ +\end{Code} +\end{quoting} +% +Eine Anmerkung noch zur Trennung von Wörtern mit Bindestrichen. Normalerweise +sind die beiden von \hologo{LaTeXe} verwendeten Zeichen für Bindestrich und +Trennstrich identisch. Leider wird der Trennungsalgorithmus von \hologo{LaTeXe} +bei Wörtern, welche bereits einen Bindestrich enthalten, außer Kraft gesetzt. +In der Folge werden~-- in der deutschen Sprache durchaus öfter anzutreffende~-- +Wortungetüme wie die \enquote{Donaudampfschifffahrts-Gesellschafterversammlung} +normalerweise nur direkt nach dem angegebenen Bindestrich getrennt. + +Allerdings gibt es die Möglichkeit, das genutzte Zeichen für den Trennstrich +zu ändern. Dafür ist das Laden der \PValue{T1}"~Schriftkodierung mit dem Paket +\Package{fontenc} zwingend erforderlich. Wenn von der verwendeten Schrift +nichts anderes eingestellt ist, liegen sowohl Binde- als auch Trennstrich auf +Position~\PValue{45} der Zeichentabelle. In der \PValue{T1}"~Schriftkodierung +befindet sich auf der Position~\PValue{127} glücklicherweise für gewöhnlich das +gleiche Zeichen noch einmal. Dies ist jedoch von der verwendeten Schrift +abhängig. Wird der Ausdruck \Macro{defaulthyphenchar}\PValue{=127} in der +Dokumentpräambel verwendet, kann dieses Zeichen für den Trennstrich genutzt +werden. Bei den Schriften des \CDs der \TnUD ist dies bereits automatisch +eingestellt. + +Sollte trotz aller Maßnahmen dennoch einmal ein bestimmtes Wort falsch getrennt +werden, so kann die Worttrennung dieses Wortes manuell und global geändert +werden. Dies wird mit \Macro{hyphenation}\PParameter{Sil-ben-tren-nung} +gemacht. Es ist zu beachten, dass dies für alle Flexionsformen des Wortes +erfolgen sollte. Für eine lokale/temporäre Worttrennung kann mit Befehlen aus +dem Paket \Package{babel} gearbeitet werden. Diese sind: + +\vskip\baselineskipglue\noindent +\begin{tabular}{@{}ll} +\textbf{Beschreibung} & \textbf{Befehl}\tabularnewline +ausschließliche Trennstellen & \PValue{\bsc-}\tabularnewline +zusätzliche Trennstellen & \PValue{"'-}\tabularnewline +Umbruch ohne Trennstrich & \PValue{"'"'}\tabularnewline +Bindestrich ohne Umbruch & \PValue{"'\textasciitilde}\tabularnewline +Bindestrich, der weitere Trennstellen erlaubt & \PValue{"'=}\tabularnewline +\end{tabular} + + + +\section{Lokale Änderungen von Befehlen und Einstellungen} +\index{Gruppierungen} +% +\ChangedAt{v2.02!\TaT: Lokale Änderungen} +% +Ein zentraler Bestandteil von \hologo{LaTeX} ist die Verwendung von Gruppen +oder Gruppierungen. Innerhalb dieser bleiben alle vorgenommenen Änderungen an +Befehlen, Umgebungen oder Einstellungen lokal. Dies kann sehr nützlich sein, +wenn beispielsweise das Verhalten eines bestimmten Makros einmalig oder +innerhalb von selbst definierten Befehlen oder Umgebungen geändert werden, im +Normalfall jedoch die ursprüngliche Funktionalität behalten soll. +\begin{Example} +\index{Schriftauszeichnung} +Der Befehl \Macro{emph} wird von \hologo{LaTeX} für Hervorhebungen im Text +bereitgestellt und führt normalerweise zu einer kursiven oder~-- falls kein +Schriftschnitt mit echten Kursiven vorhanden ist~-- kursivierten Auszeichnung. +Soll nun in einem bestimmten Abschnitt die Auszeichnung mit fetter Schrift +erfolgen, kann der Befehl \Macro{emph} innerhalb einer Gruppierung geändert +und verändert werden. Wird diese beendet, verhält sich der Befehl wie gewohnt. +\begin{Code} +In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben. + +\begingroup +\renewcommand*\emph[1]{\textbf{#1}}% +In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben. +\endgroup + +In diesem Text wird ein bestimmtes \emph{Wort} hervorgehoben. +\end{Code} +\end{Example} +Eine Gruppierung kann entweder mit \Macro*{begingroup} und \Macro*{endgroup} +oder einfach mit einem geschweiften Klammerpaar \texttt{\{\dots\}} definiert +werden. + + + +\section{Bezeichnungen der Gliederungsebenen durch \Package{hyperref}} +\index{Querverweise} +% +\ChangedAt{v2.02!\TaT: Bezeichnungen der Gliederungsebenen} +% +Das Paket \Package{hyperref} stellt für Querverweise unter anderem den Befehl +\Macro{autoref}\Parameter{label} zur Verfügung. Mit diesem wird~-- im +Gegensatz zur Verwendung von \Macro{ref}~-- bei einer Referenz nicht nur die +Nummerierung selber sondern auch das entsprechende Element wie Kapitel oder +Abbildung vorangestellt. Bei der Benennung des referenzierten Elementes wird +sequentiell geprüft, ob das Makro \Macro*{}\PName{Element}\PValue{autorefname} +oder \Macro*{}\PName{Element}\PValue{name} existiert. Soll die Bezeichnung +eines Elementes geändert werden, muss man den entsprechende Bezeichner anpassen. +% +\begin{Example} +Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden. +\begin{Code} +\renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel} +\renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt} +\renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt} +\end{Code} +\end{Example} + + + +\section{URL-Umbrüche im Literaturverzeichnis mit \Package{biblatex}} +\index{Literaturverzeichnis} +% +\ChangedAt{v2.02!\TaT: URL-Umbrüche im Literaturverzeichnis} +% +Wird das Paket \Package{biblatex} verwendet, kann es unter Umständen dazu +kommen, das eine URL nicht vernünftig umbrochen werden. Ist dies der Fall, +können die Zählern \Counter{biburlnumpenalty}, \Counter{biburlucpenalty} und +\Counter{biburllcpenalty} erhöht werden. Die möglichen Werte liegen zwischen 0 +und 10000, wobei es bei höheren Werte der Zähler zu mehr URL-Umbrüchen an +Ziffern (\Counter{biburlnumpenalty}), Groß- (\Counter{biburlucpenalty}) und +Kleinbuchstaben (\Counter{biburllcpenalty}) kommt. Genaueres hierzu ist der +Dokumentation des \Package{biblatex}"=Paketes zu entnehmen. + + + +\section{Zeilenabstände in Überschriften} +\label{sec:tips:headings} +Mit dem Paket \Package{setspace} kann der Zeilenabstand beziehungsweise der +Durchschuss innerhalb des Dokumentes geändert werden. Sollte dieser erhöht +worden sein, können die Abstände bei mehrzeiligen Überschriften als zu groß +erscheinen. Um dies zu korrigieren kann mit dem Befehl \Macro{addtokomafont}% +\PParameter{disposition}\PParameter{\Macro{setstretch}\PParameter{1}} der +Zeilenabstand aller Überschriften auf einzeilig zurückgeschaltet werden. Soll +dies nur für eine bestimmte Gliederungsebene erfolgen, so ist +\PParameter{disposition} durch das entsprechende Schriftelement zu ersetzen. + + + +\section{Warnung wegen zu geringer Höhe der Kopf-/Fußzeile} +\label{sec:tips:headline} +Wird das Paket \Package{setspace} verwendet, kann es passieren, dass nach der +Änderung des Zeilenabstandes \emph{innerhalb} des Dokumentes eine oder beide +der folgenden Warnungen erscheinen: +% +\begin{quoting} +\begin{Code} +scrlayer-scrpage Warning: \headheight to low. +scrlayer-scrpage Warning: \footheight to low. +\end{Code} +\end{quoting} +% +Dies liegt an dem durch den vergrößerten Zeilenabstand erhöhten Bedarf für die +Kopf- und Fußzeile, die Höhen können in diesem Fall direkt mit der Verwendung +von \Macro{recalctypearea} angepasst werden. Allerdings ändert das den +Satzspiegel im Dokument, was eine andere und durchaus berechtigte Warnung von +\Package{typearea} zur Folge hat. Falls die Änderung des Durchschusses wirklich +nötig ist, sollte dies in der Präambel des Dokumentes einmalig passieren. Dann +entfallen auch die Warnungen. + + + +\section{Einrückung von Tabellenspalten verhindern}% +\manualhyperdef'{sec:tips:table} +\index{Tabellen} +% +Normalerweise wird in einer Tabelle vor \emph{und} nach jeder Spalte durch +\hologo{LaTeXe} etwas horizontaler Raum mit \Macro{hskip}\Macro{tabcolsep} +eingefügt.% +\footnote{% + Der Abstand zweier Spalten beträgt folglich \PValue{2}\Macro{tabcolsep}.% +} +Dies geschieht auch \emph{vor} der ersten und \emph{nach} der letzten Spalte. +Diese optische Einrückung an den äußeren Rändern kann unter Umständen stören, +insbesondere bei Tabellen, die willentlich~-- beispielsweise mit den Paketen +\Package{tabularx}, \Package{tabulary} oder auch \Package{tabu}~-- über die +komplette Seitenbreite aufgespannt werden. + +Das Paket \Package{tabularborder} versucht, dieses Problem automatisiert zu +beheben, ist jedoch nicht zu allen \hologo{LaTeXe}-Paketen für den Tabellensatz +kompatibel, unter anderem auch nicht zu den drei zuvor genannten. Allerdings +lässt sich dieses Problem manuell durch den Anwender lösen. + +Bei der Deklaration einer Tabelle kann mit~\PValue{@}\PParameter{\dots} vor und +nach dem Spaltentyp angegeben werden, was anstelle von \Length{tabcolsep} vor +beziehungsweise nach der eigentlichen Spalte eingeführt werden soll. Dies kann +für das Entfernen der Einrückungen genutzt werden, indem~\PValue{@\{\}} an den +entsprechenden Stellen bei der Angabe der Spaltentypen vor der ersten und nach +der letzten Tabellenspalte verwendet wird. +% +\begin{Example} +Eine Tabelle mit zwei Spalten, wobei bei einer die Breite automatisch berechnet +wird, soll über die komplette Textbreite gesetzt werden. Dabei soll der Rand +vor der ersten und nach der letzten entfernt werden. +\begin{Code}[escapechar=§] +\begin{tabularx}{\textwidth}{@{}lX@{}} +§\dots§ & §\dots§ \tabularnewline +§\dots§ +\end{tabularx} +\end{Code} +\end{Example} + + + + +\section{Unterdrückung des Einzuges eines Absatzes} +\index{Absatzauszeichnung} +Verwendet man~-- wie es aus typographischer Sicht zumeist sinnvoll ist~-- +Einzüge und keine vertikalen Abstände zur Auszeichnung von Absätzen im Dokument +(\Option{parskip}[false]), kann es vorkommen, dass ein bestimmter Absatz~-- +beispielsweise der nach einer gewissen Umgebung folgende~-- ungewollt +eingerückt ist. Dies kann sehr einfach behoben werden, indem direkt zu Beginn +des Absatzes das Makro \Macro{noindent} verwendet wird. Möchte man das für +bestimmte Umgebungen oder Befehle automatisiert gestalten, ist das Paket +\Package{noindentafter} zu empfehlen. + + + +\section{Unterbinden des Zurücksetzens von Fußnoten}% +\label{sec:tips:counter} +\index{Fußnoten} +Oft taucht die Frage auf, wie man auch über Kapitel fortlaufende Fußnoten +erhalten kann. Dies ist sehr einfach mit dem Paket \Package{chngcntr} möglich. +Nach dem Laden des Paketes, kann das Rücksetzen des Zählers nach einem Kapitel +mit \Macro{counterwithout*}\PParameter{footnote}\PParameter{chapter} +deaktiviert werden. Auch andere \hologo{LaTeX}-Zähler~-- wie beispielsweise der +bereits vorgestellte \Counter{symbolheadings}~-- lassen sich mit diesem +Paket manipulieren. + + + +\section{Setzen von Einheiten mit \Package{siunitx}} +\label{sec:tips:siunitx} +\index{Einheiten} +Wenn \Package{siunitx} in einem deutschsprachigen Dokument genutzt soll +werden, muss zumindest mit \Macro{sisetup}\PParameter{locale = DE} die +richtige Lokalisierung angegeben werden. Sollen auch die Zahlen richtig +formatiert sein, müssen weitere Einstellungen vorgenommen werden. Die meiner +Meinung nach besten sind die folgenden. +% +\begin{quoting} +\begin{Code} +\sisetup{% + locale = DE,% + input-decimal-markers={,},input-ignore={.},% + group-separator={\,},group-minimum-digits=3% +} +\end{Code} +\end{quoting} +% +Das Komma kommt als Dezimaltrennzeichen zum Einsatz. Des Weiteren werden Punkte +innerhalb der Zahlen ignoriert und eine Gruppierung von jeweils drei Ziffern +vorgenommen. Alternativ zu diesem Paket kann übrigens auch \Package{units} +verwendet werden. + + + +\section{Warnung beim Erzeugen des Inhaltsverzeichnisses} +\index{Inhaltsverzeichnis}% +% +\ChangedAt{v2.02!\TaT: Warnung beim Erzeugen des Inhaltsverzeichnisses} +% +Erstellt man ein Inhaltsverzeichnis für ein Dokument mit einer dreistelligen +Seitenanzahl, so erhält man bei der Verwendung von \Macro{tableofcontents} +viele Warnungen mit der Meldung: +% +\begin{quoting} +\begin{Code} +overfull \hbox +\end{Code} +\end{quoting} +% +Das liegt daran, dass die Seitenzahl in einer Box mit der Breite +\Macro*{@pnumwidth} gesetzt wird. Der hierfür standardmäßig verwendete Wert +von~\PValue{1.55em} ist in diesem Fall zu klein. Dieser kann folgendermaßen +geändert werden: +% +\begin{quoting} +\begin{Code} +\makeatletter +\renewcommand*\@pnumwidth{1.7em} +\makeatother +\end{Code} +\end{quoting} +% +Dabei sollte der eingesetzte Wert nicht zu groß ausfallen. + + + +\section{Leer- und Satzzeichen nach \NoCaseChange{\hologo{LaTeX}}-Befehlen}% +\label{sec:tips:xspace} +\index{Typographie} +% +Normalerweise \enquote{schluckt} \hologo{LaTeX} die Leerzeichen nach einem +Makro ohne Argumente. Dies ist jedoch nicht immer~-- genau genommen in den +seltensten Fällen~-- erwünscht. Für dieses Handbuch ist beispielsweise der +Befehl \Macro*{TUD} definiert worden, um \enquote{\TUD{}} nicht ständig +ausschreiben zu müssen. Um sich bei der Verwendung des Befehl innerhalb eines +Satzes für den Erhalt eines folgenden Leerzeichens das Setzen der geschweiften +Klammer nach dem Befehl zu sparen (\Macro*{TUD}\PParameter{}), kann +\Macro{xspace} aus dem Paket \Package{xspace} genutzt werden. Damit wird +ein folgendes Leerzeichen erhalten. Der Befehl \Macro*{TUD} ist wie folgt +definiert: +% +\begin{quoting} +\begin{Code} +\newcommand*\TUD{Technische Universit\"at Dresden\xspace} +\end{Code} +\end{quoting} +% +Das Paket \Package{xpunctuate} erweitert die Funktionalität nochmals. Damit +können auch Abkürzungen so definiert werden, dass ein versehentlicher Punkt +ignoriert wird: +% +\begin{quoting} +\begin{Code} +\newcommand*\zB{z.\,B\xperiod} +\end{Code} +\end{quoting} + + + +\section{Das Setzen von Auslassungspunkten} +\manualhyperdef{sec:tips:dots} +\index{Typographie} +% +\ChangedAt{v2.02!\TaT: Das Setzen von Auslassungspunkten} +% +Auslassungspunkte werden mit \hologo{LaTeXe} mit den Befehlen \Macro{dots} oder +\Macro{textellipsis} gesetzt. Für gewöhnlich folgt diesen \emph{immer} ein +Leerzeichen, was nicht in jedem Fall gewollt ist. Das Paket \Package{ellipsis} +schafft hier Abhilfe, wobei die Option \Option*{xspace} führt dazu, dass nach +der Verwendung eines der beiden Befehle automatisch ein Leerzeichen gesetzt +wird. +% +\begin{quoting} +\begin{Code} +\usepackage[xspace]{ellipsis} +\end{Code} +\end{quoting} +% +Im Ursprung ist es für das Setzen englischsprachiger Texte gedacht, wo zwischen +Auslassungspunkten und Satzzeichen ein Leerzeichen gesetzt wird. Im Deutschen +ist dies anders: +% +\begin{quoting} +\enquote{% + Um eine Auslassung in einem Text zu kennzeichnen, werden drei Punkte gesetzt. + Vor und nach den Auslassungspunkten wird jeweils ein Wortzwischenraum + gesetzt, wenn sie für ein selbständiges Wort oder mehrere Wörter stehen. Bei + Auslassung eines Wortteils werden sie unmittelbar an den Rest des Wortes + angeschlossen. Am Satzende wird kein zusätzlicher Schlusspunkt gesetzt. + Satzzeichen werden ohne Zwischenraum angeschlossen.% +}~[Duden, 23. Aufl.] +\end{quoting} +% +Um dieses Verhalten zu erreichen, sollte noch Folgendes in der Präambel +eingefügt werden: +% +\begin{quoting} +\begin{Code} +\let\ellipsispunctuation\relax +\newcommand*\qdots{[\dots{}]\xspace} +\end{Code} +\end{quoting} +% +Der Befehl \Macro*{qdots} wird definiert, um Auslassungspunkte in eckigen +Klammern ([\dots{}]) setzen zu können, wie sie für das Kürzen von wörtlichen +Zitaten häufig verwendet werden. + + + +\section{Finden von unbekannten \NoCaseChange{\hologo{LaTeX}}-Symbolen} +\index{Symbole} +Für \hologo{LaTeX} stehen jede Menge Symbole zur Verfügung, die allerdings +nicht immer einfach zu finden sind. In der Zusammenfassung +\hrfn{http://mirrors.ctan.org/info/symbols/comprehensive/symbols-a4.pdf}% +{\File{symbols-a4.pdf}} werden viele Symbole aus mehreren Paketen aufgeführt. +Allerdings ist das Auffinden eines speziellen Symbols nicht sehr komfortabel. +Alternativ kann \hrfn{http://detexify.kirelabs.org/classify.html}{Detexify} +verwendet werden. Auf dieser Web-Seite wird das gesuchte Symbol einfach +gezeichnet, die dazu ähnlichsten werden zurückgegeben. + + + +\section{Warnung bei der Verwendung von \Package{multicol}} +% +\ChangedAt{v2.02!\TaT: Warnung bei der Verwendung von \Package{multicol}} +% +Das einzig momentan bekannte Problem der \TUDScript"=Klasse tritt in Verbindung +mit dem Paket \Package{multicol}|?| auf. Dieses greift~-- ähnlich zu dem für +die Seitenstile verwendeten Paket \Package{scrlayer-scrpage}~-- sehr stark in +die Ausgaberoutine von \hologo{LaTeXe} ein. Bei Spaltenumbrüchen innerhalb der +\Environment{multicols}"=Umgebung kommt es sehr häufig zu folgender Warnung: +% +\begin{quoting} +\begin{Code} +Underfull \hbox (badness 10000) has occurred while \output is active +\end{Code} +\end{quoting} +% +Wird \Package{scrlayer-scrpage} nicht verwendet, unterbleibt die Warnung. Beide +Pakete haben in der Kombination miteinander augenscheinlich ein Problem. Die +Autoren der beiden Pakete wurden über dieses Problem informiert, signalisierten +jedoch verständlicherweise wenig Bereitschaft, der Ursache auf den Grund zu +gehen. Leider kann für die \TUDScript-Klassen auf \Package{scrlayer-scrpage} +nicht verzichtet werden, es ist von essentieller Bedeutung für die Seitenstile +im \CD der \TnUD. Am Ausgabeergebnis ändert sich nichts. Im Zweifelsfall werden +jedoch eine Menge bedeutungsloser Warnungen generiert. + +Es gibt allerdings eine Möglichkeit, diese zu unterdrücken. Hierfür wird auf +die Funktionalitäten von \Package{etoolbox} zurückgegriffen, was ohnehin von +den \TUDScript-Klassen geladen wird. In der Präambel kann folgender Quelltext +verwendet werden: +% +\begin{quoting} +\begin{Code} +\makeatletter +\apptocmd{\prepare@multicols}{\hbadness10000}{}{} +\makeatother +\end{Code} +\end{quoting} +% +Dadurch werden die durch \hologo{LaTeXe} generierten Warnungen innerhalb der +\Environment{multicols}"=Umgebung deaktiviert. Es muss dabei beachtet werden, +dass dies für alle Boxen~-- und nicht nur jene beim Spaltenumbruch~-- gilt. + + + +\section{Fehlermeldung: ! No room for a new \textbackslash write} +% +\ChangedAt{v2.02!\TaT: Fehler beim Schreiben von Hilfsdateien} +% +Für das Erstellen und Schreiben externer Hilfsdateien steht \hologo{LaTeXe} nur +eine begrenzte Anzahl sogenannter Ausgabe-Streams zur Verfügung. Allein für +jedes zu erstellende Verzeichnis reserviert \hologo{LaTeX} selbst jeweils einen +neuen Stream. Auch einige bereits zuvor in diesem Handbuch vorgestellte, sehr +hilfreiche Pakete~-- wie beispielsweise \Package{hyperref}, \Package{biblatex}, +\Package{glossaries}, \Package{todonotes} oder auch \Package{filecontents}~-- +benötigen eigene Hilfsdateien und öffnen für das Erstellen dieser einen +Ausgabe-Stream oder mehr. + +Lädt der Anwender mehrere, in eine Hilfsdatei schreibende Pakete, kann es zur +der Fehlermeldung +% +\begin{quoting} +\begin{Code} +! No room for a new \write . +\end{Code} +\end{quoting} +% +kommen. Abhilfe schafft hier das Paket \Package{scrwfile}(koma-script), welches +einige Änderungen am \hologo{LaTeX}-Kern vornimmt, um die Anzahl der benötigten +Hilfsdateien für das Schreiben aller Verzeichnisse zu reduzieren. Es muss +einfach in der Präambel eingebunden werden. Sollten mit diesem Paket +unerwarteter Weise Probleme auftreten, ist dessen Anleitung in \scrguide zu +finden. Eine weitere Möglichkeit, das beschriebene Problem der geringen Menge +an Ausgabe-Streams zu umgehen, stellt das Paket \Package{morewrites} dar. +Allerdings ist dessen Verwendung nicht in allen Fällen von Erfolg gekrönt. + + + +\section{Änderung des Papierformates} +\index{Papierformat} +Es kann vorkommen, dass man innerhalb eines Dokumentes kurzzeitig das +Papierformat ändern möchte, um beispielsweise eine Konstruktionsskizze in der +digitalen PDF"~Datei einzubinden. Dabei ist es sowohl möglich, lediglich die +Ausrichtung mit \Option{paper}[landscape] in ein Querformat zu ändern, als +auch die Größe des Papierformates selber. +% +\begin{Example} +Ein Dokument im A4"~Format soll kurzzeitig auf ein A3"=Querformat geändert +werden. Das folgende Minimalbeispiel zeigt, wie das Papierformat mit den +Mitteln von \KOMAScript{} geändert werden kann. +\begin{Code} +\documentclass[paper=a4,pagesize]{tudscrreprt} +\usepackage{selinput} +\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} +\usepackage{blindtext} + +\begin{document} +\chapter{Überschrift Eins} +\Blindtext + +\cleardoublepage +\storeareas\PotraitArea% speichert den aktuellen Satzspiegel +\KOMAoptions{paper=A3,paper=landscape,DIV=current} +\chapter{Überschrift Zwei} +\Blindtext + +\cleardoublepage +\PotraitArea% lädt den gespeicherten Satzspiegel +\chapter{Überschrift Drei} +\Blindtext +\end{document} +\end{Code} +\end{Example} + + + +\section{Platzierung von Gleitobjekten} +\manualhyperdef'{sec:tips:floats}{}% +\index{Gleitobjekte|?}% +% +Mit den beiden Paketen \Package{flafter} sowie \Package{placeins} gibt es die +Möglichkeit, den für \hologo{LaTeX} zur Verfügung stehenden Raum für die +Platzierung von Gleitobjekten einzuschränken. Darüber hinaus kann diese auch +durch die im Folgenden aufgezählten Befehle beeinflusst werden. Die Makros +lassen sich mit \Macro*{renewcommand*}\Parameter{Befehl}\Parameter{Wert} sehr +einfach ändern. + +\begin{Declaration}{\Macro{floatpagefraction}}[0\floatpagefraction] +\begin{Declaration}{\Macro{dblfloatpagefraction}}[0\dblfloatpagefraction] +\printdeclarationlist*% +% +Der Wert gibt die relative Größe eines Gleitobjektes bezogen auf die Texthöhe +(\Length*{textheight}) an, die mindestens erreicht sein muss, damit für dieses +gegebenenfalls vor dem Beginn eines neuen Kapitels eine separate Seite erzeugt +wird. Dabei wird einspaltiges (\Macro{floatpagefraction}) und zweispaltiges +(\Macro{dblfloatpagefraction}) Layout unterschieden. Der Wert für beide +Befehle sollte im Bereich von~\PValue{0.5\dots 0.8} liegen. +\end{Declaration} +\end{Declaration} + +\begin{Declaration}{\Macro{topfraction}}[0\topfraction] +\begin{Declaration}{\Macro{dbltopfraction}}[0\dbltopfraction] +\printdeclarationlist*% +% +Diese Werte geben den maximalen Seitenanteil für Gleitobjekte, die am oberen +Seitenrand platziert werden, für einspaltiges und zweispaltiges Layout an. Er +sollte im Bereich von \PValue{0.5\dots 0.8} liegen und größer als +\Macro{floatpagefraction} beziehungsweise \Macro{dblfloatpagefraction} sein. +\end{Declaration} +\end{Declaration} + +\begin{Declaration}{\Macro{bottomfraction}}[0\bottomfraction] +\printdeclarationlist*% +% +Dies ist der maximale Seitenanteil für Gleitobjekte, die am unteren Seitenrand +platziert werden. Er sollte zwischen~\PValue{0.2} und~\PValue{0.5} betragen. +\end{Declaration} + +\begin{Declaration}{\Macro{textfraction}}[0\textfraction] +\printdeclarationlist*% +% +Dies ist der Mindestanteil an Text, der auf einer Seite mit Gleitobjekten +vorhanden sein muss, wenn diese nicht auf einer eigenen Seite ausgegeben +werden. Er sollte im Bereich von~\PValue{0.1\dots 0.3} liegen. +\end{Declaration} + +\begin{Declaration}{\Counter{totalnumber}}[\arabic{totalnumber}] +\begin{Declaration}{\Counter{topnumber}}[\arabic{topnumber}] +\begin{Declaration}{\Counter{dbltopnumber}}[\arabic{dbltopnumber}] +\begin{Declaration}{\Counter{bottomnumber}}[\arabic{bottomnumber}] +\printdeclarationlist*% +% +Außerdem gibt es noch Zähler, welche die maximale Anzahl an Gleitobjekten pro +Seite insgesamt (\Counter{totalnumber}), am oberen (\Counter{topnumber}) und +am unteren Rand der Seite (\Counter{bottomnumber}) sowie im Zweispaltensatz +beide Spalten überspannend (\Counter{dbltopnumber}) festlegen. Die Werte +können mit \Macro*{setcounter}\Parameter{Zähler}\Parameter{Wert} geändert +werden. +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} + +\begin{Declaration}{\Length{@fptop}} +\begin{Declaration}{\Length{@fpsep}} +\begin{Declaration}{\Length{@fpbot}} +\begin{Declaration}{\Length{@dblfptop}} +\begin{Declaration}{\Length{@dblfpsep}} +\begin{Declaration}{\Length{@dblfpbot}} +\printdeclarationlist*% +% +Sind vor Beginn eines Kapitels noch Gleitobjekte verblieben, so werden diese +durch \hologo{LaTeX} normalerweise auf einer separaten vertikal zentriert Seite +ausgegeben. Dabei bestimmen diese Längen jeweils den Abstand vor dem ersten +Gleitobjekt zum oberen Seitenrand (\Length*{@fptop}, \Length*{@dblfptop}), +zwischen den einzelnen Objekten (\Length*{@fpsep}, \Length*{@dblfpsep}) sowie +zum unteren Seitenrand (\Length*{@fpbot}, \Length*{@dblfpbot}). Soll dies nicht +geschehen, können die Längen durch den Anwender geändert werden. +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +\end{Declaration} +% +\begin{Example} +Alle Gleitobjekte auf einer dafür speziell gesetzten Seite sollen direkt zu +Beginn dieser ausgegeben werden. In der Dokumentpräambel kann man dafür +schreiben: +\begin{Code} +\makeatletter +\setlength{\@fptop}{0pt} +\setlength{\@dblfptop}{0pt} % twocolumn +\makeatother +\end{Code} +\end{Example} + + + +\section{Automatisiertes Einbinden von \Application{Inkscape}-Grafiken } +\manualhyperdef'{sec:tips:svg}% +\index{Grafiken}% +% +In \hrfn{http://www.ctan.org/pkg/svg-inkscape}{\Package{svg-inkscape}} wird das +automatisierte Einbinden von \Application{Inkscape}-Grafiken in ein +\hologo{LaTeX}"=Dokument erläutert. Hier wird ein daraus abgeleiteter und +verbesserter Ansatz vorgestellt. Nutzer von unixartigen Systemen können +alternativ auch das Paket \Package{svg} nutzen, welches den folgend erläuterten +Befehl \Macro{includesvg} definiert. + +Die mit \Application{Inkscape} erstellte Grafik soll automatisch kompiliert und +eingebunden werden. Dies soll allerdings nicht bei jeder Kompilierung des +Hauptdokumentes erfolgen, sondern lediglich, wenn die originale Bilddatei +geändert beziehungsweise aktualisiert wurde. Hierfür wird \Package{filemod} +verwendet. Die automatisierte Übersetzung einer Grafik im SVG"~Format in eine +PDF"~Datei und die daran anschließende Einbindung dieser in das Dokument ist +mit der Definition von \Macro{includesvg}\OParameter{Breite}\Parameter{Datei} +in der Präambel des Dokumentes wie folgt möglich: +% +\manualhyperdef{macros:includesvg}% +\begin{quoting} +\begin{Code}[escapechar=§] +\usepackage{filemod} +\newcommand*{\includesvg}[2][\textwidth]{% + \def\svgwidth{#1} + \filemodCmp{#2.pdf}{#2.svg}{}{% + \immediate\write18{% + inkscape -z -D --file=#2.svg --export-pdf=#2.pdf --export-latex + }% + }% + \input{#2.pdf_tex}% +} +\end{Code} +\end{quoting} +% +Mit \Macro*{immediate}\Macro*{write18}\Parameter{externer Aufruf} wird das +zwischenzeitliche Ausführen eines externen Programms beim Durchlauf von +\hologo{pdfLaTeX}~-- in diesem Fall von \File{inkscape.exe}~-- möglich. Damit +der externe Aufruf auch tatsächlich durchgeführt wird, muss \hologo{pdfLaTeX} +mit der Option \Path{-{}-shell-escape} ausgeführt werden. Außerdem muss der +Pfad zur Datei \File{inkscape.exe} dem System bekannt sein.% +\footnote{% + Genauer gesagt, muss der Pfad zu \File{inkscape.exe} in der + \texttt{PATH}-Variable des Betriebssystems enthalten sein. +} +Bei der Verwendung des Befehls \Macro{includesvg} \emph{muss} der Dateiname +ohne Endung angegeben werden. Die einzubindende SVG"~Datei sollte sich hierbei +im gleichen Pfad wie das Hauptdokument befinden. Ist die SVG"~Datei in einem +Unterordner relativ zum Pfad des Hauptdokumentes, kann dieser einfach mit +\Macro{includesvg}\PParameter{\PName{Ordner}/\PName{Datei}} im Argument +angegeben werden. + + + +\section{Probleme bei der Verwendung von \Package{auto-pst-pdf}} +\manualhyperdef'{sec:tips:auto-pst-pdf} +% +\ChangedAt{v2.02!\TaT: Hinweise zu \Package{auto-pst-pdf}} +% +Bei der Verwendung von \hologo{pdfLaTeX} liest das Paket \Package{auto-pst-pdf} +die Präambel ein und erstellt anschließend über den PostScript"=Pfad +\Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf} eine PDF-Datei, +welche lediglich alle in den vorhandenen \Environment{pspicture}"=Umgebungen +erstellten Grafiken enthält. +Das Paket \Package{ifpdf} +stellt das Makro \Macro{ifpdf} bereit, mit welchem unterschieden werden kann, +ob \hologo{pdfLaTeX} als Dokumentprozessor verwendet wird. Abhängig davon +können unterschiedliche Quelltexte ausgeführt werden, was genutzt wird, um die +nachfolgend beschriebenen Probleme zu beheben. +% +\begin{quoting} +\begin{Code} +\usepackage{ifpdf} +\end{Code} +\end{quoting} + +\minisec{Die gleichzeitige Verwendung von \Package{floatrow}} +Das Paket \Package{floatrow} stellt Befehle bereit, mit denen die Beschriftung +von Gleitobjekten sehr bequem gesetzt werden können. Diese Setzen ihren Inhalt +erst in einer Box, um deren Breite zu ermitteln. Anschließend wird dieser +ausgegeben. In Kombination mit \Package{auto-pst-pdf} führt das zu einer +doppelten Erstellung der gewünschten Abbildung. Um dies zu vermeiden, müssen +die durch \Package{floatrow} bereitgestellten Befehle \enquote{unschädlich} +gemacht werden. Die fraglichen Befehlen akzeptieren allerdings bis zu drei +optionale Argumente \emph{vor} den beiden obligatorischen, was für die +Benutzerschnittstelle für die (Re-)Definition durch \hologo{LaTeXe} +normalerweise nicht vorgesehen ist. Deshalb wird das Paket \Package{xparse} +geladen, mit welchem dies möglich wird. Genaueres dazu ist der dazugehörigen +Paketdokumentation zu entnehmen. Verwendet man folgenden Quelltextauszug in der +Dokumentpräambel, kann man die \Package{floatrow}-Befehle auch in Verbindung +mit der \Environment{pspicture}"=Umgebung wie gewohnt verwenden. +% +\begin{quoting} +\begin{Code} +\usepackage{floatrow} +\usepackage{xparse} +\ifpdf\else + \RenewDocumentCommand{\fcapside}{ooo+m+m}{#4#5} + \RenewDocumentCommand{\ttabbox}{ooo+m+m}{#4#5} + \RenewDocumentCommand{\ffigbox}{ooo+m+m}{#4#5} +\fi +\end{Code} +\end{quoting} + +\minisec{Die parallele Nutzung von \Package{tikz} und \Package{todonotes}} +Mit dem Paket \Package{tikz}(pgf)~-- und auch allen anderen Paketen die +selbiges nutzen wie beispielsweise \Package{todonotes}~-- gibt es in Verbindung +mit \Package{auto-pst-pdf} ebenfalls Probleme. Dies lässt sich lösen, indem man +diese Pakete lediglich in der Präambel einbindet, wenn \hologo{pdfLaTeX} aktiv +ist. +% +\begin{quoting}[rightmargin=0pt] +\begin{Code} +\ifpdf + \usepackage{tikz}%\dots gegebenenfalls weitere auf tikz basierende Pakete +\fi +\end{Code} +\end{quoting} |