Posted-By: auto-faq 3.2.1.3
Archive-name: de-tex-faq/part7
Posting-Frequency: monthly
Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1
URL: http://www.dante.de/dante/dante-faq.html


		Fragen und Antworten (FAQ) ber

		   das Textsatzsystem TeX und
		       ~~~~~~~~~~~~~~~~~~
	DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	    === Teil 7: TeX, LaTeX, Makros, etc. (III) ==


7.1) 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. grerer Wert

Eventuell mu man dann auch den Wert im Makro \@tocrmarg anpassen.
  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''.


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

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



7.2) Literaturzitate, -verzeichnis, 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 `overcite', die dies erlauben.

natbib:   CTAN: macros/latex/contrib/supported/natbib/  (LaTeX2e)
          CTAN: macros/latex209/contrib/natbib/  (LaTeX 2.09, veraltet!)
theapa:   CTAN: macros/latex209/contrib/theapa/
overcite: CTAN: macros/latex/contrib/supported/cite/overcite.sty


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.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/supported/custom-bib/  (LaTeX2e)
btxdoc/btxhak: CTAN: biblio/bibtex/distribs/doc/


7.2.3) Gibt es an's Deutsche angepasste .bst-Dateien?

Ja, zum Beispiel kann man mit dem unter 4.4.2 genannten Paket
`custom-bib' .bst-Dateien fr verschiedene Sprachen, darunter auch
Deutsch, generieren.
  Auerdem gibt es folgende angepate .bst-Dateien und -Pakete (ohne
Gewhr, unvollstndig, 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 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!


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

Entweder den Titel komplett oder alle gro zu schreibenden Worter
einzeln noch einmal klammern, also in der .bib-Datei statt
	titel = {Fragen und Antworten}
einfach
	titel = {{Fragen und Antworten}}
oder
	titel = {{Fragen} und {Antworten}}
eingeben.

Eine alternative Lsung (oder besser: Ergnzung der Klammerung) ist
die nderung oder die 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 7.2.3) bereits der Fall sein, im Paket `custom-bib' (siehe
7.2.2) kann die Umwandlung ber einen Menpunkt ausgewhlt 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' 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 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. beschrnken.

Im Schlssel eines Verweises, also dem Argument von \cite bzw. dem
ersten Wort eines .bib-Eintrages, sollte man sich auf die 2*26 Klein-
und Grobuchstaben, die 10 Ziffern und die Satzzeichen beschrnken.
Dieser Schlssel mu von (La)TeX an BibTeX bergeben werden und ein
Schlssel mit Umlauten kann auf diesem Wege eventuell zu einer anderen
Zeichenkette expandiert werden, 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.


+7.2.8) Wie kann ich erreichen, da fr Zitate im Text statt der
       eckigen Klammern [1] hochgestellte Ziffern verwendet werden?

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


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

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

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



7.3) \verb-Anweisung und verbatim-/Kommentar-/Comment-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 2e mit der aussagekrftigeren 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 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 zwei Pakete:
 a) `alltt' belt die drei Zeichen \, { und } in ihrer besonderen
    Bedeutung, ist daher keine vollstndige verbatim-Umgebung.
 b) `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} !
	}

alltt.sty: Das Package ist Bestandteil der LaTeX2e-Verteilung seit
           LaTeX2e <94/12/01>
           CTAN: macros/latex/{base,unpacked}/       (LaTeX2e-Verteilung)
           CTAN: macros/latex209/contrib/misc/alltt.sty  (fr LaTeX 2.09)
verbatim.sty:  CTAN: macros/latex/packages/tools/


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

`verbatim' (von Rainer Schpf et al.) stellt fr diese Zwecke die
Anweisung \verbatiminput{<filename>} zur Verfgung.


7.3.4) Gibt es eine Kommentar-/comment-Umgebung, 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 berlesen
    \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 Kommentar-Umgebungen beseitigen diese Einschrnkungen --
und haben meist selbst eigene Einschrnkungen.  `verbatim' aus dem
`tools'-Paket definiert eine sehr einfache `comment'-Umgebung, die man
jedoch nicht schachteln kann.  Weiterhin gibt es noch `xcomment' (von
T. van Zandt, eine speziell an die Erfordernisse des Paketes `seminar'
angepate und abgespeckte Version des `verbatim'.  Mit `comment' (von
V. Eijkhout) kann man neue Kommentar-Umgebungen definieren, die mit
\includecomment- und \excludecomment-Deklarationen aus- und
eingeblendet werden knnen.

verbatim.sty:  CTAN: macros/latex/packages/tools/
xcomment.sty:  CTAN: macros/latex/contrib/other/seminar/
               CTAN: macros/latex209/contrib/misc/xcomment.sty
comment.sty:   CTAN: macros/latex209/contrib/misc/comment.sty


7.3.5) Ich will \verb z.B. fr Dateinamen und Email-Adressen
       verwenden. Wie schaffe ich es, dass innerhalb von \verb an
       geeigneten Stellen getrennt wird?

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

path.sty:  CTAN: macros/latex209/contrib/misc/path.sty
url.sty:   CTAN: macros/latex/contrib/other/misc/url.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/-fu auf.  Diese Argumente nennt
man daher `moving arguments'.
  Die korrekte Ausfhrung von `zerbrechlichen Anweisungen' hngt
intern von Zuweisungen ab.  Innerhalb eines `moving arguments' werden
diese Zuweisungen jedoch nicht durchgefhrt, soda solche Anweisungen
`zerbrechen'.  Zu den zerbrechlichen Anweisungen zhlen unter anderem
\cite, \ref, \pageref fr Literatur- und Querverweise, \footnote, die
Anweisungen \small, \large, etc. zur Wahl der Schriftgre,
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 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 LaTeX2e vom 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 ---
