summaryrefslogtreecommitdiff
path: root/info/german/gleitobjekte/gleitobjekte.tex
blob: a234d7be62e3a02cbbf10258dbd30b8c674fcd68 (plain)
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
\documentclass[12pt,a4paper,abstracton]{scrartcl}
%
\usepackage[T1]{fontenc}
\usepackage[german]{varioref}
\usepackage{%
  german,
  multirow,
  shortvrb,
  textcomp,
  url
}
%
\renewcommand{\sectfont}{\rmfamily\bfseries}
\renewcommand{\descfont}{\rmfamily\bfseries}
\typearea{8}
%
\renewcommand{\reftextcurrent}{\normalfont auf dieser Seite}
\renewcommand{\reftextbefore}{\normalfont auf der
  \reftextvario{vorigen}{vorangehenden} Seite}
\renewcommand{\reftextfacebefore}{\normalfont auf der
  \reftextvario{linken}{ge\-gen\-\"uber\-lie\-gen\-den} Seite}
\renewcommand{\reftextafter}{\normalfont auf der
  \reftextvario{n\"ach\-sten}{folgenden} Seite}
\renewcommand{\reftextfaceafter}{\normalfont auf der
  \reftextvario{rechten}{ge\-gen\-\"uber\-lie\-gen\-den} Seite}
\renewcommand{\reftextfaraway}[1]{\normalfont auf Seite~\pageref{#1}}
%
\begin{document}
%
\MakeShortVerb{\|}
%
\title{Gleitobjekte -- die richtige Schmierung}
\author{Axel Reichert\\\url{reich@mpie-duesseldorf.mpg.de}}
\date{1997-10-10}
\maketitle
%
\begin{abstract}
  Dieses Tutorium erl"autert den Umgang mit Gleitobjekten. Die
  Plazierung von Floats und die Erstellung einer Legende werden
  behandelt. Die Einbettung und Beschriftung von Abbildungen wird
  erkl"art. Die Gestaltung von Tabellen und umfangreichem
  Zahlenmaterial wird dargestellt.
  
  Im zweiten Teil werden Hinweise zur Beschaffung und Installation
  zus"atzlicher \LaTeXe-Pakete gegeben und weitere Informationsquellen
  genannt, Motto: Hilfe zur Selbsthilfe.
  
  Das Tutorium richtet sich an neugierige \LaTeX-Anwender mit
  Grundkenntnissen, aber vielleicht wird auch ein Guru eine
  Alternative zum selbstgebastelten Hack kennenlernen.
\end{abstract}
%
\newpage
%
\tableofcontents
%
\newpage
%
\section{Gleitobjekte -- die richtige Schmierung}
%
\subsection{Allgemeines}
%
\subsubsection{Platzverweise}
%
\paragraph{Optionale Argumente.} Sowohl die |figure|"~~als auch die
|table|"=Umgebung besitzen ein optionales Argument, mit dem die
erlaubte Plazierung angegeben werden kann. Folgende Argumente sind
definiert:
\begin{labeling}{\bfseries b}
\item[\bfseries h] Hier. Bei den |*|-Formen der Umgebungen nicht
  erlaubt.
\item[\bfseries t] Oben. Wenn der Text, der bei einer |h|-Plazierung
  \emph{vor} diesem Gleitobjekt auf der laufenden Seite st"unde, auch
  noch \emph{nach} dem Gleitobjekt auf die Seite pa"st, erfolgt eine
  Plazierung oben auf \emph{dieser} Seite, sonst oben auf der
  \emph{n"achsten} Seite, und die laufende Seite wird mit dem auf das
  Gleitobjekt folgenden Text aufgef"ullt.
\item[\bfseries b] Unten. Wenn dieses Gleitobjekt noch unten auf die
  laufende Seite pa"st, erfolgt die Plazierung dort, der Platz bis
  dorthin wird mit dem auf das Gleitobjekt folgenden Text aufgef"ullt.
  Ist die laufende Seite dagegen schon zu weit mit Text gef"ullt, wird
  das Gleitobjekt unten auf der n"achsten Seite plaziert. Dieses
  Argument ist bei den |*|"~Formen der Umgebungen nicht erlaubt.
\item[\bfseries p] Das Gleitobjekt wird auf einer eigenen Seite
  ausgegeben, die durchaus auch mehrere Gleitobjekte enthalten kann.
\item[\bfseries !] Die im n"achsten Absatz besprochenen
  Plazierungsparameter werden ignoriert.
\end{labeling}
Die Voreinstellung f"ur das optionale Argument ist~|[tbp]|.  In der
Regel sollte man es dabei belassen, da Gleitobjekte als getrennte
Textebene gedacht sind, eine |h|"~Plazierung aber den Leseflu"s st"ort.
%
\paragraph{Plazierungsparameter.} Das Verhalten von \LaTeX{} bei der
Plazierung von Gleitobjekten wird durch Plazierungsparameter
gesteuert. Folgende Parameter sind definiert:
\begin{description}
\item[\textbackslash{}floatpagefraction] Minimaler Anteil einer Seite,
  der bei einer |p|"=Plazierung eines oder mehrerer Gleitobjekte
  erreicht werden mu"s. Voreinstellung:~0,5.
\item[\textbackslash{}topfraction] Maximaler Anteil einer Seite, der
  bei einer |t|"~Plazierung eines oder mehrerer Gleitobjekte erreicht
  werden darf. Voreinstellung:~0,7.
\item[\textbackslash{}bottomfraction] Maximaler Anteil einer Seite,
  der bei einer |b|"=Plazierung eines oder mehrerer Gleitobjekte
  erreicht werden darf. Voreinstellung:~0,3.
\item[\textbackslash{}textfraction] Minimaler Textanteil einer Seite,
  der bei einer |h|"~, |t|"~~oder |b|"~Plazierung eines Gleitobjektes
  erreicht werden mu"s. Voreinstellung:~0,2.
\end{description}
Einer der Werte |\topfraction| oder |\bottomfraction| sollte gr"o"ser
als |\floatpagefraction| sein. Diese Befehle k"onnen "uber
|\renewcommand| ge"andert werden. Weitere Parameter sind:
\begin{description}
\item[topnumber] Maximale Anzahl der Gleitobjekte mit |t|"~Plazierung
  auf der Seite. Voreinstellung:~2.
\item[bottomnumber] Maximale Anzahl der Gleitobjekte mit
  |b|"~Plazierung auf der Seite. Voreinstellung:~1.
\item[totalnumber] Maximale Anzahl der Gleitobjekte auf der gesamten
  Seite. Voreinstellung:~3.
\end{description}
Diese Z"ahler k"onnen "uber |\setcounter| ge"andert werden.
%
\paragraph{flafter.sty.} Dieses Paket erzwingt die Plazierung eines
Gleitobjektes \emph{nach} seiner Deklaration.  Damit kann das
Gleitobjekt fr"uhestens an der Stelle seines Aufrufs erscheinen, falls
eine |h|"~Plazierung m"oglich ist, ansonsten unten auf der laufenden
Seite oder oben auf der n"achsten Seite.
%
\paragraph{afterpage.sty.} Mit diesem Paket kann die Ausf"uhrung eines
Befehls verz"ogert werden, so da"s sie erst nach der Ausgabe der
laufenden Seite erfolgt. Mit
\begin{verbatim}
   \afterpage{\clearpage}
\end{verbatim}
wird z.\,B. die laufende Seite noch mit nachfolgendem Text aufgef"ullt,
bevor der |\clearpage|-Befehl die unmittelbare Ausgabe aller
anstehenden Gleitobjekte erzwingt.

Besonders praktisch ist diese M"oglichkeit bei |longtable|-Umgebungen
(siehe Abschnitt~\vref{sec:longtable}), deren Ausgabe auf diese Weise
erst oben auf der n"achsten Seite beginnt. So wird vermieden, da"s sich
unten auf der laufenden Seite nur wenige Tabellenzeilen befinden.
%
\paragraph{endfloat.sty.} Dieses Paket schiebt alle
Gleitobjekte an das Ende des Dokumentes und erzeugt dabei auf Wunsch
Abbildungs"~~und Tabellenverzeichnisse sowie Markierungen im Text an
den Stellen, wo die Gleitobjekte deklariert wurden.

Dies ist nicht nur f"ur Ver"offentlichungen praktisch, sondern auch f"ur
Texte mit einem sehr hohen Gleitobjektanteil. In solchen F"allen lassen
sich die vielen Gleitobjekte nicht mehr sinnvoll im Text anordnen, so
da"s eine Plazierung am Ende des Textes besser ist.  Dieses Verhalten
erreicht man etwa mit
\begin{verbatim}
   \usepackage[nolists,nomarkers]{endfloat}
   \renewcommand{\efloatseparator}{}
\end{verbatim}
Auf diese Weise werden keine Verzeichnisse und keine Markierungen im
Text erzeugt. Au"serdem wird der Seitenumbruch zwischen den
Gleitobjekten (Voreinstellung) unterdr"uckt.
%
\paragraph{lscape.sty.} Dieses Paket stellt eine
|landscape|-Umgebung zur Verf"ugung, in der die Textseite (au"ser den
Kopf"~~und Fu"szeilen) um 90\textdegree{} gegen den Uhrzeigersinn
gedreht wird. Es geh"ort zum |graphics|-B"undel (siehe
Abschnitt~\vref{sec:graphicx}) und erfordert/erkennt die gleichen
Optionen.
%
\paragraph{varioref.sty.} Dieses Paket stellt verbesserte Querverweise
zur Verf"ugung. Mit
\begin{verbatim}
   \vref{marke}
\end{verbatim}
wird zus"atzlich zur Nummer ein Hinweis auf die Seite erzeugt: Befindet
sich die Marke auf der n"achsten oder vorigen Seite, werden
entsprechende Texte ausgegeben, ist die Marke mehr als eine Seite von
dem Querverweis entfernt, wird die Seitenzahl explizit angegeben.
Stehen Marke und Querverweis auf einer Seite, wird die zus"atzliche
Information unterdr"uckt. Das Paket erkennt diverse Sprachen als
Optionen, die ausgegebenen Texte k"onnen konfiguriert werden.

Probleme k"onnen entstehen, wenn ein Seitenumbruch in dem erg"anzenden
Text auftritt. In solchen F"allen kann es passieren, da"s der
Querverweis st"andig zwischen den Seiten hin und her springt und einen
Fehler produziert. Mit dem Befehl |\vrefwarning| im Vorspann wird ein
solcher Fehler in eine Warnung umgewandelt.

H"aufig werden die ersten Querverweise auf Gleitobjekte halbfett
gesetzt, damit man die zugeh"orige Erl"auterung schnell findet. In
solchen F"allen ist es unerw"unscht, da"s der gesamte Text halbfett
gesetzt wird, etwa \textbf{"`Abbildung~1 auf Seite~19"'.} Dies kann
durch Konfiguration der vom |varioref|-Paket benutzten Texte ge"andert
werden:
\begin{verbatim}
   \renewcommand{\reftextcurrent}{\normalfont auf dieser 
     Seite}
   \renewcommand{\reftextbefore}{\normalfont auf der
     \reftextvario{vorigen}{vorangehenden} Seite}
   \renewcommand{\reftextfacebefore}{\normalfont auf der
     \reftextvario{linken}{ge\-gen\-\"uber\-lie\-gen\-den}
       Seite}
   \renewcommand{\reftextafter}{\normalfont auf der
     \reftextvario{n\"ach\-sten}{folgenden} Seite}
   \renewcommand{\reftextfaceafter}{\normalfont auf der
     \reftextvario{rechten}{ge\-gen\-\"uber\-lie\-gen\-den} 
       Seite}
   \renewcommand{\reftextfaraway}[1]{\normalfont auf 
     Seite~\pageref{#1}}
\end{verbatim}
%
\subsubsection{Legendenbildung}
%
Legenden stehen nie in der Grundschriftart, weil sie eine vom
Haupttext getrennte Ebene darstellen. Die Schriftart sollte daher
kontrastieren, darf aber nicht schwer zu lesen sein. Deshalb bietet
sich die Kursive (|\itshape|) an, eventuell auch die Schriftmischung
mit der Grotesk (|\sffamily|). Legenden werden flatternd gesetzt
(|\raggedright|) und sinngerecht umgebrochen (|\protect\\|).

Die Abst"ande zum Gleitobjekt m"ussen stets einheitlich sein.  Da
\LaTeX{} Legenden stets \emph{unter} dem Gleitobjekt erwartet, stimmen
die Abst"ande nicht, wenn man, wie im Buchdruck "ublich, Tabellen mit
einer Überschrift versieht. Folgende Kommandos helfen hier weiter:
\begin{verbatim}
   \newcommand{\tablecaption}{%
     \setlength{\abovecaptionskip}{0pt}
     \setlength{\belowcaptionskip}{10pt}
     \caption%
   }
   \newcommand{\figurecaption}{%
     \setlength{\abovecaptionskip}{10pt}
     \setlength{\belowcaptionskip}{0pt}
     \caption%
   }
\end{verbatim}
Statt |\caption| wird dann in Tabellen |\tablecaption| benutzt, in
Abbildungen |\figurecaption|.
%
\paragraph{caption2.sty.} Dieses Paket erlaubt die einheitliche
Formatierung von Legenden. Es vertr"agt sich mit dem |longtable|-Paket
(Abschnitt~\vref{sec:longtable}), mu"s aber nach diesem geladen werden.
\begin{verbatim}
   \usepackage[footnotesize,hang,nooneline]{caption2}
\end{verbatim}
erzeugt etwa Legenden in Fu"snotengr"o"se, die mit h"angendem Einzug
versehen sind, auch einzeilige Legenden werden nicht zentriert. Die
Schriftart f"ur die Marke und den Legendentext selbst kann etwa mit
\begin{verbatim}
   \renewcommand{\captionfont}{%
     \normalfont\itshape\footnotesize%
   }
   \renewcommand{\captionlabelfont}{%
     \normalfont\bfseries\footnotesize%
   }
\end{verbatim}
ver"andert werden. Das Trennzeichen kann man etwa mit
\begin{verbatim}
   \renewcommand{\captionlabeldelim}{.}
\end{verbatim}
anpassen, wenn einem der Doppelpunkt (Voreinstellung) nicht gef"allt.

Mit der Option |longtable| wird die Voreinstellung des gleichnamigen
Paketes f"ur die Breite der Legenden (4\,Zoll) "ubersteuert und somit
eine einheitliche Behandlung aller |\caption|-Befehle erreicht.
%
\subsection{Abbildungen}
%
Bei einspaltigen Texten wird man meist die Abbildungen auf Textbreite
skalieren, damit sie sich harmonisch in den Satzspiegel einf"ugen.  Im
mehrspaltigen Satz ist darauf zu achten, da"s bei der Skalierung von
mehreren, nebeneinander gesetzten Bildern sich die Breite der
einzelnen Bilder entweder mit der Spaltenbreite deckt oder sich
deutlich von ihr unterscheidet. Ebenso sollte die H"ohe mehrerer,
nebeneinander gesetzter Bilder entweder "ubereinstimmen oder stark
kontrastieren.
%
\subsubsection{Gemachte Betten}
%
\paragraph{graphicx.sty.}\label{sec:graphicx} Dieses Paket geh"ort zum
|graphics|-B"undel und dient der Einbindung von Graphiken. Die
Graphikeinbindung ist treiberabh"angig, daher mu"s dem Paket entweder
mit einer Option (etwa |dvips|) oder mit einer Datei |graphics.cfg|,
die im Eingabepfad f"ur |tex|-Dateien zu finden sein mu"s, mitgeteilt
werden, welcher Treiber verwendet wird. In der Konfigurationsdatei
steht etwa ein Eintrag der Form
\begin{verbatim}
   \ExecuteOptions{dvips}
\end{verbatim}
Zur Zeit werden u.\,a. die Optionen |emtex|, |dviwin|, |xdvi| und
|dvips| unterst"utzt, wobei |dvips| die meisten Features bietet.

Der wichtigste Befehl des Paketes ist |\includegraphics| und hat
zahlreiche Optionen. Ein typisches Beispiel:
\begin{verbatim}
   \includegraphics[trim=1cm 0cm 2cm
     0.5cm,clip,angle=90,width=\columnwidth]{file} 
\end{verbatim}
Damit wird die Bounding Box der |eps|-Datei nach innen verschoben, und
zwar links um 1\,cm, unten um 0\,cm, rechts um 2\,cm und oben um
0,5\,cm. Danach wird die Graphik auf diese neue Bounding Box
zurechtgeschnitten, um 90\textdegree{} gedreht (gegen den
Uhrzeigersinn) und dann auf Spaltenbreite skaliert.  Entsprechend kann
man auf etwa 40\,\% der Texth"ohe skalieren, um bei geeignet
gew"ahlten Positionierungsparametern mehrere Abbildungen oben auf der
Seite zu plazieren. Die Reihenfolge der Optionen ist insbesondere bei
der Drehung von Graphiken nicht beliebig!

F"ur die Graphikdateien kann etwa mit
\begin{verbatim}
   \graphicspath{{eps/}{tiff/}}
\end{verbatim}
ein Suchpfad angegeben werden. Standardm"a"sig werden Graphikdateien in
den Verzeichnissen gesucht, in denen auch |tex|-Dateien gesucht
werden.

Das |graphicx|-Paket erm"oglicht auch das Drehen von Text, etwa in
gest"urzten Tabellenk"opfen (die von rechts lesbar sein m"ussen):
\begin{verbatim}
   \rotatebox{90}{gestuerzter Eintrag}
\end{verbatim}
Gest"urzte Tabellenk"opfe innerhalb von |landscape|-Umgebungen m"ussen
dagegen um 270\textdegree{} gedreht werden, da sie sonst bei normaler
Haltung des Buches auf dem Kopf st"unden.

M"ochte man grunds"atzlich alle Dateien auf die Bounding Box
zurechtschneiden und auf Spaltenbreite skalieren, kann man mit
\begin{verbatim}
   \setkeys{Gin}{clip,width=\columnwidth}
\end{verbatim}
diese Optionen als Standard festlegen.
%
\subsubsection{Buchst"ablich rausgeworfen}
%
\paragraph{psfrag.sty.} Dieses Paket erlaubt die Beschriftung
von |eps|-Bildern mit \LaTeX{} und verbindet so die einfache
Erstellung von Graphiken mit |xfig|, |xmgr| oder CorelDraw mit der
Leistungsf"ahigkeit von \LaTeX{} im Formelsatz. Dazu sind das
|graphics|-B"undel sowie ein Postscript-Treiber, etwa |dvips|,
erforderlich. Ein typisches Beispiel:
\begin{verbatim}
   \psfrag{marke-in-eps-datei}{$e^{\pi\mathrm{i}}+1=0$}
\end{verbatim}
Damit wird eine im Zeichenprogramm zuvor mit der Textfunktion gesetzte
Marke durch einen \LaTeX-Ausdruck ersetzt. Dieser Befehl mu"s
\emph{vor} dem jeweiligen |\includegraphics|-Befehl stehen, die
angegebene Marke \emph{exakt} mit dem Text im Zeichenprogramm
"ubereinstimmen. Eine solche Text\-erset\-zung gilt f"ur die gesamte
laufende Umgebung, daher kann man direkt nach |\begin{document}|
globale Ersetzungen festlegen.

Manche Zeichenprogramme schreiben jeden Buchstaben der Marke einzeln
in die Postscript"=Datei, so da"s die Ersetzung mit |psfrag| nicht mehr
funktioniert. In solchen F"allen kann man sich mit Dummy-Texten
behelfen, die nur aus einem Buchstaben bestehen.
%
\subsection{Tabellen}
%
\subsubsection{Tafeln, wie sie im Buche stehen}
%
Strenge Tabellen, wie man sie in "alteren B"uchern finden kann, sind
meist "ubersichtlicher als die modernen, mit "`Auto Layout"'
verunstalteten Varianten: Meist werden statt der K"astchenl"osung
ausschlie"slich horizontale Linien verwendet, und die Ausrichtung der
Tabelle erfolgt konsequent zur Linksachse. Bei unterschiedlich hohen
Tabellenzeilen wirkt ein "ubergeordnetes Raster beruhigend, bei
unklarer Zuordnung der Spalten"uberschriften helfen unterbrochene,
horizontale Linien.
%
\paragraph{booktabs.sty.} Dieses Paket stellt Befehle zur Verf"ugung,
mit denen derartige Tafeln auf einfache Weise gesetzt werden
k"onnen. In der Dokumentation werden weitere Hinweise zum Layout von
Tabellen gegeben:
\begin{itemize}
\item Keine vertikalen Linien benutzen.
\item Keine doppelten Linien benutzen.
\item Einheiten stehen im Tabellenkopf.
\item F"uhrende Nullen werden ausgeschrieben.
\item Keine Unterf"uhrungszeichen benutzen, sondern das Feld entweder
  leer lassen oder den Eintrag wiederholen.
\end{itemize}
Folgende Befehle stehen u.\,a. zur Verf"ugung:
\begin{verbatim}
   \toprule
   \midrule
   \bottomrule
\end{verbatim}
Sie werden zum Setzen der etwas dickeren Kopf"~~und Fu"slinie bzw. der
etwas d"unneren Halslinie benutzt. Mit
\begin{verbatim}
   \addlinespace
\end{verbatim}
schafft man vertikalen Abstand, um un"ubersichtlich viele Linien in der
Tabelle zu vermeiden. Mit
\begin{verbatim}
   \cmidrule(r){1-2}\cmidrule(lr){3-4}\cmidrule(l){5-6}
\end{verbatim}
setzt man beispielsweise Linien "uber die Spalten 1 und 2, 3 und 4 bzw.
5~und 6, die sich nicht ber"uhren. Ohne das Argument in runden Klammern
unterbleibt diese "`Trimmung"'. Solche Linien helfen dabei, den
Geltungsbereich von kurzen Spalten"uberschriften eindeutig zu kl"aren.

Leider erzeugen die Befehle |\toprule|, |\midrule| und |\bottomrule|
bei der Verwendung in |longtable|-Umgebungen Linien "uber die gesamte
Satzbreite. Abhilfe schaffen folgende Befehle,
\begin{verbatim}
   \newcommand{\LTtoprule}[1]{%
     \\
     \cmidrule[\heavyrulewidth]{#1}
   }
   \newcommand{\LTmidrule}[1]{%
     \cmidrule[\lightrulewidth]{#1}
   }
   \newcommand{\LTbottomrule}[1]{%
     \cmidrule[\heavyrulewidth]{#1}
   }
\end{verbatim}
die dann mit etwas Handarbeit (Z"ahlen der Spalten) das Gew"unschte
leisten, etwa wie folgt:
\begin{verbatim}
   \LTtoprule{1-4}
\end{verbatim}
%
\paragraph{multirow.sty.} Dieses Paket stellt den |\multirow|-Befehl
zur Verf"ugung, eine Entsprechung zum |\multicolumn|-Befehl, mit der
man mehrere Felder einer Zeile zu einem flatternd gesetzten Feld
definierter Breite zusammenfassen kann.

Das erste Argument des |\multirow|-Befehls ist die Zeilenzahl, das
zweite die Satzbreite des Feldes. Das dritte, optionale Argument dient
zur Feinjustierung der vertikalen Ausrichtung. Der Benutzer mu"s daf"ur
sorgen, da"s die f"ur den |\multirow|-Befehl reservierten Felder
tats"achlich \emph{leer} bleiben. Ben"otigt der Text mehr Zeilen als
angegeben, wird der darunter stehende Text "uberschrieben. Ist zuviel
Platz reserviert worden, wird der Text vertikal zentriert, wie im
folgenden Beispiel:
\begin{flushleft}
\hspace{18pt}%
\begin{tabular}{@{}lll}
  \multirow{3}{1cm}{Zu kurz!} & 1 & 
  \multirow{3}{1cm}[0.22ex]{Nicht zu kurz!} \\
                              & 2           \\
                              & 3
\end{tabular}
\end{flushleft}
wurde mit
\begin{verbatim}
   \begin{tabular}{@{}lll}
     \multirow{3}{1cm}{Zu kurz!} & 1 & 
     \multirow{3}{1cm}[0.22ex]{Nicht zu kurz!} \\
                                 & 2           \\
                                 & 3
   \end{tabular}
\end{verbatim}
erzeugt. 
%
\paragraph{tabularx.sty.} Mit diesem Paket kann eine festgelegte
Tabellenbreite erreicht werden. Dabei wird \emph{nicht} der Platz
zwischen den Spalten vergr"o"sert (wie bei der |tabular*|-Umgebung),
sondern die Spalten selbst werden verbreitert. Das folgende Beispiel
deklariert eine Tabelle mit zwei linksb"undigen Spalten und einer
Spalte, deren Breite so festgelegt wird, da"s 80\,\% der Satzbreite
erreicht werden:
\begin{verbatim}
   \begin{tabularx}{0.8\textwidth}{llX}
\end{verbatim}
%
\subsubsection{Zahlen "uber Zahlen}
%
\paragraph{longtable.sty.} \label{sec:longtable} Mit diesem Paket kann
man mehrseitige Tabellen automatisch umbrechen lassen. Die
|longtable|-Umgebung benutzt den gleichen Z"ahler wie die
|table|-Umgebung, der |\caption|-Befehl erzeugt einen Eintrag in der
|lot|-Datei. Horizontale Linien, die mit Seitenumbr"uchen
zusammenfallen, werden automatisch verdoppelt. Mit dem optionalen
Argument k"onnen Tabellen linksb"undig, zentriert (Voreinstellung) oder
rechtsb"undig gesetzt werden. Ein Umbruch innerhalb eines |p|-Feldes
ist nicht m"oglich, Fu"snoten in |p|-Spalten sind dagegen erlaubt.
M"ochte man Fu"snoten auch im Tabellenkopf verwenden, m"ussen
|\footnotemark| sowie (auf der gleichen Seite im Hauptteil der
Tabelle) |\footnotetext| benutzt werden.  Ein Tabellenkopf oder~"~fu"s
kann automatisch an jedem Seitenbeginn bzw.~"~ende wiederholt werden.
Zur manuellen Steuerung von Umbr"uchen sind die normalen \LaTeX-Befehle
|\nopagebreak| und |\newpage| verwendbar.

Das |longtable|-Paket arbeitet mit |caption2.sty| zusammen und bietet
verschiedene M"oglichkeiten, Legenden zu erzeugen.  Die Überschrift der
ersten Tabellenseite erzeugt man etwa mit:
\begin{verbatim}
   \caption[Kurzer Text fuer lot-Datei]{Langer Text}
\end{verbatim}
Soll auch auf den weiteren Tabellenseiten eine Überschrift gesetzt werden, kann
man hierzu beispielsweise
\begin{verbatim}
   \caption[]{Langer Text, anders als Hauptueberschrift}
\end{verbatim}
verwenden. Überschriften werden mit 4~Zoll Satzbreite (Voreinstellung)
gesetzt. Den |\label|-Befehl bringt man am besten im Tabellenkopf der
ersten Seite unter (vor |\endfirsthead|).

Leider funktioniert das |longtable|-Paket weder mit der
|twocolumn|-Option noch mit der |multicols|-Umgebung.
%
\paragraph{ltxtable.sty.} Dieses Paket verbindet die M"oglichkeiten von
|longtable| und |tabularx|, erlaubt also mehrseitige Tabellen mit
automatischem Seitenumbruch und automatischer Anpassung an eine
bestimmte Breite.

Die Tabelle steht dabei in einer eigenen Datei und wird etwa wie folgt
deklariert:
\begin{verbatim}
   \begin{longtable}{llX}
\end{verbatim}
Die Einbindung in das Dokument erfolgt dann etwa mit
\begin{verbatim}
   \LTXtable{0.8\textwidth}{file}
\end{verbatim}
%
\paragraph{array.sty.} Dieses Paket erweitert die
|tabular|"~~und die |array|"=Umgebung um n"utzliche Optionen zur
Spaltenformatierung. Mit
\begin{verbatim}
   >{\raggedright}p{2.1cm}
\end{verbatim}
kann beispielsweise eine flatternd gesetzte Spalte mit definierter
Breite deklariert werden, mit
\begin{verbatim}
   >{$}l<{$}
\end{verbatim}
erh"alt man eine linksb"undige Spalte f"ur Formeln.

Der Befehl |@{Ausdruck}| \emph{ersetzt} den Abstand zwischen den
Spalten durch den angegebenen Ausdruck, der Befehl |!{Ausdruck}| f"ugt
den Ausdruck \emph{zus"atzlich} zum Abstand hinzu. Mit
\begin{verbatim}
   p{2cm}m{2cm}b{2cm}
\end{verbatim}
werden drei Flie"stextspalten erzeugt. Die linke schlie"st oben b"undig
mit der laufenden Zeile ab, die mittlere wird vertikal an der
laufenden Zeile zentriert, w"ahrend die dritte unten b"undig mit der
laufenden Zeile abschlie"st.

Besonders praktisch ist die M"oglichkeit, h"aufig vorkommende
Spaltendeklarationen als eigenen Spaltentyp zu definieren:
\begin{verbatim}
   \newcolumntype{L}{>{$}l<{$}}
\end{verbatim}
deklariert einen neuen Spaltentyp |L|, der in Tabellen eine
Formelspalte erzeugt. In der |array|-Umgebung w"urde dagegen auf diese
Weise eine Textspalte erzeugt, da das Dollar-Zeichen ein Toggle ist.
Auch Kombinationen wie |>{\bfseries}L| sind ohne Schwierigkeiten
m"oglich, ebenso k"onnen Argumente benutzt werden:
\begin{verbatim}
   \newcolumntype{P}[1]{>{\raggedright\footnotesize}p{#1}}
\end{verbatim}
erzeugt eine flatternd gesetzte Spalte in Fu"snotengr"o"se, deren Breite mit
dem Argument angegeben werden kann.
%
\paragraph{dcolumn.sty.} Dieses Paket erm"oglicht die
Ausrichtung von Spalten an Dezimaltrennzeichen. Mit
\begin{verbatim}
   D{,}{.}{2}
\end{verbatim}
wird etwa eine Spalte mit zwei Nachkommastellen deklariert, die
rechtsb"undig im Mathematikmodus gesetzt wird. Dabei wird (z.\,B. f"ur
einen englischen Text) das in der |tex|-Datei verwendete Dezimalkomma
f"ur die |dvi|-Datei in einen Dezimalpunkt umgewandelt. H"aufig
vorkommende Spaltendeklarationen kann man wie beim |array|-Paket
abk"urzen.

Bei breiten Spalten"uberschriften sind kurze, rechtsb"undig
ausgerichtete Felder unsch"on. Besser ist in solchen F"allen, die Zahl
mit den meisten Stellen vor dem Komma linksb"undig zu setzen und den
Rest der Spalte an deren Dezimaltrennzeichen auszurichten. Leider kann
man keine linksb"undigen Spalten mit Dezimaltrennzeichen deklarieren,
sondern lediglich mit beispielsweise
\begin{verbatim}
   D{.}{\cdot}{5.2}
\end{verbatim}
alle Zahlen so in der Spalte zentrieren lassen, als h"atten sie f"unf
Vor"~~und zwei Nachkommastellen. Hier ist also Handarbeit n"otig.
%
\section{Pakete -- an den Quellen}
%
\subsection{Beschaffung}
%
\subsubsection{FTP-Server}
%
Die Quelle f"ur Software jeglicher Art zu \TeX{} und \LaTeX{} sind die
CTAN-Server, in Deutschland ist das
\begin{verbatim}
   ftp://ftp.dante.de/tex-archive/
\end{verbatim}
mit zahlreichen Spiegelungen. Ist der Name eines Paketes bekannt, kann
man das Suchformular unter der Adresse
\begin{verbatim}
   http://www.dante.de/cgi-bin/ctan-index
\end{verbatim}
benutzen, um das Verzeichnis zu finden, in dem es abgelegt ist.
%
\subsubsection{Der \LaTeX-Katalog}
%
Sucht man dagegen Informationen dar"uber, was f"ur Zusatzpakete und
Hilfsprogramme es zu \TeX{} und \LaTeX{} "uberhaupt gibt, hilft der
\LaTeX-Katalog, eine alphabetisch sortierte Liste, die meist mit
Querverweisen zum entsprechenden Verzeichnis versehen ist. Bei einer
Stichwortsuche in
\begin{verbatim}
   CTAN: help/Catalogue/catalogue.html
\end{verbatim}
findet man meist f"ur das Problem geeignete Pakete.
%
\subsection{Installation}
%
Ein komplettes \LaTeXe-Paket besteht meist aus dem
Installationsskript, einer |ins|-Datei, und dem Archiv, einer
|dtx|-Datei, die mit Hilfe von |docstrip| bearbeitet wird. Es
empfiehlt sich aber immer, die Dokumentation in den jeweiligen
Verzeichnissen auf CTAN zu lesen.
%
\subsubsection{Verpackung}
%
Nachdem das Paket auf dem heimischen Rechner vorhanden ist, mu"s es
noch ausgepackt werden. Dies geschieht beispielsweise mit dem folgenden
Befehl:
\begin{verbatim}
   tex package.ins
\end{verbatim}
Dadurch werden diverse Dateien erzeugt, die noch in die entsprechenden
Verzeichnisse verschoben werden m"ussen.
%
\subsubsection{Dokumentation}
%
Das sch"onste Paket n"utzt nicht viel, wenn es nicht dokumentiert ist.
Mit dem Befehl
\begin{verbatim}
   latex package.dtx
\end{verbatim}
wird die Dokumentation als |dvi|-Datei erzeugt, je nach Paket sind
auch noch Durchl"aufe mit |bibtex| oder |makeindex| notwendig.
%
\subsection{Hilfe}
%
Die sch"onste Dokumentation n"utzt nicht viel, wenn sie nicht gelesen
wird. Zum Gl"uck lassen sich die meisten Probleme mit der vorhandenen
Dokumentation l"osen, die in der Regel ausf"uhrlich und genau ist. Also:
RTFM!
%
\subsubsection{Gedrucktes}
%
\paragraph{Anleitungen}
%
\begin{labeling}{|usrguide.dvi|}
\item[|usrguide.dvi|] Hinweise f"ur Umsteiger von \LaTeX\,2.09, aber
  auch f"ur Anf"anger, da hier das Konzept der Klassen und Pakete
  erl"autert wird. Sollte man kennen.
\item[|fancyhdr.dvi|] Hinweise zum Seitenlayout, zur Erstellung von
  Kopf"~~und Fu"szeilen und zur Plazierung von Gleitobjekten. Sollte
  man kennen.
\item[|epslatex.ps|] Hinweise zur Graphikeinbindung in \LaTeXe. Sollte
  man kennen.
\item[|modguide.dvi|] Hinweise zur Verteilung und Änderung der
  Bestandteile von \LaTeXe. F"ur Fortgeschrittene.
\item[|cfgguide.dvi|] Hinweise zur Konfiguration von Schriftarten und
  Trennmustern in \LaTeXe{}. F"ur Fortgeschrittene.
\item[|clsguide.dvi|] Hinweise f"ur Paket- und Klassenautoren.
\item[|fntguide.dvi|] Hinweise zur Auswahl, Installation und Codierung
  von Schriftarten in \LaTeXe{}. F"ur Paket- und Klassenautoren.
\end{labeling}
%
\paragraph{B"ucher}
%
\begin{itemize}
\item \textsc{Kopka, H.}: \emph{\LaTeX}. Addison-Wesley, 1994.
\item \textsc{Goossens, M.} et al.: \emph{Der \LaTeX-Begleiter}.
  Addison-Wesley, 1995.
\item \textsc{Goossens, M.} et al.: \emph{The \LaTeX{} Graphics
  Companion}. Addison-Wesley-Longman, 1997.
\end{itemize}
%
\subsubsection{Elektronisches}
%
\paragraph{FAQ}
%
\begin{itemize}
\item \url{http://www.dante.de/dante/dante-faq.html}
\end{itemize}
%
\paragraph{News-Gruppen}
%
\begin{itemize}
\item \url{de.comp.text.tex}
\item \url{comp.text.tex}
\end{itemize}
%
\paragraph{Mailing-Listen}
%
\begin{itemize}
\item \url{tex-d-l} (\url{listserv@vm.gmd.de})
\item \url{TeX-Euro} (\url{listserv@urz.uni-heidelberg.de})
\item \url{emtex-user} (\url{majordomo@physik.tu-berlin.de})
\item \url{tetex} (\url{majordomo@informatik.uni-hannover.de})
\end{itemize}
%
\end{document}