Posted-By: auto-faq 3.3 (Perl 5.008)
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/ See reader questions & answers on this topic! - Help others by sharing your knowledge --- 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 hierf�r 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 Dokumentpr�ambel zu schreiben. 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'' (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. 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}} 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 \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'' (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 ben�tigt 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 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. 7.1.4 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: 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 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 Frage 7.1.3). Diese Anweisung mu� in der Pr�ambel, 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 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.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 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/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 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/titlesec/ tocloft: CTAN: macros/latex/contrib/tocloft/ 7.1.9 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: 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? 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: CTAN: macros/latex/contrib/koma-script/ 7.1.11 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: CTAN: macros/latex/contrib/camel/ multind: CTAN: macros/latex209/contrib/misc/multind.sty 7.1.12 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: 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'-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: 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 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: 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 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 mu� entweder ein Treiber explizit als Paketoption angegeben werden (Vorsicht, dies kann dazu f�hren, da� nun die �bersetzung mit pdfTeX nicht mehr funktioniert!), oder es mu� ein passender Standardtreiber eingestellt werden. Hierf�r 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 hinzuf�gt (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'), 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��t. Es ist in diesem Fall also auf keinen Fall m�glich, den Umbruch von Links ``verlustfrei'' zuzulassen. Eine saubere L�sung dieses Dilemmas besteht zur Zeit ausschlie�lich in der Verwendung eines Systems, das den Linkumbruch erlaubt, wie etwa pdfTeX oder VTeX. Man k�nnte die Paketoption `breaklinks' bei `hyperref' auch direkt angeben, mu� dann aber damit leben, da� die im Umbruchfall erstellten Links nicht oder nur eingeschr�nkt 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 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: 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? Hierf�r gibt es eine gr��ere 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 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/custom-bib/ btxdoc/btxhak: CTAN: biblio/bibtex/distribs/doc/ 7.2.3 Gibt es ans Deutsche angepa�te .bst-Dateien? (*) Ja, zum Beispiel kann man mit dem in Frage 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 den Dateien ``abbrvdin.zip'', ``alphadin.zip'', ``plaindin.zip'', ``unsrtdin.zip'' und ``natdin.zip'' an DIN angepa�te BibTeX-Style-Dateien. ``natdin.bst'' erm�glicht 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/ 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/ 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 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). Das Paket `overcite' erlaubt es au�erdem, 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 m�glich ist. cite: CTAN: macros/latex/contrib/cite/ 7.2.6 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 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 Frage 7.2.3) bereits der Fall sein, im Paket `custom-bib' (siehe Frage 7.2.2) kann die Umwandlung �ber einen Men�punkt ausgew�hlt 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' 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 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. beschr�nken. Im Schl�ssel eines Verweises, also dem Argument von \cite, ebenso wie im Schl�ssel eines .bib-Eintrages, also dem ersten Wort des Eintrags, darf man _keine Umlaute_ verwenden. Hier sollte man sich auf die 26 Klein- und 26 Gro�buchstaben, die 10 Ziffern und die Satzzeichen beschr�nken. Der Grund liegt darin, da� dieser Schl�ssel von (La)TeX an BibTeX �bergeben werden mu� und ein Schl�ssel mit Umlauten auf diesem Wege eventuell zu einer anderen Zeichenkette expandiert werden kann, 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. 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 zusammengefa�t 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 endg�ltigen Dokument die Zitate unter Verwendung des Pakets `hyperref' anklickbar werden, ist die letztgenannte L�sung zu bevorzugen. Erg�nzend 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', erm�glicht 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 n�tig 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 k�nnen 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 F�llen 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 w�rde. 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 vollst�ndige Literaturangabe liefert. N�heres ist der mitgelieferten Dokumentation zu entnehmen. Eine Alternative bietet das Paket `inlinebib', das man allerdings nur mit dem beigef�gten ``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 vollst�ndige 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 eintr�gt. Es bietet auch die Option ``citefull=first'', mit dem bei Erstnennung eines Werkes eine vollst�ndige Literaturstelle erscheint, bei den weiteren Zitaten erscheinen jedoch nur noch die angegebenen Kurzformen. Werden keine Kurzformen angegeben, werden sie (gr��tenteils) von `jurabib' generiert. Auch `inlinebib' bietet Felder f�r Kurzformen an. inlinebib: CTAN: biblio/bibtex/contrib/inlinebib/ jurabib: CTAN: macros/latex/contrib/jurabib/ 7.2.15 Wie kann ich die Eintr�ge 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. 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. Benutzt man das Paket `fancyvrb' und verwendet man in der Pr�ambel des Dokuments die von diesem Paket definierte Anweisung \VerbatimFootnotes, so k�nnen, anders als in Standard-LaTeX, innerhalb von Fu�noten \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 f�r kurze Textst�cke gedacht ist und im formatierten Ergebnis kein Zeilenumbruch sichtbar wurde. Aus diesen Gr�nden 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 fr�h 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 m�glich, 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 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/moreverb fancyvrb: CTAN: macros/latex/contrib/fancyvrb 7.3.4 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: * `listings' Reine LaTeX-L�sung; unterst�tzt viele Programmiersprachen; in neueren Versionen kann `listings' zus�tzlich einige der M�glichkeiten des Pakets `fancyvrb' nutzen. * `lgrind' C-Programm und LaTeX-Style, f�r LaTeX2e; unterst�tzt sehr viele Programmiersprachen. * `tiny_c2l' lex-Programm und LaTeX-Style; unterst�tzt 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 Sch�pf et al.) stellt f�r diese Zwecke die Anweisung \verbatiminput{Dateiname} 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/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 n�tig, die Art der Kodierung dieser Zeichen anzugeben. Siehe dazu Frage 8.5.3. 7.3.7 Wie kann ich Zeilennummern zu meinem Text hinzuf�gen? 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 L�sungen zu bevorzugen. lineno: CTAN: macros/latex/contrib/lineno numline: CTAN: macros/latex/contrib/numline 7.3.8 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 ueberlesen \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'-B�ndel 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' angepa�te 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 k�nnen. 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 erw�hnten `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. f�r Dateinamen, E-Mail-Adressen und URL 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 f�r den Anwendungszweck besser geeignet sind. So gibt es beispielsweise die Pakete `url' und `path' f�r 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 Kapitel�berschrift 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 Ausf�hrung von `zerbrechlichen Anweisungen' h�ngt intern von Zuweisungen ab. Innerhalb eines `moving argument' 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 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 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 LaTeX von 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 --- |
Comment about this article, ask questions, or add new information about this topic: