Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!newsfeed.sgi.net!nntp.abs.net!newsfeed1.swip.net!swipnet!masternews.telia.net!fu-berlin.de!news.uni-stuttgart.de!news.urz.uni-heidelberg.de!german
From: dantefaq@dante.de (DE-TeX-FAQ-Maintainer)
Newsgroups: de.comp.text.tex,de.answers,news.answers
Subject: TeX, LaTeX, DANTE e.V.: FAQ - Fragen und Antworten (Part 7 of 11)
Supersedes: <de-tex-faq-7-922970460@dante.de>
Followup-To: de.comp.text.tex
Date: 11 May 1999 15:40:04 GMT
Organization: DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
Lines: 534
Approved: news-answers-request@MIT.EDU
Distribution: world
Expires: 25 Jun 99 17:39:26
Message-ID: <de-tex-faq-7-926437166@dante.de>
References: <de-tex-faq-1-926437166@dante.de>
Reply-To: dantefaq@dante.de (DE-TeX-FAQ-Maintainer)
NNTP-Posting-Host: sun.dante.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Summary: This posting contains a list of Frequently Asked Questions
         (and their answers) about the typesetting system TeX and
         about DANTE e.V., the german-speaking TeX users group.
         It is in German and uses the ISO Latin-1 character set.
Keywords: FAQ TYPESETTING TeX USERGROUP DANTE
Originator: german@sun.dante.de
Xref: senator-bedfellow.mit.edu de.comp.text.tex:16698 de.answers:3308 news.answers:157713

Posted-By: auto-faq 3.3 (Perl 5.003)
Archive-name: de-tex-faq/part7
Posting-Frequency: monthly
Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1
URL: http://www.dante.de/faq/de-tex-faq/

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


  Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
            Deutschsprachige Anwendervereinigung TeX e.V.
                                   
           Bernd Raichle, Thomas Hafner und Rolf Niepraschk
                                   
                      (Version 51 vom Mai 1999)
  _________________________________________________________________

7 TeX, LaTeX, Makros etc. (III)
                                    
7.1 Gliederung, Inhalts-, Abbildungs- und andere Verzeichnisse

7.1.1 Beim Formatieren des \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 hierfuer verwendete Wert von 1.55em kann in
manchen Situationen (Seitennummer>=1000, breiterer Font) zu klein
sein. Abhilfe:
\renewcommand{\@pnumwidth}{2em}% statt `2em' evtl. größerer Wert

Eventuell muß man dann auch den Wert im Makro \@tocrmarg anpassen.

Längere Abschnittsnummern können 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 vergrößern. Näheres hierzu im Buch ``Der
LaTeX-Begleiter''.

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. Für
eine \subsection ist dies das Makro \l@subsection, das z.B. in
``article.cls'' durch
\newcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}}

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
\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{3.3em}}

in einer .sty-Datei oder mit \makeatletter ... \makeatother geklammert
in der Dokumentpräambel. Mehr dazu findet man im Buch ``Der
LaTeX-Begleiter''.

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 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.

7.1.4 Wie erreiche ich, daß Abschnittsüberschriften zentriert werden?

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, jecoch 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 LaTeX2e-Standardklassen.

titlesec:  CTAN: macros/latex/contrib/supported/titlesec
sectsty:  CTAN: macros/latex/contrib/supported/sectsty

7.1.5 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}

7.1.6 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:  CTAN: macros/latex/contrib/supported/koma-script/
tocbibind:  CTAN: macros/latex/contrib/supported/tocbibind/

7.1.7 Wie kann ich die Formatierung des automatisch erzeugten
      Inhaltsverzeichnis ä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:  CTAN: macros/latex/contrib/supported/titlesec/
tocloft:  CTAN: macros/latex/contrib/supported/tocloft/

7.2 Literaturzitate, -verzeichnis, BibTeX

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

Hierfür gibt es eine größere Anzahl von Paketen, wie `natbib',
`theapa' oder `cite', die dies erlauben.

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

