diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tudscr/source/doc/tudscr-hints.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/tudscr/source/doc/tudscr-hints.tex')
-rw-r--r-- | macros/latex/contrib/tudscr/source/doc/tudscr-hints.tex | 940 |
1 files changed, 940 insertions, 0 deletions
diff --git a/macros/latex/contrib/tudscr/source/doc/tudscr-hints.tex b/macros/latex/contrib/tudscr/source/doc/tudscr-hints.tex new file mode 100644 index 0000000000..87ea1b6056 --- /dev/null +++ b/macros/latex/contrib/tudscr/source/doc/tudscr-hints.tex @@ -0,0 +1,940 @@ +\setchapterpreamble{\tudhyperdef'{sec:tips}} +\chapter{Praktische Tipps \& Tricks} +\newcommand*\TaT{\hyperref[sec:tips]{Tipps \& Tricks}:\xspace} +\section{\hologo{LaTeX}-Editoren} +\tudhyperdef*{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. Unabhängig von der Auswahl des Editors, 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{\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 den \TUDScript-Klassen nutzen, so werden +dafür spezielle Layout"~Dateien benötigt, um die Klassendateien verwenden zu +können. Diese sind zusammen mit einem \Application{\hologo{LyX}}"~Dokument als +Archiv +\hrfn{\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.1\textbackslash{}% + Resources\textbackslash{}layouts% +} +beziehungsweise bei unixoiden Betriebssystemen \Path{/usr/share/lyx/layouts}. +Anschließend muss LyX über den Menüpunkt \emph{Werkzeuge} neu konfiguriert +werden. + + + +\section{Literaturverwaltung in \hologo{LaTeX}} +\ChangedAt{v2.02:\TaT Literaturverwaltung} +% +Die simpelste Variante, eine \hologo{LaTeX}"=Literaturdatenbank zu verwalten, +ist dies mit dem Editor manuell zu erledigen. Wesentlich komfortabler ist es +jedoch, die Referenzverwaltung mit einer darauf spezialisierten Anwendung zu +bewerkstelligen. Dafür gibt es zwei sehr gute Programme: +% +\begin{itemize} +\item \Application{Citavi} +\item \Application{JabRef} +\end{itemize} +% +Das Programm \Application{Citavi} ermöglicht den Import von bibliografischen +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 +\File*{.bib}"~Dateien 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} +\tudhyperdef*{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 bei 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. + +In jedem Fall wird ein Sprachpaket wie beispielsweise \Package{babel} oder +\Package{polyglossia} benötigt, wobei letzteres für den Einsatz mit +\Engine{LuaLaTeX} oder \Engine{XeLaTeX} konzipiert ist. Bei der Verwendung +einer dieser beiden Unicode"=Textsatzsysteme~-- in Verbindung mit einem der zwei +genannten Sprachpakete werden~-- die Trennmuster automatisch aktiviert. + +Für \Engine{pdfLaTeX} lassen sich diese mit dem Paket \Package{hyphsubst} +aktivieren. Damit auch Wörter mit Umlauten richtig getrennt werden, ist +zusätzlich die Verwendung des Paketes \Package{fontenc} mit beispielsweise der +\PValue{T1}"~Schriftkodierung erforderlich. Der Beginn einer Dokumentpräambel +könnte folgendermaßen aussehen: +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\documentclass[ngerman,§\PName{Klassenoptionen}§]§\Parameter{Dokumentklasse}§ +\usepackage[T1]{fontenc} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} +\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 \TUDCDs 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\medskipamount\noindent +\begingroup +\newcommand*\listhyphens[2]{#1 & \PValue{#2} \tabularnewline}% +\begin{tabular}{@{}ll} + \textbf{Beschreibung} & \textbf{Befehl} \tabularnewline + \listhyphens{ausschließliche Trennstellen}{\textbackslash-} + \listhyphens{zusätzliche Trennstellen}{"'-} + \listhyphens{Umbruch ohne Trennstrich}{"'"'} + \listhyphens{Bindestrich ohne Umbruch}{"'\textasciitilde} + \listhyphens{Bindestrich, der weitere Trennstellen erlaubt}{"'=} +\end{tabular} +\endgroup + + + +\section{Lokale Änderungen von Befehlen und Einstellungen} +\index{Befehlsdeklaration!Geltungsbereich}% +\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 oder auch +geneigten 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 genau ein \emph{Wort} hervorgehoben. + +\begingroup + \renewcommand*{\emph}[1]{\textbf{#1}}% + In diesem Text wird genau ein \emph{Wort} hervorgehoben. +\endgroup + +In diesem Text wird genau ein \emph{Wort} hervorgehoben. +\end{Code} +\end{Example} +Eine Gruppierung kann entweder mit \Macro*{begingroup} und \Macro*{endgroup} +oder einfach mit einem geschweiften Klammerpaar \PParameter{\dots} definiert +werden. + + + +\section{Bezeichnung der Gliederungsebenen durch \Package{hyperref}} +\tudhyperdef*{sec:tips:references} +\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}](\Package{hyperref})'none' 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. Zur 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 der entsprechende Bezeichner angepasst werden. +% +\begin{Example} +Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden. +\begin{Code} +\renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel} +\renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt} +\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 wird. Ist dies der Fall, +können die Zähler \Counter{biburlnumpenalty}(\Package{biblatex})'none', +\Counter{biburlucpenalty}(\Package{biblatex})'none' und +\Counter{biburllcpenalty}(\Package{biblatex})'none' erhöht werden. Das +Manipulieren eines Zähler kann mit \Macro*{setcounter}[\Parameter{Zähler}] oder +lokal mit \Macro*{defcounter}[\Parameter{Zähler}] aus dem Paket +\Package{etoolbox} erfolgen. Die möglichen Werte liegen zwischen 0~und~10\,000, +wobei es bei höheren Zählerwerten zu mehr URL"~Umbrüchen an +Ziffern~(\Counter{biburlnumpenalty}(\Package{biblatex})'none'), +Groß-~(\Counter{biburlucpenalty}(\Package{biblatex})'none') und +Kleinbuchstaben~(\Counter{biburllcpenalty}(\Package{biblatex})'none') kommt. +Genaueres in der Dokumentation zu \Package{biblatex}. + + + +\section{Zeilenabstände in Überschriften} +\tudhyperdef*{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}](\Package{setspace})'none'% + }% +](\Package{koma-script})'none' +der Zeilenabstand aller Überschriften auf einzeilig zurückgeschaltet werden. +Soll dies nur für eine bestimmte Gliederungsebene erfolgen, so ist der +Parameter \PValue{disposition} durch das dazugehörige Schriftelement zu +ersetzen. + + + +\section{Warnung wegen zu geringer Höhe der Kopf-/Fußzeile} +\tudhyperdef*{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}(\Package{typearea})'none' 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}% +\tudhyperdef*{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}\Length{tabcolsep} +eingefügt.% +\footnote{% + Der Abstand zweier Spalten beträgt folglich \PValue{2}\Length{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 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 an den entsprechenden +Stellen~\PValue{@\PParameter{}} 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}% +% +Werden zur Absatzauszeichnung im Dokument~-- wie es aus typografischer Sicht +zumeist sinnvoll ist~-- Einzüge und keine vertikalen Abstände verwendet +(\KOMAScript-Option \Option*{parskip=false}(\Package{koma-script})'none'), kann +es vorkommen, dass ein ganz bestimmter Absatz~-- beispielsweise der nach einer +zuvor genutzten Umgebung folgende~-- ungewollt eingerückt ist. Dies kann sehr +einfach manuell behoben werden, indem direkt zu Beginn des Absatzes das Makro +\Macro{noindent} aufgerufen wird. Soll das Einrücken von Absätzen nach ganz +bestimmten Umgebungen oder Befehlen automatisiert unterbunden werden, ist das +Paket \Package{noindentafter} zu empfehlen. + + + +\section{Unterbinden des Zurücksetzens von Fußnoten}% +\tudhyperdef*{sec:tips:counter}% +\index{Fußnoten}% +% +Mit \Macro{counterwithin} und \Macro{counterwithout} können +\hologo{LaTeX}"=Zähler so umdefiniert werden, dass sie bei der Änderung eines +anderen Zählers zurückgesetzt werden oder nicht. Mit der Angabe von +\Macro*{counterwithout*}[% + \PParameter{footnote}\PParameter{chapter}% +]'none' wird das Zurücksetzen des Fußnotenzählers durch neue Kapitel +deaktiviert, womit sich über Kapitel fortlaufende Fußnoten +realisieren lassen. +%Mehr ist der Dokumentation von \Package*{chngcntr} zu finden. + + + +\section{Warnung beim Erzeugen des Inhaltsverzeichnisses} +\index{Inhaltsverzeichnis}% +\ChangedAt{v2.02:\TaT Warnung beim Erzeugen des Inhaltsverzeichnisses} +\ChangedAt{v2.02:\TaT Hinweis auf Rand bei mehrzeiligen Einträgen ergänzt} +% +Wird mit \Macro{tableofcontents}(\Package{koma-script})'none' das +Inhaltsverzeichnis für ein Dokument mit einer dreistelligen Seitenanzahl +erstellt, so erscheinen unter Umständen viele Warnungen mit der Meldung: +% +\begin{quoting} +\begin{Code} +overfull \hbox +\end{Code} +\end{quoting} +% +Die Seitenzahlen im Verzeichnis werden in einer Box mit einer festen Breite +von~\PValue{1.55em} gesetzt, welche im Makro \Macro*{@pnumwidth} hinterlegt ist +und im Zweifel vergrößert werden sollte. Dabei ist auch der rechte Rand für +mehrzeilige Einträge im Verzeichnis \Macro*{@tocrmarg} zu vergrößern, welcher +mit~\PValue{2.55em} voreingestellt ist. Die Werte sollten nur minimal geändert +werden: +% +\begin{quoting} +\begin{Code} +\makeatletter +\renewcommand*{\@pnumwidth}{1.7em}\renewcommand*{\@tocrmarg}{2.7em} +\makeatother +\end{Code} +\end{quoting} + + + +\section{Leer- und Satzzeichen nach \hologo{LaTeX}-Befehlen}% +\tudhyperdef*{sec:tips:xspace}% +\index{Typografie}% +% +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}(\Package{xspace})'none' 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{Finden von unbekannten \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. Alternativ kann +\hrfn{http://detexify.kirelabs.org/classify.html}{Detexify} verwendet werden. +Auf dieser Webseite wird das gesuchte Symbol einfach gezeichnet, die dazu +ähnlichsten werden zurückgegeben. + + + +\section{Das Setzen von Auslassungspunkten} +\tudhyperdef*{sec:tips:dots}% +\index{Typografie}% +\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 (\POParameter{\dots}) setzen zu können, wie sie für das Kürzen von +wörtlichen Zitaten häufig verwendet werden. + + + +\section{Lokalisierung für das Setzen von Einheiten mit \Package{siunitx}} +\tudhyperdef*{sec:tips:siunitx}% +\index{Einheiten}% +% +Wenn \Package{siunitx} in einem deutschsprachigen Dokument genutzt soll +werden, muss zumindest die richtige Lokalisierung mit +\Macro{sisetup}[\PParameter{locale = DE}](\Package{siunitx})'none' 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{Fehlermeldung beim Laden eines Paketes mit Optionen} +\ChangedAt{v2.05:\TaT Fehler beim Laden eines Paketes mit Optionen} +% +Es kann unter Umständen passieren, dass beim Laden eines Paketes mit bestimmten +Optionen via \Macro*{usepackage}[\OParameter{Paketoptionen}\Parameter{Paket}] +folgender Fehler ausgegeben wird: +% +\begin{quoting} +\begin{Code}[escapechar=§] +! LaTeX Error: Option clash for package <§\dots§>. +\end{Code} +\end{quoting} +% +Mit großer Sicherheit wird das angeforderte Paket bereits durch die verwendete +Dokumentklasse oder ein anderes Paket geladen. Normalerweise genügt es, die +gewünschten Optionen durch +\Macro{PassOptionsToPackage}[\Parameter{Paketoptionen}\Parameter{Paket}] +bereits vor dem Laden der Dokumentklasse mit \Macro*{documentclass} an das +betreffende Paket weiterzureichen. + + + +\section{Probleme bei der Verwendung von \Package{auto-pst-pdf}} +\tudhyperdef*{sec:tips:auto-pst-pdf} +\ChangedAt{v2.02:\TaT Hinweise zum Paket \Package{auto-pst-pdf}} +% +Bei der Verwendung von \Engine{pdfLaTeX} liest das Paket \Package{auto-pst-pdf} +die Präambel ein und erstellt anschließend über den PostScript"=Pfad +\Path{latex\,>\,dvips\,>\,ps2pdf} eine PDF"~Datei, welche lediglich alle in den +vorhandenen \Environment{pspicture}(\Package{pstricks})'none'"=Umgebungen +erstellten Grafiken enthält. Das Paket \Package{ifpdf} stellt das Makro +\Macro{ifpdf}(\Package{ifpdf})'none' bereit, mit welchem unterschieden werden +kann, ob \Engine{pdfLaTeX} als Textsatzsystem 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 und diese anschließend +auszugeben. 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. Mit folgendem Quelltextauszug lassen sich die +\Package{floatrow}"=Befehle zusammen mit der +\Environment{pspicture}(\Package{pstricks})'none'"=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}~-- und auch allen anderen Paketen die +selbiges nutzen wie beispielsweise \Package{todonotes}~-- gibt es in Verbindung +mit \Package{auto-pst-pdf} ebenfalls Probleme. Lösen lässt sich dieses Dilemma, +indem die fraglichen Pakete lediglich geladen werden, wenn \Engine{pdfLaTeX} +aktiv ist. +% +\begin{quoting}[rightmargin=0pt] +\begin{Code} +\ifpdf + \usepackage{tikz}%\dots gegebenenfalls weitere auf tikz basierende Pakete +\fi +\end{Code} +\end{quoting} + + + +\section{Automatisiertes Einbinden von \Application{Inkscape}-Grafiken } +\tudhyperdef*{sec:tips:svg}% +\ChangedAt{v2.05:\TaT \Macro*{includesvg} aus Paket \Package{svg} verwenden} +\index{Grafiken}% +% +Das Einbinden von \Application{Inkscape}"=Grafiken in \hologo{LaTeX}"=Dokumente +wird auf \CTAN[pkg/svg-inkscape]{\Package*{svg-inkscape}'none'} erläutert. Ein +daraus abgeleiteter und verbesserter Ansatz wird durch das Paket \Package{svg} +bereitgestellt. Mit diesem Paket ist ein \textbf{automatisierter} Export der +\Application{Inkscape}"=Grafiken direkt bei der Kompilierung mit \Engine{LaTeX} +und dem anschließenden Einbinden in das Dokument möglich. Hierfür wird der +Befehl \Macro*{includesvg}[\OParameter{Parameter}\Parameter{SVG-Datei}] durch +das Paket definiert. + +Dabei erfolgt der externe Aufruf von \Application{Inkscape} über Kommandozeile +beziehungsweise Terminal mit \File{inkscape.exe}. Damit dieser auch tatsächlich +durchgeführt wird, ist die Ausführung einer \Engine*{LaTeX}"~Engine mit der +Option \Path{-{}-shell-escape} beziehungsweise \Path{-{}-enable-write18} +zwingend notwendig. Außerdem muss der Pfad zur Datei \File{inkscape.exe} dem +System bekannt sein.% +\footnote{% + Der Pfad zu \File{inkscape.exe} in der Umgebungsvariable \Path{PATH} des + Betriebssystems enthalten sein.% +} +Für weiterführende Informationen sei auf die Dokumentation des Pakets +\Package{svg} verwiesen. + + + +\section{Änderung des Papierformates} +\index{Papierformat}% +% +Es kann vorkommen, dass innerhalb eines Dokumentes kurzzeitig das Papierformat +geändert werden soll, um beispielsweise eine Konstruktionsskizze in der +digitalen PDF"~Datei einzubinden. Dabei ist es mit der \KOMAScript-Option +\Option{paper=\PSet}(\Package{typearea})'none' sowohl möglich, lediglich die +Ausrichtung 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 dies mit \KOMAScript-Mitteln +über die Optionen \Option*{paper=landscape}(\Package{typearea})'none' und +\Option*{paper=A3}(\Package{typearea})'none' geändert werden kann. +\begin{Code} +\documentclass[paper=a4,pagesize]{tudscrreprt} +\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{Beschnittzugabe und Schnittmarken} +\tudhyperdef*{sec:tips:crop}% +\index{Beschnittzugabe|!}% +\index{Schnittmarken|!}% +\ChangedAt{v2.05:\TaT Beschnittzugabe und Schnittmarken} +% +Beim Plotten von Postern oder anderen farbigen Druckerzeugnissen besteht +oftmals das Problem, dass ein randloses Drucken nur schwer realisierbar ist. +Deshalb wird zu oftmals damit beholfen, dass der Druck des fertigen Dokumentes +auf einem größeren Papierbogen erfolgt und anschließend auf das gewünschte +Zielformat zugeschnitten wird, womit das Problem des nicht bedruckbaren Randes +entfällt. Dies kann über zwei verschiedene Wege realisiert werden. + +Der einfachste Weg ist die Verwendung des Paketes \Package{crop}. Mit diesem +kann das Dokument ganz normal im gewünschten Zielformat erstellt werden. Vor +dem Druck wird dieses Paket geladen und einfach das gewünschte Format des +Papierbogens angegeben. +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\RequirePackage{fix-cm} +\documentclass[% + paper=a1, + fontsize=36pt +]{tudscrposter} +\usepackage[T1]{fontenc} +§\dots§ +\usepackage{graphicx} +\usepackage[b1,center,cam]{crop} +\begin{document} +§\dots§ +\end{document} +\end{Code} +\end{quoting} +% +Alternativ dazu kann für die \TUDScript-Klassen auf die Funktionalität des +Paketes \Package{geometry} zurückgegriffen werden. Dieses Paket stellt den +Befehl \Macro{geometry}(\Package{geometry})'none' bereit, in dessen Argument mit +\Key{\Macro{geometry}(\Package{geometry})}{paper=\PName{Papierformat}}|default| +das Papierformat festgelegt werden kann. Wird zusätzlich noch der Parameter +\Key{\Macro{geometry}(\Package{geometry})}{layout=\PName{Zielformat}}|default| +angegeben, so wird damit das gewünschte Zielformat definiert. Dabei sollte mit +\Key{\Macro{geometry}(\Package{geometry})}% +{layoutoffset=\PName{Längenwert}}|default| +dieser Bereich gegebenenfalls etwas eingerückt werden. Die Angabe von +\Key{\Macro{geometry}(\Package{geometry})}{showcrop=\PBoolean}|default| +generiert außerdem noch visuelle Schnittmarken. +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\RequirePackage{fix-cm} +\documentclass[% + paper=a1, + fontsize=36pt +]{tudscrposter} +\usepackage[T1]{fontenc} +§\dots§ +\geometry{paper=b1,layout=a1,layoutoffset=1in,showcrop} +\begin{document} +§\dots§ +\end{document} +\end{Code} +\end{quoting} +% +Für genauere Erläuterungen sowie weitere Einstellmöglichkeiten sei auf die +Dokumentation von \Package{crop} beziehungsweise \Package{geometry} verwiesen. +Mit der \TUDScript-Option \Option{bleedmargin}(\Class{tudscrposter}) können +zusätzlich ie farbigen Bereiche der \PageStyle{tudheadings}"~Seitenstile +erweitert werden, um ein \enquote{Zuschneiden in die Farbe} zu ermöglichen. + + + + + +\section{Vermeiden des Skalierens einer PDF-Datei beim Druck} +\ChangedAt{v2.04:\TaT Vermeiden des Skalierens einer PDF"~Datei beim Druck} +% +Beim Erzeugen eines Druckauftrages einer PDF"~Datei kann es unter Umständen +dazu führen, dass diese durch den verwendeten PDF"~Betrachter unnötigerweise +vorher skaliert wird und dabei die Seitenränder vergrößert werden. Um dieses +Verhalten für Dokumente, die mit \Engine{pdfLaTeX} erzeugt werden, zu +unterdrücken, gibt es zwei Möglichkeiten: +% +\begin{enumerate} +\item Wenn im Dokument ohnehin das Paket \Package{hyperref} verwendet wird, + ist der simple Aufruf von + \Macro{hypersetup}[% + \PParameter{pdfprintscaling=None}% + ](\Package{hyperref})'none' + ausreichend. +\item Der Low"~Level"~Befehl + \Macro*{pdfcatalog}[\PParameter{/ViewerPreferences<{}</PrintScaling/None>{}>}] + besitzt das gleiche Verhalten und lässt sich auch ohne \Package{hyperref} + nutzen. +\end{enumerate} +% +Weitere Informationen sind unter \url{http://www.komascript.de/node/1897} +zu finden. + + + +\section{Platzierung von Gleitobjekten} +\tudhyperdef*{sec:tips:floats}% +\index{Gleitobjekte!Platzierung|?}% +% +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{Makro}\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 +eingestellte 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\PValue{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\PValue{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 Fließtext, der auf einer Seite mit Gleitobjekten +vorhanden sein muss, wenn diese nicht auf einer separaten Seite ausgegeben +werden. Er sollte in einem Bereich von~\PValue{0.1}\dots\PValue{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}) sowie am oberen (\Counter*{topnumber}) +und am unteren Seitenrand (\Counter*{bottomnumber}) sowie im zweispaltigen +Satz 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 lässt sich für dieses +Unterfangen Folgendes nutzen: +\begin{Code} +\makeatletter +\setlength{\@fptop}{0pt} +\setlength{\@dblfptop}{0pt}% twocolumn +\makeatother +\end{Code} +\end{Example} + + + +\section{Warnung bei der Schriftgrößenwahl} +\tudhyperdef*{sec:tips:fontsize}% +\ChangedAt{v2.04:\TaT Warnung bei der Schriftgrößenwahl} +% +Die im Dokument verwendete Schriftgröße kann bei den \KOMAScript-Klassen sehr +einfach über die Option~\Option{fontsize}(\Package{koma-script})'none' +eingestellt werden, wobei diese immer als Klassenoption angegeben werden +sollte. Bei relativ großen und kleinen Schriftgrößen kann dabei eine Warnung in +der Gestalt +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +LaTeX Font Warning: Font shape `§\dots§' in size <xx> not available +\end{Code} +\end{quoting} +% +auftreten. Dies daran, dass zum Zeitpunkt des Ladens einer Klasse immer nach +den Computer-Modern"=Standardschriften gesucht wird, unabhängig davon, ob im +Nachhinein ein anderes Schriftpaket geladen wird. Diese sind de"~facto nicht +in alle Größen skalierbar. Um die Warnungen zu beseitigen, sollte das Paket +\Package{fix-cm} mit \Macro*{RequirePackage} \emph{vor} der Dokumentklasse +geladen werden: +% +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\RequirePackage{fix-cm} +\documentclass§\OParameter{Klassenoptionen}\Parameter{Klasse}§ +\usepackage[T1]{fontenc} +§\dots§ +\begin{document} +§\dots§ +\end{document} +\end{Code} +\end{quoting} +% +Damit werden die Warnungen behoben. + + + +\section{Fehlermeldung: ! No room for a new \textbackslash write} +\tudhyperdef*{sec:tips: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}"=Kernel 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 im \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. + + + |