--- DE-TeX-FAQ Beginn Teil 7 ---



   Fragen und Antworten (FAQ) ber das Textsatzsystem TeX und DANTE,
             Deutschsprachige Anwendervereinigung TeX e.V.


            Bernd Raichle, Rolf Niepraschk und Thomas Hafner


                     Version 72 vom September 2003

------------------------------------------------------------------------


7 TeX, LaTeX, Makros etc. (III)


7.1 Gliederung, Inhalts-, Abbildungs- und andere Verzeichnisse


7.1.1 Beim Formatieren von \tableofcontents erhalte ich sehr viele
Meldungen mit ``overfull \hbox''. Woran liegt das?

Die Seitennummer wird in eine Box der Breite \@pnumwidth gesetzt. Der in
den Standardklassen hierfr verwendete Wert von 1.55em kann in manchen
Situationen (Seitennummer>=1000, breiterer Font) zu klein sein. Abhilfe:

  \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
Dokumentprambel zu schreiben.
Lngere Abschnittsnummern knnen eine andere Ursache dieses Fehlers
sein. Hier mu man in den Definitionen der Makros \l@<type>, wie z.B.
\l@section, im Aufruf des Makros \@dottedtocline das dritte Argument
entsprechend vergrern. Nheres hierzu im Buch ``Der LaTeX-Begleiter''
(siehe Frage 2.4.1).

7.1.2 Bei einem Artikel mit sehr vielen Abschnitten und Unterabschnitten
``klebt'' die berschrift im `toc' direkt hinter der Abschnittsnummer.
Kann man den Platz verbreitern?

In der Datei der verwendeten Klasse wird das Aussehen einer Zeile in den
Verzeichnissen durch ein Makro namens `\l@<typ>' festgelegt. Fr eine
\subsection ist dies das Makro \l@subsection, das z.B. in
``article.cls'' durch

  \newcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}

definiert ist. Die Lnge 1.5em gibt an, wie breit der Einschub vom
linken Rand ist, die Lnge 2.3em, wie breit der Platz fr die
Abschnittsnummer sein soll. Will man diese vergrern, kann man dies
beispielsweise mit

  \renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{3.3em}}

in einer .sty-Datei oder mit \makeatletter ... \makeatother geklammert
in der Dokumentprambel. Mehr dazu findet man im Buch ``Der
LaTeX-Begleiter'' (siehe Frage 2.4.1).
Sehr viel einfacher geht dies mit dem Paket `tocloft', das einem die
volle Kontrolle ber die Formatierung der einzelnen Verzeichnisse
erlaubt. Es bentigt noch das Paket `stdclsdv'.

tocloft:   CTAN: macros/latex/contrib/tocloft
stdclsdv:  CTAN: macros/latex/contrib/stdclsdv
 


7.1.3 Warum werden die durch \subsubsection angegebenen Abschnitte nicht
mehr numeriert?

Jeder Gliederungsebene ist in LaTeX eine Nummer zugeordnet:

-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
erhlt die Nummer 0 zugeordnet.
Die Gliederungsebene, bis zu der numeriert wird, legt der Zhler
`secnumdepth' fest. Die Standardklassen setzen diesen Zhler auf den
Wert 2, also bis \subsection. Um auch fr tieferliegende Ebenen eine
Numerierung zu erhalten, mu der Zhler entsprechend erhht werden. Mit
\setcounter{secnumdepth}{4} werden die berschriften der Ebenen bis
\paragraph mit einer Nummer versehen, auch wenn dies nur in den
allerwenigsten Fllen sinnvoll ist.
Um die Numerierung von berschriften im Dokument vollstndig zu
verhindern, mu man den Zhler `secnumdepth' auf den Wert -2 gesetzt
werden. Ein Inhaltsverzeichnis wird dennoch erzeugt, da dies durch den
Zhler `tocdepth' gesteuert wird.

7.1.4 Wie erreiche ich, da Abschnittsberschriften 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 fgt 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' knnen Abschnittsberschriften noch einfacher
angepat werden. Beispielsweise erhlt 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.
Abstnde zwischen berschrift und Text werden mit der Anweisung
\titlespacing vorgegeben.
Ebenso erleichtert das Paket `sectsty' die nderung der
Abschnittsberschriften in den LaTeX-Standardklassen.
Bei Verwendung einer aktuellen Version der -Klassen lassen sich
beispielweise die Schriftart, die Ausrichtung sowie weiteres ebenfalls
leicht anpassen.

titlesec:     CTAN: macros/latex/contrib/titlesec
sectsty:      CTAN: macros/latex/contrib/sectsty
KOMA-Script:  CTAN: macros/latex/contrib/koma-script/
 


7.1.5 Warum werden die durch \subsubsection angegebenen Abschnitte nicht
mehr ins Inhaltsverzeichnis aufgenommen?

Ebenso wie der Zhler `secnumdepth' die Gliederungsebene festlegt, bis
zu der Abschnitte numeriert werden, legt der Zhler `tocdepth' die
Gliederungsebene fest, bis zu der Abschnitte in das Inhaltsverzeichnis
aufgenommen werden. Beispielsweise werden nach der Anweisung
\setcounter{tocdepth}{4} alle Abschnitte einschlielich der
\paragraph-Ebene in das Inhaltsverzeichnis aufgenommen (siehe dazu Frage
7.1.3). Diese Anweisung mu in der Prambel, auf jeden Fall vor
\tableofcontents verwendet werden.

