%META:TOPICINFO{author="HerbertVoss" date="1454446605" format="1.1" version="1.9"}% %META:TOPICPARENT{name="WebHome"}% ====== Gliederung, Inhalts-, Abbildungs- und andere Verzeichnisse ====== === Inhaltsverzeichnis ===
\renewcommand\@pnumwidth{2em}% statt `2em' evtl. groesserer Wert
Eventuell muß man dann auch den Wert im Makro \@tocrmarg anpassen. Da man ein internes Makro ändert, ist diese Anweisung in eine .sty-Datei oder mit \makeatletter ... \makeatother geklammert in die Dokumentpräambel zu schreiben.
Längere Abschnittsnummern können eine andere Ursache dieses Fehlers sein. Hier muß man in den Definitionen der Makros \l@
\newcommand\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
definiert ist. Die Länge 1.5em gibt an, wie breit der Einschub vom linken Rand ist, die Länge 2.3em, wie breit der Platz für die Abschnittsnummer sein soll. Will man diese vergrößern, kann man dies beispielsweise mit |-1|part |1|section |3|subsubsection|5|subparagraph| |0 |chapter|2|subsection|4|paragraph | | | Bei der Klasse ,article` existiert der Befehl \chapter nicht, und \part erhält die Nummer 0 zugeordnet. Die Gliederungsebene, bis zu der numeriert wird, legt der Zähler ,secnumdepth` fest. Die Standardklassen setzen diesen Zähler auf den Wert 2, also bis \subsection. Um auch für tieferliegende Ebenen eine Numerierung zu erhalten, muß der Zähler entsprechend erhöht werden. Mit \setcounter{secnumdepth}{4} werden die Überschriften der Ebenen bis \paragraph mit einer Nummer versehen, auch wenn dies nur in den allerwenigsten Fällen sinnvoll ist. Um die Numerierung von Überschriften im Dokument vollständig zu verhindern, muß man den Zähler ,secnumdepth` auf den Wert -2 gesetzt werden. Ein Inhaltsverzeichnis wird dennoch erzeugt, da dies durch den Zähler ,tocdepth` gesteuert wird. ==== Wie erreiche ich, daß Abschnittsüberschriften ein anderes Aussehen bekommen? ==== Die LaTeX-Anweisungen \section, \subsection etc. werden in den Klassendateien wie z.B. ,,article.cls`` definiert. (In LaTeX 2.09 wurden sie dagegen in den Hilfsdateien wie z.B. ,,art10.sty`` definiert.) Die Definitionen verwenden dabei die allgemeinere Anweisung \@startsection, in deren sechstem Argument man Formatieranweisungen angeben kann. Zur Änderung kopiert man sich die Definition aus ,,article.cls`` bzw. die entsprechende Klassendatei in eine .sty-Datei, ändert \newcommand (bzw. \def) zu \renewcommand und fügt die Anweisung \centering zu den bestehenden Formatieranweisungen hinzu:
\renewcommand{\section}{%
\@startsection {section}{1}{\z@}%
{-3.5ex plus -1ex minus -.2ex}%
{2.3ex plus.2ex}%
{\normalfont\Large\bfseries \centering}}
Man vergesse nicht, diese Definition mit \makeatletter ... \makeatother zu klammern oder in eine .sty-Datei zu schreiben!
Mit dem Paket ,titlesec` können Abschnittsüberschriften noch einfacher angepaßt werden. Beispielsweise erhält man mit
\usepackage{titlesec}
\titleformat{\section}%
{\normalfont\Large\bfseries \filcenter}%
{\thesection}%
{1em}%
{}%
eine Zentrierung der \section-Überschriften. Hierbei wurde \filcenter, eine spezielle Anweisung des Pakets verwendet, jedoch kann auch \centering verwendet werden. Die Anweisung \titleformat hat ein optionales Argument, mit dem man beispielsweise wie bei \paragraph eingebettete oder in den Rand ragende Überschriften erhalten kann. Abstände zwischen Überschrift und Text werden mit der Anweisung \titlespacing vorgegeben.
Ebenso erleichtert das Paket ,sectsty` die Änderung der Abschnittsüberschriften in den LaTeX-Standardklassen.
Bei Verwendung einer aktuellen Version der -Klassen lassen sich beispielweise die Schriftart, die Ausrichtung sowie weiteres ebenfalls leicht anpassen. | **titlesec:** | [[http://mirror.ctan.org/macros/latex/contrib/titlesec|macros/latex/contrib/titlesec]] | | **sectsty:** | [[http://mirror.ctan.org/macros/latex/contrib/sectsty|macros/latex/contrib/sectsty]] | | **KOMA-Script:** | [[http://mirror.ctan.org/macros/latex/contrib/koma-script/|macros/latex/contrib/koma-script/]] |
==== Warum werden die durch \subsubsection angegebenen Abschnitte nicht mehr ins Inhaltsverzeichnis aufgenommen? ====
Ebenso wie der Zähler ,secnumdepth` die Gliederungsebene festlegt, bis zu der Abschnitte numeriert werden, legt der Zähler ,tocdepth` die Gliederungsebene fest, bis zu der Abschnitte in das Inhaltsverzeichnis aufgenommen werden. Beispielsweise werden nach der Anweisung \setcounter{tocdepth}{4} alle Abschnitte einschließlich der \paragraph-Ebene in das Inhaltsverzeichnis aufgenommen (siehe dazu [[#5|hier]]). Diese Anweisung muß in der Präambel, auf jeden Fall vor \tableofcontents verwendet werden.
==== Wie kann ich verhindern, daß z.B. \subsection usw. im Anhang in das Inhaltsverzeichnis aufgenommen werden? ====
Der Zähler ,tocdepth` wird nur beim \tableofcontents ausgewertet, also nur beim Satz und nicht bei der Erstellung der .toc-Datei. Daher hat eine Änderung von ,tocdepth` nach dem Befehl \appendix keine Wirkung. Stattdessen muß man dafür sorgen, daß die Änderung von ,tocdepth` mit \addtocontents in die .toc-Datei gelangt:
\documentclass{article}
%
\newcommand{\settocdepth}[1]{%
\addtocontents{toc}{\protect\setcounter{tocdepth}{#1}}}
%
\begin{document}
\tableofcontents
\section{Abschnitt}
\subsection{Unterabschnitt}
blabla
%
\appendix
\settocdepth{1}
%
\section{Abschnitt}
\subsection{Unterabschnitt}
\subsubsection{Unterunterabschnitt}
blabla
\end{document}
==== Wie kann ich erreichen, daß Literatur-, Abbildungs-, Tabellen- und sonstige Verzeichnisse in das Inhaltsverzeichnis mit aufgenommen werden? ====
Diese Verzeichnisse werden normalerweise nicht in das Inhaltsverzeichnis aufgenommen. Wenn dies dennoch notwendig ist oder erwünscht wird, kann man es am einfachsten mit den Dokumentklassen des KOMA-Script-Paketes erreichen, da diese Klassen die hierfür gedachten Optionen ,liststotoc`, ,bibtotoc` bzw. ,bibtotocnumbered` und ,idxtotoc` kennen.
Bei Verwendung anderer Klassen kann eventuell das Paket ,tocbibind` weiterhelfen. Ansonsten könnte man als letzte Lösung unmittelbar vor die Anweisungen \bibliography, \listoftables, \listoffigures und \printindex die Anweisungen
\clearpage
\addcontentsline{toc}{section}{\refname}
schreiben. Statt \refname ist evtl. \bibname bzw. \listtablename, \listfigurename oder \indexname einzusetzen; ,section` kann bei Verwendung der Dokumentklassen ,report` und ,book` durch ,chapter` ersetzt werden. Außerdem muß bei Verwendung der Klassenoption ,twoside`, die bei ,book` voreingestellt ist, \clearpage durch \cleardoublepage ersetzt werden.
| **KOMA-Script:** | [[http://mirror.ctan.org/macros/latex/contrib/koma-script/|macros/latex/contrib/koma-script/]] | | **tocbibind:** | [[http://mirror.ctan.org/macros/latex/contrib/tocbibind/|macros/latex/contrib/tocbibind/]] |
==== Wie kann ich die Formatierung der automatisch erzeugten Inhalts-, Abbildungs- und Tabellenverzeichnisse ändern? ====
Mit dem Paket ,titletoc`, das zusammen mit dem Paket ,titlesec` verteilt und dokumentiert wird, kann man sehr frei die Formatierung der Inhaltsverzeichniseinträge ändern. Daneben gibt es noch das Paket ,tocloft`, mit dem man ebenso die Formatierung des Inhalts-, Abbildungs- und Tabellenverzeichnisses anpassen kann. | **titletoc/titlesec:** | [[http://mirror.ctan.org/macros/latex/contrib/titlesec/|macros/latex/contrib/titlesec/]] | | **tocloft:** | [[http://mirror.ctan.org/macros/latex/contrib/tocloft/|macros/latex/contrib/tocloft/]] |
==== Wie kann ich mit \ref nicht nur die Abschnittsnummer, sondern auch den Text einer Abschnittsüberschrift erhalten? ====
Das Paket ,titleref` stellt hierzu die Anweisung \titleref, der analog zu \ref und \pageref den Text einer Abschnittsüberschrift oder Abbildungsunterschrift liefert. Hierzu muß die Anweisung \label //nach// den Abschnittsanweisungen und \caption erfolgen und darf //nicht// im Argument angegeben werden.
Im ,hyperref`-Bündel existiert mit ,nameref` ein weiteres Paket, das diese Funktionalität anbietet. Dieses definiert die Anweisung \nameref. Insbesondere im Zusammenhang mit der Erzeugung von pdf-Dateien sollte diese Lösung bevorzugt werden. | **titleref:** | [[http://mirror.ctan.org/macros/latex/contrib/misc/titleref.sty|macros/latex/contrib/misc/titleref.sty]] | | **nameref:** | [[http://mirror.ctan.org/macros/latex/contrib/hyperref/|macros/latex/contrib/hyperref/]] |
==== Wie kann ich in einem Stichwortverzeichnis oder einem Literaturverzeichnis noch Text zwischen die Überschrift und die Verzeichnisliste bekommen? ====
Hierfür muß man die Umgebung ,thebibliography` bzw. ,theindex` umdefinieren. Man kopiert sich dazu die Definition dieser Umgebungen aus der Klassendatei in eine eigene Paketdatei, ersetzt die Anweisung \newenvironment durch \renewenvironment. Anschließend fügt man zwischen der Überschrift, die mit \section oder \chapter erzeugt wird und der Listen-Umgebung die Anweisungen
\renewenvironment{\thebibliography}[1]{%
\section*{\refname
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
% vvvv--- neu
\thebibliographyhook
\renewcommand{\thebibliographyhook}{}% Hook ruecksetzen
% ^^^^--- neu
\list{\@biblabel{\arabic{enumiv}}}%
...
wie hier für ,thebibliography` gezeigt, ein.
Für das Stichwortverzeichnis werden diese Zeilen, diesmal mit \theindexhook, in die entsprechend zu ändernde Definition der Umgebung ,theindex` eingefügt. Bei dieser muß man darauf achten, die beiden Zeilen //in// das optionale Argument der Anweisung \twocolumn einzufügen, wenn der Text über beide Spalten gehen soll.
Schließlich werden diese ,,Haken`` mit der neuen Definition
\newcommand{\thebibliographyhook}{} % Standard-Wert: kein Text
\newcommand{\theindexhook}{} % Standard-Wert: kein Text
auf einen Wert gesetzt, der das bisherige Verhalten nicht verändert. Will man nun zusätzlichen Text einfügen, so wird der jeweilige Hook direkt vor dem entsprechenden Verzeichnis per \renewcommand auf den gewünschten Text gesetzt.
Von Version 2.6c an bieten die Dokumentklassen des KOMA-Script-Paketes einen noch einfacheren Weg mit den Anweisungen ,\setbibpreamble` und ,\setindexpreamble`. | **KOMA-Script:** | [[http://mirror.ctan.org/macros/latex/contrib/koma-script/|macros/latex/contrib/koma-script/]] |
==== Wie kann ich das Stichwortverzeichnis einspaltig setzen? ====
Die Zweispaltigkeit des Stichwortverzeichnisses ist in vielen Klassen (article, KOMA-Klassen u. a.) fest codiert. Eine Möglichkeit ist, die theindex-Umgebung der verwendeten Klasse zu ändern. Eine andere Möglichkeit ist, \twocolumn vorübergehend wirkungslos zu machen: Schreibe dort, wo Du \printindex schreiben würdest:
{\renewcommand\twocolumn[1][]{#1}\printindex}
==== Wie kann ich mehrere Verzeichnisse in der Art des Stichwortverzeichnisses, z.B. ein zusätzliches Autorenverzeichnis, anlegen? ====
Zu diesem Zweck geeignet sind die LaTeX-Pakete ,camel` und ,multind`. | **camel:** | [[http://mirror.ctan.org/macros/latex/contrib/camel/|macros/latex/contrib/camel/]] | | **multind:** | [[http://mirror.ctan.org/macros/latex209/contrib/misc/multind.sty|macros/latex209/contrib/misc/multind.sty]] |
==== In meinem LaTeX-Dokument fehlen die Einträge im Inhalts-, Tabellen- und Abbildungsverzeichnis, obwohl die Dateien .toc, .lot bzw. .lof vorhanden sind. Ich benutze das Paket ,fancybox`. ====
Diese Besonderheit verschwindet mit einer aktuelleren Version des Paketes ,fanycbox`, mindestens Version 1.3. Um sicherzustellen, daß man eine einigermaßen aktuelle Version benützt, kann man beim Laden des Pakets das Datum angeben:
\usepackage{fancybox}[2000/09/19]
| **fancybox:** | [[http://mirror.ctan.org/macros/latex/contrib/fancybox/|macros/latex/contrib/fancybox/]] |
==== Wie mache ich alle Labels von Querverweisen sichtbar und wie erhalte ich eine Liste dieser Labels? ====
Mit dem Paket ,showkeys` aus dem ,tools`-Bündel werden alle Querverweise im Dokument als Marginalien gesetzt.
Eine Liste der Labels eines Dokuments erhält man mit Hilfsdokument ,,lablst.tex``, das zu Beginn den Namen des Dokuments, die Dokumentklasse als auch die durch Kommata getrennte Liste aller verwendeten Pakete erfrägt. Dieses Hilfsdokument liegt jeder LaTeX-Verteilung bei. | **lablst.tex:** | [[http://mirror.ctan.org/macros/latex/base/|macros/latex/base/]] | | **showkeys:** | [[http://mirror.ctan.org/macros/latex/required/tools/|macros/latex/required/tools/]] |
==== Wie kann ich erreichen, dass Referenzen in einem LaTeX-Dokument, das ich nach PDF umwandle, als Hyperlinks angezeigt werden, und kann man auch Bookmarks (Lesezeichen) automatisch entsprechend dem Inhaltsverzeichnis erstellen lassen? ====
All dies und vieles mehr wird automatisch von dem Paket ,hyperref` erledigt. Neben der automatischen Erzeugung von //Hyperlinks// und //Bookmarks// stellt das Paket zusätzliche Befehle zur Verfügung, mit denen Benutzer ihren Dokumenten weitere Hypertext-Elemente hinzufügen können. Auch das Setzen bestimmter PDF-Dokumenteigenschaften (Autorinformationen, Seitenübergänge) und die ,,Steuerung`` des ,acroread` aus einem Dokument heraus sind mit dem Paket möglich. | **hyperref:** | [[http://mirror.ctan.org/macros/latex/contrib/hyperref/|macros/latex/contrib/hyperref/]] | | **hyperref ( //beta// -Version):** | http://www.tug.org/applications/hyperref/ |
==== Um PDF zu erzeugen, binde ich das Paket ,hyperref` ein, aber beim Betrachten mit ,acroread` werden keine Hyperlinks und auch keine Bookmarks angezeigt. Seltsamerweise zeigen ,xdvi` bzw. ,yap` bei Betrachten der dvi-Datei korrekte Hyperlinks an. ====
Da es sehr viele Methoden gibt, LaTeX-Dokumente in PDF zu wandeln, wobei die dafür verwendeten Programme jeweils eine andere Notation verwenden, wie Links angegeben werden, ist ,hyperref` auf die Verwendung von ,Treibern` angeweisen, die für jede Methode der PDF-Erstellung festlegen, wie Links spezifiziert werden.
Wird kein Treiber explizit angegeben (als Paketoption; die Dokumentation erklärt, wie das geht), so muss ,hyperref` raten, welcher Treiber zu verwenden ist. Wird pdfTeX zur Übersetzung verwendet, so wird automatisch der passende Treiber verwendet; bei Benutzung von LaTeX ist der Standardtreiber jedoch fast immer ,hypertex`, was beispielsweise von ,xdvi` und ,yap` verstanden wird, jedoch zur Umwandlung in PDF ungeeignet ist.
Wenn dieser (falsche) Treiber verwendet wird, so ist in der Protokolldatei die Zeile
*hyperref using default driver hypertex*
zu finden.
In diesem Fall muss das Paket ''%%breakurl%%'' geladen werden:
\usepackage{hyperref}
\usepackage{breakurl}
==== Wieso werden, wenn ich unter Verwendung des Pakets ,hyperref` auf dem Umweg über PostScript pdf-Dateien erzeuge (mit ,ps2pdf` oder ,Adobe Acrobat Distiller`), plötzlich alle Texte, die als Links dienen, insbesondere die Abschnittsüberschriften im Inhaltsverzeichnis nicht mehr umbrochen? ====
Das Paket ,hyperref` kennt die Option =breaklinks%%'', die festlegt, ob Links umbrochen werden dürfen. Diese Option ist bei Verwendung von pdfLaTeX automatisch aktiv, bei ''%%dvips%%'' oder ''%%ps2pdf%%'' aber nicht, da der im letzteren Fall verwendete pdfmark-Mechanismus einen Umbruch von Links nicht zulässt. In diesem Fall muss dann das Paket ''%%breakurl%%'' //nach// ''%%hyperref%%'' geladen werden:
\usepackage{hyperref}
\usepackage{breakurl}
==== Wie erstelle ich ein Glossar? ====
Um ein Wortverzeichnis mit Erklärungen oder im weiteren Sinne ein Verzeichnis von benutzten Begriffen mit Erklärungen, wie beispielsweise von Formelzeichen oder von Abkürzungen, zu erstellen, bietet LaTeX mit den Anweisungen \makeglossary und \glossary die Möglichkeit, Einträge vorzunehmen. Jedoch verbleibt es beim Autor, diese Einträge zu sortieren und zu formatieren.
Um die Einträge zu sortieren wird meist ,makeindex`, ,xindy` oder BibTeX, eventuell ergänzt um ein Zusatzprogramm, verwendet. Zur Formatierung und zur leichteren oder differenzierteren Eingabe verwendet man ein entsprechendes LaTeX-Paket.
Das Paket ,nomencl` ist entstanden, um Verzeichnisse von Formelzeichen anzulegen, kann aber darüberhinaus noch mehr. Datenbanken mit Abkürzungen etc. verwaltet das Paket ,gloss` mit Hilfe von BibTeX. Das Tool ,glosstex` erstellt automatisch ein Glossar, ein Abkürzungsverzeichnis oder ganz allgemein sortierte Listen. Es kombiniert die Funktionalität von ,acronym`, ,nomencl` und ,glotex` und kann ebenfalls Datenbanken verwalten. Mit dem Paket ,makeglos` kann in ein Dokument ein Glossar eingebunden werden, das beispielsweise mit ,makeindex` oder ,xindy` erstellt wurde. Dieses Paket ist weniger umfangreich als ,glosstex`. | **nomencl:** | [[http://mirror.ctan.org/macros/latex/contrib/nomencl|macros/latex/contrib/nomencl]] | | **gloss:** | [[http://mirror.ctan.org/macros/latex/contrib/gloss|macros/latex/contrib/gloss]] | | **glosstex:** | [[http://mirror.ctan.org/support/glosstex/|support/glosstex/]] | | **acronym:** | [[http://mirror.ctan.org/macros/latex/contrib/acronym|macros/latex/contrib/acronym]] | | **glotex:** | [[http://mirror.ctan.org/indexing/glo+idxtex/|indexing/glo+idxtex/]] | | **makeglos:** | [[http://mirror.ctan.org/macros/latex/contrib/makeglos|macros/latex/contrib/makeglos]] |
-- Main.HerbertVoss - 17 Mar 2009