7.2.2 Wie kann ich das BibTeX-Stylefile xyz.bst so abändern, 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 für die meisten
ungewohnte Sprache lernt, sollte man zuerst überprüfen, ob die eigenen
Wünsche schon durch das Paket `custom-bib' abgedeckt werden können.
Dieses Paket enthält ein menügesteuertes, in TeX selbst geschriebenes
Erzeugungsprogramm, das aus einer Master-bst-Datei eine bst-Datei mit
den ausgewählten Eigenschaften erzeugt.

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

7.2.3 Gibt es an's Deutsche angepaßte .bst-Dateien?

Ja, zum Beispiel kann man mit dem in Abschnitt 7.2.2 genannten Paket
`custom-bib' .bst-Dateien für verschiedene Sprachen, darunter auch
Deutsch, generieren.

Unter http://www.fh-hamburg.de/pers/Lorenzen/bibtex/ findet man in
``abbrvdin.zip'', ``alphadin.zip'', ``plaindin.zip'' und
``unsrtdin.zip'' an DIN angepaßte BibTeX-Style-Dateien.

Außerdem gibt es folgende angepaßte .bst-Dateien und -Pakete (ohne
Gewähr, unvollständig, Reihenfolge ist _keine_ Wertung):

abstyles:  CTAN: biblio/bibtex/contrib/abstyles/
dinalpha:  CTAN: biblio/bibtex/contrib/dinalpha.bst
geralpha:  CTAN: biblio/bibtex/contrib/geralpha/
germbib:  CTAN: biblio/bibtex/contrib/germbib/

7.2.4 Wie kann ich statt der eckigen Klammern [1] im Text bzw. im
      Literaturverzeichnis runde Klammern (1) oder Schrägstriche /1/
      verwenden?

Für die Form der Labels im Text ist die interne Anweisung \@cite, für
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 Schrägstriche, 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) müssen entweder in ein .sty-File geschrieben oder in
der Präambel 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).

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

7.2.5 Wie kann ich verhindern, daß die Wörter im Titel eines
      .bib-Eintrages kleingeschrieben werden?

Entweder den Titel komplett oder alle groß zu schreibenden Wörter
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 Lösung (oder besser: Ergänzung der Klammerung) ist
die Änderung oder die Verwendung einer entsprechend geänderten
bst-Datei, in der bei der Formatierung des Titels und anderer Teile
eines Eintrages die BibTeX-Anweisung `change.case$' _nicht_ ausgeführt
wird. Dies sollte bei den an das Deutsche angepaßten bst-Dateien
(siehe Abschnitt 7.2.3) bereits der Fall sein, im Paket `custom-bib'
(siehe Abschnitt 7.2.2) kann die Umwandlung über einen Menüpunkt
ausgewählt werden.

7.2.6 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' für Umlaute als ein einzelnes
Zeichen korrekt erkennen kann, muß der Umlaut mit einer zusätzlichen
Klammerung im Eintrag in der .bib-Datei eingegeben werden, also als
`{\"a}' oder `{\ss}'. Tip: BibTeX-Dokumentation lesen!

7.2.7 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 auf anderen Rechnersystemen und anderen
BibTeX-Implementierungen weitergeben, sollte man sich auf die
Standard-Kodierung mit `{\"a}' etc. beschränken.

Im Schlüssel eines Verweises, also dem Argument von \cite bzw. dem
ersten Wort eines .bib-Eintrages, sollte man sich auf die 2*26 Klein-
und Großbuchstaben, die 10 Ziffern und die Satzzeichen beschränken.
Dieser Schlüssel muß von (La)TeX an BibTeX übergeben werden und ein
Schlüssel mit Umlauten kann auf diesem Wege eventuell zu einer anderen
Zeichenkette expandiert werden, die im BibTeX-Lauf mit keinem
Schlüssel in der .bib-Datei übereinstimmt. Dadurch kann dann der
Eintrag von BibTeX bzw. von (La)TeX nicht gefunden werden.

7.2.8 Wie kann ich erreichen, daß für Zitate im Text statt der eckigen
      Klammern [1] hochgestellte Ziffern verwendet werden?

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

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

Je nach Art der bevorzugten Darstellung der Zitate im Text erreicht
man dies mit dem Paket `cite' oder `overcite'.

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