7.1.6 Wie kann ich verhindern, da z.B. \subsection usw. im Anhang in
das Inhaltsverzeichnis aufgenommen werden?

Der Zhler `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 dafr 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}


7.1.7 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 erwnscht wird, kann
man es am einfachsten mit den Dokumentklassen des KOMA-Script-Paketes
erreichen, da diese Klassen die hierfr gedachten Optionen `liststotoc',
`bibtotoc' bzw. `bibtotocnumbered' und `idxtotoc' kennen.
Bei Verwendung anderer Klassen kann eventuell das Paket `tocbibind'
weiterhelfen. Ansonsten knnte man als letzte Lsung 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. Auerdem mu bei Verwendung der Klassenoption `twoside',
die bei `book' voreingestellt ist, \clearpage durch \cleardoublepage
ersetzt werden.

KOMA-Script:  CTAN: macros/latex/contrib/koma-script/
tocbibind:    CTAN: macros/latex/contrib/tocbibind/
 


7.1.8 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
Inhaltsverzeichniseintrge ndern. Daneben gibt es noch das Paket
`tocloft', mit dem man ebenso die Formatierung des Inhalts-, Abbildungs-
und Tabellenverzeichnisses anpassen kann.

titletoc/titlesec:  CTAN: macros/latex/contrib/titlesec/
tocloft:            CTAN: macros/latex/contrib/tocloft/
 


7.1.9 Wie kann ich mit \ref nicht nur die Abschnittsnummer, sondern auch
den Text einer Abschnittsberschrift erhalten?

Das Paket `titleref' stellt hierzu die Anweisung \titleref, der analog
zu \ref und \pageref den Text einer Abschnittsberschrift oder
Abbildungsunterschrift liefert. Hierzu mu die Anweisung \label _nach_
den Abschnittsanweisungen und \caption erfolgen und darf _nicht_ im
Argument angegeben werden.
Im `hyperref'-Bndel existiert mit `nameref' ein weiteres Paket, das
diese Funktionalitt anbietet.Dieses definiert die Anweisung \nameref.
Insbesondere im Zusammenhang mit der Erzeugung von pdf-Dateien sollte
diese Lsung bevorzugt werden.

titleref:  CTAN: macros/latex/contrib/misc/titleref.sty
nameref:   CTAN: macros/latex/contrib/hyperref/
 


7.1.10 Wie kann ich in einem Stichwortverzeichnis oder einem
Literaturverzeichnis noch Text zwischen die berschrift und die
Verzeichnisliste bekommen?

Hierfr 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. Anschlieend fgt 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 fr `thebibliography' gezeigt, ein.
Fr das Stichwortverzeichnis werden diese Zeilen, diesmal mit
\theindexhook, in die entsprechend zu ndernde Definition der Umgebung
`theindex' eingefgt. Bei dieser mu man darauf achten, die beiden
Zeilen _in_ das optionale Argument der Anweisung \twocolumn einzufgen,
wenn der Text ber beide Spalten gehen soll.
Schlielich 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 verndert.
Will man nun zustzlichen Text einfgen, so wird der jeweilige Hook
direkt vor dem entsprechenden Verzeichnis per \renewcommand auf den
gewnschten 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:  CTAN: macros/latex/contrib/koma-script/
 


7.1.11 Wie kann ich mehrere Verzeichnisse in der Art des
Stichwortverzeichnisses, z.B. ein zustzliches Autorenverzeichnis,
anlegen?

Zu diesem Zweck geeignet sind die LaTeX-Pakete `camel' und `multind'.

camel:    CTAN: macros/latex/contrib/camel/
multind:  CTAN: macros/latex209/contrib/misc/multind.sty
 


7.1.12 In meinem LaTeX-Dokument fehlen die Eintrge 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 einigermaen aktuelle Version bentzt, kann man beim Laden des
Pakets das Datum angeben:

  \usepackage{fancybox}[2000/09/19]


fancybox:  CTAN: macros/latex/contrib/fancybox/
 


7.1.13 Wie mache ich alle Labels von Querverweisen sichtbar und wie
erhalte ich eine Liste dieser Labels?

Mit dem Paket `showkeys' aus dem `tools'-Bndel werden alle Querverweise
im Dokument als Marginalien gesetzt.
Eine Liste der Labels eines Dokuments erhlt man mit Hilfsdokument
``lablst.tex'', das zu Beginn den Namen des Dokuments, die
Dokumentklasse als auch die durch Kommata getrennte Liste aller
verwendeten Pakete erfrgt. Dieses Hilfsdokument liegt jeder
LaTeX-Verteilung bei.

lablst.tex:  CTAN: macros/latex/base/
showkeys:    CTAN: macros/latex/required/tools/
 


