1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
|
Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!aanews.merit.edu!news.cc.uic.edu!news.uchicago.edu!yellow.newsread.com!netaxs.com!newsread.com!newsfeed00.sul.t-online.de!t-online.de!news-lei1.dfn.de!news-ber1.dfn.de!news.uni-hamburg.de!not-for-mail
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-1020876881@dante.de>
Followup-To: de.comp.text.tex
Date: 19 Sep 2003 14:43:17 +0200
Organization: DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
Lines: 1018
Approved: news-answers-request@MIT.EDU
Distribution: world
Expires: 03 Nov 2003 13:43:13 MET
Message-ID: <de-tex-faq-7-1063975393@dante.de>
References: <de-tex-faq-1-1063975393@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
X-Trace: rzsun03.rrz.uni-hamburg.de 1063975397 891 134.100.9.52 (19 Sep 2003 12:43:17 GMT)
X-Complaints-To: usenet@news.uni-hamburg.de
NNTP-Posting-Date: 19 Sep 2003 12:43:17 GMT
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
Xref: senator-bedfellow.mit.edu de.comp.text.tex:117405 de.answers:9382 news.answers:258271
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/
--- 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 ---
|