7.2.10 Wie kann man ein strukturiertes, also ein in einzelne Abschnitte
       unterteiltes Literaturverzeichnis erstellen?

Das Paket `bibtopics', eine Weiterentwicklung des Pakets `bibunits'
bietet diese Möglichkeit, wobei noch einige BibTeX-Kenntnisse
notwendig sind. Eine im Teststadium befindliche Weiterentwicklung ist
`bibtopic'.

bibtopics:  ftp://ftp.univ-rennes1.fr/pub/gut/contrib/bibtopics/
bibtopic:  ftp://ftp.cis.uni-muenchen.de/pub/ulrich/bibtopic/

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. Für
diese Fälle hätte 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 aussagekräftigeren Fehlermeldung `! LaTeX
Error: \verb illegal in command argument.' verhindert.

7.3.2 Wie kann ich eine eigene verbatim-Umgebung definieren?

Die intuitive Definition

\newenvironment{myverbatim}{%
\begin{verbatim}%
}{%
\end{verbatim}%
}

einer solchen Umgebung ist nicht möglich, 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 können, gibt es
mehrere Pakete:
  * `alltt' beläßt die drei Zeichen \, { und } in ihrer besonderen
    Bedeutung, ist daher keine vollständige verbatim-Umgebung.
  * `verbatim' (von Rainer Schöpf 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/supported/moreverb
fancyvrb:  CTAN: macros/latex/contrib/supported/fancyvrb

7.3.3 Wie kann ich Programm-Code in mein LaTeX-Dokument einbinden? (*)

Neben der Möglichkeit, kurze Abschnitte `verbatim' einzubinden, gibt
es verschiedene Tools, die automatisch LaTeX-Code mit den
entsprechenden Syntaxhervorhebungen erzeugen:
  * lgrind
    C-Programm und LaTeX-Style, für LaTeX2e; unterstützt sehr viele
    Programmiersprachen.
  * tiny_C2l
    lex-Programm und LaTeX-Style; unterstützt nur C; kann überlange
    Zeilen umbrechen.
  * listings.sty
    reine LaTeX-Lösung; unterstützt viele Programmiersprachen; in
    neueren Versionen kann `listings' zusätzlich einige der
    Möglichkeiten des Pakets `fancyvrb' nutzen.
    
lgrind:  CTAN: support/lgrind/
tiny_C2l:  CTAN: support/tiny_c2l/
listings:  CTAN: macros/latex/contrib/supported/listings/

7.3.4 Wie kann ich eine Datei (z.B. mit Programmcode) innerhalb einer
      `verbatim'-Umgebung einbinden?

`verbatim' (von Rainer Schöpf et al.) stellt für diese Zwecke die
Anweisung

  \verbatiminput{<filename>}
  
zur Verfügung. Die Pakete `moreverb' und `fancyvrb' stellen weitere
Anweisungen und Umgebungen zur Verfügung.

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

7.3.5 Gibt es eine Kommentarumgebung, mit der ich größere 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 mächtige Kommentar-Umgebungen anbieten.

Zu den einfachen Konstrukten, die TeX selbst anbietet, zählt zum einen
die Einklammerung des zu ignorierenden Textes mit den TeX-Primitiven
\iffalse ... \fi:
\iffalse
    Kommentartext, wird sehr schnell überlesen
\fi