7.1.14 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 zustzliche Befehle zur Verfgung, mit
denen Benutzer ihren Dokumenten weitere Hypertext-Elemente hinzufgen
knnen. Auch das Setzen bestimmter PDF-Dokumenteigenschaften
(Autorinformationen, Seitenbergnge) und die ``Steuerung'' des
`acroread' aus einem Dokument heraus sind mit dem Paket mglich.

hyperref:                 CTAN: macros/latex/contrib/hyperref/
hyperref (beta-Version):  http://www.tug.org/applications/hyperref/
 


7.1.15 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 dafr verwendeten Programme jeweils eine andere Notation verwenden,
wie Links angegeben werden, ist `hyperref' auf die Verwendung von
`Treibern' angeweisen, die fr jede Methode der PDF-Erstellung
festlegen, wie Links spezifiziert werden.
Wird kein Treiber explizit angegeben (als Paketoption; die Dokumentation
erklrt, 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 mu entweder ein Treiber explizit als Paketoption
angegeben werden (Vorsicht, dies kann dazu fhren, da nun die
bersetzung mit pdfTeX nicht mehr funktioniert!), oder es mu ein
passender Standardtreiber eingestellt werden.
Hierfr eignet sich die Datei ``hyperref.cfg'', die von `hyperref'
automatisch nachgeladen wird, wenn sie (an passender Stelle) existiert.
Ob eine solche Datei existiert und geladen wird, ist aus der
Protokolldatei ersichtlich.
Wenn man PDF mit LaTeX, `dvips' und Acrobat Distiller erstellt, ist der
korrekte Treiber `dvips'. Diesen legt man als Standardtreiber fest,
indem man der Datei ``hyperref.cfg'' die folgenden Zeilen hinzufgt
(bzw. eine Datei mit diesem Inhalt neu erstellt):

  \@ifundefined{pdfoutput}{%
    \let\pdfoutput=\@undefined
    \ExecuteOptions{dvips}%
  }{}%


7.1.16 Wieso werden, wenn ich unter Verwendung des Pakets `hyperref' auf
dem Umweg ber PostScript pdf-Dateien erzeuge (mit `ps2pdf' oder `Adobe
Acrobat Distiller'), pltzlich alle Texte, die als Links dienen,
insbesondere die Abschnittsberschriften im Inhaltsverzeichnis nicht
mehr umbrochen?

Das Paket `hyperref' kennt die Option `breaklinks', die festlegt, ob
Links umbrochen werden drfen. 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 zult. Es ist in diesem Fall also auf keinen Fall mglich, den
Umbruch von Links ``verlustfrei'' zuzulassen. Eine saubere Lsung dieses
Dilemmas besteht zur Zeit ausschlielich in der Verwendung eines
Systems, das den Linkumbruch erlaubt, wie etwa pdfTeX oder VTeX.
Man knnte die Paketoption `breaklinks' bei `hyperref' auch direkt
angeben, mu dann aber damit leben, da die im Umbruchfall erstellten
Links nicht oder nur eingeschrnkt funktionieren.
Ein total kaputtes Inhaltsverzeichnis kann man weiterhin durch Angabe
der Option `linktocpage' vermeiden, die bewirkt, da die Links im
Inhaltsverzeichnis den Seitenangaben statt den Abschnittstiteln
unterlegt werden.

7.1.17 Wie erstelle ich ein Glossar?

Um ein Wortverzeichnis mit Erklrungen oder im weiteren Sinne ein
Verzeichnis von benutzten Begriffen mit Erklrungen, wie beispielsweise
von Formelzeichen oder von Abkrzungen, zu erstellen, bietet LaTeX mit
den Anweisungen \makeglossary und \glossary die Mglichkeit, Eintrge
vorzunehmen. Jedoch verbleibt es beim Autor, diese Eintrge zu sortieren
und zu formatieren.
Um die Eintrge zu sortieren wird meist `makeindex', `xindy' oder
BibTeX, eventuell ergnzt 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 darberhinaus noch mehr. Datenbanken mit
Abkrzungen etc. verwaltet das Paket `gloss' mit Hilfe von BibTeX. Das
Tool `glosstex' erstellt automatisch ein Glossar, ein
Abkrzungsverzeichnis oder ganz allgemein sortierte Listen. Es
kombiniert die Funktionalitt 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:   CTAN: macros/latex/contrib/nomencl
gloss:     CTAN: macros/latex/contrib/gloss
glosstex:  CTAN: support/glosstex/
acronym:   CTAN: macros/latex/contrib/acronym
glotex:    CTAN: indexing/glo+idxtex/
makeglos:  CTAN: macros/latex/contrib/makeglos
 


7.2 Literaturzitate, Literaturverzeichnis, BibTeX (*)


7.2.1 Wie kann ich im Text mit dem Autor/Jahreszahl o.. zitieren?

Hierfr gibt es eine grere Anzahl von Paketen, wie `natbib', `theapa'
oder `cite', die dies erlauben.

natbib:  CTAN: macros/latex/contrib/natbib/
theapa:  CTAN: macros/latex209/contrib/theapa/
cite:    CTAN: macros/latex/contrib/cite/
 


7.2.2 Wie kann ich das BibTeX-Stylefile xyz.bst so abndern, da an
Stelle X ein/kein Komma/Punkt erscheint, da der Eintrag Y anders
formatiert wird etc.?

Die Programmiersprache von BibTeX, in der die .bst-Dateien geschrieben
sind, ist in der Datei ``btxhak.tex'' beschrieben, die jedem
BibTeX-Paket beiliegen sollte. Bevor man diese fr die meisten
ungewohnte Sprache lernt, sollte man zuerst berprfen, ob die eigenen
Wnsche schon durch das Paket `custom-bib' abgedeckt werden knnen.
Dieses Paket enthlt ein mengesteuertes, in TeX selbst geschriebenes
Erzeugungsprogramm, das aus einer Master-bst-Datei eine bst-Datei mit
den ausgewhlten Eigenschaften erzeugt.

