summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex
blob: 8c6bb892e476e0749e8ec7d6c34b180b0681f2e7 (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
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
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
\setchapterpreamble{\tudhyperdef'{sec:packages}}
\chapter{Benötigte, unterstützte und empfehlenswerte Pakete}
\index{Kompatibilität|?}%
%
\section{Notwendige und ergänzende Pakete}
\tudhyperdef*{sec:packages:needed}%
%
\subsection{Erforderliche Pakete bei der Schriftinstallation}
%
Für die Installation der Schriften sind die folgend genannten Pakete von
\emph{essentieller} Bedeutung und daher \emph{zwingend} notwendig. Das 
Vorhandensein dieser wird durch die jeweiligen Schriftinstallationsskripte
(\seeref{\autoref{sec:install}}) geprüft und die Installation beim Fehlen eines 
oder mehrerer Pakete mit einer entsprechenden Warnung abgebrochen.
%
\begin{packages}
\item[fontinst](fontware)
  Dieses Paket wird für die Installation der Schriften \Univers sowie \DIN 
  benötigt. Weiterhin ist \Package{fontware} der \hologo{LaTeX}"=Distribution 
  für die Schriftkonvertierung notwendig.
\item[cmbright,hfbright,cm-super]
  Alle mathematischen Glyphen und Symbole, die nicht in den \Univers"~Schriften 
  enthalten sind, werden diesem Paket entnommen. Außerdem werden für die 
  \PValue{T1}"~Schriftkodierung die beiden Pakete \Package{cm-super} und 
  \Package{hfbright} benötigt. Aus dem Paket \Package{lmodern} werden 
  zusätzlich die \texttt{Schreibmaschinenschriften} verwendet.
\item[iwona]
  Sowohl für \Univers als auch für \DIN werden fehlenden Glyphen entnommen.
\end{packages}



\subsection{Notwendige Pakete für die Verwendung der Hauptklassen}
Diese Pakete werden von den neuen Klassen zwingend benötigt und automatisch 
geladen, falls dies nicht durch den Anwender in der Präambel geschieht.
%
\begin{packages}
\item[koma-script,typearea,scrlayer-scrpage,scrbase]
  \begin{Declaration*}{\Class{scrbook}}
  \begin{Declaration*}{\Class{scrreprt}}
  \begin{Declaration*}{\Class{scrartcl}}
  \begin{Declaration*}{\Class{scrlttr2}}
  \ChangedAt{%
    v2.02:Paket \Package{scrlayer-scrpage} ist für \TUDScript unabdingbar%
  }%
  Das \KOMAScript-Bundle ist die zentrale Grundlage für \TUDScript. Neben den 
  Klassen \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} wird das Paket 
  \Package{scrbase} benötigt. Dieses erlaubt das Definieren von Klassenoptionen 
  im Stil von \KOMAScript, welche auch noch nach dem Laden der Klasse mit den 
  Befehlen \Macro{TUDoption} und \Macro{TUDoptions} geändert werden können. Für 
  die Bereitstellung der \PageStyle{tudheadings}"=Seitenstile ist das Paket 
  \Package{scrlayer-scrpage} notwendig. Wenn es nicht durch den Anwender~-- mit 
  beliebigen Optionen~-- geladen wird, erfolgt dies am Ende der Präambel 
  automatisch durch \TUDScript.
  \end{Declaration*}
  \end{Declaration*}
  \end{Declaration*}
  \end{Declaration*}
\item[kvsetkeys]
  Hiermit wird das von \Package{scrbase} geladene Paket \Package{keyval} 
  verbessert, welches das Definieren von Klassen"~ und Paketoptionen sowie 
  Parametern nach dem Schlüssel"=Wert"=Prinzip ermöglicht. Das Verhalten für 
  unbekannte Schlüssel  kann mit \Package{kvsetkeys} festgelegt werden.
\item[etoolbox]
  Es werden viele Funktionen zum Testen und zur Ablaufkontrolle bereitgestellt 
  und das einfache Manipulieren vorhandener Makros ermöglicht.
\item[geometry]
  \index{Satzspiegel}%
  Das Paket wird zum Festlegen der Seitenränder respektive des Satzspiegels 
  verwendet. Ein Weiterreichen zusätzlicher Optionen an das Paket wird 
  dringlich nicht empfohlen.
\item[textcase]
  \index{Schriftauszeichnung}%
  Mit dem Befehl \Macro{MakeTextUppercase}(\Package{textcase})'none' wird bei
  Überschriften in \DIN die Großschreibung erzwungen. Im \emph{Ausnahmefall} 
  kann dies mit \Macro{NoCaseChange}(\Package{textcase}) unterbunden werden.
\item[trimspaces]
  Bei mehreren Eingabefeldern für den Anwender werden die Argumente mithilfe 
  dieses Paketes um eventuell angegebene, unnötige Leerzeichen befreit.
\item[graphicx]
  \index{Grafiken}%
  Dies ist das De"~facto"~Standard"~Paket zum Einbinden von Grafiken. Zum 
  Setzen des Logos der \TnUD im Kopf sowie aller weitere Abbildungen und Logos 
  wird \Macro{includegraphics}(\Package{graphicx})'none' genutzt.
\item[xcolor]
  \index{Farben}%
  Damit werden die Farben des \CDs zur Verwendung im Dokument definiert. 
  Genaueres ist bei der Beschreibung von \Package{tudscrcolor}'auto' zu finden. 
  Ein Laden beider Pakete in der  Präambel durch den Nutzer ist problemlos 
  möglich.
\item[environ]
  \index{Befehlsdeklaration}%
  Es wird eine verbesserte Deklaration von Umgebungen ermöglicht, bei der auch 
  beim Abschluss der Umgebung auf die übergebenen Parameter zugegriffen werden 
  kann. Dies wird die Neugestaltung der \Environment{abstract}"=Umgebung 
  benötigt.
\end{packages}
%
Möchten Sie eines der hier aufgezählten Pakete selber nutzen, es jedoch mit 
bestimmten Optionen laden, so sollten diese bereits \emph{vor} der Definition 
der Dokumentklasse an das Paket weitergereicht werden, falls bei der 
Beschreibung nichts anderweitiges angegeben worden ist.
%
\begin{Example}
Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen:
\begin{Code}[escapechar=§]
\PassOptionsToPackage§\Parameter{Paketoptionen}\Parameter{Paket}§
\documentclass§\OParameter{Klassenoptionen}\PParameter{tudscr\dots}§
\end{Code}
\end{Example}



\subsection{Durch \TUDScript unterstütze Pakete}
%
Einige der unter \autoref{sec:packages:recommended} beschriebenen Pakete werden 
durch \TUDScript direkt unterstützt und erweitern dessen Funktionalität. Dies
sind namentlich \Package{hyperref}, \Package{isodate}, \Package{multicol}, 
\Package{quoting}, \Package{ragged2e} und \Package{crop}. Weitere Informationen 
dazu ist den nachfolgenden Beschreibung des jeweiligen Paketes zu entnehmen.



\newcommand*\RecPack{%
  \hyperref[sec:packages:recommended]{Paketbeschreibung}:\xspace%
}
\section{Empfehlenswerte Pakete}
\tudhyperdef*{sec:packages:recommended}%
%
In diesem \autorefname wird eine Vielzahl an Paketen~-- zumeist kurz~-- 
vorgestellt, welche sich für mich persönlich bei der Arbeit mit \hologo{LaTeX} 
bewährt haben. Einige davon werden außerdem im Tutorial \Tutorial{treatise} in 
ihrer Anwendung beschrieben. Für detaillierte Informationen sowie bei Fragen zu 
den einzelnen Paketen sollte die jeweilige Dokumentation%
\footnote{Kommandozeile/Terminal: \Path{texdoc\,\PName{Paketname}}}
zu Rate gezogen werden, das Lesen der hier gegebenen Kurzbeschreibung ersetzt 
dies in keinem Fall. 


\subsection{Pakete zur Verwendung in jedem Dokument}
Die hier vorgestellten Pakete gehören meiner Meinung nach in die Präambel eines 
jeden Dokumentes. Egal, in welcher Sprache das Dokument verfasst wird, sollte 
diese mit dem Paket \Package{babel} definiert werden~-- auch wenn dies 
Englisch ist. Für deutschsprachige Dokumente ist für eine annehmbare 
Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden.

\begin{packages}
\item[fontenc]
  \index{Zeichensatzkodierung}%
  Das Paket erlaubt Festlegung der Zeichensatzkodierung des Ausgabefonts. Als 
  Voreinstellung ist die Ausgabe als 7"~bit kodierte Schrift gewählt, was unter 
  anderem dazu führt, dass keine echten Umlaute im erzeugten PDF"~Dokument 
  verwendet werden. Um auf 8"~bit"~Schriften zu schalten, ist
  \Macro*{usepackage}[\POParameter{T1}\PParameter{fontenc}] zu nutzen.
\item[selinput,inputenc]
  \index{Eingabekodierung}%
  \index{Minimalbeispiel|?}%
  Hiermit erfolgt die (automatische) Festlegung der Eingabekodierung. Diese ist 
  vom genutzten \hyperref[sec:tips:editor]{Editors (\autoref{sec:tips:editor})} 
  und den darin gewählten Einstellung abhängig. Mit:
  \begin{Code}
    \usepackage{selinput}
    \SelectInputMappings{adieresis={ä},germandbls={ß}}
  \end{Code}\vspace{-\baselineskip}%
  wird es verwendet. Dies macht den Quelltext zum einen für unterschiedliche 
  Betriebssystem portabel und es kann beispielsweise einfach via Copy~\&~Paste 
  ein \hrfn{http://www.komascript.de/minimalbeispiel}{Minimalbeispiel} bei 
  Problemstellungen in einem Forum bereitgestellt werden. Alternativ dazu lässt 
  sich mit dem Paket \Package{inputenc} 
  (\Macro*{usepackage}[\OParameter{Eingabekodierung}\PParameter{inputenc}])
  die Eingabekodierung manuell einstellen.
\item[babel,polyglossia]
  \index{Sprachunterstützung}%
  \index{Bezeichner}%
  Mit dem Paket \Package{babel} erfolgt die Einstellung der im Dokument 
  verwendeten Sprache(n). Bei mehreren angegebenen Sprachen ist die zuletzt 
  geladene die Hauptsprache des Dokumentes. Die gewünschten Sprachen sollten 
  nicht als Paketoption sondern als Klassenoption und gesetzt werden, damit 
  auch andere Pakete auf die Spracheinstellungen zugreifen können. Für 
  deutschsprachige Dokumente ist die Option \Option*{ngerman} für die neue oder 
  \Option*{german} für die alte deutsche Rechtschreibung zu verwenden. 
  
  Mit dem Laden von \Package{babel} und der dazugehörigen Sprachen werden 
  sowohl die Trennmuster als auch die sprachabhängigen Bezeichner angepasst.
  Von einer Verwendung der obsoleten Pakete \Package{german} beziehungsweise 
  \Package{ngerman} anstelle von \Package{babel} wird abgeraten. Für 
  \Engine{LuaLaTeX} und \Engine{XeLaTeX} kann das Paket \Package{polyglossia} 
  genutzt werden.
\item[microtype]
  \index{Typografie}%
  Dieses Paket kümmert sich um den optischen Randausgleich%
  \footnote{englisch: protrusion, margin kerning}
  und das Nivellieren der Wortzwischenräume%
  \footnote{englisch: font expansion}
  im Dokument. Es funktioniert nicht mit der klassischen \Engine*{TeX}"=Engine, 
  wohl jedoch mit \Engine{pdfTeX} als auch \Engine{LuaTeX} sowie \Engine{XeTeX}.
\item[hyphsubst,dehyph-exptl]
  \index{Worttrennung|!}%
  Die möglichen Trennstellen von Wörtern wird von \hologo{LaTeX} mithilfe 
  eines Algorithmus berechnet. Dieser wird für deutschsprachige Texte mit dem 
  Paket \Package{hyphsubst} entscheidend verbessert. Es muss bereits \emph{vor} 
  der Dokumentklasse wie folgt geladen werden:
  \begin{Code}[escapechar=§]
    \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
  \end{Code}\vspace{-\baselineskip}%
  In \autoref{sec:tips:hyphenation} wird genauer auf das Zusammenspiel von 
  \Package{hyphsubst} und \Package{babel} sowie \Package{fontenc} eingegangen,
  ein Blick dahin wird dringend empfohlen. Zusätzliche werden dort weitere 
  Hinweise für eine verbesserte Worttrennung gegeben. 
\end{packages}


\subsection{Pakete zur situativen Verwendung}
Die nachfolgenden Pakete sollten nicht zwangsweise in jedem Dokument geladen 
werden sondern nur, falls dies auch tatsächlich notwendig ist. Zur besseren 
Übersicht wurde versucht, diese thematisch passend zu gruppieren. Daraus lässt 
sich keinerlei Wertung bezüglich ihrer Nützlichkeit oder meiner persönlichen 
Wertschätzung ableiten.

\subsubsection{Typografie und Layout}
\index{Typografie|(}%
%
Neben dem zuvor beschriebenem Paket \Package{microtype}, welches verantwortlich 
für mikrotypografische Feinheiten ist, existieren weitere Pakete, die vorrangig 
die Makrotypografie adressieren.
%
\begin{packages}
\item[setspace]
  \index{Zeilenabstand}%
  Die Vergrößerung des Zeilenabstandes wird:
  %
  \begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.]
  \stditem viel zu häufig und völlig unnötig gefordert und
  \stditem schließlich auch noch zu groß gewählt.
  \end{enumerate}
  %
  Die Forderung nach Erhöhung des Zeilenabstandes~-- in der Typografie als 
  Durchschuss bezeichnet~-- kommt aus den Zeiten der Textverarbeitung mit der 
  Schreibmaschine. Ein einzeiliger Zeilenabstand bedeutete hier, dass die 
  Unterlängen der oberen Zeile genau auf der Höhe der Oberlängen der folgenden 
  Zeile lagen. Ein anderthalbzeiliger Zeilenabstand erzielte hier somit einen 
  akzeptablen Durchschuss. Eine Erhöhung des Durchschusses bei der Verwendung 
  von \hologo{LaTeX} ist an und für sich nicht notwendig. Sinnvoll ist dies 
  nur, wenn im Fließtext serifenlose Schriften zum Einsatz kommen, um die damit 
  verbundene schlechte Lesbarkeit etwas zu verbessern.
  
  Ist die Erhöhung des Durchschusses wirklich notwendig, sollte das Paket 
  \Package{setspace} genutzt werden. Dieses stellt den Befehl 
  \Macro{setstretch}[\Parameter{Faktor}](\Package{setspace})'none' zur 
  Verfügung, mit dem der Durchschuss respektive Zeilenabstand angepasst werden 
  kann. Der Wert des Faktors ist standardmäßig auf~1 gestellt und sollte 
  maximal bis~1.25 vergrößert werden. Der Befehl \Macro*{onehalfspacing} aus 
  diesem Paket setzt diesen Wert auf eben genau~1.25. Allerdings ist hier 
  anzumerken, dass die Vergrößerung des Zeilenabstandes~-- so wie ich es mir 
  angelesen habe~-- aus der Sicht eines Typographen keine Spielerei ist sondern 
  vielmehr allein der Lesbarkeit des Textes dient und möglichst gering 
  ausfallen sollte.
  
  Ziel ist es, beim Lesen nach dem Beenden der aktuellen Zeile das Auffinden 
  der neuen Zeile zu vereinfachen. Bei Serifen ist dies durch die Betonung der 
  Grundlinie sehr gut möglich. Bei serifenlosen Schriften~-- wie der im \TUDCD 
  verwendeten \Univers~-- ist dies schwieriger und ein erweiterter Abstand der 
  Zeilen kann dabei durchaus hilfreich sein. Jedoch sollte nicht nach dem Motto 
  \enquote{viel hilft viel} verfahren werden. Für dieses Dokument wurde 
  \Macro{setstretch}[\PParameter{1.1}](\Package{setspace})'none' für den 
  Zeilenabstand gewählt. Weitere Tipps sind in \autoref{sec:tips:headings} und 
  \autoref{sec:tips:headline} zu finden.
\item[multicol]
  \index{Satzspiegel!zweispaltig|?}%
  \index{Mehrspaltensatz}%
  \index{Satzspiegel!mehrspaltig}%
  Hiermit kann jeglicher beliebiger Inhalt in zwei oder mehr Spalten ausgegeben 
  werden, wobei~-- im Gegensatz zum normalen zweispaltigen Satz über die
  \KOMAScript-Option \Option{twocolumn}(\Package{typearea})'none'~-- für einen 
  Spaltenausgleich gesorgt wird. Unterstützt wird das Paket innerhalb der 
  Umgebungen \Environment{abstract} und \Environment{tudpage}.
\item[balance]
  \index{Satzspiegel!zweispaltig}%
  Dieses Paket ermöglicht einen Spaltenausgleich im zweispaltigen Satz auf der 
  letzten Dokumentseite. Alternativ dazu kann auch \Package{multicol} verwendet 
  werden.
\item[isodate]
  \index{Datum|?}%
  Mit \Macro{printdate}[\Parameter{Datum}](\Package{isodate})'none' formatiert 
  dieses Paket die Ausgabe eines Datums automatisch in ein spezifiziertes 
  Format. Wird es geladen, werden alle Datumsfelder, welche durch die 
  \TUDScript-Klassen definiert wurden,%
  \footnote{%
    \Macro{date}, \Macro{dateofbirth} und \Macro{defensedate} sowie aus 
    \Package{tudscrsupervisor} \Macro{duedate}(\Package{tudscrsupervisor}) und 
    \Macro{issuedate}(\Package{tudscrsupervisor})%
  }
  in diesem Format ausgegeben.
\item[quoting]
  \index{Zitate}%
  \hologo{LaTeX} bietet von Haus aus \emph{zwei} verschiedene Umgebungen~-- 
  \Environment{quote}(\Package{koma-script})'none' und 
  \Environment{quotation}(\Package{koma-script})'none'~-- für Zitate und 
  ähnliches an. Allerdings werden durch beide Umgebungen die \KOMAScript-Option 
  \Option{parskip=\PName{Methode}}(\Package{koma-script})'none'|declare|
  ignoriert. Mit der Umgebung \Environment{quoting}(\Package{quoting})'none'
  aus dem gleichnamigen Paket lässt sich dieses Problem umgehen. Wird das Paket 
  geladen, wird diese innerhalb der \Environment{abstract}"=Umgebung verwendet.
\item[ragged2e]
  \index{Worttrennung}%
  Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung 
  aktiviert wird.
\item[csquotes]
  \index{Zitate}%
  Das Paket stellt unter anderem den Befehl 
  \Macro{enquote}[\Parameter{Zitat}](\Package{csquotes})'none'
  zur Verfügung, welcher Anführungszeichen in Abhängigkeit der gewählten 
  Sprache setzt. Zusätzlich werden weitere Kommandos und Optionen für die 
  spezifischen Anforderungen des Zitierens bei wissenschaftlichen Arbeiten 
  angeboten. Außerdem wird es durch \Package{biblatex} unterstützt und sollte 
  zumindest bei dessen Verwendung geladen werden.
\item[noindentafter]
  \ChangedAt{v2.02:\RecPack \Package{noindentafter}}
  Mit diesem Paket lassen sich automatische Absatzeinzüge für selbst zu 
  bestimmende Befehle und Umgebungen unterdrücken.
\item[fnpct]
  \index{Fußnoten|?}%
  \ChangedAt{v2.05:\RecPack \Package{fnpct}}
  Diese Paket sorgt zum einen für das Einhalten der richtigen Reihenfolge von 
  Satzzeichen und Fußnoten und zum anderen wird das typografisch korrekte 
  Setzen mehrerer, nacheinander folgender Fußnoten unterstützt.
\item[xspace,xpunctuate]
  \index{Befehlsdeklaration}%
  Mit \Package{xspace} kann bei der Definition eigener Makros der Befehl 
  \Macro{xspace}(\Package{xspace})'none' genutzt werden. Dieser setzt ein 
  gegebenenfalls notwendiges Leerzeichen automatisch. In 
  \autoref{sec:tips:xspace} ist die Definition eines solchen Befehls 
  exemplarisch ausgeführt. Durch das Paket \Package{xpunctuate} wird 
  \Package{xspace} um die Beachtung von Interpunktionen erweitert.
\item[ellipsis]
  \index{Befehlsdeklaration}%
  In \hologo{LaTeX} folgen den Befehlen für Auslassungspunkte (\Macro{dots} und 
  \Macro{textellipsis}) \emph{immer} ein Leerzeichen. Dies kann unter Umständen 
  unerwünscht sein. Mit dem Paket \Package{ellipsis} wird das nachfolgende 
  Leerzeichen~-- im Gegensatz zum Standardverhalten~-- nur gesetzt, wenn ein 
  Satzzeichen und kein Buchstabe folgt, \seeref*{\autoref{sec:tips:dots}}.
\stditem[\Application{DeLig}<delig>,\Package{selnolig}]
  \index{Ligaturen}%
  Hierbei handelt es sich um ein Java"~Script, das anhand eines Wörterbuches 
  falsche Ligaturen innerhalb eines Dokumentes automatisiert entfernt. Wird 
  \Univers verwendet ist dies jedoch nicht notwendig, da diese keinerlei 
  Ligaturen enthält, die insbesondere in deutschen Texten für einen guten Satz 
  manuell aufgelöst werden müssten.%
  \footnote{%
    Das sind \enquote{ff}, \enquote{fi}, \enquote{fl}, \enquote{ffi}, und 
    \enquote{ffl} bei den \hologo{LaTeX}"=Standardschriften.%
  }
  Mit \Engine{LuaLaTeX} als Textsatzsystem kann auch \Package{selnolig} 
  alternativ dazu verwendet werden.
\index{Typografie|)}%
\end{packages}


\subsubsection{Rechtschreibung}
\index{Rechtschreibung|(}%
%
Für die Rechtschreibkontrolle zeichnet im Normalfall der verwendete Editor 
verantwortlich. Dennoch gibt es einige wenige Pakete, welche sich diesem Thema 
widmen. Diese sind jedoch ausschließlich nutzbar, wenn als Textsatzsystem 
\Engine{LuaLaTeX} genutzt wird.
\begin{packages}
\item[lua-check-hyphen]
  \index{Worttrennung}%
  Hiermit lassen sich mit \Engine{LuaLaTeX} Trennstellen am Zeilenende zur 
  Prüfung markieren. Zum Thema der \textit{korrekten Worttrennung} sei außerdem 
  auf \autoref{sec:tips:hyphenation} verwiesen.
\item[spelling]
  Wird \Engine{LuaLaTeX} als Textsatzsystem verwendet, wird mit diesem Paket 
  der reine Textanteil aus dem \hologo{LaTeX}"~Dokument extrahiert~-- wobei 
  Makros und aktive Zeichen entfernt werden~-- und in eine separate Textdatei 
  geschrieben. Anschließend kann diese Datei mit einer externen Software zur  
  Rechtschreibprüfung wie \Application{GNU~Aspell}, \Application{Hunspell} oder 
  \Application{LanguageTool} analysiert und falsch geschriebene Wörter im 
  PDF"~Dokument hervorgehoben werden.
\index{Rechtschreibung|)}%
\end{packages}


\subsubsection{Schriften und Sonderzeichen}
\begin{packages}
\item[lmodern]<lm>
  \index{Schriftart}%
  Soll mit den klassischen \hologo{LaTeX}"=Standardschriften gearbeitet werden, 
  empfiehlt sich die Verwendung des Paketes \Package{lmodern}. Dieses 
  verbessert die Darstellung der Computer~Modern sowohl am Bildschirm als auch 
  beim finalen Druck.
\item[cfr-lm]
  \index{Schriftart}%
  Dieses experimentelle Paket liefert weitere Schriftschnitte für das Paket 
  \Package{lmodern}.
\item[newtx,newtxmath]<newtx>
  \index{Schriftart}%
  \index{Mathematiksatz}%
  Es werden einige alternative Schriften sowohl für den Fließtext 
  (\textit{Times} und \textit{Helvetica}) als auch den Mathematikmodus 
  bereitgestellt.
\item[libertine]
  \index{Schriftart}%
  Das Paket stellt die Schriften Linux~Libertine und Linux~Biolinum zur 
  Verfügung. Um diese Schriftart auch für den Mathematikmodus verwenden zu 
  können, sollte \Package{newtxmath} aus dem \Package{newtx}"=Bundle mit 
  \Macro*{usepackage}[\POParameter{libertine}\PParameter{newtxmath}] in der 
  Präambel eingebunden werden. Das Paket \Package{libgreek} enthält griechische 
  Buchstaben für Linux~Libertine.
\item[mweights]
  \index{Schriftstärke}%
  In \hologo{LaTeXe} existieren die Schriftfamilien für Serifenschriften 
  (\Macro*{rmfamily}), serifenlose Schriften (\Macro*{sffamily}) sowie die 
  Schreibmaschinenschriften (\Macro*{ttfamily}). Deren Schriftstärke wird für 
  gewöhnlich mit den beiden Befehlen \Macro*{mddefault} und \Macro*{bfdefault} 
  einheitlich festgelegt. Bei der Verwendung unterschiedlicher Schriftpakete 
  kann es unter Umständen zu Problemen bei den Schriftstärken kommen. Das Paket 
  \Package{mweights} erlaubt die individuelle Definition der Schriftstärke für 
  jede der drei Schriftfamilien.
\item[fontspec]
  \index{Zeichensatzkodierung}%
  \ChangedAt{v2.02:\RecPack \Package{fontspec}}
  Wird als Textsatzsystem nicht \Engine{pdfLaTeX} sondern \Engine{XeLaTeX}   
  oder \Engine{LuaLaTeX} verwendet, können mit diesem Paket Systemschriften im 
  OpenType"~Format und einer beliebigen Zeichensatzkodierung eingebunden 
  werden, womit sich die Auswahl der verwendbaren Schriften stark erweitert. 
  Das Paket wird durch \TUDScript unterstützt.
\item[relsize]
  \index{Schriftgröße}%
  Die Größe einer Textauszeichnung kann relativ zur aktuellen Schriftgröße 
  gesetzt werden.
\item[textcomp]
  \index{Sonderzeichen}%
  Es werden zusätzliche Symbole und Sonderzeichen wie beispielsweise das 
  Promille- oder Eurozeichen sowie Pfeile für den Fließtext zur Verfügung 
  gestellt.
\end{packages}
%
\index{Mathematiksatz|(}%
Auch für (serifenlose) Mathematikschriften gibt es einige nützliche Pakete. 
Werden die Schriften des \CDs genutzt, sei auf die Option \Option{cdmath} 
verwiesen.
%
\begin{packages}
\item[sansmathfonts,sansmath]
  Sollten die normalen \hologo{LaTeX}"=Schriften Computer~Modern verwendet 
  werden, lässt sich dieses Paket zum serifenlosen Setzen mathematischer 
  Ausdrücke nutzen. Ein alternatives Paket mit der gleichen Zielstellung ist 
  \Package{sansmath}
\item[sfmath]
  Diese Paket verfolgt ein ähnliches Ziel, kann jedoch im Gegensatz zu 
  \Package{sansmath} nicht nur für Computer~Modern sondern mit der 
  entsprechenden Option auch für Latin~Modern, Helvetica und 
  Computer~Modern~Bright verwendet werden.
\item[mathastext]
  Mit dem Paket wird das Ziel verfolgt, aus der genutzten Schrift für den 
  Fließtext alle notwendigen Zeichen für den Mathematiksatz zu extrahieren.
\end{packages}

\subsubsection{Mathematiksatz}
Dies sind Pakete, die Umgebungen und Befehle für den Mathematiksatz sowie das 
Setzen von Einheiten und Zahlen im Allgemeinen anbieten.

\begin{packages}
  \item[mathtools,amsmath]
    Dieses Paket stellt für das De"~facto"~Standard"~Paket \Package{amsmath} 
    für Mathematikumgebungen Bugfixes zur Verfügung und erweitert dieses.
  \item[bm]
    Das Paket bietet mit \Macro*{bm} eine Alternative zu \Macro*{boldsymbol} im 
    \hrfn{http://tex.stackexchange.com/questions/3238}{Mathematiksatz}.
\end{packages}
%
Für das typografisch korrekte Setzen von Einheiten~-- ein halbes Leerzeichen 
zwischen Zahl und \emph{aufrecht} gesetzter Einheit~-- gibt es zwei gut 
nutzbare Pakete.
%
\begin{packages}
\index{Einheiten|(}%
\item[units]
  Dies ist ein einfaches und sehr zweckdienliches Paket zum Setzen von 
  Einheiten und für die meisten Anforderungen völlig ausreichend.
\item[siunitx]
  Dieses Paket ist in seinem Umfang im Vergleich deutlich erweitert. Neben 
  Einheiten können zusätzlich auch Zahlen typografisch korrekt gesetzt werden. 
  Die Ausgabe lässt sich in vielerlei Hinsicht an individuelle Bedürfnisse 
  anpassen. Für deutschsprachige Dokumenten sollte die Lokalisierung angegeben 
  werden. Mehr dazu in \autoref{sec:tips:siunitx}.
\index{Einheiten|)}%
\end{packages}
%
Die korrekte Formatierung von Zahlen ist häufig ein Problem bei der Verwendung 
von \hologo{LaTeX}. Insbesondere, wenn in einem deutschsprachigen Dokument 
Daten im englischsprachigen Format verwendet werden, kommt es zu Problemen. 
Dafür wird im \TUDScript-Bundle das Paket \Package{mathswap} bereitgestellt. 
Dennoch gibt es zu diesem auch Alternativen.
%
\begin{packages}
\index{Zifferngruppierung|(}%
  \item[icomma]
    Wird im Mathematikmodus nach dem Komma ein Leerzeichen gesetzt, wird dies 
    bei der Ausgabe beachtet. Der Verfasser muss sich demzufolge jederzeit 
    selbst um die typografisch korrekte Ausgabe kümmern.
  \item[ziffer]
    Für deutschsprachige Dokumente wird das Komma als Dezimaltrennzeichen 
    zwischen zwei Ziffern definiert. Folgt dem Komma keine Ziffer, wird 
    jederzeit der obligatorische Freiraum gesetzt, was meiner Meinung nach 
    besser als das Verhalten von \Package{icomma} ist.
  \item[ionumbers]
    Dieses Paket ist mir tatsächlich erst bei der Arbeit an \Package{mathswap} 
    bekannt geworden. Es bietet mehr Funktionalitäten und kann als Alternative 
    dazu betrachtet werden.
\index{Zifferngruppierung|)}%
\end{packages}
%
Weitere Hinweise und Anwendungsfälle zur mathematischen Typografie werden in 
\autoref{sec:tut} gegeben.
\index{Mathematiksatz|)}%

\subsubsection{Verzeichnisse aller Art}
\index{Verzeichnisse|?(}%
%
Neben dem Erstellen des eigentlichen Dokumentes sind für eine wissenschaftliche 
Arbeit meist auch allerhand Verzeichnisse gefordert. Fester Bestandteil ist 
dabei das Literaturverzeichnis, auch ein Abkürzungs- und Formelzeichen- 
beziehungsweise Symbolverzeichnis werden häufig gefordert. Gegebenenfalls wird 
auch noch ein Glossar benötigt. Hier werden die passenden Pakete vorgestellt. 
Sollen im Dokument komplette Quelltexte oder auch nur Auszüge daraus erscheinen 
und für diese auch gleich ein entsprechendes Verzeichnis generiert werden, so 
sei auf das Paket \Package{listings}'full' verwiesen.

\begin{packages}
\item[biblatex]
  \index{Literaturverzeichnis}%
  Das Paket kann als legitimer Nachfolger zu \hologo{BibTeX} gesehen werden. 
  Ähnlich dazu bietet \Package{biblatex} die Möglichkeit, Literaturdatenbanken 
  einzubinden und verschiedene Stile der Referenzierung und Darstellung des 
  Literaturverzeichnisses auszuwählen. 
  
  Mit \Package{biblatex} ist die Anpassung eines bestimmten Stiles wesentlich 
  besser umsetzbar als mit \hologo{BibTeX}. Wird \Application{biber} für die 
  Sortierung des Literaturverzeichnisses genutzt, ist die Verwendung einer 
  UTF"~8"~kodierten Literaturdatenbank problemlos möglich. In Verbindung mit 
  \Package{biblatex} wird die zusätzliche Nutzung des Paketes 
  \Package{csquotes} sehr empfohlen.
\item[acro,acronym]
  \index{Abkürzungsverzeichnis}%
  Soll lediglich ein Abkürzungsverzeichnis erstellt werden, ist dieses Paket 
  die erste Wahl. Es stellt Befehle zur Definition von Abkürzungen sowie zu 
  deren Verwendung im Text und zur sortierten Ausgabe eines Verzeichnisses 
  bereit. Alternativ dazu kann das Paket \Package{acronym} verwendet werden. 
  Die Sortierung des Abkürzungsverzeichnisses muss hier allerdings manuell 
  durch den Anwender erfolgen.
\item[glossaries,nomencl]
  \index{Glossar}%
  \index{Abkürzungsverzeichnis}%
  \index{Formelzeichenverzeichnis}%
  \index{Symbolverzeichnis}%
  Dies ist ein sehr mächtiges Paket zum Erstellen eines Glossars sowie 
  Abkürzungs- und Symbolverzeichnisses. Die mannigfaltige Anzahl an Optionen 
  ist zu Beginn eventuell etwas abschreckend. Insbesondere wenn Verzeichnisse 
  für Abkürzungen \emph{und} Formelzeichen beziehungsweise Symbole notwendig 
  sind, sollte dieses Paket in Erwägung gezogen werden.
  
  Alternativ dazu kann für ein Symbolverzeichnis auch lediglich eine manuell 
  gesetzte Tabelle genutzt werden. Das hierfür sehr häufig empfohlene Paket 
  \Package{nomencl} bietet meiner Meinung nach demgegenüber keinerlei Vorteile.
\index{Verzeichnisse|?)}%
\end{packages}


\subsubsection{Listen}
\index{Listen|?(}%
%
\begin{packages}
\item[enumitem]
  Das Paket \Package{enumitem} erweitert die rudimentären Funktionalitäten der 
  \hologo{LaTeX}"=Standardlisten
  \Environment{itemize}(\Package{koma-script},\Package{enumitem})'none',
  \Environment{enumerate}(\Package{koma-script},\Package{enumitem})'none' sowie
  \Environment{description}(\Package{koma-script},\Package{enumitem})'none' und
  ermöglicht die individuelle Anpassung dieser durch die Bereitstellung vieler 
  optionale Parameter nach dem Schlüssel"=Wert"=Prinzip. Eine von mir sehr 
  häufig genutzte Funktion ist beispielsweise die Entfernung des zusätzlichen 
  Abstand zwischen den einzelnen Einträgen einer Liste mit 
  \Macro{setlist}[\PParameter{noitemsep}](\Package{enumitem})'none'.
\index{Listen|?)}%
\end{packages}


\subsubsection{Tabellen}
\index{Tabellen|?(}%
%
Für den Tabellensatz in \hologo{LaTeX} werden von Haus aus die Umgebungen 
\Environment{tabbing} und \Environment{tabular} beziehungsweise 
\Environment{tabular*} bereitgestellt, welche in ihrer Funktionalität meist 
für einen qualitativ hochwertigen Tabellensatz nicht ausreichen. Es werden 
deshalb Pakete vorgestellt, die sich zusätzlich verwenden lassen. 
%
\begin{packages}
\item[array]
  Dieses Paket ermöglicht mit \Macro{newcolumntype}(\Package{array})'none' das 
  Erstellen neuer Spaltentypen und die erweiterte Definition von Tabellenspalten
  (\PValue{>\PParameter{\dots}}\PName{Spaltentyp}\PValue{<\PParameter{\dots}}), 
  wobei mithilfe sogenannter \enquote{Hooks} vor und nach Einträgen innerhalb 
  einer Spalte gezielt Anweisungen gesetzt werden können. Außerdem kann die 
  Zeilenhöhe einer Tabelle mit \Macro{extrarowheight}(\Package{array})'none' 
  angepasst werden. 
\item[multirow]
  Es wird der Befehl \Macro{multirow}(\Package{multirow})'none' definiert, der 
  das Zusammenfassen von mehreren Zeilen in einer Spalte ermöglicht~-- ähnlich 
  zum Makro \Macro{multicolumn} für Spalten.
\item[widetable]
  Mit der Standard"=\hologo{LaTeX}"=Umgebung \Environment{tabular*} kann eine 
  Tabelle mit einer definierten Breite gesetzt werden. Dieses Paket stellt die 
  Umgebung \Environment{widetable}(\Package{widetable})'none' zur Verfügung, 
  die als Alternative genutzt werden kann und eine symmetrische Tabelle erzeugt.
\item[booktabs]
  Für einen guten Tabellensatz mit \hologo{LaTeX} gibt es bereits zahlreiche 
  \hrfn{http://userpage.fu-berlin.de/latex/Materialien/tabsatz.pdf}{Tipps} im 
  Internet zu finden. Zwei Regeln sollten dabei definitiv beachtet werden:
  %
  \begin{enumerate}[itemindent=0pt,labelwidth=*,labelsep=1em,label=\Roman*.]
  \stditem keine vertikalen Linien
  \stditem keine doppelten Linien
  \end{enumerate}
  %
  Das Paket \Package{booktabs} (deutsche Dokumentation \Package*{booktabs-de}) 
  ist für den Satz von hochwertigen Tabellen eine große Hilfe und stellt die 
  Befehle \Macro{toprule}(\Package{booktabs})'none', 
  \Macro{midrule}(\Package{booktabs})'none' sowie 
  \Macro{cmidrule}(\Package{booktabs})'none' und 
  \Macro{bottomrule}(\Package{booktabs})'none'
  für unterschiedliche horizontale Linien bereit.
\item[tabularborder]
  Bei Tabellen wird zwischen Spalten automatisch ein horizontaler Abstand 
  (\Length{tabcolsep}) gesetzt~-- besser gesagt jeweils vor und nach einer 
  Spalte. Dies geschieht auch \emph{vor} der ersten und \emph{nach} der letzten 
  Spalte. Dieser zusätzliche Platz an den äußeren Rändern kann störend wirken, 
  insbesondere wenn die Tabelle über die komplette Textbreite gesetzt wird. Mit 
  dem Paket \Package{tabularborder} kann dieser Platz automatisch entfernt 
  werden.
  
  Dies funktioniert allerdings nur mit der \Environment{tabular}"=Umgebung. 
  Die Tabellen aus den Paketen \Package{tabularx}, \Package{tabulary} und 
  \Package{tabu} werden nicht unterstützt. Wie dieser Abstand bei diesen 
  manuell entfernt werden kann, ist unter \autoref{sec:tips:table} zu finden.
\item[tabularx]
  Auch mit diesem Paket kann die Gesamtbreite einer Tabelle spezifiziert 
  werden. Dafür wird der Spaltentyp \PValue{X} definiert, welcher als Argument 
  der \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung beliebig 
  häufig angegeben werden kann 
  (\Macro*{begin}[\PParameter{tabularx}\Parameter{Breite}\Parameter{Spalten}]). 
  Die \PValue{X}"~Spalten ähneln denen vom Typ~\PValue{p}\Parameter{Breite}, 
  wobei die Breite dieser aus der gewünschten Tabellengesamtbreite und dem 
  benötigten Platz der gegebenenfalls vorhandenen Standardspalten automatisch 
  berechnet wird.
\item[tabulary]
  Dies ist ein weiteres Paket zur automatischen Berechnung von Spaltenbreiten. 
  Der zur Verfügung stehende Platz~-- gewünschte Gesamtbreite abzüglich der 
  notwendigen Breite für die Standardspalten~-- wird jedoch nicht wie bei der 
  Umgebung \Environment{tabularx}(\Package{tabularx})'none' auf alle Spalten 
  gleichmäßig verteilt sondern in der 
  \Environment{tabulary}(\Package{tabulary})'none'"=Umgebung für die 
  Spaltentypen~\PValue{LCRJ} anhand ihres Zellinhaltes gewichtet vergeben. 
  (\Macro*{begin}[\PParameter{tabulary}\Parameter{Breite}\Parameter{Spalten}]). 
\item[longtable,ltablex]
  Sollen mehrseitige Tabellen mit Seitenumbruch erstellt werden, ist dieses 
  Paket das Mittel der ersten Wahl. Für die Kombination mehrseitiger Tabellen 
  mit einer \Environment{tabularx}(\Package{tabularx})'none'"=Umgebung können 
  die Pakete \Package{ltablex} oder besser noch \Package{ltxtable} verwendet 
  werden.
\item[ltxtable]
  Wie bereits erwähnt sollte dieses Paket für mehrseitige Tabellen, die mit der 
  Umgebung \Environment{tabularx}(\Package{tabularx})'none' erstellt wurden, 
  verwendet werden. Alternativ dazu lässt sich auch \Package{tabu} nutzen.
\item[tabu]
  \ChangedAt{%
    v2.02:\RecPack \Package{tabu} ist nur bedingt empfehlenswert
  }
  Dies ist ein relativ neues Paket, welches versucht, viele der zuvor genannten 
  Funktionalitäten zu implementieren und weitere bereitzustellen. Dafür werden 
  die Umgebungen \Environment{tabu}(\Package{tabu})'none' und 
  \Environment{longtabu}(\Package{tabu})'none' definiert. Es 
  kann alternativ zu \Package{tabularx} verwendet werden und ist insbesondere 
  als Ersatz für das Paket \Package{ltxtable} empfehlenswert.
  
  \Attention{%
    Leider wären für das Paket in der Version~v2.8 seit geraumer Zeit ein paar 
    Bugfixes notwendig. Außerdem wird sich die 
    \hrfn{https://groups.google.com/d/topic/comp.text.tex/xRGJTC74uCI}{%
      Benutzerschnittstelle in einer zukünftigen Version%
    }
    sehr stark ändern. Der Anwender sollte sich zumindest bewusst sein, dass er 
    mit der Version~v2.8 gesetzte Dokumente gegebenenfalls später anpassen muss.
  }%
\index{Tabellen|?)}%
\end{packages}



\subsubsection{Gleitobjekte}
\index{Gleitobjekte|?(}%
%
Es werden Pakete für die Beeinflussung von Aussehen, Beschriftung und 
Positionierung von Gleitobjekten vorgestellt. Unter \autoref{sec:tips:floats} 
sind außerdem Hinweise zur manuellen Manipulation der Gleitobjektplatzierung zu 
finden.

\begin{packages}
\item[placeins]
  Mit diesem Paket kann die Ausgabe von Gleitobjekten vor Kapiteln und wahlweise
  Unterkapiteln erzwungen werden.
\item[flafter]
  Dieses Paket erlaubt die frühestmögliche Platzierung von Gleitobjekten im 
  ausgegeben Dokument erst an der Stelle ihres Auftretens im Quelltext. Diese 
  werden dementsprechend nie vor ihrer Definition am Anfang der Seite 
  erscheinen.
\item[caption]
  Mit der Option \Option{captions=\PSet}(\Package{koma-script})'none'|declare| 
  bieten die \KOMAScript-Klassen bereits einige Möglichkeiten zum Formatieren 
  der Beschriftungen für Gleitobjekte. Dieses Paket ist daher meist nur in 
  gewissen Ausnahmefällen für spezielle Anweisungen notwendig, allerdings auch 
  bei der Verwendung unbedenklich.
\item[subcaption]
  Diese Paket kann zum einfachen Setzen von Unterabbildungen oder "~tabellen 
  mit den entsprechenden Beschriftungen genutzt werden. Das dazu alternative 
  Paket \Package{subfig} sollte vermieden werden, da es nicht mehr gepflegt 
  wird und es mit diesem im Zusammenspiel mit anderen Paketen des Öfteren zu 
  Problemen kommt. Sollte der Funktionsumfang von \Package{subcaption} nicht 
  ausreichen, kann anstelle dessen das Paket \Package{floatrow} verwendet 
  werden, welches ähnliche Funktionalitäten wie \Package{subfig} bereitstellt.
\item[floatrow]
  Mit diesem Paket können global wirksame Einstellungen und Formatierungen für 
  \emph{alle} Gleitobjekte eines Dokumentes über die Paketoptionen oder mit 
  \Macro{floatsetup}[\PParameter{\dots}](\Package{floatrow})'none' 
  vorgenommen werden. So kann unter anderem die verwendete Schrift innerhalb 
  der Umgebungen \Environment{figure} und \Environment{table} eingestellt 
  werden (\Macro*{floatsetup}[\PParameter{font=\dots}]). Das typografisch 
  richtige Setzen von Abbildungs\textbf{unterschriften} 
  \Macro*{floatsetup}[\POParameter{figure}\PParameter{capposition=bottom}])
  sowie Tabellen\textbf{überschriften} 
  (\Macro*{floatsetup}[\POParameter{table}\PParameter{capposition=top}])
  kann automatisch erzwungen werden~-- unabhängig von der Position des Befehls 
  zur Beschriftung 
  \Macro{caption}(\Package{koma-script},\Package{caption})'none' 
  innerhalb der Gleitobjektumgebung. Wird das Verhalten so wie empfohlen mit 
  dem \Package{floatrow}"=Paket eingestellt, sollte für eine richtige 
  Platzierung der Tabellenüberschriften außerdem die \KOMAScript-Option 
  \Option{captions=tableheading}(\Package{koma-script})'none'
  genutzt werden.
\index{Gleitobjekte|?)}%
\end{packages}


\subsubsection{Grafiken und Abbildungen}
\index{Grafiken|?(}%
%
Grafiken für wissenschaftliche Arbeiten sollten als Vektorgrafiken erstellt 
werden, um die Skalierbarkeit und hohe Druckqualität zu gewährleisten. 
Bestenfalls folgen diese auch dem Stil der dazugehörigen Arbeit.%
\footnote{%
  Für qualitativ hochwertige Dokumente sollten übernommene Grafiken nicht 
  direkt kopiert oder gescannt sondern im gewünschten Zielformat neu erstellt 
  und mit einer Referenz auf die Quelle eingebunden werden.%
}
Für das Erstellen eigener Vektorgrafiken, welche die \hologo{LaTeX}"=Schriften 
und das Layout des Hauptdokumentes nutzen, gibt es zwei mögliche Ansätze. 
Entweder die Grafiken werden ähnlich wie das Dokument \enquote{programmiert} 
oder Zeichenprogramme, welche wiederum die Ausgabe oder das Weiterreichen von 
Text an \hologo{LaTeX} unterstützen, werden genutzt. 
% Für das Programmieren von Grafiken sollen hier die wichtigsten Pakete 
% vorgestellt werden. Wie diese zu verwenden sind, ist den dazugehörigen 
% Paketdokumentationen zu entnehmen. 

\begin{packages}
\item[tikz]<pgf>
  Dies ist ein sehr mächtiges Paket für das Programmieren von Vektorgrafiken 
  und sehr häufig~-- insbesondere bei Einsteigern~-- die erste Wahl bei der 
  Verwendung von \Engine{pdfLaTeX}.
\item[pstricks]
  Das Paket \Package{pstricks} stellt die zweite Variante zum Programmieren 
  von Grafiken dar. Mit diesem Paket existieren \emph{noch} mehr Möglichkeiten 
  bei der Erstellung eigener Grafiken, da mit \Package{pstricks} auf PostScript 
  zugegriffen werden kann und einige der bereitgestellten Befehle davon rege 
  Gebrauch machen. Der daraus resultierende Nachteil ist, dass mit 
  \Package{pstricks} die direkte Verwendung von \Engine{pdfLaTeX} nicht 
  möglich ist.
  
  Die Grafiken aus den Umgebungen 
  \Environment{pspicture}(\Package{pstricks})'none' müssen deshalb zunächst
  über den Pfad \Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf}
  in PDF"~Dateien gewandelt werden. Diese lassen sich von \Engine{pdfLaTeX} 
  anschließend als Abbildungen einbinden. Um dieses Vorgehen zu ermöglichen, 
  können folgende Pakete genutzt werden:
  %
  \begin{packages}
  \item[pst-pdf]
    Dieses Paket stellt Methoden für den Export von PostSript-Grafiken in 
    PDF"~Datien bereit. Die einzelnen Aufrufe zur Kompilierung von DVI über 
    PostScript zu PDF müssen durch den Anwender manuell beziehungsweise über 
    die Ausgaberoutinen des verwendeten Editors durchgeführt werden.
  \item[auto-pst-pdf,pdftricks2]
    Das Paket automatisiert die Erzeugung der \Package{pstricks}"=Grafiken mit 
    dem Paket \Package{pst-pdf}. Dafür muss \Engine{pdfLaTeX} per Option mit 
    Schreibrechten ausgeführt werden. Dazu ist der Aufruf von \Path{pdflatex} 
    mit der Option \Path{-{}-shell-escape} respektive \Path{-{}-enable-write18} 
    notwendig. Bitte beachten Sie dazu ebenfalls die Hinweise in 
    \autoref{sec:tips:auto-pst-pdf}. Eine Alternative dazu ist das Paket 
    \Package{pdftricks2}.
  \end{packages}
\end{packages}
%
Im Tutorial \Tutorial{treatise} wird für \Package{pstricks} und \Package{tikz} 
jeweils ein Beispiel gegeben. Um bei der Erstellung von Grafiken mit einem der 
beiden Paketen nicht bei jeder Änderung das komplette Dokument kompilieren zu 
müssen, können diese in separate Dateien ausgelagert werden. Hierfür sind die 
beiden Pakete \Package{standalone} oder \Package{subfiles} sehr nützlich.

Für das Zeichnen einer Grafik mit einem Bildbearbeitungsprogramm, welches die 
Weiterverarbeitung durch \hologo{LaTeX} erlaubt, möchte ich auf die freien 
Programme \Application{LaTeXDraw} und \Application{Inkscape} verweisen. 
Insbesondere das zuletzt genannte Programm ist sehr empfehlenswert. 
%
\begin{packages}
\item[svg]
  Mit diesem Paket können alle notwendigen Schritte zum Einfügen einer 
  SVG"~Grafik in ein \hologo{LaTeX}"~Dokument automatisiert durchgeführt 
  werden. In \autoref{sec:tips:svg} sind weitere Hinweise hierzu zu finden.
\end{packages}
\index{Grafiken|?)}%


\subsubsection{Querverweise und Lesezeichen}
\index{Querverweise|?(}%
\index{Lesezeichen|?(}%
%
Für das Erzeugen von Querverweisen auf bestimmte Gliederungsebenen, Tabellen, 
Abbildungen oder auch Gleichungen muss für diese besagten Elemente zunächst mit 
\Macro{label}[\Parameter{Label}] ein \emph{eindeutiges} Label erzeugt werden, 
auf welches im Dokument entweder mit \Macro{ref} oder nach dem Laden von 
\Package{hyperref} besser noch mit \Macro{autoref}(\Package{hyperref})'none' 
referenziert werden kann. In \autoref{sec:tips:references} sind diesbezüglich 
weitere Informationen zu finden.
%
\begin{packages}
\item[hyperref]
  Hiermit können in einem PDF"~Dokument Lesezeichen, Querverweise und 
  Hyperlinks erstellt werden. Wird es geladen, sind außerdem die Option 
  \Option{tudbookmarks} sowie der Befehl \Macro{tudbookmark} nutzbar. Das 
  Paket \Package{bookmark} erweitert die Unterstützung nochmals. Beide 
  genannten Pakete sollten~-- bis auf sehr wenige Ausnahmen wie beispielsweise 
  \Package{glossaries}~-- als letztes in der Präambel eingebunden werden.
\item[bookmark]
  Dieses Paket verbessert und erweitert die von \Package{hyperref} angebotenen 
  Möglichkeiten zur Erstellung von Lesezeichen~-- auch Outline"=Einträge~-- im 
  PDF"~Dokument. Zum Beispiel können Schriftfarbe- und "~stil geändert werden.
\item[varioref]
  Mit diesem Paket lassen sich sehr gute Verweise auf bestimmte Seiten 
  erzeugen. Insbesondere, wenn der Querverweis auf die aktuelle, die 
  vorhergehende oder nachfolgende sowie im doppelseitigen Satz auf die 
  gegenüberliegende Seite erfolgt, werden passende Textbausteine für diesen 
  verwendet.
\item[cleveref]
  Dieses Paket vereint die Vorzüge der automatischen Benennung referenzierter 
  Objekte mit dem Befehl \Macro{autoref}(\Package{hyperref})'none' aus dem 
  Paket \Package{hyperref} und der Verwendung von \Package{varioref}.
\index{Lesezeichen|?)}%
\index{Querverweise|?)}%
\end{packages}

\subsubsection{Aufteilung des Hauptdokumentes in Unterdateien}
Um während des Entwurfes eines Dokumentes die Zeitdauer für das Kompilieren zu 
verkürzen, kann dieses in Unterdokumente gegliedert werden. Dadurch wird es 
möglich, nur den momentan bearbeiteten Dokumentteil~-- respektive die aktuelle 
\Package{tikz}"~ oder \Package{pstricks}"=Grafik~-- zu kompilieren. Die meiner 
Meinung nach besten Pakete für dieses Unterfangen werden folgend vorgestellt.
%
\begin{packages}
\item[standalone]
  \ChangedAt{%
    v2.02:Bugfix für Verwendung der Klasse \Class{standalone} aus dem Paket 
    \Package{standalone}%
  }
  Dieses Paket ist für das Erstellen eigenständiger (Unter)"~Dokumente gedacht, 
  welche später in ein Hauptdokument eingebunden werden können. Jedes dieser 
  Teildokumente benötigt eine eigene Präambel. Optional lassen sich die 
  Präambeln der Unterdokumente automatisch in ein Hauptdokument einbinden.
\item[subfiles]
\ChangedAt{v2.02:\RecPack \Package{subfiles}}
  Dieses Paket wählt einen etwas anderen Ansatz als \Package{standalone}. Es 
  ist von Anfang an dafür gedacht, ein dediziertes Hauptdokument zu verwenden. 
  Die darin mit \Macro{subfiles}(\Package{subfiles})'none' eingebundenen 
  Unterdateien nutzen bei der autarken Kompilierung dessen Präambel.
\end{packages}
%
Unabhängig davon, ob Sie eines der beiden Pakete nutzen oder alles in einem 
Dokument belassen, ist es ratsam, eigens definierte Befehle, Umgebungen und 
ähnliches in ein separates Paket auszulagern. Dafür müssen Sie lediglich ein 
leeres \hologo{LaTeX}"=Dokument erzeugen und es unter \File*{mypreamble.sty} 
oder einem anderen Namen im gleichen Ordner wie das Hauptdokument speichern. 
Dann können Sie in dieser Datei ihre Deklarationen ausführen und diese mit 
\Macro*{usepackage}[\PParameter{mypreamble}] in das Dokument einbinden. Dies 
hat den Vorteil, dass das Hauptdokument zum einen übersichtlich bleibt und Sie 
zum anderen Ihre persönliche Präambel generisch wachsen lassen und für andere 
Dokumente wiederverwenden können.

\subsubsection{Die kleinen und großen Helfer\dots}
Hier taucht alles auf, was nicht in die vorherigen Kategorien eingeordnet 
werden konnte.
%
\begin{packages}
\item[crop]
  \index{Beschnittzugabe}\index{Schnittmarken}%
  Hiermit können eine Beschnittzugabe sowie Schnittmarken~-- beispielsweise für 
  Poster~-- erzeugt werden. Hierzu ist in \autoref{sec:tips:crop} ein Beispiel 
  zu finden.
\item[marginnote]
  \index{Randnotizen}%
  Randnotizen, welche mit \Macro{marginpar}(\Package{koma-script})'none' erzeugt
  werden, sind spezielle Gleitobjekte in \hologo{LaTeX}. Das kann dazu führen, 
  dass eine Notiz am Blattrand nicht direkt an der ursprünglich intendierten 
  Stelle gesetzt wird. Das Paket \Package{marginnote} stellt den Befehl 
  \Macro{marginnote}(\Package{marginnote})'none' für nicht"~gleitende 
  Randnotizen zur Verfügung. Das Paket \Package{mparhack} ist eine Alternative 
  dazu.
\item[todonotes]
  \index{Randnotizen}%
  Mit \Package{todonotes} können noch offene Aufgaben in unterschiedlicher 
  Formatierung am Blattrand oder im direkt Fließtext ausgegeben werden. Aus 
  allen Anmerkungen lässt sich eine Liste aller offenen Punkte erzeugen.
\item[listings]
  \index{Quelltextdokumentation}%
  Dieses Paket eignet sich hervorragend zur Quelltextdokumentation in 
  \hologo{LaTeX}. Es bietet die Möglichkeit, externe Quelldateien einzulesen 
  und darzustellen sowie die Syntax in Abhängigkeit der verwendeten 
  Programmiersprache hervorzuheben. Zusätzlich lässt sich ein Verzeichnis mit 
  allen eingebundenen sowie direkt im Dokument angegebenen Quelltextauszügen 
  erstellen.
  \ChangedAt{v2.02:\RecPack \Package{listings}}
  Wird \Package{listings} in Dokumenten mit UTF"~8"~Kodierung verwendet, sollte 
  direkt nach dem Laden des Paketes in der Präambel Folgendes hinzugefügt 
  werden:
  \begin{Code}
    \lstset{%
      inputencoding=utf8,extendedchars=true,
      literate=%
        {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
        {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
        {~}{{\textasciitilde}}1 {ß}{{\ss}}1
    }
  \end{Code}\vspace{-\baselineskip}%
\item[afterpage]
  Der Befehl \Macro{afterpage}[\PParameter{\dots}](\Package{afterpage})'none' 
  kann genutzt werden, um den Inhalt aus dessen Argument direkt nach der 
  Ausgabe der aktuellen Seite auszuführen.
\item[pagecolor]
  \index{Farben}%
  Mit dem Paket kann die Hintergrundfarbe der Seiten im Dokument geändert 
  werden.
\item[pdfpages]
  Das Paket ermöglicht die Einbindung von einzelnen oder mehreren PDF"~Dateien.
\item[filecontents]
  \index{Minimalbeispiel|?}%
  Dieses Paket erweitert die durch den \hologo{LaTeX}"=Kernel bereitgestellte 
  Umgebung \Environment{filecontents}(\Package{filecontents})'none' dahingehend,
  dass bereits existierende Dateien überschrieben werden können.
\item[mwe,blindtext]
  \index{Minimalbeispiel|?}%
  \ChangedAt{v2.02:\RecPack \Package{mwe}}
  Mit dem Paket \Package{mwe} lassen sich sehr einfach Minimalbeispiele 
  erzeugen, die sowohl Blindtexte als auch Abbildungen enthalten sollen. Werden 
  keine Grafiken sondern lediglich Textabschnitte etc. benötigt, ist das Laden 
  von \Package{blindtext} ausreichend.
\item[coseoul]
  Mit diesem Paket kann die Struktur der Gliederung relativ erstellt werden. 
  Es wird keine absolute Gliederungsebene (\Macro*{chapter}, \Macro*{section}) 
  angegeben sondern die Relation zwischen vorheriger und aktueller Ebene 
  (\Macro*{levelup}, \Macro*{levelstay}, \Macro*{leveldown}).
\item[calc]
  \index{Berechnungen}%
  Normalerweise lassen sich Berechnungen im Dokument lediglich mit 
  Low"~Level"~\hologo{TeX}"=Primitiven durchführen. Dieses Paket stellt eine 
  einfachere Syntax für Rechenoperationen der vier Grundrechenarten zur 
  Verfügung. Zusätzlich werden neue Befehle zur Bestimmung der Höhe und Breite 
  bestimmter Textauszüge definiert.
\item[chngcntr]
  \index{Zähler}%
  Das Paket erlaubt die Manipulation aller möglichen, bereits definierten 
  \hologo{LaTeX}"=Zähler. Es können Zähler so umdefiniert werden, dass sie bei 
  der Änderung eines anderen Zählers automatisch zurückgesetzt werden oder eben 
  nicht. Ein kleines Beispiel dazu ist in \autoref{sec:tips:counter} zu finden.
\item[filemod]
  Wird entweder \Engine{pdfLaTeX} oder \Engine{LuaLaTeX} als Textsatzsystem 
  eingesetzt, können mit diesem Paket das Änderungsdatum zweier Dateien 
  miteinander verglichen und in Abhängigkeit davon definierbare Aktionen 
  ausgeführt werden.
\item[xparse]
  \index{Befehlsdeklaration}%
  Dieses mächtige Paket entstammt dem \hologo{LaTeX3}"=Projekt und bietet für 
  die Erstellung eigener Befehle und Umgebungen einen alternativen Ansatz zu 
  den bekannten \hologo{LaTeX}"=Deklarationsbefehlen \Macro*{newcommand} und 
  \Macro*{newenvironment} sowie deren Derivaten. Mit \Package{xparse} wird es 
  möglich, obligatorische und optionale Argumente an beliebigen Stellen 
  innerhalb des Befehlskonstruktes zu definieren. Auch die Verwendung anderer 
  Zeichen als eckige Klammern für die Spezifizierung eines optionalen 
  Argumentes ist möglich.
\item[xkeyval,keyval,kvoptions,pgfkeys]
  \index{Befehlsdeklaration}%
  \ChangedAt{v2.02:\RecPack \Package{xkeyval}}
  Das \KOMAScript"=Bundle lädt das Paket \Package{keyval}, um Optionen mit 
  einer Schlüssel"=Wert"=Syntax deklarieren zu können. Zusätzlich wird von 
  \TUDScript das Paket \Package{kvsetkeys} geladen, um auf nicht definierte 
  Schlüssel reagieren zu können. Die Schlüssel"=Wert"=Syntax kann auch für 
  eigens definierte Makros genutzt werden, um sich das exzessive Verwenden von 
  optionalen Argumenten zu ersparen. Damit wäre folgende Definition möglich:
  \Macro*{newcommand}[%
    \Macro*{Befehl}[\OParameter{Schlüssel"=Wert"=Liste}\Parameter{Argument}]%
  ]
  
  Das Paket \Package{xkeyval} erweitert insbesondere die Möglichkeiten zur 
  Deklaration unterschiedlicher Typen von Schlüsseln. Sollten die bereits durch 
  \TUDScript geladenen Pakete \Package{keyval} und \Package{kvsetkeys} in ihrer 
  Funktionalität nicht ausreichen, kann dieses Paket verwendet werden. Für die 
  Entwicklung eigener Pakete, deren Optionen das Schlüssel"=Wert"=Format 
  unterstützen, kann das Paket \Package{scrbase} genutzt werden. Soll aus einem 
  Grund auf \KOMAScript{} gänzlich verzichtet werden, sind die beiden Pakete 
  \Package{kvoptions} oder \Package{pgfkeys} eine Alternative.
\item[scrlfile]
  \index{Paketabhängigkeiten}
  \ChangedAt{v2.05:\RecPack \Package{scrlfile}}
  Dieses \KOMAScript-Paket erlaubt es, auf das Laden von Klassen oder Paketen 
  direkt davor oder danach zu reagieren, um beispielsweise Paketabhängigkeiten 
  aufzulösen oder nach dem Laden eines bestimmten Paketes gezielt Befehle 
  anzupassen. Mehr dazu ist im \scrguide zu finden.
\end{packages}

\subsubsection{Bugfixes}
\begin{packages}
\item[scrhack]<koma-script>
  Das Paket behebt Kompatibilitätsprobleme der \KOMAScript-Klassen mit den 
  Paketen \Package{hyperref}, \Package{float}, \Package{floatrow} und
  \Package{listings}. Es ist durchaus empfehlenswert, jedoch sollte unbedingt 
  die Dokumentation beachtet werden.
\item[scrwfile,morewrites]
  Falls der Fehler \texttt{No room for a new \textbackslash write} erscheint, 
  kann dieser möglicherweise mit einem dieser beiden Pakete behonben werden. 
  Mehr dazu in \autoref{sec:tips:write}.
\item[mparhack]
  Zur Behebung falsch gesetzter Randnotizen wird ein Bugfix für 
  \Macro{marginpar}(\Package{koma-script})'none' bereitgestellt. Alternativ 
  dazu lässt sich auch \Package{marginnote} verwenden.
\item[fix-cm]
  Sollte bei einer Schriftgrößenänderung eine oder mehrere Warnungen der Form 
  \texttt{Font shape `T1/cmr/m/n' in size <...> not available} erscheinen, so 
  sollte das Paket \Package{fix-cm} \emph{vor} der Klasse geladen werden. Siehe 
  dazu \autoref{sec:tips:fontsize}.
\end{packages}