Hier sollten im Kommentartext keine \if...-, \else- und \fi-Tokens
(bzw. diese müssen korrekt geschachtelt sein), keine `outer'-Makros
oder unerlaubte Zeichen auftauchen, da diese zu einem Fehler oder
vielleicht zu doch nicht auskommentierten Textteilen führen können.

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, außerdem darf der Kommentartext nicht zu lang sein, da
sonst TeXs `main memory' überlaufen könnte.

Spezielle Kommentarumgebungen beseitigen diese Einschränkungen - und
haben meist selbst eigene Einschränkungen. `verbatim' aus dem
`tools'-Bundle definiert eine sehr einfache Umgebung namens `comment',
die man jedoch nicht schachteln kann. Weiterhin gibt es noch
`xcomment' (von T. van Zandt, eine speziell an die Erfordernisse des
Paketes `seminar' angepaßte und abgespeckte Version des `verbatim'.
Mit `comment' (von V. Eijkhout) kann man neue Kommentarumgebungen
definieren, die mit \includecomment- und \excludecomment-Deklarationen
aus- und eingeblendet werden können.

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

7.3.6 Ich will \verb z.B. für Dateinamen und E-Mail-Adressen verwenden.
      Wie schaffe ich es, daß innerhalb von \verb an geeigneten Stellen
      getrennt wird?

Für einige Anwendungen, wo man evtl. \verb benutzen könnte, gibt es
auch spezielle Lösungen, die fuer den Anwendungszweck besser geeignet
sind. So gibt es beispielsweise die Pakete `path' und `url' für
Dateinamen, für E-Mail- und WWW-Adressen, bei denen nur an bestimmten
Stellen umbrochen werden darf.

url:  CTAN: macros/latex/contrib/other/misc/url.sty
path:  CTAN: macros/latex/contrib/other/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
Kapitelüberschrift gesetzt und taucht evtl. nochmals im
Inhaltsverzeichnis oder im Seitenkopf/-fuß auf. Diese Argumente nennt
man daher `moving arguments'.

Die korrekte Ausführung von `zerbrechlichen Anweisungen' hängt intern
von Zuweisungen ab. Innerhalb eines `moving arguments' werden diese
Zuweisungen jedoch nicht durchgeführt, so daß solche Anweisungen
`zerbrechen'. Zu den zerbrechlichen Anweisungen zählen unter anderem
\cite, \ref, \pageref für Literatur- und Querverweise, \footnote,
\footnotemark, die Anweisungen \small, \large etc. zur Wahl der
Schriftgröße, mathematische Formelzeichen wie \sqrt, \notin,
\overbrace und viele mehr (siehe Abschnitt 7.4.2, Bemerkung am Ende).

7.4.2 Wie kann ich innerhalb des Arguments von \caption, \section etc.
      Anweisungen wie \cite, \ref und \pageref verwenden, ohne Fehler wie
      `! Argument of \@sect has an extra }.' zu erhalten?

Zerbrechliche Befehle wie \cite müssen im `moving argument' der
Anweisung \caption mit \protect geschützt werden, d.h. statt
\caption{Bildunterschrift~\cite{PartlKnappen95}}

ist ein \protect direkt und _ohne_ geschweifte Klammern vor die zu
schützende Anweisung zu setzen:
\caption{Bildunterschrift~\protect\cite{PartlKnappen95}}

Anweisungen wie \caption, \section etc. haben außerdem noch die
Möglichkeit, in einem optionalen Argument den zu `verschiebenden
Argumenttext' anzugeben. Das heißt, obiges könnte 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 schützen müssen!

Beginnend mit LaTeX2e vom Dezember 1995 sind Anweisungen wie \cite und
Anweisungen mit optionalem Argument, wie \sqrt, nicht mehr
zerbrechlich und benötigen damit kein \protect mehr. Dennoch sollten
Sie diese Anweisungen weiterhin mit \protect schützen, wenn Sie Ihre
Dokumente anderen zukommen lassen wollen.


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