custom-bib:     CTAN: macros/latex/contrib/custom-bib/
btxdoc/btxhak:  CTAN: biblio/bibtex/distribs/doc/
 


7.2.3 Gibt es ans Deutsche angepate .bst-Dateien? (*)

Ja, zum Beispiel kann man mit dem in Frage 7.2.2 genannten Paket
`custom-bib' .bst-Dateien fr verschiedene Sprachen, darunter auch
Deutsch, generieren.
Unter http://www.fh-hamburg.de/pers/Lorenzen/bibtex/ findet man in den
Dateien ``abbrvdin.zip'', ``alphadin.zip'', ``plaindin.zip'',
``unsrtdin.zip'' und ``natdin.zip'' an DIN angepate
BibTeX-Style-Dateien. ``natdin.bst'' ermglicht
Verfasser-Jahr-Zitierweisen zusammen mit DIN-Zitierstandard. Der
BibTeX-Style ``dinat.bst'' ist eine verbesserte Versionen von
``natdin.bst''.

Online-Tutorial:  http://www.din1505.informationskompetenz.net/
dinat:            CTAN: biblio/bibtex/contrib/german/dinat/
 

Auerdem gibt es folgende angepate .bst-Dateien und -Pakete (ohne
Gewhr, unvollstndig, Reihenfolge ist _keine_ Wertung):

abstyles:  CTAN: biblio/bibtex/contrib/abstyles/
germbib:   CTAN: biblio/bibtex/contrib/germbib/
geralpha:  CTAN: obsolete/biblio/bibtex/contrib/geralpha/
 


7.2.4 Wie kann ich statt der eckigen Klammern [1] im Text bzw. im
Literaturverzeichnis hochgestellte Ziffern, runde Klammern (1) oder
Schrgstriche /1/ verwenden?

Fr die Form der Labels im Text ist die interne Anweisung \@cite, fr
die Form im Literaturverzeichnis die interne Anweisung \@biblabel
anzupassen. Deren Standarddefinitionen lauten:

  \newcommand{\@cite}[2]{[{#1\if@tempswa , #2\fi}]}
  \newcommand{\@biblabel}[1]{[#1]}

Will man statt der eckigen Klammern Schrgstriche, so lauten die
Redefinitionen

  \renewcommand{\@cite}[2]{/{#1\if@tempswa , #2\fi}/}
  \renewcommand{\@biblabel}[1]{/#1/}

Nicht vergessen: Redefinitionen von internen Anweisungen (= enthalten
ein `@' im Namen) mssen entweder in ein .sty-File geschrieben oder in
der Prambel des Dokuments durch \makeatletter ... \makeatother
geklammert werden!
Die Pakete `cite' und `overcite' definieren Befehle, wie \citeleft und
\citeright, die die Klammern erzeugen und die der Benutzer mit
\renewcommand sehr einfach umdefinieren kann. Nach

  \usepackage{cite}
  \renewcommand{\citeleft}{(}
  \renewcommand{\citeright}{)}

bekommt man statt eckiger Klammern [1] runde Klammern (1).
Das Paket `overcite' erlaubt es auerdem, Zitatstellen im Text mit
hochgestellten Ziffern zu markieren.

cite, overcite:  CTAN: macros/latex/contrib/cite/
 


7.2.5 Wie erreiche ich, da innerhalb eines \cite im Dokumenttext
umbrochen werden darf?

Das Paket `cite' definiert die Zitieranweisung von LaTeX so um, da ein
Zeilenumbruch mglich ist.

cite:  CTAN: macros/latex/contrib/cite/
 


7.2.6 Wie kann ich verhindern, da die Wrter im Titel eines
.bib-Eintrages kleingeschrieben werden?

Entweder den Titel komplett oder alle gro zu schreibenden Wrter
einzeln noch einmal klammern, also in der .bib-Datei statt

  title = {Fragen und Antworten}

einfach

  title = {{Fragen und Antworten}}

oder

  title = {{Fragen} und {Antworten}}

eingeben.
Eine alternative Lsung (oder besser: Ergnzung der Klammerung) ist die
nderung oder Verwendung einer entsprechend genderten bst-Datei, in der
bei der Formatierung des Titels und anderer Teile eines Eintrages die
BibTeX-Anweisung `change.case$' _nicht_ ausgefhrt wird. Dies sollte bei
den an das Deutsche angepaten bst-Dateien (siehe Frage 7.2.3) bereits
der Fall sein, im Paket `custom-bib' (siehe Frage 7.2.2) kann die
Umwandlung ber einen Menpunkt ausgewhlt werden.

7.2.7 Bei Labels wie [Rai95], die aus Teilen des Autorennamens gebildet
werden, treten Fehler bei Autorennamen mit Umlauten auf; wie kann ich
das verhindern?

Damit BibTeX die Konstruktion `\"a' fr Umlaute als ein einzelnes
Zeichen korrekt erkennen kann, mu der Umlaut mit einer zustzlichen
Klammerung im Eintrag in der .bib-Datei eingegeben werden, also als
`{\"a}' oder `{\ss}'. Tip: BibTeX-Dokumentation in ``btxdoc'' lesen!

btxdoc:  CTAN: biblio/bibtex/distribs/doc/
 


7.2.8 Kann ich Umlaute direkt in einer .bib-Datei verwenden?

Jein. Einige neuere BibTeX-Implementierungen erlauben die Ein- und
Ausgabe von Umlauten und anderen akzentuierten Zeichen. Will man diese
Dateien jedoch an Personen mit anderen Rechnersystemen und anderen
BibTeX-Implementierungen weitergeben, sollte man sich auf die
Standard-Kodierung mit `{\"a}' etc. beschrnken.
Im Schlssel eines Verweises, also dem Argument von \cite, ebenso wie im
Schlssel eines .bib-Eintrages, also dem ersten Wort des Eintrags, darf
man _keine Umlaute_ verwenden. Hier sollte man sich auf die 26 Klein-
und 26 Grobuchstaben, die 10 Ziffern und die Satzzeichen beschrnken.
Der Grund liegt darin, da dieser Schlssel von (La)TeX an BibTeX
bergeben werden mu und ein Schlssel mit Umlauten auf diesem Wege
eventuell zu einer anderen Zeichenkette expandiert werden kann, die im
BibTeX-Lauf mit keinem Schlssel in der .bib-Datei bereinstimmt.
Dadurch kann dann der Eintrag von BibTeX bzw. von (La)TeX nicht gefunden
werden.

8-Bit-BibTeX:  CTAN: biblio/bibtex/8-bit/
 


7.2.9 Wie kann ich erreichen, da mehrere Zitate [5,3,1,7,6] zu
[1,3,5-7] sortiert und zusammengefat werden?

Je nach Art der bevorzugten Darstellung der Zitate im Text erreicht man
dies mit den Paketen `cite' oder `overcite' sowie `natbib' (Optionen:
``numbers,sort&compress''). Sollen im endgltigen Dokument die Zitate
unter Verwendung des Pakets `hyperref' anklickbar werden, ist die
letztgenannte Lsung zu bevorzugen. Ergnzend kann das Paket `hypernat'
benutzt werden, um auch die Wirkung der `hyperref'-Optionen `backref'
und `pagebackref' in diesem Fall sicherzustellen.

cite, overcite:  CTAN: macros/latex/contrib/cite/
natbib:          CTAN: macros/latex/contrib/natbib/
hypernat:        CTAN: macros/latex/contrib/misc/
 


7.2.10 Wie kann man in einem Dokument verschiedene Abschnitte mit
eigenen Literaturverzeichnissen versehen?

Die Pakete `chapterbib' und `bibunits' erlauben es, mehrere
Literaturverzeichnisse in einem Dokument zu verwenden, solange diese in
eigenen Abschnitten stehen. Bei `chapterbib' mu jeder der Abschnitte in
einer getrennt mit \include{...} einzubindenden Datei stehen. Beide
Pakete (`bibunits' ab Version 2.1) arbeiten problemlos mit anderen
Paketen wie `natbib' zusammenarbeitet.

chapterbib:  CTAN: macros/latex/contrib/cite/
bibunits:    CTAN: macros/latex/contrib/bibunits/
 


7.2.11 Wie kann man ein thematisch untergliedertes Literaturverzeichnis
erstellen?

Das Paket `bibtopic', vormals `bibtopics', ermglicht die
Untergliederung eines Literaturverzeichnisses, wobei allerdings die
.bib-Datenbankdatei entsprechend der Gliederung in mehrere Dateien
aufgeteilt werden mu. Ein alternatives Paket ist `multibib', bei dem
die Aufteilung der .bib-Datenbankdatei nicht ntig ist.

bibtopic:  CTAN: macros/latex/contrib/bibtopic/
multibib:  CTAN: macros/latex/contrib/multibib/
 


7.2.12 Wie kann ich in einer BibTeX-Datenbank WWW- oder ftp-Quellen, die
als URL vorliegen, zitieren?

Die Quellen knnen mit den blichen BibTeX-Styles auf unterschiedliche
Art und Weise zitiert werden. Eine Variante ist

  @manual{KEITH,
    author = "Keith Reckdahl",
    title  = "Using Imported Graphics in \LaTeXe\ Documents",
    year   = "1997",
    month  = dec,
    note   = "CTAN: \url{tex-archive/info/epslatex.ps}"}

und eine weitere

  @misc{GRANT,
    author = "Michael C. Grant and David Carlisle",
    title  = "The PSFrag system, version~3",
    year   = "1996",
    month  = nov,
    howpublished = "CTAN: \url{tex-archive/macros/latex/contrib/%
            supported/psfrag/pfgguide.tex}"}

In beiden Fllen wird das LaTeX-Paket `url' verwendet, um den Umbruch
der Adressen zu erreichen (siehe Frage 7.3.10). Auf dieses Paket kann
verzichtet werden, wenn bereits das Paket `hyperref', mindestens
Version 6.70s (2000-08-31) oder aktueller, benutzt wird.
Wird das `hyperref' _nicht_ verwendet, so solle man das Prozentzeichen
am Zeilenende entfernen, da dann das Paket `url' dieses dann mit
ausgeben wrde.
Wird das Paket `jurabib' verwendet, so kann man auch einfach wie folgt
zitieren:

  @manual{KEITH,
    author = "Keith Reckdahl",
    title  = "Using Imported Graphics in \LaTeXe\ Documents",
    year   = "1997",
    month  = dec,
    url    = "ftp://ftp.dante.de/tex-archive/info/epslatex.ps"}


url:       CTAN: macros/latex/contrib/misc/url.sty
hyperref:  CTAN: macros/latex/contrib/hyperref/
jurabib:   http://www.jurabib.org/
 


7.2.13 Gibt es einen Weg, da \cite gleich die komplette Literaturstelle
liefert?

Dies geht zwar nicht direkt mit der Anweisung \cite, aber im Paket
`bibentry', das `natbib' beiliegt, gibt es die Anweisung \bibentry, die
die vollstndige Literaturangabe liefert. Nheres ist der mitgelieferten
Dokumentation zu entnehmen. Eine Alternative bietet das Paket
`inlinebib', das man allerdings nur mit dem beigefgten
``inlinebib.bst'' verwenden kann. Auch das Paket `jurabib' ist in der
Lage, z.B. mittels \fullcite oder der Option ``citefull=all'' bzw.
``citefull=first'' eine vollstndige Literaturstelle zu liefern. Es kann
jedoch nur mit den `jurabib'-eigenen BibTeX-Stil ``jurabib'' verwendet
werden.

bibentry:   CTAN: macros/latex/contrib/natbib/
inlinebib:  CTAN: biblio/bibtex/contrib/inlinebib/
jurabib:    http://www.jurabib.org/
~:          CTAN: macros/latex/contrib/jurabib/
 


7.2.14 Wie kann ich mit Kurzformen von Autor und Titel zitieren oder
zwischen Kurz- und Langformen wechseln?

Das Paket `jurabib' bietet dazu die Eintragsfelder juraauthor und
juratitle an, in die man die zu verwendende Kurzform des Autors bzw. des
Titels eintrgt. Es bietet auch die Option ``citefull=first'', mit dem
bei Erstnennung eines Werkes eine vollstndige Literaturstelle
erscheint, bei den weiteren Zitaten erscheinen jedoch nur noch die
angegebenen Kurzformen. Werden keine Kurzformen angegeben, werden sie
(grtenteils) von `jurabib' generiert. Auch `inlinebib' bietet Felder
fr Kurzformen an.

inlinebib:  CTAN: biblio/bibtex/contrib/inlinebib/
jurabib:    CTAN: macros/latex/contrib/jurabib/
 


7.2.15 Wie kann ich die Eintrge in @phdthesis mit ``Diplomarbeit'' oder
hnlicher Klassifikation auszeichnen?

Im einfachsten Fall kann man die Art der These durch die Eigenschaft
type eberschreiben, also mit type="Dissertation". Soll als
Standard-Wert etwas anderes verwendet werden, so mu man die .bst-Datei
anpassen.

7.3 \verb-Anweisung, verbatim- und Kommentar-Umgebungen (+)


7.3.1 Wieso kann ich \verb nicht im Argument einer anderen Anweisung wie
\footnote, \parbox u.. verwenden? Wieso geht dies mit LaTeX2e nicht
mehr, obwohl es mit LaTeX 2.09 ging?

Dies ging in LaTeX 2.09 auch nur, solange innerhalb des Arguments von
\verb keine Zeichen mit besonderer Bedeutung verwendet wurden. Fr diese
Flle htte ein einfaches {\tt ...} auch ausgereicht. Die Eingabe
``\footnote{\verb+\cite+}'' liefert auch mit LaTeX 2.09 Fehler mit einer
sehr kryptischen Fehlermeldung, deshalb wird diese falsche Benutzung in
LaTeX2e mit der aussagekrftigeren Fehlermeldung `! LaTeX Error: \verb
illegal in command argument.' verhindert.
Benutzt man das Paket `fancyvrb' und verwendet man in der Prambel des
Dokuments die von diesem Paket definierte Anweisung \VerbatimFootnotes,
so knnen, anders als in Standard-LaTeX, innerhalb von Funoten
\verb-Anweisungen verwendet werden.

fancyvrb:  CTAN: macros/latex/contrib/fancyvrb
 


7.3.2 Wieso bekomme ich die Fehlermeldung `! LaTeX Error: \verb ended by
end of line.', wenn ich im Argument von \verb in der Eingabe ein
Zeilenende habe?

LaTeX 2.09 war bei \verb sehr viel toleranter und hat den Zeilenwechsel
innerhalb des Arguments von \verb erlaubt, obwohl dies keinen Sinn
macht, da \verb nur fr kurze Textstcke gedacht ist und im formatierten
Ergebnis kein Zeilenumbruch sichtbar wurde.
Aus diesen Grnden wird nun in LaTeX2e ein eventuell vorhandenes
Zeilenende im Argument von \verb als Fehler gemeldet. Dies hat den
Vorteil, da ein versehentlich vergessenes Argumentendezeichen sehr frh
erkannt und mit einer sinnvoller Fehlermeldung angezeigt werden kann.
Als Seiteneffekt kann hierdurch auch die Verwendung von \verb im
Argument einer anderen Anweisung erkannt und angezeigt werden.
Eine Abhilfe ist sehr einfach mglich, indem man in der Eingabe einen
Zeilenwechsel im Argument von \verb vermeidet.

7.3.3 Wie kann ich eine eigene `verbatim'-Umgebung definieren?

Die intuitive Definition
                     \newenvironment{myverbatim}{%
                            \begin{verbatim}%
                                  }{%
                             \end{verbatim}%
                                   }
einer solchen Umgebung ist nicht mglich, da `verbatim' `festverdrahtet'
nach der Zeichenkette `\end{verbatim}' sucht, so da die neue Umgebung
das `\end{myverbatim}' nicht als Ende erkennen kann.
Um dennoch `verbatim'-hnliche Umgebungen definieren zu knnen, gibt es
mehrere Pakete:

* `alltt' belt die drei Zeichen \, { und } in ihrer besonderen
  Bedeutung, ist daher keine vollstndige verbatim-Umgebung.
* `verbatim' (von Rainer Schpf et al.) erlaubt die Definition eigener
  `verbatim'-Umgebungen, wie z.B.
                      \newenvironment{myverbatim}{%
                  \verbatim % <== nicht \begin{verbatim} !
                                   }{%
                 \endverbatim % <== nicht \end{verbatim} !
                                    }
* `moreverb' und `fancyvrb' enthalten weitere Umgebungen, die
  unterschiedliche `verbatim'-hnliche Umgebungen vordefiniert enthalten
  oder mit denen man solche definieren kann.


alltt:     CTAN: macros/latex/base/
           CTAN: macros/latex/unpacked/
           CTAN: macros/latex209/contrib/misc/alltt.sty
verbatim:  CTAN: macros/latex/required/tools/
moreverb:  CTAN: macros/latex/contrib/moreverb
fancyvrb:  CTAN: macros/latex/contrib/fancyvrb
 


7.3.4 Wie kann ich Programm-Code in mein LaTeX-Dokument einbinden?

Neben der Mglichkeit, kurze Abschnitte `verbatim' einzubinden, gibt es
verschiedene Tools, die automatisch LaTeX-Code mit den entsprechenden
Syntaxhervorhebungen erzeugen:

* `listings'
  Reine LaTeX-Lsung; untersttzt viele Programmiersprachen; in neueren
  Versionen kann `listings' zustzlich einige der Mglichkeiten des
  Pakets `fancyvrb' nutzen.
* `lgrind'
  C-Programm und LaTeX-Style, fr LaTeX2e; untersttzt sehr viele
  Programmiersprachen.
* `tiny_c2l'
  lex-Programm und LaTeX-Style; untersttzt neben C auch C++ und Java;
  kann berlange Zeilen umbrechen.


listings:  CTAN: macros/latex/contrib/listings/
lgrind:    CTAN: nonfree/support/lgrind/
tiny_C2l:  CTAN: support/tiny_c2l/
 


7.3.5 Wie kann ich den Inhalt einer Datei innerhalb einer
`verbatim'-Umgebung darstellen?

`verbatim' (von Rainer Schpf et al.) stellt fr diese Zwecke die
Anweisung \verbatiminput{Dateiname} zur Verfgung. Die Pakete `moreverb'
und `fancyvrb' stellen weitere Anweisungen und Umgebungen zur Verfgung.

verbatim:  CTAN: macros/latex/required/tools/
moreverb:  CTAN: macros/latex/contrib/moreverb
fancyvrb:  CTAN: macros/latex/contrib/fancyvrb
 


7.3.6 Wie erreiche ich, dass innerhalb einer `verbatim'-Umgebung Umlaute
und andere Sonderzeichen zu sehen sind? (+)

Zu diesem Zweck ist es ntig, die Art der Kodierung dieser Zeichen
anzugeben. Siehe dazu Frage 8.5.3.

7.3.7 Wie kann ich Zeilennummern zu meinem Text hinzufgen?

Zu diesem Zweck gibt es die beiden LaTeX-Pakete `lineno' und `numline'.
Handelt es sich um Programmcode, der numeriert werden soll, sind jedoch
die in Frage 7.3.4 genannten Lsungen zu bevorzugen.

lineno:   CTAN: macros/latex/contrib/lineno
numline:  CTAN: macros/latex/contrib/numline
 


7.3.8 Gibt es eine Kommentarumgebung, mit der ich grere Textteile
auskommentieren kann?

Um Teile eines Textes auszukommentieren, kann man entweder zwei sehr
einfache TeX-Konstrukte verwenden, oder man bedient sich spezieller
Pakete, die unterschiedlich mchtige Kommentar-Umgebungen anbieten.
Zu den einfachen Konstrukten, die TeX selbst anbietet, zhlt zum einen
die Einklammerung des zu ignorierenden Textes mit den TeX-Primitiven
\iffalse ... \fi:

  \iffalse
      Kommentartext, wird sehr schnell ueberlesen
  \fi

Hier sollten im Kommentartext keine \if...-, \else- und \fi-Tokens (bzw.
diese mssen korrekt geschachtelt sein), keine `outer'-Makros oder
unerlaubte Zeichen auftauchen, da diese zu einem Fehler oder vielleicht
zu doch nicht auskommentierten Textteilen fhren knnen.
Ein anderes, einfaches Verfahren ist die Verwendung eines Makros, wobei
der auszukommentierende Text in dessen Argument geschrieben wird:

  \newcommand{\kommentar}[1]{}
  % ...
  \kommentar{%
    Kommentartext, wird als Argument gelesen und ignoriert
  }%

Auch hier sollten die oben genannten Tokens nicht im Kommentartext
auftauchen, auerdem darf der Kommentartext nicht zu lang sein, da sonst
TeXs `main memory' berlaufen knnte.
Spezielle Kommentarumgebungen beseitigen diese Einschrnkungen - und
haben meist selbst eigene Einschrnkungen. `verbatim' aus dem
`tools'-Bndel definiert eine sehr einfache Umgebung namens `comment',
die man jedoch nicht schachteln kann. Weiterhin gibt es noch `xcomment'
(von Timothy van Zandt), eine speziell an die Erfordernisse des Paketes
`seminar' angepate und abgespeckte Version des `verbatim'. Mit
`comment' (von Victor Eijkhout) kann man neue Kommentarumgebungen
definieren, die mit \includecomment- und \excludecomment-Deklarationen
aus- und eingeblendet werden knnen.

verbatim:  CTAN: macros/latex/required/tools/
xcomment:  CTAN: macros/latex/contrib/seminar/inputs/xcomment.sty
comment:   CTAN: macros/latex/contrib/comment/
 


7.3.9 Wie kann ich mehrere Versionen eines Textes erstellen oder
bedingte Textteile verwenden?

Auf der einen Seite kann man die in Frage 7.3.8 beschriebenen
Kommentarumgebungen entsprechend verwenden. Daneben gibt es mit den
Paketen `version', `optional' und dem bereits erwhnten `comment'
Erweiterungen, mit denen man ber Flags im Dokumentkopf Textteile
bedingt ein- oder ausblenden kann.

version:   CTAN: macros/latex/contrib/misc/version.sty
optional:  CTAN: macros/latex/contrib/misc/optional.sty
comment:   CTAN: macros/latex/contrib/comment/
 


7.3.10 Ich will \verb z.B. fr Dateinamen, E-Mail-Adressen und URL
verwenden. Wie schaffe ich es, da innerhalb von \verb an geeigneten
Stellen getrennt wird?

Fr einige Anwendungen, wo man evtl. \verb benutzen knnte, gibt es auch
spezielle Lsungen, die fr den Anwendungszweck besser geeignet sind. So
gibt es beispielsweise die Pakete `url' und `path' fr Dateinamen,
E-Mail- und WWW-Adressen, bei denen nur an bestimmten Stellen umbrochen
werden darf, dies aber bereits automatisch geschieht.

url:   CTAN: macros/latex/contrib/misc/url.sty
path:  CTAN: macros/latex/contrib/misc/path.sty
 


7.4 Zerbrechliche Anweisungen in `moving arguments'


7.4.1 Was sind `fragile commands'/zerbrechliche Anweisungen, was sind
`moving arguments'?

Der Text, den ein Autor im Argument von Anweisungen wie \caption,
\section etc. angibt, kann an mehreren Stellen in einem Dokument gesetzt
werden. Der Argumenttext von \section wird z.B. als Kapitelberschrift
gesetzt und taucht evtl. nochmals im Inhaltsverzeichnis oder im
Seitenkopf bzw. -fu auf. Diese Argumente nennt man `moving arguments',
da sie vom Platz, wo ein Autor sie angibt, auch zu anderen Stellen
verschoben werden.
Die korrekte Ausfhrung von `zerbrechlichen Anweisungen' hngt intern
von Zuweisungen ab. Innerhalb eines `moving argument' werden diese
Zuweisungen jedoch nicht durchgefhrt, so da solche Anweisungen
`zerbrechen'. Zu den zerbrechlichen Anweisungen zhlen unter anderem
\cite, \ref, \pageref fr Literatur- und Querverweise, \footnote,
\footnotemark, die Anweisungen \small, \large etc. zur Wahl der
Schriftgre, mathematische Formelzeichen wie \sqrt, \notin, \overbrace
und viele mehr (siehe Frage 7.4.2, Bemerkung am Ende).

7.4.2 Wie kann ich innerhalb des Arguments von \caption, \section etc.
Anweisungen wie \cite, \ref, \pageref oder \footnote verwenden, ohne
Fehler wie `! Argument of \@sect has an extra }.' oder `! Use of
\@chapter doesn't match its definition.' zu erhalten?

Zerbrechliche Befehle wie \cite mssen im `moving argument' der
Anweisung \caption mit \protect geschtzt werden, d.h. statt

  \caption{Bildunterschrift~\cite{PartlKnappen95}}

ist ein \protect direkt und _ohne_ geschweifte Klammern vor die zu
schtzende Anweisung zu setzen:

  \caption{Bildunterschrift~\protect\cite{PartlKnappen95}}

Anweisungen wie \caption, \section etc. haben auerdem noch die
Mglichkeit, in einem optionalen Argument den zu `verschiebenden
Argumenttext' anzugeben. Das heit, obiges knnte auch in

  \caption[Bildunterschrift]%
          {Bildunterschrift~\cite{PartlKnappen95}}

umformuliert werden. Jetzt ist das optionale Argument in []-Klammern das
`moving argument', in dem Sie zerbrechliche Anweisungen mit \protect
schtzen mssen!
Beginnend mit LaTeX von Dezember 1995 sind Anweisungen wie \cite und
Anweisungen mit optionalem Argument, wie \sqrt, nicht mehr zerbrechlich
und bentigen damit kein \protect mehr. Dennoch sollten Sie diese
Anweisungen weiterhin mit \protect schtzen, wenn Sie Ihre Dokumente
anderen zukommen lassen wollen.

--- DE-TeX-FAQ Ende Teil 7 ---
